1. 如何理解- 灌电流(sink current) 被动输入电流,是从输出口流入电流,下图,当PTB0输出低的时候,LED亮,电流的方向就是从VCC流进PTB0管脚。
- 拉电流(sourcing current) 主动输出电流,是从输出口输出电流,下图,当PTB1输出高的时候,LED亮,电流的方向就是从PTB1流进地。
灌电流和拉电流
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+R25V∗R2(1) 对于公式(1)可以得到如下两点: - R1越小,灌电流越大,PTB0电压越大;
- 当灌电流越大时,三极管的饱和压降越大,PTB0的低电平就越大。逻辑门的低电平有一个U I L m a x U_{ILmax}UILmax,当高于这个值的时候,就无法识别为逻辑0,所以灌电流是有一个上限的。
灌电流举例电路
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+R45V∗R4(2) 对于公式(2)可以得到如下两点: 拉电流举例电路
4. 实际问题如下是一个单总线的复位应答信号,可以看出,在主机发送复位信号拉低总线,然后释放,再由上拉电阻上拉至VDD高电平,然后从机拉低总线应答,发现从机的低电平比较高,电压并没有拉低到0V,这个原因就是上面说到的,灌电流过大,说明这个上拉选得比较小,如果这个从机的低电平再高一些,可能就无法被主机识别,导致通信失败。
实测单总线复位/应答
|