news 2026/3/26 9:43:58

ADC--模数转换器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ADC--模数转换器

一、ADC概念

模数转换器(Analog-to-Digital Converter)将连续的模拟电压信号转换为离散的数字值。i.MX6ULL集成的ADC具有以下关键特性:

  • 12位分辨率:提供4096级量化精度(0-4095)
  • 参考电压3.3V:输入电压范围0-3.3V
  • 多通道支持:可配置多个模拟输入通道
  • 内置校准功能:确保转换精度

模拟信号:模拟信号是物理世界中连续变换的物理量。

数字信号:数字信号是一种离散的、不连续的信号。

传感器:它是一种能够探测、感知外部环境信息(如温度、光线、压力、运动等),并将这些信息转换成电信号(通常是电压或电流)的装置或器件。

ADC分辨率:指adc的位数

二、ADC的分类

1、按架构/工作原理分类(最常见分类方式)

类型全称工作原理典型应用
逐次逼近型SAR ADC(Successive Approximation Register)采用二分搜索法,逐位比较输入电压与内部DAC输出微控制器内置ADC、传感器采集、电池监测
积分型Dual-Slope / Integrating ADC对输入信号积分一段时间,再对参考电压反向积分,测量时间差数字万用表、高精度低速测量
闪存型Flash ADC(Parallel ADC)使用 2N−12N−1 个比较器同时比较输入电压示波器、超高速数据采集

2.按位次分

位数量化等级(2^N)最小分辨率(以 Vref=3.3V 为例)典型应用领域
8 位256≈ 12.9 mV老式 MCU、简单传感器、消费电子
10 位1,024≈ 3.2 mV主流 MCU(如 Arduino、早期 STM32)
14 位16,384≈ 0.2 mV高精度数据采集、医疗设备前端
16 位65,536≈ 50 µV精密仪器、音频、称重传感器

三、ADC的工作流程

以8位、逐次逼近类型为例简要介绍

四、代码讲解

void adc1_init(void) { //复用功能配置 IOMUXC_SetPinMux(IOMUXC_GPIO1_IO01_GPIO1_IO01, 1); //电气特性 IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO01_GPIO1_IO01, IOMUXC_SW_PAD_CTL_PAD_PKE(1)); IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO01_GPIO1_IO01, IOMUXC_SW_PAD_CTL_PAD_PUE(0)); //ADC ADC1->HC[0] &= ~(1 << 7); ADC1->CFG = 0; ADC1->CFG |= (2 << 2); ADC1->CFG |= (3 << 0); ADC1->GC = 0; ADC1->GC |= (1 << 0); printf((adc1_calibration() == 0) ? "Calibration completed normally." : "Calibration failed."); } unsigned short get_adc_value(void) { ADC1->HC[0] = 0; ADC1->HC[0] |= (1 << 0); while((ADC1->HS & (1 << 0)) == 0); return ADC1->R[0] & 0xFFF; } float get_adc_volt(void) { return get_adc_value() * 3.3 / 4096; }

1.adc1_init()
配置 ADC 使用的 GPIO 引脚(复用功能和电气参数)。
设置 ADC 控制寄存器(如采样时间、分辨率等)。
执行 ADC 校准并验证是否成功。
2. get_adc_value()
触发一次 ADC 转换。
等待转换完成,并读取 12 位原始数字结果。
3. get_adc_volt()
调用 get_adc_value() 获取数字值。
按公式 电压 = 数字值 × 3.3V / 4096 转换为实际电压(假设参考电压为 3.3V,12 位精度)。

五、在实际应用中如何选择?

(1)首先看量程:确保你要测量的信号电压范围在ADC的量程之内。如果信号太小,需要先用运放放大;如果信号太大,需要用电阻分压。

(2)然后看分辨率:根据你需要的测量精细度选择位数。例如,测量锂电池电压(3.0V - 4.2V),一个12位的ADC(有4096个等级)可能就足够了。

(3)最后看精度:在对测量结果的绝对准确性要求极高的场合(如精密仪器、科学测量),必须仔细研究数据手册中的精度指标(偏移误差、增益误差、INL、DNL),而不能只看它的位数。高精度的ADC价格也更高。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/26 23:27:40

【开题答辩全过程】以 基于SpringBoot和vue的篮球比赛管理系统为例,包含答辩的问题和答案

个人简介 一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等 开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。 感谢大家…

作者头像 李华
网站建设 2026/3/26 23:54:56

知网AIGC检测升级后,这5款降AI工具依然能用

知网AIGC检测升级后&#xff0c;这5款降AI工具依然能用 2025年12月28日&#xff0c;知网完成了AIGC检测算法升级。 升级之后&#xff0c;以前管用的方法很多都失效了。同义词替换、简单换句&#xff0c;这些老套路现在根本绕不过去。新算法从语言模式和语义逻辑两条链路同时检…

作者头像 李华
网站建设 2026/3/25 14:00:50

YOLO26改进 - 注意力机制 | ELA(Efficient Local Attention)高效局部注意力:突破降维限制精准定位,增强小目标感知

前言 本文介绍了高效局部注意力&#xff08;ELA&#xff09;机制及其在YOLO26中的结合。ELA旨在解决传统注意力机制在利用空间信息时的不足&#xff0c;通过“条带池化”提取空间信息&#xff0c;使用一维卷积和组归一化进行特征增强&#xff0c;生成空间注意力图&#xff0c;…

作者头像 李华
网站建设 2026/3/25 12:04:49

OpenCV 学习:文档扫描与视频运动检测与跟踪

文章目录一、文档扫描与实时矫正1.1 核心思路1.2 关键代码分析二、视频运动检测与跟踪2.1 核心思路2.2 关键代码分析三、特定物体提取与分割3.1 核心思路3.2 关键代码分析一、文档扫描与实时矫正 1.1 核心思路 通过摄像头实时捕捉图像&#xff0c;自动检测文档轮廓&#xff0…

作者头像 李华
网站建设 2026/3/24 6:13:40

TOURISE在达沃斯重新定义旅游业:迈向16万亿美元规模的全球经济引擎

TOURISE在达沃斯世界经济论坛年会上深化并提升旅游业的战略地位&#xff0c;凸显其作为关键产业在联结不同行业、经济体与地区、协同应对全球共同挑战中的重要作用。 长期以来&#xff0c;旅游业常被视为各自为政、相对孤立的产业。TOURISE强调&#xff0c;应将旅游业重新定位…

作者头像 李华
网站建设 2026/3/24 2:15:35

Python命名空间-作用域-类型注解

本文主要讲解 Python 的命名空间、作用域和类型注解。 参考链接&#xff1a; 命令空间和作用域参考文档&#xff1a;https://www.runoob.com/python3/python3-namespace-scope.html类型注解参考文档&#xff1a;https://www.runoob.com/python3/python-type-hints.html 1 Py…

作者头像 李华