Dialog DA14585——ADC

本文深入解析DA14585芯片的4路10bit ADC功能,探讨其在电量检测中的应用。详细介绍ADC初始化、校准及电量换算过程,适用于纽扣电池与碱性电池等不同电池类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简要介绍

DA14585有4路10bit ADC,分别对应P0_0、P0_1、P0_2、P0_3且不能映射到其他IO(电量检测IO固定),65ns的转换时间,支持最大3.3Msample/s的采样率,支持单端或者差分输入采集,同时也可用于电量检测。其参考电压为1.2V,内部有一个GP_ADC_ATTN3X衰减寄存器,支持最大3.6V电压测量。
在这里插入图片描述

代码分析

下面以一个简单的ADC电量采集demo例程分析代码,以及如何使用
用于ADC通道使能
调用adc_enable_channel();并选择合适的通道,用于ADC通道使能
adc_get_vbat_sample函数用于针对不同电池类型进行采样分析,在采样前需要对ADC进行初始配置:
在这里插入图片描述
adc_init()中

  • mode:选择差分或者单端模式;
  • sign:0为默认,设置GP_ADC_SIGN以消除ADC和低频的内部偏移;
  • attn:选择是否三倍衰减
    本例程采用单端和三倍衰减模式。

代码步骤:

对ADC进行校准:

为了尽量减小一个非常小的抖动偏移通常采用以下方式校准。
在这里插入图片描述
adc_get_sample为最终读取GP_ADC_RESULT_REG中的值,低10位即为ADC值

算法选择:

DA14585可以适配多种类型的电池采集,因此需要的算法也有所差别,这里支持纽扣电池(CR2032 CR1225)、碱性电池;在测量碱性电池代码如下
在这里插入图片描述
这里得到的数字是纯粹的ADC值,还未经过换算百分比,batt_cal_cr2032/batt_cal_cr1225/batt_cal_aaa将电量换算成百分比值并返回。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TomWang-0214

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值