推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

SPI多从机片选实战要点与经验总结

更新时间:2026-10-22 08:24:09 大小:40K 上传用户:江岚查看TA发布的资源 标签:SPI多从机片选信号时序串扰ARM Cortex-MADC采集 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

SPI多从机片选实战要点与经验总结 一、缘起 这块板子是我去年接手的一块采集卡,主控用的是一颗常见的 ARM Cortex-M 内核单片机,板上一共挂了三片从机:两片 24 位 ADC,外加一片 SPI 接口的 EEPROM。起初设计的时候没太当回事,觉得 SPI 片选就是"拉低选中、拉高释放"这么简单,踩坑之前我从没想过片选这根线能折腾出这么多名堂。 板子打样回来第一次上电,主控能正常读 EEPROM,两片 ADC 也能各自读到数据。我心里还挺得意,觉得 SPI 布局虽乱,但跑通就行。可是好景不长,等我真正把三片从机都挂到总线上做批量采集的时候,问题接踵而至——ADC 的数据开始出现偶发性的错位、跳变,甚至有几次读回来整个通道的值全是错的。这就逼着我把片选这一块从头到尾捋一遍。 我现在回头想,SPI 多从机最核心的一条经验,其实是"片选信号必须独立、快速、干净,且各从机的片选时序彼此不能串扰"。很多初稿里想当然的接法,比如把两片 ADC 的片选并在一起,或者用普通 IO 慢吞吞地翻电平,都会在不同程度上把总线搞乱。下面我把整个排查过程按当时的顺序写下来,希望能帮后来人少走弯路。 二、第一轮尝试 第一次上电之后,我最初的做法相当粗糙。由于主控的片选脚不够用,我图省事把两片 ADC 的片选直接并联到同一个 GPIO 上,靠读地址的不同来区分从机。当时想的是,反正两片 ADC 都是同一型号、同一寄存器布局,靠器件地址应该能区分开。 结果这一轮尝试给了我一记闷棍。并联片选的直接后果是:当我对其中一片 ADC 发指令时,另一片 ADC 同样处于选中状态,它对总线上的命令也会作出响应,把不该它回的数据也挂上了 MOSI/MISO。两片器件在同一个地址空间里互相打架,读回来的数据自然七零八落。查了半天寄存器配置没问题,最后才把目光转到片选这根线上。

部分文件列表

文件名 大小
SPI多从机片选实战要点与经验总结.docx 40K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载