BR1001/BR2262 ADC程序接口及使用

BR1001/BR2262 ADC程序接口及使用

  1. ADC系统框图
    在这里插入图片描述
  2. 控制说明:
  • 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;
}

  1. 电池电压读取

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;
}

  1. 温度读取
    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;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值