灌电流和拉电流的概念在电路中经常出现,不管是单片机的GPIO,还是一般的上下拉电路,了解后可以更好地理解和设计电路。
相关博客学习:
聊一聊上拉电阻、下拉电阻、使用场景及阻值选择
一文搞懂三极管开关电路,基极电阻如何选择?
(sink current)
被动输入电流,是从输出口流入电流,下图,当PTB0输出低的时候,LED亮,电流的方向就是从VCC流进PTB0管脚。(sourcing current)
主动输出电流,是从输出口输出电流,下图,当PTB1输出高的时候,LED亮,电流的方向就是从PTB1流进地。灌电流和拉电流
如下,画出PTB0的内部结构, 当INPUT输出高电平时,LED亮。当三极管在饱和状态,CE之间近似一个开关,PTB0上电压就是 U = 5 V ∗ R 2 R 1 + R 2 (1) U=\frac{5V*R2}{R1+R2} \quad\tag{1} U=R1+R25V∗R2(1)
对于公式(1)可以得到如下两点:
灌电流举例电路
如下,简易画出PTB1的内部结构,当VF2输出高电平时,LED亮。三极管在饱和状态,CE之间近似一个开关,PTB1的电压为: U 2 = 5 V ∗ R 4 R 3 + R 4 (2) U2=\frac{5V*R4}{R3+R4} \quad\tag{2} U2=R3+R45V∗R4(2)
对于公式(2)可以得到如下两点:
R3越小,拉电流越大,PTB1电压越大;
当拉电流越大时,输出端的高电平就越低。逻辑门的高电平有一个 U I H m i n U_{IHmin} UIHmin,当低于这个值的时候,就无法识别为1,所以拉电流也是有一个上限的。
拉电流举例电路
如下是一个单总线的复位应答信号,可以看出,在主机发送复位信号拉低总线,然后释放,再由上拉电阻上拉至VDD高电平,然后从机拉低总线应答,发现从机的低电平比较高,电压并没有拉低到0V,这个原因就是上面说到的,灌电流过大,说明这个上拉选得比较小,如果这个从机的低电平再高一些,可能就无法被主机识别,导致通信失败。
实测单总线复位/应答
永远相信美好的事情即将发生!作者记得诚,写于安徽合肥,时间2020-03-24 PM14:59