SPI 总线终端和上拉电阻

电器工程 spi 拉起 终止
2022-01-04 23:41:57

我的微控制器(ATMEL 系列)需要使用 SPI 协议与从设备通信。我正在设计硬件。最大 SPI 总线速度为 1 MHz。主从距离小于50mm。

Q1) 我是否需要在 SPI 总线上串联添加终端以避免在此 SPI 速度 (1MHz) 下反射?如果是这样,我应该如何计算它的值,我应该把终端电阻放在哪里——靠近主机还是靠近从机?

Q2) 我见过其他参考设计,有时人们在所有 SPI 信号上使用上拉电阻,有时只在少数信号(CS 或 MISO)上使用,有时没有。SPI 信号上是否需要上拉电阻(因为 SPI 端口是推挽配置)?引脚浮动的唯一时间是在微控制器获得电源并将引脚设置为输出之前。那么我是否需要使用上拉电阻,或者如果我在设计中不使用任何上拉电阻会发生什么?

1个回答
  1. 在 1 MHz 和 50 mm(2 英寸)上,您不需要端接。你有普通的板载数字信号,甚至没有非常快的数字信号。
  2. 您不需要 SPI 线上的上拉或下拉。使用时,SPI 线总是明确地双向驱动。但是,最好在 MISO 线上放置一个下拉(或上拉)。那是因为这条线只有在它的从机选择线被断言时才由从机驱动。不使用总线时,所有从机选择线通常都未置位,因此 MISO 浮动。任意数据值是无关紧要的,因为除非选择了从机,否则不会查看其值,但是这条线上的中间电压会导致主机中的接收器消耗过多的电流或可能发生振荡。出于这个原因,我通常在 MISO 上放置一个 100 kΩ 的下拉电阻。它在不使用时使线路无害地保持在低位。你也可以使用上拉,只要所有从属设备即使在不使用时也能保持供电。