STM32 之 供電系統及內部參照電壓(VREFINT)使用及改善ADC參考電壓

問題

今天在使用 STM32F407的ADC時遇到一個問題:ADC的參考電壓都是通過Vref+提供的並作爲ADC轉換器的基準電壓。當我們使用的Vref+是直接取自用VDD電壓時,當VDD電壓波動比較大時或穩壓性能比較差時,轉換結果自然就不準確了!

供電方案

MCU的參考手冊都會有一章節單獨介紹MCU的電源管理,針對不同的MCU(封裝不同等)其外部電源如何連接也是有要求的,我們在MCU上一般都會發現如下引腳:

  • VDD = 2.0 to 3.6 V: external power supply for I/Os and the internal regulator. Provided externally through VDD pins.
  • VSSA, VDDA = 2.0 to 3.6 V: external analog power supplies for ADC, reset blocks, RCs and PLL (minimum voltage to be applied to VDDA is 2.4 V when the ADC is used). VDDA and VSSA must be connected to VDD and VSS, respectively.
  • VBAT = 1.8 to 3.6 V: power supply for RTC, external clock 32 kHz oscillator and backup registers (through power switch) when VDD is not present.
  • VREF+: 正模擬參考電壓輸入(部分芯片沒有個引腳)

下面以STM32F1和STM32F2的MCU比較來具體看看
供電架構如下圖所示:
在這裏插入圖片描述
不同的供電所管理的供電域
在這裏插入圖片描述
供電電壓
在這裏插入圖片描述

  1. VCC: C=circuit 表示電路的意思, 即接入電路的電壓
  2. VDD: D=device 表示器件的意思, 即器件內部的工作電壓;
  3. VSS: S=series 表示公共連接的意思,通常指電路公共接地端電壓
  4. stm32的VDDA和VSSA不能懸空,復位模塊和RC振盪器需要VDDA和VSSA。否則無法下載程序!

電源引腳連接

  • VDD引腳外接去藕電容連到外部穩壓源
    • 一個最小值4.7uF、典型值10uF的鉭電容或陶瓷電容
    • 每個VDD引腳再接一個100nF的陶瓷電容
  • VBAT引腳外接電池。若沒有電池,推薦通過100nF的陶瓷電容連到VDD引腳
  • VDDA引腳外接兩個去藕電容
    • 一個100nF的陶瓷電容
    • 一個1uF的鉭電容或陶瓷電容
  • VREF+引腳連到VDDA
    • 若有單獨的參考穩壓源連接
      一個100nF和1uF的電容
  • VCAP1和VCAP2通常只各連接一個2.2uF的電容
    • 特殊封裝上,可外接1.2V電源來旁路內部主電壓調節器
      在這裏插入圖片描述

ADC的參考電壓

  在部分MCU的封裝中,會有單獨的一個Vref引腳
在這裏插入圖片描述
我們可以把外部基準電壓芯片(例如REF3133,輸出的電壓是標準的3.300V)連接到Vref引腳。一般100腳的STM32 MCU(如上圖STM32F4)都有VREF引腳。
  對於100腳以下的芯片,STM32沒有把VREF引腳引出來,所以,我們只能把基準電壓芯片連接到VDDA引腳。注意,STM32單片機上面有好多電源引腳,其中有若干VDD引腳,只有一個VDDA引腳,VDDA引腳就是模擬供電引腳。不過,需要注意,VDDA的電壓不是隨便定義的。例如,STM32F051系列單片機就規定,VDDA必須要大於或者等於VDD纔可以正常工作,所以這時候,最好是給單片機3.0V供電,再給VDDA採用一個3.3V的基準電壓芯片供電。
在這裏插入圖片描述

內部參照電壓

  以上兩種方法都需要外加基準電壓芯片,在實際應用中,往往是VDDA引腳和VDD引腳連在一起,都是由電源芯片供電。這個時候如果要提高ADC轉換準確性該怎麼辦呢?
  在每個MCU的內部,都有一個叫內部參照電壓的東西。關於該部分的介紹,位於對應 MCU 的數據手冊中(不同MCU的數據手冊介紹有多又少,同樣是STM32F0的數據手冊介紹更爲詳細),如下圖:
在這裏插入圖片描述
內部參考電壓在芯片出廠時已經校準過精度了!且不同的MCU是有可能不同的!其廠內校準過程是在外部供3.3V電源,將採樣內部參考的ADC值寫入到固定的內存中去(如上地址,不同MCU具體位置可能不同)!而我們就可以利用這個來校準自己的ADC。
  STM32的ADC內部都有一個參考電壓引腳,可以通過配置,把這個腳連接到ADC輸入引腳,是內部連接。然後再計算實際的VDDA值。MCU不同具體鏈接的ADC引腳也是不同的。下面是STM32F4芯片的參考手冊的說明:
在這裏插入圖片描述
這樣我們就可以用ADC實際採樣,得到VREFINT的採樣值,然後使用上面的校準值進行計算即可!
  關於使用內部參照電壓的具體方法,只有在STM32F0x芯片的參考手冊中才能找到,其他MCU的參考手冊都是很簡單的幾句說明。
在這裏插入圖片描述
更進一步,在計算其他通道的時候,我們就可以使用以上計算的VDDA來作爲基準了!
在這裏插入圖片描述

參考

  1. STM32F4、STM32F0、STM32F1、STM32F2的數據手冊,參考手冊
  2. ST的培訓資料
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章