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

学习笔记——ADC(模数转换器)技术

ADC(模数转换器)技术详解

1. 什么是ADC?

ADC(Analog-to-Digital Converter)即模拟-数字转换器,是一种将连续变化的模拟信号转换为离散数字信号的电子设备或模块。

特性:

  • 输入:连续模拟信号(通常是电压信号)

  • 输出:离散数字信号(二进制代码)

  • 作用:作为物理世界与数字系统(如微处理器、微控制器)之间的桥梁

典型应用场景:

  • 传感器信号采集(温度、光照、压力等)

  • 音频信号处理

  • 工业测量与控制

  • 医疗电子设备

2. 什么是ADC的基准电压?

基准电压是ADC进行转换的参考标准,决定了ADC的测量范围和精度。

关键概念:

  • ADC_VREFH:参考电压高电平(如i.MX6ULL中的ADC_VREFH引脚)

  • ADC_VREFL:参考电压低电平(通常接地)

  • 测量范围:输入模拟电压必须在VREFL和VREFH之间

i.MX6ULL ADC参考电压配置:

[REFSEL] b12-b11:电压参考源选择 00 = 使用VREFH/VREFL引脚的外部参考电压
  • 通常VREFH接3.3V,VREFL接GND(0V)

  • 输入电压超过基准电压范围会导致结果饱和(全0或全1)

3. ADC的工作原理

基本转换过程(以逐次逼近型ADC为例):

模拟信号 → 采样保持 → 量化 → 编码 → 数字输出
(1)采样(Sampling)
  • 以固定时间间隔采集模拟信号的瞬时值

  • 奈奎斯特采样定理:采样频率必须大于信号最高频率的2倍

(2)保持(Hold)
  • 保持采样值稳定,便于ADC进行转换

  • i.MX6ULL配置选项:

    [ADLSMP] b4:长采样时间配置 [ADSTS] b9-b8:采样时间选择
(3)量化(Quantization)
  • 将连续幅度离散化

  • 将采样值映射到最接近的离散电平

  • 量化误差 = ±1/2 LSB

(4)编码(Encoding)
  • 将量化后的电平转换为二进制代码

  • i.MX6ULL支持多种分辨率:

    [MODE] b3-b2:转换模式选择(分辨率) 00 = 8位单端 01 = 10位单端 10 = 12位单端(常用) 11 = 10位差分

4. 什么是ADC的分辨率?

定义:

分辨率表示ADC能够区分的最小输入电压变化,通常用位数表示。

常见分辨率:

位数量化级数理论精度应用场景
8位2560.39%简单控制
10位10240.098%一般测量
12位40960.024%精密测量(i.MX6ULL支持)
14位163840.0061%高精度测量
16位655360.0015%专业仪器
24位16.7M0.000006%高精度传感器

i.MX6ULL ADC分辨率配置:

// 配置为12位分辨率 ADCx_CFG |= (0x2 << 2); // MODE[3:2] = 10

5. 电压计算公式(12位分辨率,3.3V基准)

基本公式:

𝑉𝑎𝑐𝑡𝑢𝑎𝑙=𝑛212×𝑉𝑟𝑒𝑓=𝑛4096×3.3𝑉Vactual​=212n​×Vref​=4096n​×3.3V

推导过程:

  1. 分辨率:12位 → 2¹² = 4096个量化级

  2. 每个LSB代表的电压

    𝐿𝑆𝐵=𝑉𝑟𝑒𝑓4096=3.3𝑉4096≈0.0008057𝑉≈0.806𝑚𝑉LSB=4096Vref​​=40963.3V​≈0.0008057V≈0.806mV
  3. 实际电压计算

    𝑉𝑎𝑐𝑡𝑢𝑎𝑙=𝑛×𝐿𝑆𝐵=𝑛×3.3𝑉4096Vactual​=n×LSB=n×40963.3V​

计算示例:

量化结果n实际电压计算电压值
00/4096 × 3.3V0V
20482048/4096 × 3.3V1.65V
40954095/4096 × 3.3V≈3.2992V

