浮云残雪 发表于 2014-1-9 13:32:12

nand flash操作所遇到的有趣现象(读FLASH ID 信息)

本帖最后由 浮云残雪 于 2014-1-9 13:38 编辑

目标                :读取FLASH的ID信息
采用的方式        :同步操作模式
目前实现        :读到了ID信息的BYTE0,即4FH。而BYTE1-BYTE4读不到。

操作流程:
进入BUS_IDLE,然后进入CMD_IN(发送90H),进入BUS_IDLE(等待tCAD),进入ADDR_IN(发送20H),再进入BUS_IDLE(等待tCAD),进入BUS_DRIVING,再进入DATA_OUT(等待接收ID数据),进入BUS_DRIVING(等待数据接收完成),进入BUS_IDLE。如此循环。

现象,现在只能读到ID信息的BYTE0, BYTE1-BYTE4读不到


说明:以FLASH_开头的信号均为与FLASH在硬件上直接相连的信号。命名均是以异步模式下micron的手册为准。WE_n信号在同步模式下为CLK信号(FPGA的工作时钟也是WE_n,并且是在WE_n的下降沿触发)。RE_n在同步下为W/R信号。在state_bus_idle状态下,给FLASH_DQ的数据(89H),没有任何意义。只是为了检测状态的跳转是否正确。因为这个时候FLASH处于BUS_IDLE模式。对FLASH_DQ的数据不做响应。
在上图中可以看到,先进入BUS_IDLE模式,等待tCAD后进入CMD_IN模式并发送命令90H给FLASH,然后进入BUS_IDLE模式,等待tCAD。

在BUS_IDLE模式下等待tCAD时间后,进入ADDR_IN模式并发送地址20H给FLASH。然后进入BUS_IDLE模式,等待tCAD时间

然后进入BUS_DRIVING模式,等待tWHR的时间后,进入DATA_OUT模式读取ID信息的5个BYTES

最终读出的数据只有ID信息的BYTE0   结果为4FH。数据正确。

完整的数据应该是 4FH 4EH 46H 49H XXH

ximuyi 发表于 2014-6-4 17:28:02

把代码贴出来看看,最近我也在用FPGA做这个

xinyue129 发表于 2014-6-9 14:43:59

请问楼主最后面解决了吗?现在遇到同样的问题,求指导

浮云残雪 发表于 2014-6-10 08:16:51

xinyue129 发表于 2014-6-9 14:43
请问楼主最后面解决了吗?现在遇到同样的问题,求指导

解决了。把命令中的一个地址发错了。你看看是不是也是这个问题。不要看时序图中给出的数据。要看里面的命令说明里面的。

xinyue129 发表于 2014-6-11 23:17:46

浮云残雪 发表于 2014-6-10 08:16
解决了。把命令中的一个地址发错了。你看看是不是也是这个问题。不要看时序图中给出的数据。要看里面的命 ...

我是用6410读的NAND FLASH,用拨码开关选择启动方式,用串口打印调试信息,现在如果一开始选择从NAND FLASH启动,能正确读到NAND FLASH ID,也能擦写,但是如果一开始选择从SD卡启动,就还是出现读NAND FLASH的生产厂商ID正确,器件ID之类的就读不对了,然后得再重新再拨回从NAND FLASH        启动,复位,再拨回从SD卡启动,这一拨动两次选择开关的过程中,只要串口不断,之后都可以从SD卡启动了,反之就不行,找不到原因,头大啊。。。

浮云残雪 发表于 2014-6-12 14:31:43

xinyue129 发表于 2014-6-11 23:17
我是用6410读的NAND FLASH,用拨码开关选择启动方式,用串口打印调试信息,现在如果一开始选择从NAND FLA ...

这个我就不了解了。我是用FPGA读的。

xinyue129 发表于 2014-6-13 09:14:37

浮云残雪 发表于 2014-6-12 14:31
这个我就不了解了。我是用FPGA读的。

好的,多谢楼主了

ximuyi 发表于 2014-7-16 18:03:24

楼主能发下源码吗?我最近也在做这个项目,FPGA的

浮云残雪 发表于 2014-7-16 19:46:03

ximuyi 发表于 2014-7-16 18:03
楼主能发下源码吗?我最近也在做这个项目,FPGA的

源码不能给你哦。有问题可以交流下。这个是项目的。上面有要求。
页: [1]
查看完整版本: nand flash操作所遇到的有趣现象(读FLASH ID 信息)