为什么是470或1kΩ?(以防止损坏输出引脚)


12

引自Arduino教程的“ 数字引脚”部分:

Arduino引脚上的短路或试图使用它们运行大电流设备,可能会损坏或破坏引脚上的输出晶体管,或者损坏整个Atmega芯片。通常,这将导致微控制器中的“死”引脚,但其余芯片仍将正常工作。因此,最好将输出引脚连接到具有470Ω或1k电阻的其他设备,除非特定应用需要从引脚吸收最大电流。

这些数字对我来说是伏都教:为什么选择“ 470” “ 1k”?为什么没有给出一个确切的数字,例如“否则至少会出现短路至少470Ω”?

我很感兴趣,因为我考虑将Arduino用作键盘控制器,并且-在这种情况下-如果按下按钮,则线路基本上会短路。当然,这些线确实有一些阻力,但是我还没有机会进行测量。


2
如果您使用引脚来检测按钮,我会认为引脚将被配置为输入,在这种情况下,将引脚短接地即可。
Gorloth

5
修补程序可能会设置的常用值是470和1000。因此,这就像“使用500到1000欧姆左右!”,然后将其归一化为通用电阻值。
卡兹(Kaz)

Answers:


18

首先介绍一下短路:短路是在电流路径中没有任何有意的限流元件的电路。结果是我们通常认为电阻为零的电路元件开始充当电阻器,并且通常的电源数学模型中断通常会导致电压低于预期,并造成破坏性过热。

由于微控制器的最大电流规格,在从引脚流过的电流路径中需要一个电阻元件。您可以通过输出40 mA的电流来使该引脚消失,如果我正确地记得所有引脚同时输出200 mA的电流,则该引脚会消失。该系统的标称电压为5 V,所以让我们看看如果使用470计算电流:。这恰好是电流的合理值,不会损坏微控制器。如果改为使用15 VΩķΩ5V470Ω10mAkΩ电阻,您将获得5 mA的电流,这将更加安全,消耗的功率也更少。另外,这两个电阻值相对较流行,同时提供的电流很小,但又不小,以至于在使用它们时需要考虑走线的电容。

万一实际短路线,您应该完全期望线路本身的电阻可以忽略不计!这将导致引脚直接短路,如引言中所述,将导致引脚失效。短路的线路通常也会导致按钮损坏,因为大电流会由于过热和火花而对按钮触点寿命产生负面影响。代替使用短路来连接线路,更好的方法是在线路的接地附近放置一个电阻。线路通电时,这将限制电流。通过将电阻器放置在线路的接地点附近,我们可以确保线路上的最大压降在线路的末端,因此,如果我们使用按钮将其与另一条传感线短路,则传感线将看到满电压。

设置为输入的引脚也处于所谓的“高阻抗”模式,这意味着它们的行为就像是一个接地电阻很大的电阻器。如果您100%确定该引脚仅是检测引脚,则无需在其前面放置另一个电阻。即使在这种情况下,放置电阻也是一个好主意,因为您可能会意外地将引脚设置为除输入以外的其他值,并可能导致短路。如果确实要放置电阻器,请记住,流过检测线的电流很小,这意味着电阻器上的电压降将非常低,这将导致引脚看到满电压。

如果您需要更多“高级阅读”,可以看看ATmega328 的数据表,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


太好了,谢谢您为我们写的这么详细。
Patrick Hughes

感谢您的见解!在标题中,我现在将输入引脚纠正为输出引脚。顺便说一句,我计划使用基于ATmega32u4的Leonardo 。它的5个VI / O引脚最高可指定 40 mA的电流。
feklee

@feklee在这里要非常小心!这些引脚被指定为在40 mA时死亡!看看完整的数据表,并要特别注意脚注379页上,并通知378页
AndrejaKo

1
实际上,这些脚注非常重要,因此我将在答案中引用它们。
AndrejaKo 2013年

13

简短的答案是Arduino面向的是对电气工程知识很少的业余爱好者,并且其说明已经足够简化以说明问题。这两个值是安全的,并且为用户提供了一个选择而不是固定的需求。

两者都是标准尺寸的电阻器。与Arduino 5V VCC电压一起使用时,470Ω和1kΩ可提供安全的电流消耗(5v /470Ω〜0.011A(11mA),5/1000 = 0.005A(5mA))。电流消耗可用于晶体管或LED或类似零件。

坦白说,任何会在微处理器引脚电流(40mA)的最大值内提供电流的阻值电阻都可以工作。这意味着任何高于125Ω的电阻。


也感谢您解释为什么这些电阻器很受欢迎!
feklee

1
@feklee我看不到对此的完整解释,但您可能对此感兴趣:en.wikipedia.org/wiki/E24_series#E_series
TNW
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.