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

初学stm32 --- ADC模拟/数字转换器工作原理

目录

 常见的ADC类型

并联比较型工作示意图

逐次逼近型工作示意图

ADC的特性参数

STM32各系列ADC的主要特性

ADC框图简介

参考电压/模拟部分电压

输入通道( F1为例)

转换序列(F1为例)

规则组和注入组执行优先级对比 

规则序列和注入序列(F1为例)

触发源(F1)

外部触发转换

转换时间(F1)

数据寄存器(F1)

中断

单次转换模式和连续转换模式

扫描模式

不同模式组合的作用

ADC,全称:Analog-to-Digital Converter,指模拟/数字转换器

 常见的ADC类型

并联比较型工作示意图

 

优点:转换速度快

缺点:成本高、功耗高、分辨率低

逐次逼近型工作示意图

 逐次逼近就是,不断修改数码寄存器的值,然后通过D/A转换器转换为模拟电压,多次比较,然后得到逼近真实模拟电压输入的电压值

优点:结构简单、低功耗

缺点:转换速度较慢

特点:

分辨率和采样速度相互矛盾,

分辨率越高,采样速率越低

ADC的特性参数

分辨率:表示ADC能辨别的最小模拟量,用二进制位数表示,比如:8101216位等(刻度划分

转换时间:表示完成一次A/D转换所需要的时间,转换时间越短,采样率就可以越高

精度:最小刻度基础上叠加各种误差的参数,精度受ADC性能、温度和气压等影响(物理量的精准程度

量化误差:用数字量近似表示模拟量,采用四舍五入原则,此过程产生的误差为量化误差

STM32各系列ADC的主要特性

采样时间是指 ADC 进行采样的时间段。在这个时间段内,ADC 会将输入的模拟信号充电到其内部的采样保持电容(Sample-and-Hold Capacitor)上,以稳定该信号的电压。这个过程是为了确保输入信号的电压在转换过程中能够准确地反映。

转换时间是指 ADC 完成一个从模拟信号到数字信号的转换所需的时间。它不仅包括采样时间,还包括将采样的信号进行数字化处理的时间。转换时间由 ADC 的分辨率(例如 12 位、10 位)以及 ADC 时钟的频率等因素决定。

ADC框图简介

参考电压/模拟部分电压

输入通道

转换序列:注入通道、规则通道

触发源

转换时间

数据寄存器

中断

参考电压/模拟部分电压

 ADC供电电源:VSSA VDDA2.4VVDDA3.6V

ADC输入电压范围:VREFVINVREF+(即0VVIN3.3V

输入通道 F1为例)

 有十八个通道,通道0到通道15是外部通道,通道16和通道17是内部通道;

转换序列(F1为例)

A/D转换被组织为两组:规则组(常规转换组)注入组(注入转换组)

规则组最多可以有16个转换,注入组最多有4个转换

规则组和注入组执行优先级对比 

        当没有触发注入组的通道转换时,规则组按照从小到大的顺序转换,当触发了注入组的通道转换的时候,首先将当前规则组的当前通道的转换完成,然后先去执行注入组的通道转换,入组按照从小到大的顺序转换。执行完注入组的通道转换后, 再取执行剩余规则组的通道转换。

规则序列和注入序列(F1为例)

注入序列的转换顺序是从JSQx[ 4 : 0 ](x=4-JL[1:0])开始

触发源(F1

触发转换的方法有两种:

1ADON位触发转换(仅限F1系列)

ADC_CR2寄存器的ADON位为1时,再单独ADON位写1,只能启动规则组转换

2)外部事件触发转换

外部事件触发转换分为:规则组外部触发注入组外部触发

外部触发转换

转换可以由外部事件触发(例如定时器捕获, EXTI线)。如果设置了EXTTRIG控制位,则外部事件就能够触发转换。 EXTSEL[2:0]和JEXTSEL2:0]控制位允许应用程序选择8个可能的事件中的某一个,可以触发规则和注入组的采样。

注意: 当外部触发信号被选为ADC规则或注入转换时,只有它的上升沿可以启动转换。

 1. TIM8_TRGO事件只存在于大容量产品

2.对于规则通道,选中EXTI线路11或TIM8_TRGO作为外部触发事件,可以分别通过设置ADC1和ADC2的ADC1_ETRGREG_REMAP位和ADC2_ETRGREG_REMAP位实现。

 1. TIM8_CC4事件只存在于大容量产品

2.对于注入通道,选中EXTI线路15和TIM8_CC4作为外部触发事件,可以分别通过设置ADC1和ADC2的ADC1_ETRGINJ_REMAP位和ADC2_ ETRGINJ_REMAP位实现。

转换时间(F1

如何设置ADC时钟?

如何设置ADC转换时间?

ADC转换时间: TCONV = 采样时间 + 12.5个周期

采样时间可通过SMPx[2:0]位设置,x=0~17

SMP = 0001.5个ADC时钟周期                  SMP = 001:7.5ADC时钟周期

SMP = 01013.5个ADC时钟周期                SMP = 011:28.5ADC时钟周期

SMP = 10041.5个ADC时钟周期                SMP = 101:55.5ADC时钟周期

SMP = 11071.5个ADC时钟周期                SMP = 111:239.5ADC时钟周期

举个例子:ADC时钟频率为12MHz时,ADC最短的转换时间是多少?

TCONV = 采样时间 + 12.5个周期 = 1.5个周期 + 12.5个周期 = 14个周期 =

(1/12000000)∗14 s = 1.17us

数据寄存器(F1

 16个通道对应一个数据寄存器,所以存在数据的覆盖。

 ADCx_CR2寄存器的ALIGN位设置数据对齐方式,可选择:右对齐或者左对齐

中断

F1/F4/F7系列ADC中断事件汇总表:

 DMA请求(只适用于规则组)

        规则组每个通道转换结束后,除了可以产生中断外,还可以产生DMA请求,我们利用DMA及时把转换好的数据传输到指定的内存里,防止数据被覆盖。

单次转换模式和连续转换模式

 

扫描模式

 

不同模式组合的作用

http://www.lryc.cn/news/517816.html

相关文章:

  • 导航技术的分类
  • C++语言的函数实现
  • 每日一题-两个链表的第一个公共结点
  • 细说STM32F407单片机以轮询方式读写外部SRAM的方法
  • 【3】安装cyclictest和iperf
  • C语言将点分十进制的IP字符串转成4个整数
  • go语言学习 笔记 1(变量,语法,数据类型)
  • 无网络时自动切换备用网络环境
  • 电脑32位和64位之区别(Difference between 32-Bit and 64 Bit Computers)
  • 系统思考—结构影响行为
  • 【算法不挂科】算法期末考试【选择题专项练习】<多单元汇总>
  • 2025.1.8(c++对c语言的扩充——堆区空间,引用,函数)
  • 如何将Yum源修改为本地挂载的ISO镜像
  • salesforce如何在系统里保存密码
  • 函数提升+上下文+内存清理及释放
  • 计算机网络之---计算机网络的性能评估
  • Unity学习之UGUI进阶
  • 深度学习领域创新黑马!频域特征融合新突破
  • 路由器的转发表
  • 用Cline打造你的智能搜索助手:Tavily Search MCP集成指南
  • HTML+CSS+JS制作中华传统美食主题网站(内附源码,含5个页面)
  • 黄仁勋CES 2025演讲重点内容
  • TVbox 手机、智能电视节目一网打尽
  • sys.dm_exec_connections:查询与 SQL Server 实例建立的连接有关的信息以及每个连接的详细信息(客户端ip)
  • kubesphere前端源码运行
  • 分布式主键ID生成方式-snowflake雪花算法
  • 深入理解感知机(Perceptron)算法
  • 操作系统——死锁与饥饿
  • 【算法】字符串算法技巧系列
  • Vue中el-tree结合vuedraggable实现跨组件元素拖拽