看似简单的 SPI 总线,这两个问题一定要警惕

天天打交道的 SPI 总线,你真的完全掌握了吗?硬件简单、上手容易,让它成为驱动各类外设的首选。
一路总线挂载多设备的用法更是十分普遍,合宙多款开发板也沿用了这种设计。可越是基础的功能,越容易在细节上出问题。

坑一:你的CH390H不供电?其他外设别想干活****坑一:你的CH390H不供电?其他外设别想干活

03 以太网 SD卡参考设计260424 430201.png

当CH390H未供电时: 其MISO、MOSI、CLK三个信号在CH390H芯片内部为下拉状态,这时会将三个信号的电平拉低到非正常逻辑电平状态。

这个时候如果打开SPI总线上的其它外设: 比如SD卡,会造成SD卡的读取失败,或者几率性失败或成功,原因就是——SPI信号的逻辑电平混乱所致。

举个例子:我们设置的IO电平为3.3V,实际此时的电平可能是2V左右,其逻辑高电平处于临界状态,进而造成通信异常。

解决办法:必须将给CH390H的供电打开。

这里建议大家在任何外设上SPI总线之前,第一件事是翻开它的数据手册,确认供电说明等信息。

下图是CH390H手册中相关描述的截图(红框标出下拉说明):

02 SPI隐形坑26042401.png

坑二:****你把SD卡槽的上拉LDO关了?SPI总线当场“摆烂”

03 以太网 SD卡参考设计260424 430202.png

SPI总线接上拉电阻到LDO后,会出现异常。

比如Air780系列V1.4开发板:SD卡部分将SPI总线上拉高到SD_3V3,用于增加SPI总线的驱动能力。

问题来了:当其他同路SPI外设要使用时,SD卡的这路LDO必须要打开,否则会造成SPI通信不正常。

原因很简单:给每个外设供电的LDO,以LP5907MFX为例,其在关闭时,LDO电源输出管脚会有下拉电阻到地,进而造成SPI电平拉低——实测Air780EHM的电平本来设置为3.3V,结果被拉低到2.2V甚至2V以下,SPI通信自然就不正常了。

LP5907MFX手册截图如下:

02 LP5907MFX手册截图.png

所以记住一句话: 当硬件设计中将SPI上拉到某一LDO时,一定要将该LDO打开,才可以保证SPI正常通信。

相关资料下载:

SPI核心库最新API文档

https://docs.openluat.com/osapi/core/spi/

开发板使用手册/参考设计

https://docs.openluat.com/air780ehv/product/shouce/

LuatOS提供一站式物联网高效解决方案,集成高速通信、外设驱动、UI交互及视觉处理,助力行业客户快速落地产品,同时实现极致低功耗——相较于传统的“串口屏+DTU方案”或安卓方案,功耗减半,成本不足三分之一。

posted @ 2026-05-27 13:31  电子老师傅  阅读(20)  评论(0)    收藏  举报