用图示及公式讲清楚灌电流和拉电流的区别

灌电流和拉电流的概念在电路中经常出现,不管是单片机的GPIO,还是一般的上下拉电路,了解后可以更好地理解和设计电路。

相关博客学习:

聊一聊上拉电阻、下拉电阻、使用场景及阻值选择

一文搞懂三极管开关电路,基极电阻如何选择?


文章目录

    • 1. 如何理解
    • 2. 灌电流
    • 3. 拉电流
    • 4. 实际问题

1. 如何理解

  • 灌电流(sink current) 被动输入电流,是从输出口流入电流,下图,当PTB0输出低的时候,LED亮,电流的方向就是从VCC流进PTB0管脚。
  • 拉电流(sourcing current) 主动输出电流,是从输出口输出电流,下图,当PTB1输出高的时候,LED亮,电流的方向就是从PTB1流进地。
    用图示及公式讲清楚灌电流和拉电流的区别_第1张图片
灌电流和拉电流


2. 灌电流

如下,画出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+R25VR2(1)

对于公式(1)可以得到如下两点:

  • R1越小,灌电流越大,PTB0电压越大;
  • 当灌电流越大时,三极管的饱和压降越大,PTB0的低电平就越大。逻辑门的低电平有一个 U I L m a x U_{ILmax} UILmax,当高于这个值的时候,就无法识别为逻辑0,所以灌电流是有一个上限的。
    用图示及公式讲清楚灌电流和拉电流的区别_第2张图片
灌电流举例电路


3. 拉电流

如下,简易画出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+R45VR4(2)

对于公式(2)可以得到如下两点:

  • R3越小,拉电流越大,PTB1电压越大;

  • 当拉电流越大时,输出端的高电平就越低。逻辑门的高电平有一个 U I H m i n U_{IHmin} UIHmin,当低于这个值的时候,就无法识别为1,所以拉电流也是有一个上限的。
    用图示及公式讲清楚灌电流和拉电流的区别_第3张图片

拉电流举例电路


4. 实际问题

如下是一个单总线的复位应答信号,可以看出,在主机发送复位信号拉低总线,然后释放,再由上拉电阻上拉至VDD高电平,然后从机拉低总线应答,发现从机的低电平比较高,电压并没有拉低到0V,这个原因就是上面说到的,灌电流过大,说明这个上拉选得比较小,如果这个从机的低电平再高一些,可能就无法被主机识别,导致通信失败。

用图示及公式讲清楚灌电流和拉电流的区别_第4张图片

实测单总线复位/应答


永远相信美好的事情即将发生!作者记得诚,写于安徽合肥,时间2020-03-24 PM14:59

你可能感兴趣的:(躬耕硬件)