前言:
...
1:简介
12 位 ADC 是一种采用逐次逼近方式的模拟数字转换器。它有 18 个多路复用通道,可以转换来自 16 个外部通道和 2 个内部通道的模拟信号。模拟看门狗允许应用程序来检测输入电压是否超出用户设定的高低阈值。各种通道的 A/D 转换可以配置成单次、连续、扫描或间断转换模式。 ADC 转换的结果可以按照左对齐或右对齐的方式存储在 16 位数据寄存器中。片上的硬件过采样机制可以通过减少来自 MCU 的相关计算负担来提高性能。
2:ADC 主要特征
高性能:
– 可配置12位、 10位、 8位、或者6位分辨率;
– 自校准;
– 可编程采样时间;
– 数据寄存器可配置数据对齐方式;
– 支持规则数据转换的DMA请求。
模拟输入通道:
– 16个外部模拟输入通道;
– 1个内部温度传感通道(VSENSE);
– 1个内部参考电压输入通道(VREFINT)。
转换开始的发起:
– 软件;
– 硬件触发。
转换模式:
– 转换单个通道,或者扫描一序列的通道;
– 单次模式,每次触发转换一次选择的输入通道;
– 连续模式,连续转换所选择的输入通道;
– 间断模式;
– 同步模式(适用于具有两个或多个ADC的设备)。
模拟看门狗。
中断的产生:
– 规则组或注入组转换结束;
– 模拟看门狗事件。
过采样:
– 16位的数据寄存器;
– 可调整的过采样率,从2x到256x;
– 高达8位的可编程数据移位。
ADC供电要求: 2.6V到3.6V,一般电源电压为3.3V。
ADC输入范围: VREFN ≤VIN ≤VREFP。
3:ADC 硬件结构
以上是ADC的程序框图
ADC 的硬件结构,有来自GPIO的输入(16个外部模拟输入通道),有来自外部采集温度输入,以及参考电压输入,AD模拟数字转换器内含规则组与注入组,含触发方式有软件触发,硬件触发,定时器触发等,规则组可以理解为程序的主流程,注入组可以理解为程序里面的中断,注入组可以打断规则组的执行直到执行完成以后才会继续执行规则组的内容,转换完成后执行的结果会放在AD数据寄存器中,规则组16个通道共用一个数据寄存器,注入组:对应有4个数据寄存器,转换完成后设置EOC中断标志位,产生EOC中断,时钟的频率是40MHz,中断输出控制需要使能,NVIC也要打开相关的中断才能正常使能。
4:外部模拟输入通道IO口
5:ADC 转换模式
转换模式中的单次转换和连续转换:单次转换表示的含义是,每次转换都需要一次外部出发,同时设置EOC标志位,连续模式表示的含义是:开始转换时只需要外部触发一次,后续的转换会自己连续的触发,这里采用的是非扫描的模式。
扫描模式:主要针对某个ADC使用多个还是单个
单次转换扫描模式,单次转换连续模式,需要配合DMA进行使用,因为存储的数据寄存器只有1个
如果不使用DMA进行数据转运会导致后面一次转换的数据覆盖前面一次转换的数据,造成数据丢
失。
同步模式:针对ADC多个同时触发的场景,交替触发等,相互之间配合使用
6:数据对齐
数据的对齐方式有,数据左对齐,数据右对齐
数据右对齐就是高位补0
数据左对齐就是低位补0