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

adc模数转换器

ADC是模拟到数字转换器(Analog-to-Digital Converter)的缩写。它是一种电子设备或模块, 2440内部拥有一个ADC外设。用于将连续变化的模拟信号转换为离散的数字信号,以便数字系统(如微处理器、微控制器等)能够对其进行处理和分析。

➢ 模拟信号一般是指连续变化的电压信号,其数值在一定范围内变化。而数字信号是由一系列离散的数字表示,只能取有限的值,通常以二进制形式表示。

➢ ADC的工作原理是将模拟信号分割成一系列离散的取样,并将每个取样值转换为相应的数字表示。这个过程涉及到两个主要步骤:采样和量化。

➢ 采样: ADC将连续变化的模拟信号在一定时间间隔内进行取样。取样频率决定了每秒采集的样本数,通常以赫兹(Hz)表示。采样过程通过保持并测量模拟信号在每个采样时间点的电压值来实现。

➢ 量化:采样得到的连续模拟信号经过量化转换为数字形式。量化是将每个采样值映射到一个离散的数字值的过程。这通常通过比较采样值与参考电压之间的差异,并将其转换为数字表示。

➢ ADC量化的过程是相对于一个基准值的,这个基准值称之为基准电压。一般采用逐次逼近法的ADC会先拿采用电压Vadc跟基准电压Vref的1/2进行比较,如果Vadc>Vref,则结果为1,否则结果为0。之后继续拿Vadc和Vref的1/4或Vref的3/4继续比较。这个过程有点像二分法,每次比较都会使量化的结果逼近真实值。很明显,比较的次数决定了测量的精度,这个精度被称之为ADC的分辨率。比如一个比较了8次的ADC外设,它就称为8位ADC,其结果是0~255之间的一个数值,设该数值为n,那么实际电压就是Vref * (n/255)。如果把比较次数增加到10次,结果就是0~1023之间的一个数。常见的分辨率包括8位, 10位, 12位和16位。

➢ I.MX6ULL内部具有两个ADC控制器。都是采用逐次逼近法设计的。每路ADC的分辨率可选,分别为8/10/12位。 I.MX6ULL内部ADC具有自动校准功能,因此能够保证更高的测量精度;最大转换速率为1MHz,即完成一次转换所需的时间最快只需要1us。 I.MX6ULL的ADC还具有硬件平均功能和比较功能,大大方便了软件设计。我们实验所使用的开发板将基准电压设置为3.3V,参考《 IMX6ULL_CORE_V2.0(核心板原理图).pdf 》 ;

➢ 每个ADC拥有10个通道,这里的通道就是指输入的电压信号是从哪个引脚输入进来的意思。 10个引脚其实就是GPIO1_IO00~GPIO1_IO09这10个引脚。参考《 IMX6ULL参考手册.pdf 》 P394页。我们在配置引脚功能时只需将引脚配置为GPIO就行,电器配置时可以保持默认配置下使能Keeper即可。

➢ I.MX6ULL的时钟源可以是igpclk、 igpclk/2和ADACK,其中ADACK是I.MX6ULL内部提供的时钟源,只能提供给ADC外设使用,这样做的目的是保证系统处于低功耗状态时, ADC依旧能够运行。 ADACK的时钟默认为20MHz。我们接下来的操作就把时钟配置为ADACK。

➢ I.MX6ULL的ADC使用还是很简单的,首先在初始化的时候配置好引脚,例如GPIO1_IO01这个引脚;之后配置ADCx_CFG和ADCx_GC寄存器(有关这两个寄存器的详细说明请参考手册)。然后启动一次自动校准,系统校准完成后每次向ADCx_HC0寄存器中写入一次数据(其实就是切换到别的通道之后再切换回来)就会启动一次ADC转换。转换结束之后的数据就保存再ADCx_R0寄存器中。

假设vref 为5v   测的u为3v

比较器:v1 > v2输出高电平,反之低电平。逐次逼近v1。比较器个数一般有8个、10个、12个、16个。 当v2为0时。

imx6ull最多1m次采样,可以调模式为12、8、10。

adc有两组,输入通道各有9个,只能选一个。

电源电压有波动,需要均值滤波。

http://www.dtcms.com/a/263850.html

相关文章:

  • Gartner《Choosing Event Brokers to Support Event-DrivenArchitecture》心得
  • OSE3.【Linux】练习:编写进度条及pv命令项目中的进度条函数
  • Postman - API 调试与开发工具 - 标准使用流程
  • 搜索与回溯算法(基础算法)
  • 华为交换机堆叠与集群技术深度解析附带脚本
  • Golang的并发编程实践总结
  • 【pathlib 】Python pathlib 库教程
  • 成都芯谷金融中心文化科技园:打造区域科技活力
  • nginx配置websocket
  • 用java,把12.25.pdf从最后一个点分割,得到pdf
  • Elastic 构建 Elastic Cloud Serverless 的历程
  • CertiK《Hack3d:2025年第二季度及上半年Web3.0安全报告》(附报告全文链接)
  • 61、【OS】【Nuttx】【构建】向量表
  • Redis-7.4.3-Windows-x64下载安装使用
  • 浅谈Docker Kicks in的应用
  • ‌Webpack打包流程
  • 为什么时序数据库IoTDB选择Java作为开发语言
  • Milvus docker-compose 部署
  • t检验​、​z检验、χ²检验中的P值
  • Vue3 使用 i18n 实现国际化完整指南
  • 浏览器F12开发者工具的使用
  • 大模型MCP技术之一句话安装Hadoop
  • DML-2-更新和删除
  • Python 数据分析:numpy,抽提,整数数组索引与基本索引扩展(元组传参)。听故事学知识点怎么这么容易?
  • JavaWeb笔记02
  • hello算法_C++_ 最差、最佳、平均时间复杂度
  • Spring事务传播行为?失效情况?(详解)
  • 设计模式精讲 Day 20:状态模式(State Pattern)
  • imx6ull芯片中断机制6.24-6.25
  • Python中字符串isalpha()函数详解