0
收藏
微博
微信
复制链接

SPI读回来的全是0xFF,芯片坏了吗?

2026-10-30 10:41
2

SPI读回来的全是0xFF,芯片坏了吗?

SPI时钟有了、片选也在跳,读寄存器却一直返回0xFF。这个值有时是芯片数据,有时只是MISO没有被有效驱动。把CS、SCK、MOSI、MISO放到同一张波形里看,通常比反复改程序更快。

0xFF是芯片真的回了一个FF吗?

调硬件时,SPI读数全是0xFF,算是一个很有迷惑性的现象。程序看起来没报错,发送函数能跑,示波器也能看到SCK一串一串地跳,但每次打印出来都是FF FF FF。

看到FF并不能直接宣布芯片坏了。SPI接收实际上是在时钟边沿读取MISO的电平,如果连续八个采样位都是高电平,得到的自然就是0xFF。关键是:这些高电平是从设备主动送出来的,还是MISO根本没人驱动?

有些芯片在未被选中时会让MISO处于高阻态。如果板上有上拉,或者这根线恰好被其他电路拉高,主控也可能读到连续的1。当然也有例外,比如某些Flash空白区域读出的数据本来就可能是0xFF。要结合读的命令和地址判断。

图1:示波器的SPI解码界面,可同时对照片选、时钟与收发数据。
图1:示波器的SPI解码界面,可同时对照片选、时钟与收发数据。

CS到底有没有选中它?

SPI常见的片选CS是低有效,但要以当前器件的数据手册为准。有些设计一眼看波形,CS也确实在低电平和高电平之间切换,于是就认为“片选没问题”。

真正应该对照的是芯片引脚上的CS,而不是只看MCU一侧的GPIO。中间如果经过电平转换、缓冲器,或者连线焊接出了问题,主控输出正确也不代表从机收到正确。

还要看CS拉低之后,SCK是什么时候开始跑的;一笔读操作没结束,CS是不是提前拉高了。Microchip的SPI资料就说明,部分从设备在片选失效时会退出通信,并让MISO恢复高阻。

图2:CS、SCK、MOSI与MISO同屏波形,片选时序和数据变化需要一起核对。
图2:CS、SCK、MOSI与MISO同屏波形,片选时序和数据变化需要一起核对。

测量时把CS和SCK同时抓出来,通常比单看时钟是否存在更有用。

如果板上有不止一颗SPI从设备,还要确认是不是选错了CS。几颗器件可能共用SCK、MOSI、MISO,但各自的片选不能弄混;有的故障并不是波形坏了,而是波形跑到了另一颗器件上。

时钟有了,MISO就一定有数据?

不一定。SPI没有像I²C那样的应答位,你发出去的命令是否被从机理解,单凭SCK跳动看不出来。主控在MOSI上发出的地址、读写位、字节数如果不符合芯片协议,对方可能不会在预期时刻输出数据。

有的器件要求先发命令,再发地址,之后还要送几个空字节让时钟继续运行;有的读寄存器还涉及Dummy Cycle。如果刚发完地址就停止时钟,或从错误的字节位置开始取数据,就可能得到全高或错位的结果。

再看CPOL和CPHA。它们决定时钟空闲电平和在哪个边沿采样。主从模式不一致,常见结果是读数错位、乱跳,未必一定等于0xFF,但这仍是值得核对的一项。

四根线一起看,比改十次代码有用

调试时可以把CS、SCK、MOSI、MISO同时接上逻辑分析仪或示波器,先确认芯片确实被选中,再看命令是否完整送到器件引脚。不要只看软件打印的十六进制数据。

如果CS、SCK、MOSI都有正确波形,而MISO在整个交易期间始终高电平,就重点看从机供电、复位、输出使能、MISO线路、上拉和电平转换器。断电后还可以检查焊接和导通情况。

如果MISO确实有高低变化,软件却读回0xFF,那就要回到采样边沿、输入复用、数据位宽和解码配置。还有些芯片读取状态前必须等待上电或内部初始化完成,过早访问也可能拿不到预期数据。

逻辑分析仪能快速看解码,但它的阈值会把波形归成0或1。如果怀疑电平转换、上升沿过慢、振铃或MISO电压不够,仍需要示波器看看模拟电压波形,不能只凭解码栏里的FF下结论。

换芯片当然是排查手段之一,但通常不应该排在第一步。先弄清那八个“1”究竟是谁送出来的,范围就能缩小很多。

声明:

本文由凡亿教育整理,转载请注明来源!

投稿/招聘/广告/课程合作/资源置换 请加微信:13237418207


登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

凡亿教育

凡亿教育打通了“人才培养+人才输送”的闭环,致力于做电子工程师的梦工厂,打造“真正有就业保障的电子工程师职业教育平台”。帮助电子人快速成长,实现升职加薪。 为了满足学员多样化学习需求,凡亿教育课程开设了硬件、PCB、仿真、电源、EMC、FPGA、电机、嵌入式、单片机、物联网、人工智能等多门主流学科。

开班信息