前几天,一位工程师向我反馈,他测得如下电路MCU IO口的电压不是3.3V,只有2V多。
IO配置的是输入功能,无上下拉。最初我不太相信这个结果,后来自己用万用表实际测量了下,还真是这个结果!
这是怎么回事呢?不应该电压就是3.3V吗?
后来经高人指点,可能是IO口输入漏电流的原因,输入漏电流在MCU数据手册中符号为Ilkg,lkg表示Input leakage current。
IO口的内部是CMOS器件,因为CMOS是高输入阻抗器件,理想状态下IO接一个高电平是没有输入电流的。但实际情况中,因为存在一个输入阻抗,所以还是会有微弱的电流,这个电流叫做漏电流。
那么,电压降低到2.48V,是不是就是因为输入漏电流的原因呢?
答案是否,因为如果电压就是2.48V,那么漏电流有(3.3V-2.48V)/3.6M=227nA,这个和上述数据手册最大100nA对不上啊!
真实的原因是万用表自身的内阻导致的,就算上拉电阻不接MCU的IO,直接用万用表测电压下面,测出来也是2.4几V,这也可以验证和IO输入漏电流无关。
万用表在测量电压时,内部具有电阻,通常被称为输入阻抗。不同型号和品牌的万用表有不同的输入阻抗,一般在兆欧姆(MΩ)的数量级。
通常情况下,万用表的输入阻抗可以在用户手册或仪器上找到,一些典型的值包括10MΩ或更高。
这个输入阻抗会影响测量结果,特别是在测量高阻值电路时,比如对上述电路就会产生很大影响,因为上拉电阻太大了,
假设万用表输入阻抗是10MΩ,实际测量电压值为10/(3.6+10)*3.3V=2.43V。
对于一般的上拉电阻比如1KΩ,实际测量电压值为10000000/(1000+10000000)*3.3V≈3.3V,几乎无影响了。
对于上述的两个电路,要想得到准确的电压值,只能选用更高输入阻抗的测量仪器。我这里选用了泰克DMM4050来测试第一个电路,同时要注意设置为高输入阻抗模式,因为它默认也是10MΩ。这时候测得的电压值如下:
启用高输入阻抗的设置方法可以在说明书中找到:
设置之后,阻抗会超过10GΩ,这时测的电压就准确了,测得的电压相比3.3V也有下降,只是不会再下降那么多。这时再来估算一下漏电流,(3.3V-3.10V)/3.6M=56nA,这就符合实际了。
如果测第二个电路电压,那电压几乎就是3.3V。由此可见,不同的测量仪器差别还是挺大的。
最后,你可能会问他,为什么要接这么大阻值的上拉电阻呢?欢迎大家在留言区讨论。
声明: 本文转载自公众号,如涉及作品内容、版权和其它问题,请于联系工作人员微(prrox66),我们将在第一时间和您对接删除处理!-
pcb
+关注
关注
4319文章
23080浏览量
397494
原文标题:IO口电压下降那么多,咋回事?
文章出处:【微信号:FANYPCB,微信公众号:凡亿PCB】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论