我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
mangui zhang:降低写的速率看看就是SPI的CLK频率看看手册的读写时序和操作的等待时间看看是否满足
我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
answer:可否确认一下,Flash芯片的第一个字节所写的位置,是否为只读的?还是可读可写的?
我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
aozhao li:
回复 mangui zhang:
SPI的CLK频率已经降为最低,时序也对过,没看出问题来。如果是时序有问题,会只导致第1个字节出错吗?
我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
aozhao li:
回复 answer:
我改变过读写的起始位置,但结果是一样的:如果只擦除,不写入,从FLASH读出来的所有字节确实为0xFF;如果擦除后写入,随后从FLASH读出来的第1个字节始终是0x04,剩余字节正确。
我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
rookiecalf:
回复 aozhao li:
可以考虑M25P128的时序条件方面,检查一下时间是否都与电气需求相吻合。
我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
user4661451:你写了什么进去?
我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
mangui zhang:
回复 aozhao li:
奇怪了。spi的起始电平状态对吗 比如上下拉等
从多次实验结果看 可能是你的程序就写入了04抓一下写时序的第一个写入数据
我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
aozhao li:
回复 mangui zhang:
写时序的第一个写入数据是正确的,读时序的第1个数据确实是0x04,上下拉也检查过,没看出哪里有问题。
我手里有一个F28335的板子,DSP通过SPI端口连接了型号为M25P128的FLASH,进行读写测试时遇到问题。DSP向FLASH中写入256字节的测试数据,然后由DSP从FLASH中将这些数据读出,与原始数据进行对比检查是否一致。现在的现象是:将芯片擦除后,DSP从FLASH中读出的数据是0xFF(正确),但只要向FLASH中写入数据,无论这些数据内容是什么,并且无论对哪个PAGE进行操作,在DSP从FLASH中读出的数据中,第1个字节总是0x04,第2~256字节的值与写入的数据一致。用示波器观察过SIMO和SOMI,能够确认DSP写出的数据正确,而FLASH送出的数据中第1个字节的确是0x04。已经被这个问题纠缠很久了,希望大家给予帮助。
aozhao li:
回复 rookiecalf:
鄙人确实是菜鸟(或者菜鸟都算不上,还没孵化呢)再三检查时序,实在看不出问题,而且分别用GPIO16~19/GPIO54~57都试过了,现象一样:写入256个字节的任意数据,读出结果是第1字节为0x04,第2~256字节为与写入数据一致。当上电后仅进行读操作时,偶尔会出现读出数据全为0xFF或全为0x00的现象,这又会与什么方面有关呢?