[STM32F4] FSMC ECC读取值为0

[复制链接]
1707|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,要么一个乱的值
 楼主| jcx0324 发表于 2015-2-17 09:42 | 显示全部楼层
不知道如何结贴
zh113214 发表于 2015-2-28 20:58 | 显示全部楼层
这个例子是什么芯片,感觉差不多吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

133

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部