如何处理模块上的多个上拉电阻

电器工程 微控制器 i2c spi 平行线 拉起
2022-01-27 22:21:42

我正在考虑为几天前做的开发板做一个模块,其中包括 spi/i2c 接口。

问题是我没有在主板的 MCU 引脚中包含上拉电阻,并且正在考虑将它们添加到模块中以使它们更“通用”,这样每个用户都可以使用它们而无需添加额外的电阻原型板。

但后来我面临下一个问题。如果我在额外的模块中添加上拉电阻并将例如两个或多个模块连接到同一总线,我将使这些电阻并联,因此电阻会下降并且不会完成它们的功能。

但是,如果我在主板上添加上拉电阻,我会让 MCU 中的这些引脚始终处于低电平有效状态。

所以主要问题是:

如何将多个模块连接到同一总线上,每个模块上都有上拉电阻,但当你有多个模块时不让它们并联?那可能吗?

或者这里最好的解决方案是启用 MCU 中的上拉电阻而不将它们包含在模块中?

谢谢。-

2个回答

我假设每辆公共汽车的总长度不到 1 米,这是普通 I 2 C 和 SPI 的典型情况。此外,总线电容在规格范围内。

应该只有一 (1) 组上拉电阻。因此,它们的最佳位置是在主控制器板上。不要将引体向上放在模块上。

如果您想在某些情况下进行引体向上,而在其他情况下不进行引体向上。

  • 不需要时不要填充上拉电阻。
  • 设计主控制器板,使上拉电阻通过跳线连接到信号线。当您不需要引体向上时,移除短路块。

编辑: 坦率地说,我认为 Sparkfun 在 I 2 C 从模块上放置引体向上是一个错误。不幸的是,并不是每个购买模块的人都意识到过度上拉可能是一个问题。如果控制器板(而不是从属外围板)具有带焊接跳线的上拉电阻会更好。

哦...等等... Arduino 没有(可选的)引体向上(尽管它可能应该)。所以,让我们到处做引体向上吧。更轻松的初始开箱即用体验。但是添加一些从模块,总线将停止工作。

更新(2015 年 5 月):

更新(2015 年 12 月):关于使用多个模块对 I 2
C 进行 故障排除的类似问题不断出现在留言板上。 尝试扩展的一般响应。

一种选择是使用 SIL 或 DIL 电阻器组,并将它们安装在每个模块的插座中。在构建具有多个模块的系统时,将它们从除最后一个模块之外的每个模块中拉出。这在跳线上节省了一点电路板空间。

此主题的变体可以包括用于连接或断开电阻器的 FET 开关,由单个跳线或连接器上的备用引脚控制(因此,如果插入另一个模块,电阻器会自动断开)