打印
[STM32F4]

FSMC ECC读取值为0

[复制链接]
1508|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcx0324|  楼主 | 2015-2-12 14:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用FSMC 读写nand flash, 现在读写操作都正常的,但是想加ECC校验进去,结果读取到的值都为0,也看过网上帖子,一直没找到问题,求救大侠们:
配置如下:
FSMC_NANDInitStructure.FSMC_Bank = FSMC_Bank2_NAND;       /* 定义FSMC NAND BANK 号 */
FSMC_NANDInitStructure.FSMC_Waitfeature = FSMC_Waitfeature_Disable;  /* 插入等待时序使能 */
FSMC_NANDInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b; /* 数据宽度 8bit */
FSMC_NANDInitStructure.FSMC_ECC = FSMC_ECC_Enable;       /* ECC错误检查和纠正功能使能 */
FSMC_NANDInitStructure.FSMC_ECCPageSize = FSMC_ECCPageSize_2048Bytes; /* ECC 页面大小 */
FSMC_NANDInitStructure.FSMC_TCLRSetupTime = 0x01;      /* CLE低和RE低之间的延迟,HCLK周期数 */
FSMC_NANDInitStructure.FSMC_TARSetupTime = 0x01;      /* ALE低和RE低之间的延迟,HCLK周期数 */
FSMC_NANDInitStructure.FSMC_CommonSpaceTimingStruct = &p;    /* FSMC Common Space Timing */
FSMC_NANDInitStructure.FSMC_AttributeSpaceTimingStruct = &p;   /* FSMC Attribute Space Timing */
FSMC_NANDInit(&FSMC_NANDInitStructure);

操作:
FSMC_NANDECCCmd(FSMC_Bank2_NAND, DISABLE);
   FSMC_NANDECCCmd(FSMC_Bank2_NAND, ENABLE);
   NAND_WriteMultiSectors(g_TestBuf, (us_j + (us_i * 64)), 2048, 1);
   ui_ecc_data[us_j] = (FSMC_GetECC(FSMC_Bank2_NAND)) & 0x0FFFFFFF;  //0-27bit

也变过写入缓存的值,结果读取到一直是0,求指导
沙发
jcx0324|  楼主 | 2015-2-12 14:40 | 只看该作者
读写ECC的值都是0,每次读写操作都是2048字节数据(也就是一页),

使用特权

评论回复
板凳
搞IT的| | 2015-2-14 19:21 | 只看该作者

使用FSMC 读写nand flash的例子楼主不妨看看。。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
jcx0324 + 3 很给力!
地板
jcx0324|  楼主 | 2015-2-17 09:39 | 只看该作者
解决了,原来在写的时候还有读操作,导致ECC值要么是0,要么一个乱的值

使用特权

评论回复
5
jcx0324|  楼主 | 2015-2-17 09:42 | 只看该作者
不知道如何结贴

使用特权

评论回复
6
zh113214| | 2015-2-28 20:58 | 只看该作者
这个例子是什么芯片,感觉差不多吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

133

帖子

1

粉丝