[技术问答]

NUC505的SPIM 控制外部FLASH问题

[复制链接]
1347|4
手机看帖
扫描二维码
随时随地手机跟帖
JUSTNIUB|  楼主 | 2016-10-8 19:30 | 显示全部楼层 |阅读模式
因工作需要,最近在测试FLASH,正好手头有NUC505,便用来进行测试。
测试了很多厂家的x25x系列的芯片,GIGADEVICE,WINBOND,EON,AMIC等,除第一个外,基本都出现了这样一个问题:在quad和dual 模式下读过程中,都会出现读取错误的情况。具体情况稍后会有说明。
我测试的思路如下:
1.读取ID
2.确定FLASH芯片是否完好。整个芯片全部写0X55,再全部写0XAA细节不多做赘述
3.往0x000-0xFF 地址写1,0x100-0x1FF地址写2...依次类推,写到0xfff,一共16个block(或者是扇区?
4.将写进去的数据用单线读取的命令一次读出4096个数据。(指令是0x0b和0x03)
5.切换到DUAL模式或QUAD模式,读取flash数据,也是一次读出4096个数据。

前4步都正确,保证我数据写入正确,flash也正常工作,连线上应该也没问题(或许有)。就在第5步出现了问题。当我读取的地址内容是0X3时,它只能读出一个正确的数据,之后的内容都是0XFF。
也就是说按照我第5步的做法,从地址0X000开始,到读取的地址为0X200时,这一段的数据是256个1、256个2、1个3,之后的数据全部变成了0XFF。
有趣的是,当我只读取0X200-0X2FF这一段时,无论读取多少个地址,只有第一个是正确的数据,其余数据也为0XFF。读取除0X200-0x2ff之外的地址时,在0XD这两个数据存放的地址中,也出现了相同的现象。
请大神赐教,如果有不明白之处,请指出,我会进行补充。                          
戈卫东| | 2016-10-8 20:14 | 显示全部楼层
我用过M451的QSPI,能够正确读。505没有试过

使用特权

评论回复
戈卫东| | 2016-10-8 20:15 | 显示全部楼层
这些SPI-FLASH,启动QUAD模式需要特定指令序列,不知道你做了没有。

使用特权

评论回复
JUSTNIUB|  楼主 | 2016-10-9 10:56 | 显示全部楼层
戈卫东 发表于 2016-10-8 20:15
这些SPI-FLASH,启动QUAD模式需要特定指令序列,不知道你做了没有。

做了,如果没有指令序列,是读不出数据的,我前面也提到的很清楚,可以读出一部分正确数据,证明在这个操作上是没有问题的。

使用特权

评论回复
JUSTNIUB|  楼主 | 2016-10-9 10:59 | 显示全部楼层
戈卫东 发表于 2016-10-8 20:14
我用过M451的QSPI,能够正确读。505没有试过

请问下您读取QSPI是读取外接的FLASH,还是开发板自带的?
505的flash是EON 的SPI,大小为2MB,读取它内部的FLASH时,QSPI模式也能正确读。之后我买了这款SPI flash,用它进行测试的时候,也出现了上述问题,不能成功读。

使用特权

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

本版积分规则

5

主题

16

帖子

0

粉丝