1427|4

643

帖子

0

资源

一粒金砂(高级)

【BLE 5.3无线MCU CH582】8、adc采样(内部bat、内部温度,外部输入) [复制链接]

系列文章:

【BLE 5.3无线MCU CH582】1、初识CH582开发板(开箱)

【BLE 5.3无线MCU CH582】2、MounRiver IDE初体验

【BLE 5.3无线MCU CH582】3、非阻塞方式点灯

【BLE 5.3无线MCU CH582】4、串口不定长数据接收

【BLE 5.3无线MCU CH582】5、硬件I2C驱动0.96吋OLED

【BLE 5.3无线MCU CH582】6、pwm呼吸灯

【BLE 5.3无线MCU CH582】7、按键——GPIO外部中断

 

1、ch582的ADC

image.png

1路ADC,14个通道,其实是16个通道,还有两个内部通道,一个连接到温度传感器,一个连接到VBAT。

 

2、ADC采样限制

image.png  选择的增益不同,实际能采集到的最大值不同。

3、代码实现

void AdcInit(void)
{
   GPIOA_ModeCfg( GPIO_Pin_4 , GPIO_ModeIN_Floating ); //选择adc通道0做采样,对应 PA4(AIN0)
}


void AdcPolling(void)
{
    static uint32_t tick=0;

    if(SystemGetTick()-tick>1000)
    {
        signed short RoughCalib_Value = 0;    // ADC粗调偏差值
        UINT16 result;

        UINT32 vbat=0;
        UINT32 v0=0;

        ADC_InterBATSampInit();
        RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到变量 RoughCalib_Value中,注意这个变量需要定义为有符号变量
        ADC_ChannelCfg( 14 );  //0Eh:电池电压 VBAT;
        result=ADC_ExcutSingleConver() + RoughCalib_Value;

        vbat=(result/512-3)*1.05*1000;
        printf( "channel 14=%d ,%d mV\n", result,vbat );

        ADC_InterTSSampInit();
        RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到变量 RoughCalib_Value中,注意这个变量需要定义为有符号变量
        ADC_ChannelCfg( 15 );  //0Fh:内置温度传感器 TS
        result=ADC_ExcutSingleConver() + RoughCalib_Value;

        printf( "channel 15=%d ,%d°\n", result ,ADC_GetCurrentTS(result));

        ADC_ExtSingleChSampInit( SampleFreq_3_2 , ADC_PGA_0 );
        RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到全局变量 RoughCalib_Value中
        ADC_ChannelCfg( 0 );
        result=ADC_ExcutSingleConver() + RoughCalib_Value;

        v0=result*1000/2048*1.05;

        printf( "channel 0=%d ,%d mV\n\r\n", result, v0);

        tick =SystemGetTick();
    }
}

基本的流程就是,初始化通道,获取偏差值,配置通道,转化读取数据

 

4、测试

image.png

image.png  内部电压采样,使用的是-12dB模式;

通道0使用的是0dB模式,采样值与实际值偏差不大;

内部温度,直接使用的官方提供的函数,不过计算出来,温度偏低。

 

 

 

 

 

 

个人签名stm32/LoRa物联网:304350312

回复

2691

帖子

3

资源

版主

好久以前,我就给eeworld提到这个绝对温度的较正,但是现在还没有给个固定的回复,个人猜想,他们自己还没有弄明白。

回复

643

帖子

0

资源

一粒金砂(高级)

lugl4313820 发表于 2022-3-16 20:39 好久以前,我就给eeworld提到这个绝对温度的较正,但是现在还没有给个固定的回复,个人猜想,他们自己还没 ...

手册上也没说,只能等待官方人员解答了。

个人签名stm32/LoRa物联网:304350312

回复

5846

帖子

18

资源

五彩晶圆(中级)

fly007008009 发表于 2022-3-17 22:27  已经自己搞定; 此人不可信,言而无信;不想发就直接说  【不想发送】 我都没有QQ邮箱,哪 ...

什么情况。。。

个人签名

默认摸鱼,再摸鱼。2022、9、28


回复

643

帖子

0

资源

一粒金砂(高级)

fly007008009 发表于 2022-3-17 22:27  已经自己搞定; 此人不可信,言而无信;不想发就直接说  【不想发送】 我都没有QQ邮箱,哪 ...

是不是回复错了?

个人签名stm32/LoRa物联网:304350312

回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表