ADC接口¶
作者:金艺
概述¶
Air724UG模块内置两路通用ADC,可以用来做电池电压检测,温湿度检测,TDS检测等应用。ADC精度为12bit,测量输入范围为0到VBAT电压。若测量的电压输入范围大于模块的VBAT电压则需要进行分压后再输入ADC。
注意: 1. AT版本不支持ADC功能。 2. 如果ADC的输入电压超过VBAT电压,测试出的值不准确,所以一定要确认ADC的输入范围 3. 模块内部集成模块VBAT供电电压的检测ADC,LUAT开发方式下只需要调用misc.getVbatt()获取电压值,单位mV。无需要再用外部ADC检测。
管脚定义¶
接口 |
名称 |
复用 |
管脚 |
作用 |
---|---|---|---|---|
ADC2 |
ADC2 |
无 |
63 |
数模转换输入 |
ADC3 |
ADC3 |
无 |
64 |
数模转换输入 |
参考设计¶
注意: 1. 由于ADC的量程为0到VBAT,因此如果待测电压低于模块端供电电压VBAT,直连即可,如上图AD2;如果待测电压高于模块端供电电压VBAT,需要用电阻分压,如上图ADC3; 1. R1 和 R2用于做ESD防护 1. ADC走线时需要远离数字高速信号走线,且需要包地保护。
相关AT指令¶
AT版本不支持ADC操作
LUAT开发相关接口¶
相关的I2C控制接口可以参考LUAT_API ADC章节(未完成)
相关示例,请参考:raw-latex:script_LuaTask_VX.X.X:raw-latex:demo:raw-latex:`\adc`
adc.open()¶
打开对应ID的ADC通道
语法
result = adc.open( id )
参数
参数
释义
id
adc通道id
返回值
1:成功打开adc通道
0:其他
例子
--adc id
local ADC_ID = 0
--打开adc
adc.open(ADC_ID)
adc.read()¶
读取原始测量数据和电压值,电压值单位为mv
语法
adcValue,voltValue = adc.read( id )
参数
参数
释义
id
adc通道id
返回值
adcValue
原始数据ad值,无效值为0xFFFF
voltValue
电压值,单位为mv,无效值为0xFFFF
例子
--adcval为number类型,表示adc的原始值,无效值为0xFFFF
--voltval为number类型,表示转换后的电压值,单位为毫伏,无效值为0xFFFF;adc.read接口返回的voltval放大了3倍,所以需要除以3还原成原始电压
local adcval,voltval = adc.read(ADC_ID)
相关资料以及购买链接¶
相关开发板购买链接 Air724UG开发板 Air724 开发板使用说明 相关软件资料下载