MCU ADC如何測量超過VCC的電壓?

2023/5/5 9:55:02??????點(diǎn)擊:
    假設(shè)MCU的供電是3.3V,ADC能夠測量的電壓范圍是0-3.3V,如果要測量如電池電壓6V的這種場景,該怎么辦呢?


    很容易能夠想到的方法是先進(jìn)行電阻分壓,將高于3.3V的電壓分到ADC的量程內(nèi)進(jìn)行采集,最后再換算回實(shí)際電壓。這就引入了一個問題,分壓電壓該選多大?比如進(jìn)行1/2分壓,是選2個1KΩ串聯(lián)還是選兩個1MΩ串聯(lián)呢?電阻值能否隨意選擇呢?


    


    先說結(jié)論:電阻不能隨意選,首先它不能太大!

    以STM32F103為例子,在數(shù)據(jù)手冊中可以看到外部輸入阻抗有一個最大值50kΩ的要求。


   


    這個值是由下面的計(jì)算公式算出來的:


   


    需要注意的是,輸入阻抗的最大值并不是固定不變的,不是說只要小于50kΩ就可以,因?yàn)樗虯DC時鐘頻率、采樣周期、轉(zhuǎn)換位數(shù)都有關(guān)系。比如上面表格中,當(dāng)ADC時鐘頻率14Mhz,采樣周期1.5 cycels,轉(zhuǎn)換位數(shù)12時,最大輸入阻抗就是0.4kΩ。


    Tab 46標(biāo)稱的最大輸入阻抗50kΩ,是在ADC時鐘頻率14Mhz,采樣周期55.5 cycles,轉(zhuǎn)換位數(shù)12時計(jì)算出來的值,它同時也是ADC模塊所能接受的最大值 (受硬件決定,這也是為什么Tab 47最后兩行寫NA的原因,雖然根據(jù)公式也能算出來一個比50更大的值)。


    簡單來說,可以這么理解:因?yàn)锳DC內(nèi)部的采樣保持電路(電容組成),如果外面的電阻大,就會導(dǎo)致RC電路充電時間長,如果采樣周期小,就會引起電容在沒完全充滿電的情況下就被采集,自然ADC得到的數(shù)就不準(zhǔn)。


    從提高ADC采樣速率的角度來說,電阻越小,RC充放電速度快,ADC的采樣速率就能更高。不過電阻小,會增大功耗,在對功耗有要求的場合,這個電阻還不能選的太小。


    對于必須低輸入阻抗,同時又需要低功耗的場合,可以先用大電阻分壓,后面再用運(yùn)放跟隨器的方式。


   電阻大小的問題說完了,還有最后一個問題,等效輸入阻抗和第一幅圖里的兩個串聯(lián)分壓電阻是什么關(guān)系?等效輸入阻抗是R1、還是串聯(lián)值R1+R2,還是并聯(lián)值R1*R2/R1+R2 呢?


    這個問題可以這么簡單想,假設(shè)R2是0Ω,進(jìn)入到ADC的電壓就是GND,和R1是多大就沒關(guān)系了,等效輸入阻抗就是0Ω。再假設(shè)R2無窮大,等于是斷開,電阻只有R1了。這么一想答案就清晰了吧,等效輸入阻抗是兩個分壓電阻的并聯(lián)。