STM32——ADC模数转换器

ADC简介

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

ADC将模拟信号转换为数字信号。

基本原理

将连续时间的模拟信号转换为离散时间的数字信号。具体来说,ADC将模拟信号在时间上进行采样,然后通过量化操作将每个采样值转换为数字编码。这些数字编码可以用二进制代码表示。

ADC在转换过程中需要通过采样频率和量化精度来决定转换质量,采样频率和量化精度越高,转换质量越好,但同时也会增加转换的成本和复杂度。

常见的ADC类型

并联比较型

并联比较型 ADC 又称 Flash ADC,属于直接 ADC,能将输入的模拟电压直接转换为输出的数字量,不需要经过中间变量转换。它由一系列电压比较器组成,每个比较器将输入信号与唯一的分压后的参考电压进行比较。比较器的输出连接编码器电路的输入,产生二进制的输出。

逐次逼近型

其原理是,设定一个数字量,通过 DAC 得到一个对应的输出模拟电压。将这个模拟电压和输入的模拟电压信号从最高位开始顺序地相比较,如果两者不相等,则调整所取的数字量,直到两个模拟电压相等为止,最后所取的这个数字量就是所求的转换结果。其过程像用天平去称量位置重量的物体,先加大砝码,再逐次添加或换用小砝码。

ADC特性参数

  1. 分辨率 表示ADC能分辨的最小模拟量,用二进制数表示,比如8、10、12、16位等。
  2. 转换时间 表示一次完成A/D转换所要的时间,转换时间越短,采样率越高。
  3. 精度 最小刻度基础上叠加各种误差的参数,精度受ADC性能、温度和气压等影响。
  4. 量化误差 用数字量近似表示模拟量,采用四舍五入原则,此过程产生的误差为量化误差。

ADC主要特性

ADC内部框图

参考电压/模拟部分电压

输入通道(F1系列)

转换序列(F1系列)

A/D转换被分为两组,规则组(常规转换组)和注入组(注入转换组)

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

注意:

注入组可以打断规则住转换。比如在规则组转换过程中,注入组启动,那么注入组被转换完成之后,规则组才得以继续转换。

执行优先级对比

规则组序列控制寄存器

注入组序列控制寄存器

触发源

ADC触发方式有两种:

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

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

(2)外部事件触发转换

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

转换时间(F1系列)

1.设置ADC时钟

2.设置转换时间

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

数据寄存器

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

注意:

ADC 规则数据寄存器只有一个,如果使用多通道转换,那久区能用首时数糖也会存放在DR里面,1按照规则组的顺序,上一个通道转换的数据,会被下一个通道转换的数据覆盖掉,所以当通道转换完成后要及时把数据取走。

比较常用的方法是使用DMA模式。

当规则组的通道转换结束时,就会产生 DMA请求,这样就可以及时把转换的数据搬运到用户指定的目的地址存放。

中断

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

规则组每个通道转换结束后,除了可以产生中断外,还可以产生DMA请求,

我们利用DMA及时把转换好的数据传输到指定的内存里,防止数据被覆盖。

转换模式和扫描模式

转换模式

扫描模式

不同组合模式

一种比较少用的模式:不连续采样模式式(F1手册称为:间断模式),只适用在扫描模式下。

ADC寄存器(F1系列)

ADC控制寄存器 1(ADC_CR1)

ADC控制寄存器 2(ADC_CR2)

ADC采样时间寄存器1(ADC_SMPR1)

ADC采样时间寄存器2(ADC_SMPR2)

ADC规则序列寄存器 1(ADC_SQR1)

ADC规则序列寄存器 2(ADC_SQR2)

ADC规则序列寄存器 3(ADC_SQR3)

ADC规则数据寄存器 (ADC_DR)

相关HAL库函数介绍

相关推荐
学不动CV了12 分钟前
单片机ADC采集机理层面详细分析(二)
c语言·arm开发·stm32·单片机·嵌入式硬件·开源·51单片机
学不动CV了15 分钟前
51核和ARM核单片机OTA实战解析(二)
c语言·arm开发·stm32·单片机·嵌入式硬件·51单片机
Yuroo zhou1 小时前
IMU的精度对无人机姿态控制意味着什么?
单片机·嵌入式硬件·算法·无人机·嵌入式实时数据库
嵌入式小白牙3 小时前
ARM-I2C硬实现
arm开发·单片机·嵌入式硬件
knight_20246 小时前
嵌入式学习日志————对射式红外传感器计次
stm32·单片机·嵌入式硬件·学习
深圳安凯星单片机开发方案公司6 小时前
用单片机怎么控制转速
单片机·51单片机
忆和熙6 小时前
【模电笔记】—— 波形发生电路(波形振荡器)
嵌入式硬件·模电笔记·波形发生电路
文火冰糖的硅基工坊6 小时前
[硬件电路-97]:模拟器件 - 如何通过外部的闭环负反馈,让运算放大器从“暴脾气”、“愣头青”、情绪容易失控者变成“沉着”、“冷静”的精密调控者的?
嵌入式硬件·架构·电路·跨学科融合
Ronin-Lotus6 小时前
嵌入式硬件篇---驱动板
单片机·嵌入式硬件·esp32·驱动板
##echo6 小时前
嵌入式Linux裸机开发笔记9(IMX6ULL)GPIO 中断实验(1)
linux·c语言·笔记·单片机·嵌入式硬件