BR1001/BR2262 ADC程序接口及使用
- ADC系统框图
- 控制说明:
- MUX 输入选择控制
- chop 控制
- 增益选择控制
gain_pga=(vip3-vin3)/(vip2-vin2)
注意:对于 VBAT 域的 GPADC 输入信号,将 gp_adc_en_scal 设置为 1,即 0.25 倍增益 - adc 时钟频率控制
3. GPIO 输入电压读取
使用ADC前,先要选定GPIO输入通道,配置为ADC输入
pinmux_config(7, PINMUX_ANALOG_PIN7_B4_CFG);
adc_voltage_read(ADC_CH_B4,10);
功能:
读取ADC电压。
输入参数:
第一个参数为ADC通道,
第二个参数为采样数量,比如输入10,会采样10次算平均值返回电压。
输出参数:
返回电压值,以mV为单位。
函数原型如下:
int adc_battery_voltage_read(uint32_t sample_num)
{
int i;
int mv = 0;
adc_init();
adc_config_battery();
for(i=0; i<sample_num; ++i)
{
adc_start_with_sw_trigger(true);
mv += adc_data_convert2voltage_vbat(adc_channel_read(ADC_CH_V)) * 4;
}
adc_stop();
return mv/sample_num;
}
- 电池电压读取
adc_battery_voltage_read(10);
功能:
读取电池电压。
输入参数:
参数为采样数量,比如输入10,会采样10次算平均值返回电压。
输出参数:
返回电压值,以mV为单位。
函数原型如下:
int adc_battery_voltage_read(uint32_t sample_num)
{
int i;
int mv = 0;
adc_init();
adc_config_battery();
for(i=0; i<sample_num; ++i)
{
adc_start_with_sw_trigger(true);
mv += adc_data_convert2voltage_vbat(adc_channel_read(ADC_CH_V)) * 4;
}
adc_stop();
return mv/sample_num;
}
- 温度读取
adc_temperature_read (10);
功能:
读取温度值。
输入参数:
参数为采样数量,比如输入10,会采样10次算平均值返回温度值。
输出参数:
返回温度值,以摄氏度为单位。
函数原型如下:
int adc_temperature_read(uint32_t sample_num)
{
int i;
int t = 0;
adc_init();
adc_config_temperature();
for(i=0; i<sample_num; ++i)
{
adc_start_with_sw_trigger(true);
t += adc_data_convert2temperature(adc_channel_read(ADC_CH_T));
}
adc_stop();
return t/sample_num;
}