1. 什么是ADC
生活中我们经常会用到ADC这种器件,比如说,当我们在使用手机进行语音通信时,ADC器件会将我们的声信号转换为电信号 (模拟信号 ---> 数字信号)
模拟信号:
模拟信号是指用连续变化的物理量表示的信息,其信号的幅度、频率、相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号
数字信号:数字信号指自变量是离散的、因变量也是离散的信号,这种信号的自变量用整数表示,因变量用有限数字中的一个数字来表示。在计算机中,数字信号的大小常用有限位的二进制数表示
自然界中大部分信号都是模拟的,比如说:温度、压力、声音、速度等等,这些信号容易受噪声干扰且不易存储,而数字信号则没有这两种缺点,因此我们使用ADC器件以便于我们处理和存储这些模拟信号
将模拟信号转化为数字信号一般包括三个步骤:抽样、量化和编码
抽样(采样):是在发送端将模拟信号转换为离散信号的过程采样定理:在进行模拟/数字信号的转换过程中,当采样频率大于信号中最高频率的2倍时,采样之后的数字信号就能完整地保留原始信号中的信息
远远高于信号带宽两倍或其最高频率对其进行采样的过程,又叫做过采样
采样的目的:为了利用有限的采用率,无失真的还原出原有声音信号的样子
量化:抽样信号在各抽样时刻的幅度反映了模拟信号的幅度变化,因此仍然是连续的,必须在编码之前,将幅度抽样值用预先规定的有限个取值来表示
编码:所谓编码就是将量化器输出量化信号在各离散时刻的取值用指定位数的二进制代码表示,从而得到数字信号
ADC的作用:采集传感器数据,测量输入电压,检查电池电量剩余,检测温度 ......
2. ADC0809模块的工作原理
在早期单片机性能相对较弱时,单片机内部并没有ADC外设往往需要外接ADC模块进行ADC采集
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近组成
1. 引脚介绍
3. stm32 ADC外设
STM32F407有3个ADC,每个ADC有16个通道,下表为ADC通道对应的引脚,使用哪个通道就用杜邦线将对应的引脚与模拟输入连接起来
1. 分辨率:
分辨率表示精度,位数越高精度越高,同时也表示最小可检测电压变化。例如12位分辨率,即ADC输出数据范围为0—4095
2. ADC输入ADCx_IN0—ADCx_IN15 + 温度传感器 + VREFINT + VABT
3. 测量范围参考电压:即测量范围,VREF- — VREF+
由原理图可知:VDDA = 3.3v VSSA = GND,即ADC测量电压测量范围为0-3.3V
4. 转换通道通道选择:选择由哪个通道对外部输入进行转换
规则通道:可以按照设置的转换顺序进行转换的通道。一个规则转换组最多由 16 个转换构成
注入通道:
可以“插队”,也就是说,注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才可以继续转换。一个注入转换组最多由 4 个转换构成
不同于ADC0809模块只能从8个通道中选择一个进行转换,stm32可以同时选择多个通道进行转换5. 转换顺序
转换顺序选择:转换顺序即为通道中对应输入的顺序,配置方式如下:
6. 启动转换触发信号:即开始ADC采集信号
配置了转换通道以及转换顺序之后,便可以开始转换了。ADC触发转换的有很多种方式:软件触发:ADC 转换可以由 ADC 控制寄存器2(ADC_CR2) 的 ADON 这个位来控制,写 1 的时候开始转换,写 0 的时候停止转换;
外部事件触发:可分为内部定时器触发和外部IO触发
内部定时器触发:外部IO触发:
数据转换:STM32 AD转换模块
7. 转换时间
8. 转换方式转换方式:STM32 对于通道内转换序列的转换方式包括连续\单次,扫描\非扫描
单次模式:转换一次后,就停止转换
连续模式:转换一次后,接着进行下一次转换,不断连续
扫描模式:对于对通道的转换按设置顺序依次转换
非扫描模式:对于对通道的转换按设置顺序依次转换,但是每个序列转换需要
因此按照上述模式,总共有四种转换方式:
单次转换非扫描模式
连续转换非扫描模式
单次转换扫描模式
连续转换扫描模式