MCU IO口电压下降原因分析

描述

前几天一个工程师向我反馈他测得如下电路MCU IO口的电压不是3.3V,只有2V多。

IO口

IO配置的是输入功能,无上下拉。最初我不太相信这个结果,后来自己用万用表实际测量了下,还真是这个结果

IO口

这是咋回事呢?不应该电压就是3.3V吗?后来经高人指点可能是IO口输入漏电流的原因,输入漏电流在MCU数据手册中符号为Ilkg,lkg表示Input leakage current。

IO口

IO口的内部是CMOS器件,因为 CMOS 是高输入阻抗器件, 理想状态下IO接一个高电平是没有输入电流的。但实际情况因为存在一个输入阻抗,所以还是会有微弱的电流,这个电流叫做漏电流。

那么电压降低到2.48V是不是就是因为输入漏电流的原因呢?

答案是否,因为如果电压就是2.48V,那么漏电流有(3.3V-2.48V)/3.6M=227nA,这个和上述数据手册最大100nA对不上啊!

真实的原因是万用表自身的内阻导致的,就算上拉电阻不接MCU的IO,直接用万用表测电压下面,测出来也是2.4几V,这也可以验证和IO输入漏电流无关。

IO口

万用表在测量电压时,内部具有电阻,通常被称为输入阻抗。不同型号和品牌的万用表有不同的输入阻抗,一般在兆欧姆(MΩ)的数量级。

通常,万用表的输入阻抗可以在用户手册或仪器上找到。一些典型的值包括10 MΩ或更高。

这个输入阻抗会影响测量结果,特别是在测量高阻值电路时,比如对上述电路就会产生很大影响,因为上拉电阻太大了,

假设万用表输入阻抗是10 MΩ,实际测量电压值为10/(3.6+10)*3.3V=2.43V。

对于一般的上拉电阻比如1KΩ,实际测量电压值为10000000/(1000+10000000)*3.3V≈3.3V,几乎无影响了。

对于上述的两个电路,要想得到准确的电压值,只能选用更高输入阻抗的测量仪器。我这里选用了泰克DMM4050来测试第一个电路,同时要注意设置为高输入阻抗模式,因为它默认也是10MΩ。这时候测得的电压值如下:

IO口

启用高输入阻抗的设置方法可以在说明书中找到:

IO口

设置之后阻抗会超过10GΩ,这时测的电压就准确了,测得的电压相比3.3V也有下降,只是不会再下降那么多,这时再来估算一下漏电流,(3.3V-3.10V)/3.6M=56nA,这就符合实际了。

如果测第二个电路电压,那电压几乎就是3.3V。由此可见不同的测量仪器差别还是挺大的。

最后你可能会问他为什么要接这么大阻值的上拉电阻呢,欢迎大家留言区讨论。

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分