代码实现:

// 将ADC原始值转换为电压值(12位分辨率,3.3V基准) float adc_to_voltage(uint16_t adc_value) { // 确保值在有效范围内 if (adc_value > 4095) adc_value = 4095; // 计算电压值 float voltage = (float)adc_value * 3.3f / 4096.0f; return voltage; } // 示例:ADC读取值为2048时 uint16_t raw_value = 2048; // ADC原始数据 float voltage = adc_to_voltage(raw_value); // voltage ≈ 1.65V

i.MX6ULL ADC数据读取:

// 读取ADC转换结果(12位数据在低12位) uint16_t read_adc_value(void) { // 等待转换完成 while (!(ADC1_HS & 0x01)) { // 等待COCO0标志置位 } // 读取转换结果 uint16_t result = ADC1_R0 & 0x0FFF; // 取低12位 return result; }

总结要点

  1. ADC是模拟与数字世界的桥梁,实现连续信号到离散信号的转换

  2. 基准电压决定测量范围和精度,必须稳定准确

  3. 工作原理包括采样、保持、量化、编码四个关键步骤

  4. 分辨率表示精度,位数越高,量化误差越小

  5. 电压计算遵循线性关系:V_actual = (n / 2^N) × V_ref

实际应用注意事项

  1. 输入阻抗匹配:确保信号源阻抗与ADC输入阻抗匹配

  2. 噪声抑制:在ADC输入前添加RC滤波电路

  3. 采样速率选择:根据信号频率选择合适采样率

  4. 校准使用:定期进行ADC校准以提高精度

  5. 参考电压稳定性:使用稳定、低噪声的参考电压源

http://www.jsqmd.com/news/304577/

相关文章:

  • 【开题答辩全过程】以 基于SpringBoot的智能书城推荐系统的设计与实现为例,包含答辩的问题和答案
  • 传输层协议UDP和TCP
  • 50. 用户友好的提示系统:架构师如何实现实时反馈?
  • 2026激光切管机十大品牌:口碑实力诚信正规优秀厂商推荐
  • RPC 代理远程注入dll获得shell
  • 在Vue3中如何防止用户重复提交?
  • BUU-[BJDCTF2020]ZJCTF,不过如此
  • Sealos 私有化 vs 公有云:什么场景该选哪个
  • 2026年高定木作/轻法式木作厂家推荐榜:门墙柜一体化、整屋定制、全屋木作,匠心工艺与空间美学融合之选
  • 深度测评!MBA必看8款AI论文工具:开题报告与文献综述全解析
  • 提示工程架构师案例:法律领域模型的提示适配准确性提升方案(附数据集)
  • 三台机器部署 Sealos 私有云,完整操作手册
  • FT232R USB UART驱动下载 附快速安装方案
  • MCP通信的双方是谁?
  • 使用YOLOv26实现乌鸦鸽子麻雀等城市鸟类自动检测与分类
  • 人群仿真软件:Vadere_(15).社区与支持资源
  • 2026年度热门盘点原创音乐人首选的5款AI编曲软件
  • 怎么快速完成编曲?盘点原创音乐人常用的5款AI编曲软件
  • 统一白名单服务治理组件
  • 企业级远控赋能跨境电商:企业如何实现云端运营提效?
  • 专科生必看!10个高效降aigc工具推荐,避坑指南来啦
  • archlinux 更新遇到问题
  • 手机电脑都能用!跨平台体验最佳的视频提取文字在线免费网站盘点
  • 防雷接地材料批发避坑指南|选对材料=省成本+保安全,工程采购必看!
  • 【MyCat】第6章----HA 机制的 Mycat 高可用
  • 2026年度深度盘点原创音乐人常备的5款AI编曲软件
  • 专业级编曲师的选择,深度盘点原创音乐人推荐的5款AI编曲软件
  • 【MyCat】第7章---- Mycat 安全设置
  • 如何打造摄影作品集?
  • 【MyCat】第2章 ----安装启动