S29GL256S10 是16位NorFlash,挂在CS2,C6748的BA1连接NorFlash的A0,C6748的A0连接NorFlash的A1,依次类推。NorFlash的驱动是在C6713中长期使用的,移植到C6748中只改了EMIF的的配置,时钟速率同为40MHz,Stepup/Strobe/Hold时间设置与原来相同,EMIF已开启并配置了pinmux
现象描述:1)能读取NorFlash 的 Manufacture ID 和 Device ID(硬件连接应该正确)
2)擦除操作后状态显示擦除成功(方法是:Polling DQ7等bit)
3)写入操作后状态显示写入成功,但回读数据全是0xFFFF
4)用CCS6.1.1的Memory Browser看到的数据和程序读出的一致(0xFFFF),有个异常现象是读取完成后发送“写入缓冲区终止复位指令”,Memory Browser看到的数据编程了0x008A和0x00CA等重复数值
“写入缓冲区终止复位指令”:
*(volatile Uint16 *)(FLASH_addr555) = 0xAA;
*(volatile Uint16 *)(FLASH_addr2aa) = 0x55;
*(volatile Uint16 *)(FLASH_addr555) = 0xF0;
麻烦各位看看有无拍错思路,卡了两天了,感谢
kevin wang:
测量了WP信号,一直为高电平;擦除和写入操作后RY/BY信号为高。感觉信号都是正常的,确始终写入失败
Shine:
回复 kevin wang:
试试每次写直接加大延时。
kevin wang:
回复 Shine:
之前用的是Program Buffer方式写入1个字(2字节)失败,今天试了Program Word,也写入1个字,成功。无语!
您说的写入延时,是在什么地方加入延时?
Shine:
回复 kevin wang:
每次写命令之间加延时。