目录
一、ADC硬件组成七大部分:
二、单次转换,连续转换,不连续采样模式,扫描模式区别
1、举例(5种组合情况)
2、模拟看门狗中断的作用:
三、MCU使用ADC步骤
一、ADC硬件组成七大部分:
①输入电压:
(1) ADC 输入范围 VREF–≤VIN≤VREF+
② 输入通道
(1) ADC 的输入通道, ADC1 有 16 个外部通道和 3 个内部通道,而 ADC2和 ADC3 只有有 16 个外部通道。 ADC1 的外部通道是通道 17、通道 18 和通道 19,分别连接到内部温度传感器、内部 Vrefint和 Vbat,具体的外部通道对应的GPIO引脚,要看对应的芯片手册,比如STM32F407的ADC通道:
③ 转换顺序
(1)规则组:每个外部通道,都可以放入规则组的任何序列,由SQR1、 SQR2 和 SQR3 寄存器决定,转换顺序由序列组决定,从小到大,序列组的长度由SQL 寄存器决定。
(2)注入组:
转换顺序由序列组决定,从小到大;但注入组可以中断到规则组先转换。
④ 触发源
(1)软件触发(常用):通过写 ADC_CR2 寄存器的 ADON 这个位来控制,写 1 就开始转换,写 0 就停止转换,
(2)硬件触发:定时器事件,外部中断。
⑤ 转换时间
(1) STM32F407 的 ADC 总转换时间的计算公式如下:
TCONV = 采样时间(至少三个时钟周期) + 12 个周期(逐次逼近型转换决定)
ADC的时钟频率:不高于36M Hz
(2)由于ADC在STM32中是挂载在APB2总线上的,所以ADC得时钟是由PCLK2(72MHz)经过分频得到的。
⑥ 数据寄存器
ADC 转换完成后的数据输出寄存器。根据转换组的不同,规则组的完成转换的数据输出到ADC_DR 寄存器,注入组的完成转换的数据输出到 ADC_JDRx 寄存器:
(1)规则组:16个规则通道共用一个ADC_DR 寄存器保存转换结果,所以多通道转换要用扫描模式,并且要开DMA保存转换结果。
(2)注入组:4个注入通道分别对应四个ADC_JDRx 寄存器保存转换结果。
⑦ 中断
(1)规则和注入组转换结束时能产生中断;
(2)当模拟看门狗状态位被设置时也能产生中断 ;
(3)规则和注入组转换结束时还可以产生 DMA 请求,把转换好的数据存储在内存里面,防止读取不及时数据被覆盖。
二、单次转换,连续转换,不连续采样模式,扫描模式区别
1、举例(5种组合情况)
用ADC1 规则通道的顺序为CH0,CH1,CH2,CH3,
(1) 在单次转换模式下,不启动SCAN模式:
启动ADC1,则
a、开始转换CH0(ADC_SQR的第一通道)
b、转换完成后停止,等待ADC的下一次启动,继续从第一步开始转换
(2) 在单次转换模式下,启动SCAN模式:
启动ADC1,则
a、 开始转换CH0
b、转换完成后自动开始转换CH1
c、转换完成后自动开始转换CH2
d、 转换完成后自动开始转换CH3
e、转换完成后停止,等待ADC的下一次启动下一次ADC启动后从第一步开始转换
(3) 在连续转换模式下,不启动SCAN模式:
启动ADC1,则
a、开始转换CH0(ADC_SQR的第一通道)
b、转换完成后回到第一步,继续转换
(4) 在连续转换模式下,启动SCAN模式下:
启动ADC1,则
a、开始转换CH0
b、转换完成后自动开始转换CH1
c、转换完成后自动开始转换CH2
d、转换完成后自动开始转换CH3
e、转换完成后返回第一步,继续转换
(5)不连续采样模式举例:
规则组:
ADC多通道,必须开启扫描模式,此模式必须搭配DMA功能才能实现ADC的数据处理,注意;另外DMA只能用于ADC的规则序列,不能用于注入序列。
2、模拟看门狗中断的作用:
(1)掉电检测
(2)程序可以基于各通道的转换结果进行合法性或安全性监测,此时使用ADC模拟看门狗功能就很方便。我们可以先让模拟看门狗做第一步把关,只有出现异常数据时才去进一步检查确认。
(3)模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测:
4、多通道扫描模式开启DMA?