首先是关于短路的一点:短路是一种在电流路径中没有任何有意限流元件的电路。其结果是,我们通常认为具有零电阻的电路元件开始充当电阻器,并且电源的常用数学模型经常中断,导致电压低于预期和破坏性过热。
由于微控制器的最大电流规格,您需要在从引脚流出的电流路径中使用电阻元件。您可以通过输出 40 mA 的电流来预期该引脚会死掉,如果我没记错的话,所有引脚同时输出 200 mA。该系统的标称电压为 5 V,所以让我们看看如果我们用 470 \$\Omega\$ 计算电流会发生什么:\$\frac{5 V}{470 \Omega} \约 10 mA\$。对于不会损坏微控制器的电流来说,这恰好是一个很好的和理智的值。如果您改为使用 1 个 \$k \Omega\$ 电阻器,您将获得 5 mA 电流,这更加安全,消耗的电量也更少。这两个电阻值也比较流行,同时提供小电流,但不会小到在使用它们时需要考虑走线的电容。
在实际短路线路的情况下,您应该完全期望线路本身的阻力可以忽略不计!这将导致直接短路引脚,正如引用中所写的那样,会导致死引脚。此外,短路线通常会导致按钮损坏,因为大电流会因过热和火花而对按钮触点寿命产生负面影响。与其使用短路连接线路,更好的方法是在线路接地附近放置一个电阻。这将限制线路上电时的电流。通过将电阻器放置在线路的接地连接附近,我们确保线路上最大的压降位于其末端,因此如果我们使用按钮将其与另一条感应线短路,则感应线会看到全电压。
设置为输入的引脚也处于所谓的“高阻抗”模式,这意味着它们的行为就好像它们是一个连接到地的电阻非常大的电阻器。如果您 100% 确定该引脚将只是一个检测引脚,那么您无需在其前面放置另一个电阻器。即使在这种情况下,放置一个电阻器也是一个好主意,因为您可能会不小心将引脚设置为输入以外的东西,并可能导致短路。如果您确实放置了电阻器,请记住,通过感应线的电流非常少,这意味着电阻器上的电压降将非常低,这将导致引脚看到全电压。
如果您想要更多“高级阅读”,您可以查看 ATmega328 的数据表,它是某些 Arduino 中使用的微控制器之一。在第 29 节电气特性中,您将看到在绝对最大额定值下,每个 I/O 引脚的电流为 40 mA,整个器件为 200 mA。
更新:请不要将绝对最大额定值与操作额定值混淆!以下是 ATmega32U4 数据表中的通知:
NOTICE:
Stresses beyond those listed under “Absolute
Maximum Ratings” may cause permanent dam-
age to the device. This is a stress rating only and
functional operation of the device at these or
other conditions beyond those indicated in the
operational sections of this specification is not
implied. Exposure to absolute maximum rating
conditions for extended periods may affect
device reliability.
以下是同一数据表第 379 页的脚注:
Although each I/O port can sink more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady state
conditions (non-transient), the following must be observed:
ATmega16U4/ATmega32U4:
1.)The sum of all IOL, for ports A0-A7, G2, C4-C7 should not exceed 100 mA.
2.)The sum of all IOL, for ports C0-C3, G0-G1, D0-D7 should not exceed 100 mA.
3.)The sum of all IOL, for ports G3-G5, B0-B7, E0-E7 should not exceed 100 mA.
4.)The sum of all IOL, for ports F0-F7 should not exceed 100 mA.
If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater
than the listed test condition.
4. Although each I/O port can source more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady
state conditions (non-transient), the following must be observed:
ATmega16U4/ATmega32U4:
1)The sum of all IOH, for ports A0-A7, G2, C4-C7 should not exceed 100 mA.
2)The sum of all IOH, for ports C0-C3, G0-G1, D0-D7 should not exceed 100 mA.
3)The sum of all IOH, for ports G3-G5, B0-B7, E0-E7 should not exceed 100 mA.
4)The sum of all IOH, for ports F0-F7 should not exceed 100 mA.
5. All DC Characteristics contained in this datasheet are based on simulation and characterization of other AVR microcon-
trollers manufactured in the same process technology. These values are preliminary values representing design targets, and
will be updated after characterization of actual silicon