12- STM32模数转换器(ADC)(上)

简介: 12- STM32模数转换器(ADC)

12.1 AD 简单描述


在介绍ADC之前我们先说一下ADC大致应用到哪些领域。比如无线通信、软件无线电、数据采集、光通讯、仪器设备等领域用到的非常多,举个非常简单的例子,比如你要获取电池电压的用电情况这时候就需要用到ADC这个东西。当然了ADC又可以分很多种,这里就不在说了,这里可以去网上查查。看看多了解了解。


其实在自然界存在的大都是模拟量,像温湿度、时间、速度、压力、流量等都是模拟量,但是吧,兄弟们,我们在使用这些东西的时候需要把这玩意用计算机转换成数字量,这样才能更有效的进行一些控制。

因此这就需要他们之间有一个桥梁,这个桥梁就是ADC和DAC这两个。本章只介绍ADC,DAC将会在下一章介绍。

典型的数字控制系统流图如下图所示:


640.png


根据图中的信息可知道,非电模拟量需要使用特定的传感器将模拟信号转换成电信号,然后使用ADC将电信号转换成数字信号,经嵌入式系统处理后,再通过DAC将数字信号转换成模拟信号去控制执行机构。


12.1.1 ADC的简要 ◆


我们首先说一下ADC的转换过程,然后说一下原理,当然如果嫌啰嗦可以直接跳过。

ADC是英文Analog-to-Digital Converter缩写,翻译过来就是模数转换器,是指将连续变化的模拟信号转换为离散的数字信号的器件。A/D转换的作用是将时间连续、幅值也连续的模拟信号转换为时间离散、值也离散的数字信号,因此,

A/D转换一般要经过采样、保持、量化及编码4个过程,

如下图所示。在实际电路中,这些过程有的是合并进行的。例如,采样和保持、量化和编码往往都是在转换过程中同时实现的。


1、ADC:模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。

典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。

2 、在进行模/数转换时,要按一定的时间间隔,对模拟信号进行采样,然后再把

采样得到的值转换为数字量

。因此,模/数转换的基本过程由

①采样、②保持、③量化和④编码组成。

通常,采样和保持两个过程由采样–保持电路完成,量化和编码又常在转换过程中同时实现。


12.1.2 ADC原理  ◆


ADC有很多的类型大致可以分为

逐次比较逼近型、并行比较型、积分型、Σ-Δ调制型、及压频变换型。

这些个类型。具体是什么请自行百度。

当然这些类型収各自的优点和缺点。看下图:


1- 采样与保持


1)、开关S受采样信号vS的控制:

先来看两幅图:


从上图可以知道一下几点:

(1)当vs为高电平时,S闭合,采样阶段,vo=vI;

(2)当vs为低电平时,S断开,保持阶段,此时由于电容无放电回路,所以vO保持在上一次采样结束时输入电压的瞬时值上。

将A/D转换输出的数字信号,再进行D/A转换,得到的模拟信号与原输入信号的接近程度,与采样频率密切相关。



2)采样定理



啥事采样?

定义事这样的:

采样是在间隔为T的T、2T、3T、…时刻抽取被测模拟信号幅值,相邻两个采样时刻之间的间隔T也被称为采样周期





只有当采样频率fs大于或等于模拟信号v最高频率分量fmax的2倍时(fs≥2fmax),所采集的信号样值才能不失真地反映原来模拟信号的变化规律。

例如:若被采样信号的最高频率分量的频率为100Hz,则采样频率应该不低于200Hz。


3)、保持电路


2-量化与编码

1、什么是量化?


我们在对对模拟信号进行采样后,会得到一个时间上离散的脉冲信号序列,但每个脉冲的幅度仍然是连续的。然而,CPU所能处理的数字信号不仅在时间上是离散的,而且数值大小的变化也是不连续的,因此,必须把采样后每个脉冲的幅度进行离散化处理,得到被CPU处理的离散数值,这个过程就称为量化。

说白了就是A/D转换过程中,必须将采样-保持电路的输出电压,按某种近似方式规划到与之相应的离散电平上。


2、啥是编码?


把量化的结果二进制表示出来称为编码。而且,一个n位量化的结果值恰好用一个n位二进制数表示。这个n位二进制数就是ADC转换完成后的输出结果。

说白了就是量化过程,只是把模拟信号按量化单位作了取整处理,只有用代码表示量化后的值,才能得到数字量。当然常用的编码是二进制编码。

当然了编码有两种方式:看下图:




640.png


