目录
STM32 ADC电压采集
前言
本文包括了模数转换器ADC的应用原理以及在STM32中ADC外设的介绍。
如果想要了解STM32中ADC外设的具体应用可参考:
ADC电压采集(基于STM32hal库)(保姆级应用)_竹烟淮雨的博客-优快云博客
如果想要了解ADC在嵌入式实时操作系统RTOS中的应用,可参考:
RTT(RT-Thread)ADC设备(保姆级)_竹烟淮雨的博客-优快云博客
ADC介绍

这是一个典型的嵌入式闭环控制系统框图,在这个系统中将模拟量转化为数字量的过程称之为模数转换,而完成这一转换的器件叫做模数转换器(A/D转换器,简称ADC)。将数字量转换为模拟量的过程称之为数模转换,与之对应的器件叫做数模转换器(D/A转换器,简称DAC)。从图中我们可以看到只要和CPU(嵌入式控制系统)打交道的一定是数字量,而和被控制对象相关的一定是非电量(它可能是温度、也可能是某个电机的速度等等)。
模拟量与数字量之间的通信就需要使用AD转换与DA转换。

模拟信号的采集与处理过程如上图所示,就是传感器的信号通过运放进行放大,然后经过模拟开关采样,最后通过ADC转换成数字量给单片机的IO口,在微处理器进行数字信号的处理。
采集系统主要是由模拟信号的采集、AD转换、数字信号处理三个部分组成。

ADC的原理:ADC转换主要包含两个内容,一是采样保持,再一个是量化编码成数字量给单片机去使用。
采用保持是指:单片机的ADC外设进行读取时,需要信号保持一会儿,才能完成量化编码的工作。图中所示ADC采样器将连续的模拟信号变成离散的信号,然后给单片机去使用,最后转换成数字量,这就是AD转换的核心。
量化编码分为多种算法,我们只需要知道STM32的ADC外设采用的是逐次比较型进行量化。

STM32的ADC外设是传统的LPCM型ADC,我们在使用中主要关心的参数有以下五个
- 分辨率:很多我们时候我们说一个N位的AD转换器它的分辨率就是N,一般的STM32 AD转换器至少支持到了12位。假设最大的输入电压是5V,那么它所能分辨的最小电压量为5/2^12。一个转换器的位数越多,那么它能够分辨的最小模拟电压值就越小。但ADC的测量结果是经过运算器放大的,传感器如果精度不够,往往得到的数据误差也会被放大,一个12bit的ADC,它可能只有前10位才是有效值,这就引出了第二个参数:相对精度
- 相对精度:AD转换器实际输出数字量与理论值之间的最大的差值就称之为相对精度
- 转换速度:AD转换器完成一次转换所需要的时间,STM32所使用的逐次比较型ADC外设一般是微妙级别的转换速度
- 采样间隔时间(采样速率):不同于转换速率,采样速率也就是间隔转换时间,指的是两次转换的间隔时间。为了保证采样的正确完成,采样速率必须小于或者等于转换速率。可以说转换速率是最大的采样速率,因此我们习惯将转换速率在数值上设置等同于采样速率
- 采样的电压范围:STM32一般为0-3.3V
一旦谈到AD采样,在大学教材里都会提到拉科斯特采样定理与香农定理,但就STM32外设的使用而言,我们不需要关心它,除非打算还原波形。

STM32 ADC外设介绍
以STM32F407ZGT6为例
它拥有3个分辨率为12bit,最大转换速率为2.4M,有24个通道,三个ADC交替采集同一个通道可以达到的最大转换速率为7.2M。其中SPS指的是转换速率,表示1S内完成模拟量转换为数字量的次数,所以单次转换时间为1/24000000

本文详细介绍了STM32中的ADC外设,包括其工作原理、主要特性(如分辨率、转换速度、中断和DMA请求)、配置参数(如扫描模式、连续转换、数据对齐和通道数量)以及ADC初始化过程。重点讲解了模数转换和模拟信号处理流程。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



