关于SPI_Flash读取ID返回0xff的一个小分享,给有需要的小盆友

2019-07-21 08:58发布




最近项目上使用到了SPI_Flash,使用的是MX25L3206E,至于为什么不使用大家使用的W25QXX,我不知道,要问公司的硬件工程师
采用了FATFS文件系统进行文件管理,项目开发过程中一切都挺顺利,但是批量出产的时候发现了一个问题

100台设备里面出现了十几台设备系统跑不起来。

经过对设备的跟踪发现,是程序启动的时候会循环检查SPI_Flash的ID,一直是0xFF,所以系统停在这了,至于为什么会让程序死在这儿,工作需要,杠精请绕道

所以开始查找为什么会读不到ID,网上查找一通也没有找到具体原因,无非都是时序,硬件接口,这些问题大部分不存在。。。。

经过一天的看Datasheet,测试记录,发现是这个芯片有一个引脚NC/SIO3/HOLD,没有特殊要求,没有特别注意点,
但是这个引脚是连接到我们自己主板的CPU上了,但是并没有初始化它,
所以它在启动过程中是悬空的,电平状态不稳定,测试过程中当我每次把它连接到GND或者VCC或者只是触碰了一下,它就能正确读取到ID,


OK,原因找到了,那就把引脚初始化一个电平问题解决!


总之,遇到问题还是需要多调试多测试,bug终究会解决的!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。