1.取整时只舍不入,就是说当电压在0-1v的时候电压都是0,1-2v的时候电压都是1,按照这样以此类推。采用这种方法,输入电压总是比输出电压高的,所以产生的量化误差是不可能为负的。

2.取整时有舍有入(也就是四舍五入):也就是0-0.5V取0,0.5-1.5V取1,以此类推后面的都是这样的。从这就看到这里的量化误差是有正有负的。

其实量化说白了及时把模拟信号进行一个取整处理的一个过程


3-转换速度


指从接到转换控制信号开始,到输出端得到稳定的数字输出信号所需要的时间。通常用完成一次A/D转换操作所需时间来表示转换速度。

例如,某ADC的转换时间T为10ms,则该A/D转换器的转换速度为1/T=100次/s。


4-分辨率


分辨率也可以叫做分解度。用来描述刻度划分。常以输出二进制代码的位数来表示分辨率的高低。位数越多,说明量化误差越小,则转换的精度越高。摄像头数字化处理用到的地方多。


640.png

5-量化误差


量化误差是指量化产生的误差,就是上面说的那两种情况。


6-精度


精度指产生一个给定的数字量输出,所需模拟电压的理想值与实际值之间总的误差,其中包括量化误差、零点误差及非线性等产生的误差。用来描述物理量的准确程度。

特别注意一下:精度和分辨率是不一样的。


7-输入模拟电压范围


输入模拟电压范围指ADC允许输入的电压范围。超过这个范围,A/D转换器将不能正常工作。例如 :STM32F429输入电压范围是:单极性0~V_ref。


8-转换时间


转换时间(conversion time)是ADC完成一次A/D转换所需要的时间,是指从启动ADC开始到获得相应数据所需要的总时间。


12.2 STM32F429 ADC的结构

经过上面的内容我们已经对ADC的基本有一个大致的了解。

下面就说说STM32中的ADC。


12.2.1 STM32简介◆


ADC主要结构内容:

12位分辨率

转换结束、注入转换结束和发生模拟看门狗事件时产生中断

单次和连续转换模式

从通道0到通道n的自动扫描模式

自校准

带内嵌数据一致性的数据对齐

采样间隔可以按通道分别编程

规则转换和注入转换均有外部触发选项

间断模式

双重模式(带2个或以上ADC的器件)

ADC转换时间:时钟为56MHz时,ADC最短转换时间为1μs

ADC供电要求:2.4V到3.6V

ADC输入范围:VREF- ≤ VIN ≤ VREF+

规则通道转换期间有DMA请求产生。


STM32F429IGT6带3个ADC控制器:其核心为模拟至数字转换器,它由软件或硬件触发,在ADC时钟ADCLK的驱动下对规则通道或注入通道中的模拟信号进行采样、量化和编码。


1、12 位 ADC 是逐次趋近型模数转换器,可配置为10 位、8 位或 6 位分辨率。

2、多达 19 个复用通道,可测量来自 16 个外部源、两个内部源和VBAT通道的信号。

3、A/D 转换可在单次、连续、扫描或不连续

采样模式下进行。

4、ADC 的结果存储在一个左对齐或右对齐的 16 位数据寄存器中。

5、ADC具有模拟看门狗特性,允许应用检测输入电压是否超过了用户自定义的阈值上限或下限。

6、多种ADC转换触发方式:软件方式、定时器、EXTI 中断线。

7、可触发DMA功能(可看DMA章节)。


ADC内部结构图:

ADC电路走向:

相关文章
|
6月前
|
传感器
STM32标准库ADC和DMA知识点总结-1
STM32标准库ADC和DMA知识点总结
|
4月前
|
传感器 编解码 IDE
STM32CubeMX ADC采集光照和电压
STM32CubeMX ADC采集光照和电压
197 3
|
4月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
167 0
|
6月前
|
存储
STM32--ADC模数转换
STM32--ADC模数转换
119 0
|
6月前
|
传感器 存储 编解码
【STM32基础 CubeMX】ADC的基础使用
【STM32基础 CubeMX】ADC的基础使用
200 0
|
6月前
|
数据采集 存储 传感器
STM32 ADC基础知识讲解
STM32 ADC基础知识讲解
137 0
STM32F0单片机 PWM + ADC 控制有刷电机
STM32F0单片机 PWM + ADC 控制有刷电机
|
传感器 数据采集
STM32(HAL库)通过ADC读取MQ2数据
STM32(HAL库)通过ADC读取MQ2数据