STM32F103C8T6批量后SPI读W25Q80偶尔发疯,快被搞死了

STM32 · 潘东 · 19 浏览
各位老哥,求助个糟心事。我们一台工业采集板,主控STM32F103C8T6,外挂W25Q80做参数存储,SPI2模式0,8MHz。小批100台里总有五六台,跑几个小时就出现读ID全FF,重新上电又正常,过一阵再犯。已经排查:电源纹波OK(示波器看了3.3V也就30mVpp),CS上拉4.7k加了,SPI线改短到5cm,时钟降到4M还是偶发。规格书第3页那个时序我核了三遍,tCLQV余量够。怀疑是片子批次问题,但换了两批还是一样,产线已经停了两天,客户催得急。有没有兄弟遇到过类似?到底是我硬件哪块埋了雷,还是这芯片本身有坑?在线等,先谢过。

回答(1)

先别急着定片子批次的问题,读ID全FF、上电自恢复,这种“边界”味道太浓了。几个排查点:1)读ID全FF多半是SPI从机没响应,重点查CS在掉电/复位/热插拔瞬间有没有被拉低毛刺,CS上拉之外建议在CS与3.3V间并100nF去耦,或加RC滤波,防止上电时序里CS悬空误触发。2)W25Q80的/CS和/HOLD、/WP脚在STM32复位期间可能被拉成浮空,建议/HOLD、/WP直接上拉10k到3.3V,别悬空。3)SPI2的NSS用软件模式,确认SPI初始化前GPIO已配成推挽输出高电平。另外把读ID的SPI读函数加个超时重试,跑一夜看是否某台固定复现,能快速区分是单板硬件还是固件时序边界。
曹雪 · 2026-11-05

🧰 配套工具

⏰ 时钟分频计算