当前位置: 首页 > 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.cnnetsun.cn/news/837123.html

相关文章:

  • Java计算机毕设之基于springboot的城市轨道交通安全管理系统基于SpringBoot的都市轨道交通综合服务平台(完整前后端代码+说明文档+LW,调试定制等)
  • SCI投稿前必备:5款英文论文降AI工具横评推荐
  • Java全栈工程师的面试实战:从基础到微服务
  • 前后端分离Spring Boot装饰工程管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • Katalon Studio快捷键使用指南
  • 计算机毕业设计springboot高校电动车充电桩管理系统 基于SpringBoot架构的高校校园智慧充电设施运维服务平台 SpringBoot驱动的高校电动车辆能源补给与设备监控管理系统
  • 面了个腾讯30k出来的,让我见识到什么叫“精通MySQL调优”
  • Java计算机毕设之基于springboot的汽车维修保养服务信息系统基于Java springboot4s店车辆管理系统车辆预约保养维修(完整前后端代码+说明文档+LW,调试定制等)
  • 广东老板:说真的!我家白裙子靠6张图,在夏天卖断货了!
  • 如何将照片从三星传输到Mac ?
  • 【课程设计/毕业设计】基于springboot超市进销存系统基于springboot的超市仓库管理系统【附源码、数据库、万字文档】
  • 计算机Java毕设实战-基于springboot的超市仓库管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Java毕设选题推荐:基于springboot的超市仓库管理系统基于springboot超市进销存系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • AI+企业培训系统源码:下一代内训平台长什么样?
  • Python包管理|如何解决 pip 安装报错 error: subprocess-exited-with-error 问题
  • UG/NX浮动许可证池智能配置与负载均衡策略
  • cpolar让Audiobookshelf打造的书库全球共享
  • ue 判断中文标点符号
  • 高校宣讲会管理系统设计毕业设计(源码+lw+部署文档+讲解等)
  • 宏智树 AI:让数据 “开口说话”,实证论文数据分析零门槛通关
  • GISBox:免费三维GIS平台,新手入门首选,小白也是秒变地图大师
  • Flutter 颜色系统全面升级:广色域与 Material 3 的深度解析与实战指南
  • 从日志到根因:邮件系统性能瓶颈排查“三步法”实战
  • 重复工作这么多,怎样才能提高工作效率?
  • Shelly Flood Gen4:支持线缆检测的智能漏水传感器接入苹果HomeKit
  • Infoseek 媒介投放智能管控系统技术实现:基于舆情驱动的全链路架构设计
  • 商业照明设计趋势与技术指标全面解析
  • Java毕设项目:基于springboot的敬老院管理系统(源码+文档,讲解、调试运行,定制等)
  • 社会网络仿真软件:Gephi_(10).图形美化与可视化技巧
  • 采购背锅指南:如何用数据证明“你真的为公司省了钱”?