Part 01 前言
MCU IO口用作输出和输入时要串联多大的电阻才合适?想必刚做硬件设计的工程师一定会有这个疑问,在回答这个问题之前,我们需要了解两个名词:拉电流和灌电流,什么是拉电流?什么是灌电流?很多人傻傻分不清,今天我们就详细说一下。
拉电流和灌电流其实就是把外部负载连接到电路,系统,微控制器或其他电子设备的连接方式。以下图为例,电路图中的负载为1k电阻,当然也可以是消耗电流的任何负载,例如LED和串联电阻的组合体,或者是继电器的线圈,灯泡等。电路图中的设备可以是任何电子电路或设备,例如微控制器,FPGA,CPLD,逻辑电路等。
Part 02 拉电流和灌电流
当我们在微控制器引脚和GND之间连接1K的负载电阻时。当微控制器引脚输出为高电平(逻辑1)时,微控制器将向负载提供电流。在此配置中,逻辑1将为负载供电,如果负载是LED,那么就是点亮LED,逻辑0将停止为负载供电,也就是关闭LED。
所以说当负载连接到设备,从而电流从电源流到设备中时,这样的连接方式就是拉电流。需要注意的是,不要超过IC可以输出的最大电流,以免损坏IC。比如下图是某MCU规格书中关于IO口拉电流和灌电流限值的截图。
那么灌电流就更好理解了,举个例子,在电源(例如+ 5V)和微控制器引脚之间连接了电阻或LED。当微控制器引脚被切换为高电平(逻辑1)时,负载电流被切断。当微控制器将引脚切换为低电平(逻辑0)时,电流流过负载,这样的连接方式就是灌电流。同样灌电流也是有限制的,设计时应查到IC的最大灌电流能力是多少。
Part 03 总结
总结一下,拉电流就是流出,灌电流就是流入,二者都是有限制的,不可超过IC规格书中规定的最大值。回到我们最开始的问题,当MCU IO口用作输出和输入时要串联多大的电阻才合适呢?其实就是去查阅MCU规格书中定义的单个IO以及所有IO加在一起的拉电流和灌电流限制,然后通过计算确认不要超过规格书定义的限制即可。