今天调试W25Q16 SPI读写,发现一只读写不成功的问题
今天调试W25Q16 SPI读写,发现一只读写不成功的问题
W25Q16在我之前的一个板子上已经用过,因为MCU与W25Q16连接的电路相同,只是IO引脚序号变动,于是就将之前的驱动程序,直接copy过来用,只是重新更改了IO引脚对应;但是发现总是读写不成功,用逻辑分析仪查看,发现时钟正常,发送出去的指令也正常,但是就是读写不成功,甚至JEDEC ID读取也不对。
一开始先更改波特率,发现都不行;后来发现时序中的片选信号总是处于低电平,查看了手册,手册上说,在接收新的指令前,CS片选信号必须由高转低;接着排查硬件电路的问题,引脚连接通断没有问题,但是CS初始化时,程序让其置高,他并没有置高,于是重新看了代码,发现是片选信号的引脚的输出速率没有配置,但是之前板子上就是这么用的也没有问题啊,但是还是增加了速率的设置,重新测试,发现读写正常了!
所以想问,为什么输出模式下,有的情况不配置速率时,对IO口的输出电平控制是没有问题的,但是有的时候如果没有配置速率,对IO口的输出电平控制就不成功呢????
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律