示波器抓SPI波形全是毛刺,24位ADC读数跳得离谱,快被逼疯了

STM32 · 于洁 · 7 浏览
各位同行大佬,救救孩子。手上一个项目,STM32F407读AD7768-1(24位Σ-Δ ADC),SPI模式,最近批量出了怪事:约三成板子ADC读数末几位乱跳,跳变无规律,有时候静止输入能跳几千个码。产线已经卡了两天,老板天天来问。 我先用示波器看SCLK和SDO波形,探头是500M带宽差分,短地弹簧接地。结果SCLK上升沿有明显的振铃,频率大概180MHz,峰峰值快1V了,SDO边沿也有台阶。怀疑是信号完整性问题:走线没做阻抗控制,排线还跟电机驱动线捆在一起走。试过降SPI时钟从8M降到2M,跳变少了一些但没根治;又加了33Ω源端串阻,振铃压下去一点,可读数偶尔还是飘。 现在我拿不准到底是反射、串扰还是地弹,逻辑分析仪抓协议层看数据帧没错位,问题应该就在模拟前端或者数字边沿上。想问问:AD7768这种Σ-Δ的SPI,SCLK振铃到什么程度会真的影响转换结果?有没有人遇到过类似要加磁珠或者改地分割的?下一步我该先动layout还是先查电源纹波?在线等,挺急的。

回答(1)

★ 精华
先别慌,你这方向没跑偏,振铃加排线捆电机线基本是主因。但读数跳几千个码,我更怀疑是SPI的数字噪声串进了ADC模拟端或基准。给你三个排查点:一、把SPI排线单独走,远离电机线,最好整条屏蔽地线单端接地;二、33Ω源端串阻保留下,再在SCLK和SDO靠近ADC端加22-47pF小电容到地,压高频毛刺;三、重点查ADC的REF和模拟输入地,用示波器看基准上有没有和SCLK同步的尖峰,有的话就在基准加RC或磁珠隔离,模拟地和数字地单点连。先降速跑通再优化时序,别急着追8M。
田甜 · 2026-11-04