1、发现推挽带有上下拉电阻
1.1、stm32手册
记忆中推挽是不需要上下拉的,没关注过,但是我真的理解上下拉吗,下图来自stm32f4的中文版和英文版的数据手册,没有翻译错,就是“推挽带有上下拉的能力”。
1.2、查找相关信息
搜索到一篇推挽上下拉的文章,实际测试表格如下,从他的数据来看,推挽不加上下拉对低电平的影响很大,直接变成了1.2V。(持保留意见)
我不信,于是开始测试,推挽加或不加上拉电阻,高电平是3.270V,低电平是0.006V.
那这个1.2V是错误数据?再看其他引脚配置,上拉推挽输出低是0.134V,比起别的输出低电平时的0.005V也要高不少,推测是这个引脚外围电路的影响,他测试的时候有的引脚不是悬空的。
2、负载对输出电平的影响
上拉推挽输出低电平,悬空0.006V,加10mA负载是0.236V。
上拉推挽输出高电平,悬空3.270V,加10mA负载是3.067V。
结论:IO的驱动能力是有限的,负载明显影响着输出电平的电压;
对于stm32f4芯片,大概10mA负载电流,电压会拉0.2V左右。
3、驱动能力是什么
驱动,动词,做谓语,宾语是什么,驱动什么,驱动负载,驱动能力指的是驱动负载的能力。
驱动,动词,做谓语,主语是什么,什么来驱动,电源。
合起来就是,电源驱动负载的能力。
(再继续,电源分电压源和电流源,下面只说电压源)
3.1、电压源
3.1.1、理想电压源
不管负载是什么,电压源输出的电压不变,电路模型和伏安特性曲线如下:
3.1.2、实际电压源
含有内阻,内阻和负载影响着电压源输出的电压,电路模型和伏安特性曲线如下:
现实中,IO口推挽输出对应实际电压源,比如推挽输出高电平看做一个3.3V的电压源,随着负载加大,电流增大,内阻上分去的电压也增大,负载两端的电压就减小,所以上面测试,加10mA负载后,电压从3.270V降到了3.067V。
4、推挽的电路结构与驱动能力
4.1、推挽的电路结构
下图是手册中IO口的内部结构,推挽就是通过控制PMOS和NMOS的导通,只导通PMOS输出高,只导通NMOS输出低。
4.2、推挽的驱动能力
稍微简化一下上图。
以输出高电平(PMOS导通NMOS截止)、不加上拉电阻为例。
此时电流的路径是VDD——PMOS——负载,MOS导通是有内阻的,可以看做是电压源的内阻,还是上面3.1.2所说的,负载越大内阻上分压越大,所以负载上电压减小,推挽的驱动能力就是受到内阻的影响。
4.3、上拉电阻对于驱动能力的影响
继续看图,PMOS和上拉电阻的上端都是连VDD,PMOS导通电阻和上拉电阻并连,等效为新的内阻,由于是并连,所以现在的内阻比之前的小,驱动能力就会增强。
上面是理论分析,实际测试加不加上拉电阻,在空载和负载两种情况下没啥区别,为什么配置推挽上拉电阻驱动能力测不出明显区别呢?
要看PMOS的内阻是多少,上拉电阻是多少。
PMOS内阻:20mA下降1.3V,内阻62欧;6mA下降0.4V,内阻66欧。
PMOS取66欧,上拉取40K,并联完了65.9欧,测不出来明显区别就合理了。