鉅大LARGE | 點擊量:4169次 | 2020年04月29日
STM32測量外部電池電壓值時參考電壓解決方法
STM32的ADC模塊是一個12位的逐次逼近型模擬數(shù)字轉換器。他有18個通道,可測量16個外部和2個內部信號源。各通道的A/D轉換可以單次、持續(xù)、掃描或間斷模式執(zhí)行。ADC的結果可以左對齊或右對齊方式儲存在16位數(shù)據(jù)寄存器中。
其中,ADC的供電要求是2.4V到3.6V,ADC輸入范圍:VREF-
STM32的ADC可以直接測量2個內部信號源,其中一個是溫度傳感器,一個是內部參考電壓。
其中,溫度傳感器和通道ADCx_IN16相連接。內部參考電壓VREFINT和ADCx_IN17相連接。
根據(jù)數(shù)據(jù)手冊中的數(shù)據(jù),這個參考電壓值的典型值為1.20V,最小值為1.16V,最大值為1.24V。這個電壓基本不隨外部供電電壓的變化而變化。
其使用的具體為:在測量某個通道的電壓值之前,先讀出ADCx_IN17引腳參考電壓的ADC的測量數(shù)值,記為AD_REFINT,再讀出要測量通道的ADC的轉換數(shù)值,記為AD_CHX。則要測量的電壓數(shù)值為:
V_CHX=V_REFINT*(AD_CHX/AD_REFINT)
其中,V_REFINT為參考電壓:1.2V(典型值)。
在STM32供應的庫函數(shù)中,假如要開啟內部參考電壓功能,使用的庫函數(shù)和開啟溫度內部溫度傳感器的函數(shù)是相同的,只是在后面采集ADCx_Channel_x通道的時候不同而已。開啟函數(shù)為:ADC_TempSensorVrefintCmd(ENABLE);
注:必須設置TSVREFE位激活內部通道:ADCx_IN16(溫度傳感器)和ADCx_IN17(VREFINT)的轉換。
有關操作源碼,可以參考正點原子不完全手冊第二十一章內部溫度傳感器實驗,關于內部電壓值的測量和溫度傳感器的方法是相同的,只是使能的ADC通道不相同,其他都是相同的,所以,可以直接參考。