首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

MLC的NAND FLASH ECC ERR有关问题

2012-09-23 
MLC的NAND FLASH ECC ERR问题CPU用的是S3C2451,和S3C2450没什么区别,BSP用的是S3C2450的,CE6.0,在烧录BOOT

MLC的NAND FLASH ECC ERR问题
CPU用的是S3C2451,和S3C2450没什么区别,BSP用的是S3C2450的,CE6.0,在烧录BOOTLOADER和OS以及启动OS等过程中,只要涉及到ECC的校验就容易出错。用的是MLC的NAND FLASH。

当我把TACLS、TWRPH0、TWRPH1三个值设置成BSP自带的数值时ECC每次都出错,EBOOT和OS根本无法启动。
// Default NAND Flash timing @HCLK 133MHz (tHCLK = 7.5ns)
#define DEFAULT_TACLS(1)// 1 HCLK (7.5ns)
#define DEFAULT_TWRPH0(4)// 5 HCLK (37.5ns)
#define DEFAULT_TWRPH1(1)// 2 HCLK (15ns)

// for ECC decoding with Dummy Data
#define DUMMY_R_TACLS(0)
#define DUMMY_R_TWRPH0(1)
#define DUMMY_R_TWRPH1(1)

// for ECC encoding with Dummy Data
#define DUMMY_W_TACLS(0)
#define DUMMY_W_TWRPH0(0)
#define DUMMY_W_TWRPH1(0)

---------------------------------------------
而当我把以上9个值都设置成最大值7的时候,ECC出错的问题才能得到一定的改善,但是偶尔仍然会出错导致无法启动OS,7已经是寄存器能够设置的最大值。

在另一个产品中用的是S3C2416,使用同样的MLC NAND FLASH,CE5.0,用BSP自带的数值就不会有错。

所以麻烦大家指点一下可能是什么原因。
硬件上可能会导致这样的问题,但是估计不会这么严重,是否其它的一些寄存器配置还需要注意呢?比如一些时钟配置之类的?

谢谢!

[解决办法]
有情帮顶,这个一个好贴。
[解决办法]
这个东西估计你只能认真的看芯片的数据手册了,至于你的现象,我觉得应该和硬件没有太大关系,估计主要还是设置的问题。
[解决办法]
NANDFLASH驱动是用的微软自带的方案吗?
[解决办法]
你的BSP是支持MLC的吗?
[解决办法]
BSP不支持MLC FLASH,支持的话不会有这些错误
[解决办法]
检查一下各方面电压是否正常吧。供电、读写信号等。
[解决办法]
上面的参数是和FCLK,HCLK有关的,而且是基于HCLK和nandflash的参数来计算出来的。
[解决办法]

探讨
在另一个产品中用的是S3C2416,使用同样的MLC NAND FLASH,CE5.0,用BSP自带的数值就不会有错。

热点排行