为实现高精度、高稳定性的ADC模数转换,硬件与软件设计均需遵循特定原则。硬件层面需优化信号调理、参考电压及抗干扰设计;软件层面需合理配置采样参数、实现数据滤波及异常处理。本文将结合实际开发场景,详解ADC硬件设计与软件开发的关键要点,为开发者提供ADC转换的实战指导。
本文将分享硬件参考设计及LuatOS开发相关API,带你快速了解ADC的软硬件实现要点。

01. 模组相关管脚
Air780EPM系列模组与ADC相关的管脚,包括:
ADC0,PIN9;
ADC1,PIN96;
ADC2,PIN77;
ADC3,PIN76;
02. 主要功能说明
虽然我们在沟通和交流中习惯称为ADC,但更为准确的称呼应该是AUXADC,AUXADC是芯片内部的辅助ADC通道,主要用于温度监测、电池电量检测等。
Air780EPM系列模组共有4个AUXADC通道,包含以下三个主要功能:
1)外接模拟电压信号检测通路
选择内部分压电路,适用于外接信号电压范围为0~3.3V;
选择直通AUXADC输入端的通路,适用于电压范围0~1.6V;或经外部分压后在1.6V,分压后电压范围需控制 0~1.6V。
2)VBAT电压检测通路
VBAT电压经过分压电路到达AUXADC输入口。
3)温度传感器检测通路
模组芯片内部温度检测:芯片温度发生变化时,片内Thermal Sensor的电压信号也会随之变化,将THM_VBE信号送至AUXADC测试。
▼ ADC内部框图 ▼


相关注意事项如下:
图中用AIO表示从外部输入到模组内部AUXADC的部分,可以理解为直接连接到模组ADC管脚的电平;
片内电阻绝对偏差:
MAX= ±8.5%(-40~85 ℃);
片内电阻的相对偏差,阻值比误差:
MAX=+/-0.15%(-40~85 ℃);
AUXADC可以选择内部分压,也可以选择外部分压,不管选择外部分压还是内部分压,都需要调整合适的分压比,保证AUXADC输入端电压在0~1.6V范围;
当被测电压低于1.6V时:
外部无需分压,内部也无需分压;
LuatOS ADC函数对应选择:
adc.ADC_RANGE_MIN
当被测电压低于3.3V时:
外部无需分压,内部需要分压至1.6V以内,LuatOS已将该部分在底层做好,ADC函数对应选择:
adc.ADC_RANGE_MAX
当被测电压大于3.3V时:
内部无需分压,外部需要分压至1.6V以内,LuatOS已将该部分在底层做好,ADC函数对应选择:
adc.ADC_RANGE_MIN
读取模组芯片温度的常量为:
adc.CH_CPU
可检测温度范围为-40 °C~85 °C ,外部硬件电路上无需任何操作;
读取VBAT电压的常量为:
adc.CH_VBAT
电压范围为2.2~4.8V;在VBAT输入电压范围3.3~4.35V之内,外部硬件电路上无需任何操作。
03. ADC性能参数
分辨率:12bit
时钟频率(Fc):1.625MHz~6.5MHz
采样频率:Fc/16
典型功耗:500μA
更多参数说明,详见下方图表:

04. 注意事项及硬件参考设计
AUXADC的有效输入范围为0.1~1.5V,在0~0.1V和1.5~1.6V范围可能存在较大误差,不建议使用;
外部分压时,如果AUXADC输入电压无法满足低于1.6V,以NTC电阻为例,可使用如下图右侧所示电路进行分压设计:

如果不希望ADC变化太快,可以通过软件算法处理,过滤掉变化较大的数值,也可以在硬件电路上增加滤波电路;
比如,外部分压时,可以增加滤波电容增加ADC输入稳定性,但缺点是ADC的细微变化会被过滤掉,请根据实际需要谨慎选择。
特别说明:
R300可以增加ESD能力,阻值建议为510Ω,不建议使用K级阻值的电阻。
参考设计如下图示:

05. 与ADC相关的LuatOS API
关于LuatOS中ADC相关API的介绍,详见:
https://docs.openluat.com/osapi/core/adc/
特别说明:
所有ADC共用一个通道,同时只能调用一路ADC采样,包括芯片温度、VBAT电压;
ADC打开( adc.open() )后,会产生约500μA的功耗,如需低功耗控制,请将ADC关闭( adc.close() );
示例代码:

今天的内容就分享到这里了~
审核编辑 黄宇
-
adc
+关注
关注
100文章
7454浏览量
553945 -
模数转换
+关注
关注
1文章
222浏览量
37991
发布评论请先 登录
智能双卡设计实战指南:硬件电路与软件配置详解!
电子工程师硬件设计开发指南
Texas Instruments ADS803:高性能12位模数转换器的技术剖析与应用指南
CW32嵌入式软件开发的必备知识
ADC 实战:如何精准读取传感器信号
ADC1283 12位SAR模数转换器技术解析与应用指南
高性能模拟信号采集:揭秘ADC硬件设计的核心要素!
一款理想的Σ-Δ ADC(模数转换器)是什么样?硬件工程师ADC选型开发梳理
知识分享 | 敏捷方法在基于模型的软件开发项目中的应用
我国软件开发者数量超过940万
TMS320x280x 2801x、2804x 模数转换器(ADC)模块参考指南

ADC模数转换实战:硬件设计与软件开发要点指南!
评论