spi fash w25Q256fv的写保护问题
问题描述如下:
我重复很多次给芯片下载程序,芯片把程序往spiflash里面写数据,程序是能运行的,对spiflash擦写多了,不知道重复多少
次下载程序后,突然有一次发现程序未写进flash里面去,发现数据错误,因为我们有一个对写入数据对比程序,后来测试发现状态
寄存器的值改变了,刚刚好全盘写保护(有些太巧合了,发现了两个芯片都是这样的),所以把状态寄存器的保护位清掉就可以
写了,但是状态寄存器的值为啥会改变,那种现象很难重现(不停地重复下载程序这个动作,测试两天了才重现了一次),目前
出现了四个例子了,芯片都是经过老化测试才出现
分析:
首先,我确认驱动程序是可以运行的,不停重复下载同一个程序也会出现的;其次,直接对状态寄存器操作的内容,就是
在初始化那里,使能一下四线模式,还有一个使能四字节寻址方式使能(不属于状态寄存器操作),最后,spi的频率30M 模式3
疑问,请高手指点:
1、状态寄存器的值怎么会改变了呢,会不会是芯片本身受外部影响(擦写多了或者引脚/WP的问题),自身改变状态寄存器的值,保护数据
2、会不会是驱动程序把状态寄存器的改变了呢(但是我只在初始化那里写使能四线模式写寄存器),无其他位置去操作寄
存器了,最重要的是很难重现现象,这才是关键