"); //-->
首段: 为实现不同场景下的高精度数据采集,ADC硬件电路设计需精细化处理。本文围绕Air780EPM,从信号链路规划、电源管理到PCB设计等维度,提供实用设计精要,助力开发者解决场景适配中的技术痛点。
最近有工程师朋友问:Air780EPM的ADC精度怎么样,想节约一颗外挂ADC…
今天也跟大家一起分享下相关内容。在设计ADC硬件电路之前,请务必先查看LuatOS二次开发ADC相关库函数的描述。
最新ADC库函数详见:https://docs.openluat.com/osapi/core/adc/
我们先回顾一段核心内容:
Air780EPM共有4路外部ADC硬件通道,其通常的作用是用来测试电压数值。
ADC硬件连接被测电压的方式有两个:
当被测电压低于3.6V时,被测电压可以直连ADC;
当被测电压大于3.6V时,被测电压需先经过外部电阻分压,且经过分压后接在ADC的电压值需小于1.5V。
以上ADC的两种硬件连接方式,对应不同的软件设置,下文会提到。
除4路外部ADC通道外,Air780EPM还有2路内部ADC通道:
一路是CH_CPU,用来测量Air780EPM的CPU温度;
一路是CH_VBAT,用来测量Air780EPM的vbat电压(vbat,或者写为VBAT,也就是Air780EPM工作时的供电电压,对应Air780EPM的PIN42/PIN43)。
接下来,将按照大家在实际应用中常见的场景,分类描述如何设计ADC硬件电路。
一、测量Air780EPM的VBAT电压
用ADC测量VBAT电压时,不需要外接任何硬件电路。
Air780EPM内部有一路CH_VBAT:专门用于测量Air780EPM的VBAT电压,测量范围就是Air780EPM可以正常工作的VBAT供电范围(3.3V-4.3V)。
可以使用如下代码读取VBAT电压:
二、测量低于3.6V的电压时
我们这里讨论的是使用Air780EPM的4路外部ADC,测量低于3.6V电压时的场景。
为社么要提到3.6V这个数字?如本文最前面所说,当被测电压低于3.6V时,被测电压可以直连ADC,不需要外接电路。
是的,不需要外接电路的意思就是——被测电压可以直接接在ADC上,不做任何处理。但是,需要保证被测电压不高于3.6V。
相应的,软件应该这么做:
核心就是,软件在低于1.5V和大于1.5V且小于3.6V时的处理时不一样的。
如果你觉得比较懵,很正常。你需要先查看LuatOS二次开发ADC相关库函数的描述,详见:
https://docs.openluat.com/osapi/core/adc/
或者,你就把握一个原则:
当被测电压低于3.6V时,直连ADC就可以,剩下的交给软件同事去负责。
三、 测量高于3.6V的电压时
我们这里说的还是使用Air780EPM的4路外部ADC,测量高于3.6V电压时的场景。
当被测电压高于3.6V,使用4路外部ADC测量:必须将外部电压使用电阻分压,使挂在ADC上的电压低于1.5V。
那么,分压电阻怎么选择呢?
首先,取决于被测电压的值,测量最大电压5V和最大电压12V时的分压电阻肯定是不一样的;
其次,电阻一定要使用1%精度,这样才能尽可能的使分压比符合要求;
再次,可以在ADC输入处增加1个滤波电容,抑制高频噪声,避免ADC读数波动。
以上都是经验之谈,现在我们以被测电压为5V时来举例说明:
相应的,假设通过ADC测得的电压值是1.47V,则可以换算出来被测电压值为:
1.47V/0.294=5V
需要特别指出的是,即便使用MΩ级别的电阻,系统也会存在固定的功耗浪费:
总电流: I=5V/(2.4MΩ+1.0MΩ)≈1.47μA
总功耗: P=5V×1.47μA=7.35μW
功耗极低,适合电池供电的低功耗场景。
今天的内容就分享到这里了~
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。