STM8L用内部参考电压做AD转换基准电压

STM8L系列芯片一般采用电池供电,当电池使用一段时间后,电池电压下降,如果使用电池电压作为AD转换参考电压,会导致AD采样失真。STM8L内部有一个参考电压,电压为1.225V,使用内部参考电压做基准,可以解决这个问题。

以stm8l052为例,

AD初始化:

clip_image002

采样内部参考电压,以单片机供电电压为基准

clip_image004

采样NTC热敏电阻电压,以单片机供电电压为基准,在AD采样4通道。

clip_image006

#define VREF 1.225L

根据内部参考电压计算NTC电阻电压,因为内部参考电压固定,而且和检测NTC电阻电压AD都使用单片机供电电压同一个参考源,所以内部参考电压AD值和NTC电阻电压AD值成比例关系。

NtcAdValue = GetNtcAd();

VNtc = ((float)NtcAdValue*VREF)/(float)VrefintAdValue;

也可以根据内部参考电压计算当前单片机的实际供电电压

VrefintAdValue = GetVrefintAd();

VddValue = (4096*VREF)/(float)VrefintAdValue;

当NTC电阻和一个430K电阻串联分压时,根据当前单片机的实际供电电压就可以计算出NTC电阻当前的阻值了

Rs = (430*VNtc)/(VddValue-VNtc);

发表评论

电子邮件地址不会被公开。 必填项已用*标注