历史上的今天
今天是:2026年02月02日(星期一)
2023年02月02日 | 到底什么是I/O的驱动能力?
2023-02-02 来源:zhihu
经常会听到MCU某I/O的驱动能力是xxmA,那么到底什么是驱动能力呢?如果某IO的驱动能力是5mA,它就输出不了超过5mA的电流了吗?为什么IO的驱动能力有差异呢?
要回答以上问题,我们需要先了解一下MCU内部的I/O结构。

(本图来源于STM32F103参考手册)
当输出高电平1时,I/O内部VDD经过PMOS流向I/O引脚,如下图红色箭头所示:

这时驱动能力是指,在输出电流小于等于最大输出电流的情况下,I/O引脚可以正常的输出逻辑1。
P-MOS管的源极(S)接VDD,当MCU输出1时,P-MOS管导通,电流从源极(S)流向漏极(D)。I/O引脚外接负载大小不同,流过P-MOS管的电流、VDS(源漏电压)就会不同。输出电流越大,VDS越大,I/O电压就越小。当电压低到Voh时的这个输出电流,就表示驱动能力。
当输出低电平0时,I/O引脚经过N-MOS流向I/O内部VSS,如下图红色箭头所示:

这时驱动能力是指,在小于等于最大输入电流的情况下,I/O引脚可以正常的输出逻辑0。道理同上,流过N-MOS电流越大,N-MOS产生压降越大,I/O口电压越大。当电压达到逻辑0的最高电压Vol时,这时的电流就表示驱动能力。
以上看明白后,文章开头的3个问题也就有了答案:
1)I/O驱动能力是指在同时满足Voh(输出引脚为逻辑1时的最小电压值) 和 Vol(输出引脚为逻辑0时的最大电压值)前提下,最大可以输出和吸收的电流大小。Voh和Vol的值在芯片数据手册中可以查到。
2)如果某I/O的驱动能力是5mA,并不是表示它输出不了超过5mA的电流,只是当输出电流超过5mA之后,它的输出电压会下降,电压会小于Voh。
3)I/O驱动能力的差异来源于MOS管自身的特性,要想过电流能力大,MOS管体积就要大,芯片所需的面积就会更大,成本自然也会更高。所以通常MCU只是一部分I/O具有高驱动能力,并不是每一个I/O都做成了高驱动能力。
说了这么多,其实可以用下面这个简单的电路来解释:

MCU的IO引脚上外接一个电阻到GND,只要这个电阻不是太小,那么IO引脚的电压是基本不变的,只是微小的下降。电阻很小、电流较大时,电压会明显下降。
感兴趣的可以实际测试一下,不过要注意别把电流整太大烧坏IO哦~
下一篇:踩坑了?硬件前辈们总结的低级错误
史海拾趣
|
日前,ST宣布推出一个新的汽车数字AM/FM收音机芯片组。因为采用了先进的数字信号处理技术,新芯片组的音频接收质量十分优异,同时还降低了在恶劣信号条件(如在信号很弱的场地和多信道干扰很强的地区下)的音频干扰。它由ST和博世的子公司Blaupun ...… 查看全部问答> |
|
来自EEWORLD合作群:499581 群主:wangkj 黄的那个接了地 相邻的几个都被拉成直线 最远的那条只有1位的跳动 4条全接地的情况 … 查看全部问答> |
|
高分求WINCE5.0手写输入法中全屏书写解决方案,本人现在在做wince下的手写输入法,其他功能都基本完成,目前还差全屏书写。看到有人说可以自己编写touch.dll的伪驱动代码,也可以用HOOK。 但是伪驱动代码的方面在模拟机上不知道怎么调试,HOOK的方 ...… 查看全部问答> |
|
Windows embedded ce 6.0不能加载网卡驱动 我用Windows embedded ce 6.0裁剪的新x86内核总是不能加载网卡驱动,网卡是Intel82559,请求高手帮助!… 查看全部问答> |
|
大家好,小弟用PDIUSBD12做个usb声卡,现在要把PDIUSBD12的端点2配置为同步传输模式,一直没有设置成,大家懂的话帮忙下,谢谢,告诉我程序初始化的时候要怎么设置,枚举过程中要设置什么,然后数据交互是怎么进行的,设备端如何读写数据等,谢谢!… 查看全部问答> |
|
今天,看论坛的时候看到Stellaris板块上有一个疑难杂症征集帖,我们版也来借鉴下吧! 凡是在使用MSP430的过程中遇到的疑难杂症都可以再本帖中发表出来,没有找到解决方法的,大家一同回帖想办法! 碰到的疑难杂症已经解决的,可以在这里描述你的 ...… 查看全部问答> |
|
以下是写的RTC部分程序,有点乱,但还能读懂。问题1:在进行RTC操作时,每次都要执行这个 RTC_WaitForLastTask()函数,在上电初始化时基本还行,但也会出现执行 RTC_WaitForLastTask();函数时不过的问题,就是RTOFF位一 ...… 查看全部问答> |
|
直接下的官网例程,cmd文件也是f28027的。编译通过,但每次下载时不管接不接板子都直接显示这个。。。而且pad的驱动也安装正常。所以想请教下到底是什么原因造成的?谢谢~… 查看全部问答> |
|
7 的进程有点快,显得过于跳跃。 我不应该用 贴上代码 来结束,显得莫名其妙。 我应该接着话题,解释 超时判断机制。 今晚开始的比较晚。 不知道能写多少。… 查看全部问答> |




