微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM8L探索套件学习笔记-测量VDD(七)

STM8L探索套件学习笔记-测量VDD(七)

时间:11-24 来源:互联网 点击:
STM8L中等容量有25个模拟通道(1个快速通道1us和24慢速通道)。中等+和高密度器件有28个通道(4个快速1us和24个慢速通道)。内部有两个通道连接带温度触发器和内部电压参考电压。可以配置为单次和连续模式。可以设置ADC时钟预分频比,模拟看门狗,DMA功能,可以设置为6/8/10/12位转换精度。
今天我们测量下VDD参考电压,是通过测量VREF电压换算出来的,换算的方法有两种:
第一种比较准确,VREF是出厂做的校准,存储在FLASH当中。计算公式为:VDD=(VREF出厂值/VREF实际测量值)×VDD出厂值
第二种方法是假定理论上VREF=1.224V,计算公式为:
VDD=(1.224/VREF实际测量值)×4096

一般我们采用第二种方法测量VDD,测量步骤为下:
1、使能ADC时钟
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
2、出现初始化ADC1
ADC_DeInit(ADC1);
3、设置ADC通道,精度,转换时间
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、测量8次取平均值
u16 VREF_Value(void)//测量内部参考电压VREF值,测量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);
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top