前幾天一個(gè)工程師向我反饋他測(cè)得如下電路MCU IO口的電壓不是3.3V,只有2V多。
IO配置的是輸入功能,無(wú)上下拉。最初我不太相信這個(gè)結(jié)果,后來(lái)自己用萬(wàn)用表實(shí)際測(cè)量了下,還真是這個(gè)結(jié)果
這是咋回事呢?不應(yīng)該電壓就是3.3V嗎?后來(lái)經(jīng)高人指點(diǎn)可能是IO口輸入漏電流的原因,輸入漏電流在MCU數(shù)據(jù)手冊(cè)中符號(hào)為Ilkg,lkg表示Input leakage current。
IO口的內(nèi)部是CMOS器件,因?yàn)?CMOS 是高輸入阻抗器件, 理想狀態(tài)下IO接一個(gè)高電平是沒有輸入電流的。但實(shí)際情況因?yàn)榇嬖谝粋€(gè)輸入阻抗,所以還是會(huì)有微弱的電流,這個(gè)電流叫做漏電流。
那么電壓降低到2.48V是不是就是因?yàn)檩斎肼╇娏鞯脑蚰兀?/p>
答案是否,因?yàn)槿绻妷壕褪?.48V,那么漏電流有(3.3V-2.48V)/3.6M=227nA,這個(gè)和上述數(shù)據(jù)手冊(cè)最大100nA對(duì)不上??!
真實(shí)的原因是萬(wàn)用表自身的內(nèi)阻導(dǎo)致的,就算上拉電阻不接MCU的IO,直接用萬(wàn)用表測(cè)電壓下面,測(cè)出來(lái)也是2.4幾V,這也可以驗(yàn)證和IO輸入漏電流無(wú)關(guān)。
萬(wàn)用表在測(cè)量電壓時(shí),內(nèi)部具有電阻,通常被稱為輸入阻抗。不同型號(hào)和品牌的萬(wàn)用表有不同的輸入阻抗,一般在兆歐姆(MΩ)的數(shù)量級(jí)。
通常,萬(wàn)用表的輸入阻抗可以在用戶手冊(cè)或儀器上找到。一些典型的值包括10 MΩ或更高。
這個(gè)輸入阻抗會(huì)影響測(cè)量結(jié)果,特別是在測(cè)量高阻值電路時(shí),比如對(duì)上述電路就會(huì)產(chǎn)生很大影響,因?yàn)樯侠娮杼罅耍?/p>
假設(shè)萬(wàn)用表輸入阻抗是10 MΩ,實(shí)際測(cè)量電壓值為10/(3.6+10)*3.3V=2.43V。
對(duì)于一般的上拉電阻比如1KΩ,實(shí)際測(cè)量電壓值為10000000/(1000+10000000)*3.3V≈3.3V,幾乎無(wú)影響了。
對(duì)于上述的兩個(gè)電路,要想得到準(zhǔn)確的電壓值,只能選用更高輸入阻抗的測(cè)量?jī)x器。我這里選用了泰克DMM4050來(lái)測(cè)試第一個(gè)電路,同時(shí)要注意設(shè)置為高輸入阻抗模式,因?yàn)樗J(rèn)也是10MΩ。這時(shí)候測(cè)得的電壓值如下:
啟用高輸入阻抗的設(shè)置方法可以在說(shuō)明書中找到:
設(shè)置之后阻抗會(huì)超過(guò)10GΩ,這時(shí)測(cè)的電壓就準(zhǔn)確了,測(cè)得的電壓相比3.3V也有下降,只是不會(huì)再下降那么多,這時(shí)再來(lái)估算一下漏電流,(3.3V-3.10V)/3.6M=56nA,這就符合實(shí)際了。
如果測(cè)第二個(gè)電路電壓,那電壓幾乎就是3.3V。由此可見不同的測(cè)量?jī)x器差別還是挺大的。
最后你可能會(huì)問(wèn)他為什么要接這么大阻值的上拉電阻呢,歡迎大家留言區(qū)討論。
關(guān)注公眾號(hào),掃碼加入嵌入式交流群: