之前调试的三星flash: K9K8G08U0E遇到读写出错的问题暂时无法解决,决定调试镁光的flash: MT29F8G08ABABA,但是读取ID的之后第一个字节数据时对的,后面的数据都不错很奇怪,在此请教大家,下图是ID数据说明:
读取ID的代码如下:
BYTE Mfg, Dev;
volatile DWORD i;
NF_nFCE_L(); // Deselect the flash chip.
NF_CMD(CMD_READID); // Send flash ID read command.
NF_ADDR(0); // Send Address 0.
for (i=0;i<10;i++);
Mfg = NF_RDDATA_BYTE(); // Read 1 byte from NFDATA == Maker code
Dev = NF_RDDATA_BYTE(); // Read 1 byte from NFDATA == Device code
n3rdID = NF_RDDATA_BYTE(); // Read 1 byte from NFDATA == Device code
n4rdID = NF_RDDATA_BYTE();
n5rdID = NF_RDDATA_BYTE();
NF_nFCE_H();
------解决思路----------------------
当年用镁光的flash,折腾了1个多月。一天重启wince几百上千次。噩梦啊
不过用的不是这款。
------解决思路----------------------
这种问题,最好是能找厂家的技术支持。
------解决思路----------------------
这样就比较麻烦,只能自己研究
LZ,你那里我感觉应该做的不错啊,怎么厂家不支持你们?
------解决思路----------------------
建议用示波器或逻辑分析仪观察一下Flash接口的读写时序是否满足器件资料的要求,这个是大前提;
是不是flash的BUSY信号没有接到处理器的flash接口,导致数据读写错误。