SPI总线终端和上拉电阻


12

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

Q1)我是否需要在SPI总线上串联增加端接,以避免在此SPI速度(1MHz)下反射?如果是这样,我应该如何计算其值,我应该在哪里将终端电阻放置在主机附近或从机附近?

Q2)我看到了其他参考设计,其中有时人们在所有SPI信号上使用上拉电阻,有时仅在一些信号(CS或MISO)上使用,而有时没有。我们是否需要在SPI信号上使用上拉电阻(因为SPI端口是推挽配置)?只有在微控制器获得电源并将引脚设置为输出之前,引脚才会浮动。因此,我应该使用上拉电阻吗?如果我在设计中不使用任何上拉电阻,会发生什么?

Answers:


20
  1. 在1 MHz和50 mm(2英寸)时,您无需端接。您有普通的车载数字信号,甚至不是非常快的数字信号。
  2. SPI线上不需要上拉或下拉。使用SPI线时,总是显式驱动两个方向。但是,最好将下拉(或上拉)放在MISO线上。这是因为仅当从属选择线有效时,该线才由从属驱动。当不使用总线时,所有从选择线通常都未置位,因此MISO浮动。任意数据值都是无关紧要的,因为除非选择了从机,否则什么也不会看它的值,但是该线上的中间电压会导致主机中的接收器汲取过多电流或可能发生振荡。因此,我通常在MISO上放置一个100kΩ的下拉电阻。不使用时,可使线路低至无害。只要所有从站即使不使用时仍保持供电,您也可以使用上拉电阻。

3
在CS / SS引脚上上拉的一个重要原因是要确保在主机复位或启动时所有从机都保持未选择状态。在这种情况下,其引脚通常为高阻态,因此处于悬空状态,这可能导致选择多个从机并驱动MISO总线(导致短路)。也许这将是对该答案的有用补充?
Matthijs Kooijman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.