我以前多次犯过热插拔的非常愚蠢的错误。我的问题是我赶时间,我很容易忘记我已经打开了 Arduino 或其他一些昂贵的 IC 或硬件。
今天我将我的ESC的 PWM 输入热插拔到我的 Arduino 数字引脚。只见魔烟逸出。再见一组数字引脚!我恨自己现在。
为什么事情不喜欢被热插拔?
有没有一种简单的方法可以防止这种情况?
我以前多次犯过热插拔的非常愚蠢的错误。我的问题是我赶时间,我很容易忘记我已经打开了 Arduino 或其他一些昂贵的 IC 或硬件。
今天我将我的ESC的 PWM 输入热插拔到我的 Arduino 数字引脚。只见魔烟逸出。再见一组数字引脚!我恨自己现在。
为什么事情不喜欢被热插拔?
有没有一种简单的方法可以防止这种情况?
请注意,两侧的两个引脚较长,而中间的两个引脚较短。这可确保以正确的顺序进行连接(并且在拔出时也以正确的顺序断开)。
如果连接器不是为热插拔设计的,则没有此类保证。
你想要的顺序是:
这样可以确保双方就“0V”是什么达成一致,并且还可以安全地释放任何静电。有时可以看到微小的火花。您不想先连接 ESD 敏感引脚!
二、电源。
三、信号
顺序非常重要。您确实希望避免向未供电芯片的信号引脚施加电压,因为电流将流过 ESD 保护二极管,芯片将从其 IO 引脚供电。这会损坏芯片。
此外,如果接地最后连接,则信号线将充当接地,电流将流入其中。如果设备包含由来自 USB 的 +5V 的 LDO 供电的 3V3 芯片并且未连接接地,那么谁知道设备内部的电压会是多少......
如何不这样做的一个很好的例子是音频 RCA 连接器。
注意尖端是如何首先接触的。我敢肯定你以前做过。扬声器发出非常响亮的嗡嗡声,直到接地。
为什么不喜欢被热插拔?
这是因为引脚连接顺序错误。
既然你提到了 ESC,我猜你的电压和电流大到可以炸一些芯片。在这种情况下,不先接地会很痛……
有没有一种简单的方法可以防止这种情况?
使用热插拔安全的连接器。如果它不带电源,只带信号和接地,那么你可以在信号线上使用大值电阻器而不是......但这是一个黑客。
不幸的是,这些连接器非常少见。与 arduino 一起使用的接头设计为成品的一部分,仅在制造过程中插入,因此它们不是热插拔安全的。
热插拔安全连接器可用于通常的标准(USB、HDMI 等),但这不是您的应用程序所需要的。
所以,我猜你是在小心翼翼地做这件事,在弄乱电路之前先关掉电源......
热插拔不好有几个原因:
1)如果在接地电流以异常方式流入电路之前连接 Vcc。例如,如果 Vcc 已连接并且数字或模拟引脚位于接地之前,则电源可能会流入 Vcc 并从引脚流出,从而可能使该引脚短路并烧毁电路的该部分。
2) 可能会因系统总线或电源上的电压暂时下降而导致“断电”。
3) 断开时,电路或电缆中的电感器在断开时会出现高电压。
(我的产品中的电缆不可热插拔,服务代表会在发生意外时进行热插拔。由于电缆中的互感(以及不正确的电缆设计,直线彼此相邻一米左右) ) 它会烧毁电缆两侧的数字驱动器。进一步检查后发现,当电缆断开时,数字 CMOS 线会上升到 7V!)
我在实施以下两种策略方面也取得了巨大成功。如果您使用自己的热插拔系统,您可以在设计中做一件事是找到一个标准连接器(我的总线使用 sca2,但您可以使用 sata 或其他行业标准连接器,只要确保人们了解他们无法插入其他东西进去)。
预充电电路:
长引脚和限流电阻可用于限制设备的浪涌电流。长销先配合;必须设置电流限制,以使主机系统电源轨保持在规范范围内,但在电源和信号引脚连接之前,设备会充分充电。选择预充电电阻值时必须小心,以下场景显示了一些常见问题: 如果预充电电阻值太小,设备在插入时仍会消耗过多电流,导致系统电源轨下降脱离监管。
热插拔控制器
热插拔控制器 IC 控制设备的浪涌电流。热插拔控制器通常包含电子熔断器,在大电流应用中,可能难以区分浪涌电流和短路。这些组件比预充电电阻器更昂贵,并且在某些情况下,在系统中使用更多有源组件可能会带来可靠性问题。
图片和文字来源:热插拔的设计注意事项
除了已经提到的这些之外,另外两个影响会扰乱非常精细的电路:
-屏蔽电缆和同轴电缆实际上是电容器,可以容纳电荷。这种电荷可能会被误解为信号并导致不必要的状态变化(例如处理器崩溃),甚至......
-闩锁。在 IC 通电的情况下,某些类型的未受保护的 CMOS 输入即使在几微秒内也无法承受高于电源电压的任何电压,因为这会触发正反馈效应(整个器件突然看起来像施加了这些电压的晶闸管),从而使器件处于崩溃状态,甚至充当其电源轨的近乎短路。
这实际上取决于电路,在某些情况下取决于连接器本身。
当您断开或连接某些东西时,连接不会同时发生。这意味着在此过程中存在不可预测的连接状态。其中一些连接可能会将大电压或大电流置于您真正不希望它们出现的位置。更糟糕的是,连接器通常很紧,这意味着用户会左右摆动它们以使它们分开,从而在此过程中产生更多随机的成败。
一些连接器,如卡边缘连接器,也因在正确配合之前插入或移除时将相邻引脚短路而臭名昭著。一个人甚至不应该考虑在热的情况下插入或拔出其中之一。
如果断开连接的任何东西都不在乎,例如,通过简单的上拉下拉驱动将两针插头连接到 LED,那么假设您不使用 ESD 将其击穿,则不会发生任何坏事。但大多数事情并不那么强大。
您当然可以将事物设计为可热插拔的,但这既复杂又昂贵,并且在产品的大部分生命周期中都不起作用,如果不是特定的设计要求,就很难证明其合理性。
话虽如此,系统应始终设计为,如果在未插入传感器 A 时设备已通电,则输出 B 不应进入取决于该传感器的某种状态。如果该传感器的丢失会导致故障或危险,则需要添加适当的措施来检测该丢失并优雅地进入安全状态。
但一般来说,除非你真的知道会发生什么,否则不要热插拔!