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

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价格也更高。

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

相关文章:

  • Flutter for OpenHarmony 剧本杀组队App实战26:邀请好友功能实现
  • 大数据高可用架构:CAP定理与BASE理论的完美结合
  • 强烈安利自考AI论文工具TOP10:选对工具轻松过关
  • 我用200行代码手写了一个协程库,才真正理解了线程切换
  • springboot汽车美容保养管理系统vue
  • springboot计算机组成原理虚拟仿真实验系统
  • springboot评教高校在线教师教学学术能力评价系统
  • 〔重庆理工大学〕计算机网络实验指导书【实验一 双绞线的制作与测试】
  • 【课程设计/毕业设计】基于java-springboot某城市的地铁综合服务管理系统springboot的城市轨道交通安全管理系统【附源码、数据库、万字文档】
  • Java 学习笔记 --MyBatis 增强篇
  • 个人简历网站
  • 〔重庆理工大学〕计算机网络实验报告【实验一 双绞线的制作与测试】
  • TCN-LSTM回归+特征贡献SHAP分析+新数据预测+多输出附MATLAB代码
  • TCN-BiLSTM回归+特征贡献SHAP分析+新数据预测+多输出附MATLAB代码
  • 【开题答辩全过程】以 基于SpringBoot和vue的篮球比赛管理系统为例,包含答辩的问题和答案
  • 【开题答辩全过程】以 基于Java的图书馆座位预约系统的设计与实现为例,包含答辩的问题和答案
  • 人工智能发展史:关键人物 里程碑
  • 完整教程:数学图论的艺术:解码最小公倍数图中的连通奥秘
  • 美国《科学》杂志历年十大科学突破(2000-2025)
  • 函数的深入
  • 扎耶德可持续发展奖启动2027年度全球申报 奖金总额增至720万美元
  • 赛程已过半,第五届瑞云渲染大赛作品抢先看
  • 炫彩活体检测技术:通过动态彩色光斑序列主动验证人脸生物特征,有效抵御各类伪造攻击
  • Java毕设项目推荐-基于springboot实现的erp企业资源管理系统基于Spring Boot的ERP仓储管理信息系统设计与实现【附源码+文档,调试定制服务】
  • 2026必备!MBA毕业论文神器TOP10:一键生成论文工具深度测评
  • Datalogic推出Gryphon™ 4600系列和智能视觉套件,重塑手持扫描标杆,加速零售与全行业智能升级
  • Java_ElasticSearch(ES)——分布式搜索引擎 - 实践
  • TOURISE在达沃斯重新定义旅游业:迈向16万亿美元规模的全球经济引擎
  • Java毕设选题推荐:基于springboot的城市轨道交通安全管理系统java-springboot某城市的地铁综合服务管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Fortitude Biomedicines正式完成1300万美元融资,致力于开发治疗自免和癌症的新型抗体疗法