主要特性(CH32FV2x_V3x) 系列:
l 12 位分辨率
l 支持 16 个外部通道和 2 个内部信号源采样
l 多通道的多种采样转换方式:单次、连续、扫描、触发、间断等
l 数据对齐模式:左对齐、右对齐
l 采样时间可按通道分别编程
l 规则转换和注入转换均支持外部触发
l 模拟看门狗监测通道电压,自校准功能
l 双重模式
l ADC 通道输入范围:0≤VIN≤VDDA
l 输入增益可调,可实现小信号放大采样
(1)标号 1:输入通道
STM32 的 ADC 的输入通道多达 18 个,其中外部的 16 个通道就是框图中的 ADCx_IN0----ADCx_IN5(电压范围2.4-3.6),通过这 16 个外部通道可以采集模拟信号。这 16 个通道对应着不同的 IO 口, 具体是哪一个IO 口可以从数据手册查询到,ADC1 的通道 16 连接到了芯片内部的温度传感器,通道 17 连接到了内部参考电压 VREFINT
(2)标号 2:电压输入引脚
ADC 输入电压范围为: VREF- ≤ VIN ≤ VREF+。由 VREF-、 VREF+ 、VDDA 、 VSSA 这四个外部引脚决定。通常我们把 VSSA 和 VREF-接地,把 VREF+和 VDDA 接 3.3V,因此 ADC 的输入电压范围为:0-3.3V。我们使用的开发板 ADC输入电压范围为 0-3.3V。如果我们想让 ADC 测试负电压或者更高的正电压,可以在外部加一个电压调理电路,把需要转换的电压抬升或者降压到 0-3.3V,这样 ADC 就可以测量了。但一定不要直接将高于 3.3V 的电压接到 ADC 管脚上,那样将可能烧坏芯片。
(3)标号 3:中断
当发生如下事件且使能相应中断标志位时,ADC 能产生中断。
1.转换结束(规则转换)与注入转换结束
数据转换结束后,如果使能中断转换结束标志位,转换一结束就会产生转换结束中断。
2.看门狗中断
当被 ADC 转换的模拟电压低于低阈值或者高于高阈值时,就会产生中断,前提是我们开启了模拟看门狗中断,其中低阈值和高阈值由ADCx_WDLTR和ADCx_WDHTR设置
(4)标号 4:数据寄存器
ADC 转换后的数据根据转换组的不同,规则组的数据放在 ADCx_RDATAR寄存器内,注入组的数据放在ADCx_RDATAR。
在规则组中,含有 16 路通道,但是对应着存放规则数据的寄存器只有 1 个,如果使用多通道转换,那么转换后的数据就全部放在同一个寄存器内,前一个时间点转换的通道数据,就会被下一个时间点的另外一个通道转换的数据覆盖掉,所以当通道转换完成后就应该把数据取走,那么怎么避免呢, 最常用的做法就是开启 DMA 传输(具体参考我们EVT中的ADC-DMA例程)。如果不使用 DMA 传输,也可通过 ADC 状态寄存器获取当前 ADC 转换的进度状态,进而进行程序控制。
(5)标号5:PGA
当采样信号幅值很小时,可使能此位,放大挡位1,4,16,64可调,具体参考ADC控制寄存器1(ADCx_CTLR1)27-28位,注意使用同时需开启第26位的buffer。
(6)标号 6:触发源
ADC 支持外部事件触发转换,如可以通过设置 ADC 控制寄存器2来控制触发极性,可以有 4 种状态,分别是:禁止触发检测、上升沿检测、下降沿检测以及上升沿和下降沿均检测。
|