新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM8L探索套件學(xué)習(xí)筆記-測(cè)量VDD(七)

STM8L探索套件學(xué)習(xí)筆記-測(cè)量VDD(七)

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
STM8L中等容量有25個(gè)模擬通道(1個(gè)快速通道1us和24慢速通道)。中等+和高密度器件有28個(gè)通道(4個(gè)快速1us和24個(gè)慢速通道)。內(nèi)部有兩個(gè)通道連接帶溫度觸發(fā)器和內(nèi)部電壓參考電壓??梢耘渲脼閱未魏瓦B續(xù)模式??梢栽O(shè)置ADC時(shí)鐘預(yù)分頻比,模擬看門狗,DMA功能,可以設(shè)置為6/8/10/12位轉(zhuǎn)換精度。
今天我們測(cè)量下VDD參考電壓,是通過(guò)測(cè)量VREF電壓換算出來(lái)的,換算的方法有兩種:
第一種比較準(zhǔn)確,VREF是出廠做的校準(zhǔn),存儲(chǔ)在FLASH當(dāng)中。計(jì)算公式為:VDD=(VREF出廠值/VREF實(shí)際測(cè)量值)×VDD出廠值
第二種方法是假定理論上VREF=1.224V,計(jì)算公式為:
VDD=(1.224/VREF實(shí)際測(cè)量值)×4096

一般我們采用第二種方法測(cè)量VDD,測(cè)量步驟為下:
1、使能ADC時(shí)鐘
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
2、出現(xiàn)初始化ADC1
ADC_DeInit(ADC1);
3、設(shè)置ADC通道,精度,轉(zhuǎn)換時(shí)間
ADC_Init(ADC1, ADC_ConversionMode_Single,ADC_Resolution_12Bit, ADC_Prescaler_2);

ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
4、使能
ADC_VrefintCmd(ENABLE);
ADC_Cmd(ADC1, ENABLE);
ADC_ChannelCmd(ADC1, ADC_Channel_Vrefint, ENABLE);
5、測(cè)量8次取平均值
u16 VREF_Value(void)//測(cè)量?jī)?nèi)部參考電壓VREF值,測(cè)量8次平均
{
uint8_t i;
uint16_t res=0;
for(i=8; i>0; i--)
{
/* start ADC convertion by software */
ADC_SoftwareStartConv(ADC1);
/* wait until end-of-covertion */
while( ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == 0 );
/* read ADC convertion result */
res += ADC_GetConversionValue(ADC1);
}
return (res>>3);
}


評(píng)論


技術(shù)專區(qū)

關(guān)閉