当前位置: 首页 > news >正文

模拟信号采集的硬件基石:高性能ADC设计的核心法则

在追求更高精度与更低延迟的应用需求下,ADC硬件设计需遵循科学的设计法则。

本文主要从硬件设计的角度,分享Air8101工业引擎ADC设计中的一些关键注意点,软件开发方面不做深入探讨。

一、Air8101外部ADC说明

1.1 外部ADC相关管脚

Air8101有10路外部ADC,相关管脚参考下图橙色方框标注:
image

注意这些ADC管脚存在复用功能:

除了可以作为ADC使用之外,还可以用作GPIO、UART、PWM、I2C、SPI、RGB等功能。

项目设计时,如果用作其他复用功能,就不能作为ADC使用。

Air8101管脚复用表下载:https://docs.openluat.com/air8101/product/shouce/

Air8101有ADC1、ADC2、ADC3、ADC4、ADC5、ADC6、ADC10、ADC12、ADC13、ADC14,一共10路外部ADC。

这10路ADC复用的对应关系为:

ADC1对应ADC10;

ADC2对应ADC12;

ADC3对应ADC13;

ADC4对应ADC14;

ADC5和ADC6,没有对应的其他ADC通道;

这里的对应关系如何理解呢?

以ADC1对应ADC10为例,意思是在Air8101内部,ADC1和ADC10是同一个ADC通道,ADC1和ADC10不能同时使用。

1.2 电压测量要点

Air8101的外部ADC分辨率为12bit;测量电压范围为0到2.4V,不支持内部分压。

1)测量不超过2.4V的外部电压时:

如果外接电路的被测电压不超过2.4V,被测电压可以直连ADC,不需要做任何电路处理;

2)测量超过2.4V的外部电压时:

如果外部电路的北侧电压超过2.4V,必须将外部电压使用电阻分压,使挂在ADC上的电压不超过2.4V。

那么,分压电阻怎么选择呢?

首先,取决于被测电压的值,测量最大电压5V和最大电压12V时的分压电阻肯定是不一样的;

其次,电阻一定要使用1%精度,这样才能尽可能的使分压比符合要求;

再次,可以在ADC输入处增加1个滤波电容,抑制高频噪声,避免ADC读数波动。

以上都是经验之谈,现在我们以被测外部电压为5V,分压后挂在ADC上的电压为1.5V,来举例说明:

▼ 分压电阻示例 ▼

image

分压比要求:

Vout/Vin=1.5V/5V=0.3,

即:R2=0.3×(R1+R2),

解得R1:R2≈2.33:1。

推荐电阻值:

上拉电阻 R1=2.4MΩ(±1%精度)

下拉电阻 R2=1.0MΩ(±1%精度)

实际分压比:

1.0MΩ/(2.4MΩ+1.0MΩ)≈0.294,

5V分压后为5V×0.294≈1.47V,满足量程不超过2.4V的要求;

相应的,假设通过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

功耗极低,适合电池供电的低功耗场景。

二、Air8101内部ADC说明

2.1 一路用于检测VBAT电压的ADC

Air8101内部占用了一路ADC,用于检测VBAT引脚的电压:

不需要外接任何硬件电路,直接通过软件API读取VBAT电压即可;

电压测量范围:2.5V-4.35V;

可以使用如下代码读取VBAT电压:

image

2.2 一路用于检测CPU温度的ADC

Air8101内部占用了一路ADC,用于检测CPU的温度:

不需要外接任何硬件电路,直接通过软件API读取即可;

温度测量范围:-40°C ~ +85°C;

可以使用如下代码读取CPU温度:

image

三、硬件设计参考

提供完整的Air8101硬件开发参考设计(以太网、摄像头、音频功放、RS485、RS232、ADC等),以及电源设计总体说明,可参考下方链接详细说明。

Air8101最新硬件参考设计资料下载:

https://docs.openluat.com/air8101/luatos/hardware/design/reference/

image

今天的内容就分享到这里了!

http://www.zskr.cn/news/1103.html

相关文章:

  • WPS设置多级标题,一级标题为“一”、“二”、“三”,二级标题为“1.1”、“2.2”、“3.3”,三级标题为“1.1.1”、“2.2.2”、“3.3.3”
  • 第一周个人作业
  • Modbus开发不头疼:极简指南,半小时搞定基础配置
  • 通过命令行生成.url链接文件
  • 麒麟V10安装docker
  • 湾区杯网络安全大赛 WEB方向WP 全
  • nim整活-道歉程序
  • jmeter-BeanShell PostProcessor
  • HyperWorks许可管理软件
  • ARC176E题解
  • 手把手带你入门AI智能体:从核心概念到第一个能跑的Agent
  • 【IEEE出版】第六届智能计算与人机交互国际研讨会(ICHCI 2025)
  • 产品经理实战指南:用户需求分析全流程详解(含工具链整合)
  • kylin V11安装mysql8.0
  • idea 允许多运行java示例 idea2022版本
  • 2025年第五届电子信息工程与计算机科学国际会议(EIECS 2025)
  • P6477 [NOI Online #2 提高组] 子序列问题 题解
  • 。。。
  • CF 1048 Div.2 解题报告
  • AI 服务路由策略:如何实现智能负载均衡
  • 多维度排序算法在企业级应用中的性能优化
  • 正则表达式在代码解析中的高级应用
  • 实现Jenkins不同账号只能看到各自任务的权限
  • 6 个最佳无代码 IT 资产管理工具推荐
  • python开发mcp入门
  • OCP认证烂大街了吗?别跟风问这个问题了
  • 虚机网络配置基础 - 小
  • 移动端盒子元素实现左右可滑动且竖向页面可滑动
  • 双桶倒水的Python程序
  • 微信小程序触发订阅消息