起因是在原子F767开发板上跑QSPI Flash例程正常,他用的W25Q256FV,(WSON封装那种,Q256没有SOIC-8封装),
然后自己画了一个PCB,接的W25Q128FV(SOIC-8封装),跑例程有点不正常。
例程大概是在flash最后一个扇区写个字符串进去,然后读出来,我修改了flash size以后读出来却是0xff,QPI读ID是正常的。
然后我修改写入地址,发现地址只要是Block起始地址,也就是32K整数倍的时候,W25Q128就正常,否则都是0xff
而开发板上的W25Q256上则不论哪个地址写入读出都正常。
为什么也问W25Q64,我将W25Q128FV换成W25Q64FV,结果读id也不正常,调整了QPI_Enable指令位置,在SPI模式下读ID就正常。
难道W25Q64FV不支持QPI? 还是我买到假的W25Q64FV
QUAD SPI与QPI是不同概念,因为担心元件问题,去立创买W25Q128,结果买到的是W25Q128JV,还是高速133M,
打开规格书才发现没有Enter QPI Mode (38h)这个指令,只提到QUAD SPI,没有提到QPI。
还好没发货,客服给退了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
默认就是3字节,如果要提升到4字节需要发送指令:
#define W25X_Enable4ByteAddr 0xB7
另外的QSPI发送的时候要选择3字节24bit地址
Cmdhandler.AddressSize=QSPI_ADDRESS_24_BITS;
感谢。
后来我也想到,屏蔽了“W25X_Enable4ByteAddr”指令,就默认是3字节地址了,但测试了数据还是不对。
原来还需要把例程中的32位地址,改为24位地址,就一切正常了。
一周热门 更多>