一、概述
1、ADC介绍
2、ADC的原理框图
3、ADC的转换模式
4、相关寄存器
1.1 ADC介绍
ADC :Analog to Digital Converter 模拟数字转换器。本质就是将一些生活中的难以准确描述的物理量转化为可以准确描述的数字量。
常见的ADC转换:声音大小,温度,湿度,光强,紫外线。
ADC分类:1)积分型;2)逐次逼近型;
1.1.1 STM32的ADC
STM32的ADC是12 位 ADC 是逐次趋近型模数转换器。它具有多达 19 个复用通道,可测量来自 16 个外部源、两个内部源和 VBAT 通道的信号。这些通道的 A/D 转换可在单次、连续、扫描或不连续采样模式下进行。
1.1.2 特性
● 可配置 12 位、 10 位、 8 位或 6 位分辨率
● 在转换结束、注入转换结束以及发生模拟看门狗或溢出事件时产生中断
● 单次和连续转换模式
● 用于自动将通道 0 转换为通道“ n”的扫描模式
● 数据对齐以保持内置数据一致性
● 可独立设置各通道采样时间
● 外部触发器选项,可为规则转换和注入转换配置极性
● 不连续采样模式
● 双重/三重模式(具有 2 个或更多 ADC 的器件提供)
● 双重/三重 ADC 模式下可配置的 DMA 数据存储
● 双重/三重交替模式下可配置的转换间延迟
● ADC 转换类型(参见数据手册)
● ADC 电源要求:全速运行时为 2.4 V 到 3.6 V,慢速运行时为 1.8 V
● ADC 输入范围: VREF- < VIN < VREF+
● 规则通道转换期间可产生 DMA 请求
1.2 ADC的原理框图
1.1 ADC的转换模式
每个ADC有19个复用通道,编号0~18 。
每个ADC还有两种转换序列:规则序列和注入序列。
每种序列的转换方式:连续和单次,扫描和不扫描。
扫描模式又分:连续采样和不连续采样。
1.1.1 序列配置
序列:顺序,排列。对模数转换的复用通道进行排列。
规则序列:最大长度为16,这个长度为16的序列可以根据需要任意配置。可以编号颠倒,重复。
注入序列:最大长度为4,这个长度为4的序列可以根据需要任意配置。可以编号颠倒,重复。
1.1.1 单次和连续 && 扫描
对于注入或者规则通道都适用。并且互相独立。
扫描: 逐个转换序列当中的每一个通道
不扫描: 只转换序列当中的第一个通道
单次&&连续:对序列进行一次或者多次转换。
单次不扫描:对序列的第一个通道进行一次模数转换,然后模数转换器停止工作。
转换通道9,结束。
单次扫描: 对序列的每一个通道都进行一次模数转换,然后模数转换器停止工作。
转换通道9,2,7,0,0,2 ;结束。
连续不扫描:对序列的第一个通道一直连续进行模数转换。
一直转换通道9。
连续扫描: 对序列的每一个通道都进行一次模数转换,然后重复。
转换通道9,2,7,0,0,2 ;1次。
转换通道9,2,7,0,0,2 ;2次。
......一直重复。
1.1.1 连续采样和不连续采样
都是指扫描模式下两种工作方式。
连续采样: 只用触发一次AD转换,扫描模式就会将序列的所有的通道全部进行一次AD转换。
不连续采样:每次触发只转换序列的部分通道,下次触发转换还没有被转换。
其中n为每次触发转换的通道数,可以使用ADC_CR1 寄存器中的 DISCNUM[2:0] 位进行编程。
n = 3,要转换的通道 = 0、 1、 2、 3、 6、 7、 9、 10
第 1 次触发:转换序列 0、 1、 2
第 2 次触发:转换序列 3、 6、 7
第 3 次触发:转换序列 9、 10 并生成 EOC 事件
第 4 次触发:转换序列 0、 1、 2