假設(shè)MCU的供電是3.3V,ADC能夠測量的電壓范圍是0-3.3V,如果要測量如電池電壓6V的這種場景,該怎么辦呢?
很容易能夠想到的方法是先進行電阻分壓,將高于3.3V的電壓分到ADC的量程內(nèi)進行采集,最后再換算回實際電壓。這就引入了一個問題,分壓電壓該選多大?比如進行1/2分壓,是選2個1KΩ串聯(lián)還是選兩個1MΩ串聯(lián)呢?電阻值能否隨意選擇呢?
先說結(jié)論:電阻不能隨意選,首先它不能太大!
以STM32F103為例子,在數(shù)據(jù)手冊中可以看到外部輸入阻抗有一個最大值50kΩ的要求。
這個值是由下面的計算公式算出來的,
需要注意的是輸入阻抗的最大值并不是固定不變的,不是說只要小于50kΩ就可以,因為它和ADC時鐘頻率、采樣周期、轉(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時計算出來的值,它同時也是ADC模塊所能接受的最大值 (受硬件決定,這也是為什么Tab 47最后兩行寫NA的原因,雖然根據(jù)公式也能算出來一個比50更大的值)。
簡單來說,可以這么理解:因為ADC內(nèi)部的采樣保持電路(電容組成),如果外面的電阻大,就會導(dǎo)致RC電路充電時間長,如果采樣周期小,就會引起電容在沒完全充滿電的情況下就被采集,自然ADC得到的數(shù)就不準(zhǔn)。
從提高ADC采樣速率的角度來說,電阻越小,RC充放電速度快,ADC的采樣速率就能更高。不過電阻小,會增大功耗,在對功耗有要求的場合,這個電阻還不能選的太小。
對于必須低輸入阻抗,同時又需要低功耗的場合,可以先用大電阻分壓,后面再用運放跟隨器的方式。
電阻大小的問題說完了,還有最后一個問題,等效輸入阻抗和第一幅圖里的兩個串聯(lián)分壓電阻是什么關(guān)系?等效輸入阻抗是R1、還是串聯(lián)值R1+R2,還是并聯(lián)值R1*R2/R1+R2
呢?這個問題曾困惑了我好久,當(dāng)年上學(xué)時學(xué)的理論知識全交給老師了。
這個問題可以這么簡單想,假設(shè)R2是0Ω,進入到ADC的電壓就是GND,和R1是多大就沒關(guān)系了,等效輸入阻抗就是0Ω。再假設(shè)R2無窮大,等于是斷開,電阻只有R1了。這么一想答案就清晰了吧,等效輸入阻抗是兩個分壓電阻的并聯(lián)。
關(guān)注我們,掃碼加入嵌入式交流群: