本帖最后由 xuepiaojiangu 于 2011-10-10 13:44 编辑
控制芯片STM32F103RC,不带FSMC,即所为的Nand flash controlle(NAND Flash控制器);
选用的Nand Flash为三星的K9F4G08U0A。
利用STM32的5个I/O引脚连接了Nand Flash的R/NB,NCE,NRE,FCLE,ALE.又利用另外的八个I/O口连接了Flash的那个I/O口。
根据K9F4G08U0A的芯片手册,分析了它写数据、读数据、擦写的时序,实现了I/O完成。可是问题的关键就在于ECC校验了。本人有以下几个问题想问达人:
1.我向flash里写数据和从flash里读数据都需要ECC校验吗?
2.Flash芯片本身具备ECC硬件校验吗?即我向里面写数据后,flash芯片自己校验我写的东西产生一个ecc校验结果保存在它自己的那个spare区域内。然后等我读flash的数据时,flash对我读的数据再进行一次ecc校验,将这个新的结果与它原来保存在spare区域内结果比较得出结论。是这么个过程吗?还是下面的第3
3.STM32向flash写数据,同时stm32需要对写入的数据算出个ecc值,同时将这个值送给flash让它记录下来。等数据时,我们再把读出的数据进行ecc校验,同时读出原来存进去的那个ecc值,看是否相同。是这么个过程吗?
4.如果是第3种方式的话,那我的STM32由于没有Nand flash controlle,所以所有的校验工作都得有STM32编程实现,那样好难啊。
请问各位达人,我上面的疑问有能解答的吗? |