为什么将大电流设备连接到我的数字电路会导致奇怪的行为?

电器工程 数字逻辑 噪音 接地
2022-01-19 16:44:34

我有一个

  • Arduino
  • 微控制器
  • 其他数字事物

当我连接一个

  • 发动机
  • 加热器
  • 其他大电流的东西

我体验

  • 奇怪的 ADC 测量
  • 重新启动
  • 崩溃
  • 数字通信中的错误
  • 其他意外行为

我的电源尺寸合适,可以为所有这些设备供电。我没有示波器,所以我看不到电路中实际发生的事情。可能的原因是什么?

2个回答

没有细节是不可能给出具体答案的。仔细看看这些东西:

  1. 接地这正是你从糟糕的整体接地策略中得到的症状。如果没有显示所有连接的电源和接地的框图,就不可能给出具体的建议。但是,请仔细观察所有接地返回电流,并考虑接地导体上的任何电流都会导致接地偏移。

  2. 本地脱钩确保在每个芯片的每对电源和接地引脚之间有一个 1 µF 左右的陶瓷帽尽可能靠近。这些连接需要很短,因为即使是一点点串联电感也会显着降低它们的有效性。

  3. 电源浪涌能力。确保电源上有足够的大容量储存电容来处理瞬变,无论电源本身需要多少时间才能赶上并提供更多电流。

  4. 电感捕捉二极管。确保任何可能的电感负载,包括任何外部负载,都有一个反极性二极管。对于高达 50-100 V 左右的电压,这些应该是肖特基,因为它们的速度很高。这适用于由直流驱动的负载。由于它们总是以一个极性驱动,二极管可以安全地短路另一个极性。正如 Tut 在评论中指出的那样,对于交流负载,需要使用更复杂的缓冲和/或削波电路。

考虑这两个电路:

示意图

模拟此电路- 使用CircuitLab创建的原理图

他们是一样的吗?集总元件模型中它们是。然而,我们的模型忽略了一个相关的事实:真正的电线有电阻。让我们介绍几个模拟的示意图:

示意图

模拟这个电路

在右边的电路中考虑当电机吸收的电流发生变化时会发生什么。一会它关闭并绘制 0A,然后它打开并绘制 1A。这个 1A 必须流过 R1 和 R3。根据欧姆定律,这些电阻器上的电压降一定为 \$1A\cdot 1\Omega = 1V\$。在 R1 和 R3 各损失 1V 的电源电压时,从微控制器的角度来看,电源电压突然变为 10V,而不是 12V。

当电源电压快速变化时,许多数字电子设备不喜欢它。当多个设备试图通过数字总线相互通信时,还会出现其他问题,但电源轨中的高电流使每个设备对“接地”是什么有了不同的认识。查看 MCU 的“接地”以及本例中的电机。所有的电阻器中都有 1A,因此它们之间有 1V。MCU 的“地”与电机的“地”相差 1V!如果这些是通过使电压等于“地”来发出“0”信号的数字设备,那么当它们不能就“地”是什么达成一致时,它们就不会很好地通信。

对此的解决方案是将每个设备的两个电源连接一直运行到电池或稳压器,并在那里为每个设备建立所有电源连接。这是左侧电路中模拟的情况。在这里,当电机启动时,R5 和 R7 中会有大电流。这里会有一些电压降,但电机不会介意。同时,R6和R8中的电流不变,电压也不变。因此,微控制器看到的电源电压是恒定的。

对于每个设备,您不必一直这样做,但您确实需要考虑当您的电路包含此类设备时,大电流将在哪里运行。请记住,所有电线都有一定的电阻,因此当大电流流过它们时会出现电压降。然后规划您的电线或走线,以使高电流不会流过敏感组件的电源,从而导致噪声问题。

这只是一种可能的解释。其他答案无疑会提供额外的可能性。