WCH沁恒单片机
直播中

周棠亨

7年用户 1047经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

CH579M ADC测的不是特别准是什么原因?怎么处理?

用的10K/30K电阻分压测电池电压,引脚电压范围在2.25V-3.15V左右,用万用表实测引脚电压是2.591V,程序测出电压在2.54091787V(_temp_vol 变量),差了有50mv
初始化代码:
/**
* @brief
* @note battery detection init
* @param
* @retval
*/
void board_battery_init()
{
/* ADC */
/* Enable port */
GPIOA_ModeCfg(BATTERY_En_Pin, GPIO_ModeOut_PP_5mA);
BATTERY_ENABLE;

GPIOA_ModeCfg(BATTERY_Pin, GPIO_ModeIN_Floating);
ADC_ExtSingleChSampInit( SampleFreq_3_2, ADC_PGA_1_2 );
/*
注意:数据校准包括 粗调和细调:
ADC_DataCalib_Rough() 是粗调函数,调用前需保证PA5引脚配置浮空输入模式,外部没有电压信号,在ADC初始化之后调用,一般调用一次,除非更改了ADC模式(增益改变)
ADC_DataCalib_Fine() 是细调函数,对于粗调过的数据进行拟合算法运算,得到更精确数据
*/
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating);
RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到全局变量 RoughCalib_Value中
/* 校准设置模式降功耗 */
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_PU);

}

测量代码:



  
  排版把我给整懵了...
  
  1, ch579 的adc 内部参考电压是1.05 +/- 0.015v;
2, 考虑到电源的纹波影响;
3, adc采样的第一个值,建议舍去,然后再做平均.


  
  感谢回复!

回帖(1)

李青

2022-8-22 10:16:19
1, ch579 的adc 内部参考电压是1.05 +/- 0.015v;
2, 考虑到电源的纹波影响;
3, adc采样的第一个值,建议舍去,然后再做平均.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分