在STM32家族里,多数系列芯片内含2到3个ADC模块,有的甚至更多,比方G4系列可以有5个ADC模块。其中,通道数因不同的系列或型号多少不等,几个到几十个的都有。有时,我们可能需要多个ADC模块同时工作,比方3个ADC模块同时采样转换。这时如果芯片内含有3个ADC模块,并支持同时采样转换就很方便。STM32家族里的STM32F4系列、STM32F7等其它系列都含有3个ADC模块,并支持同时AD采样转换。
这里就3个ADC模块同时进行采样转换应用,做个简单实现演示,以供有需要的用户参考。
此时3个ADC模块会建立主从关系。以STM32F4芯片为例。内部大致框架如下:
采样转换时按如下图示操作,每次对属于3个AD模块的3个通道进行AD转换。如果多组的话,依次扫描进行。
各通道转换结束时产生DMA请求,DMA按照ADC1、ADC2、ADC3的顺序依次将数据取走,然后放到指定的内存空间。
好,大致原理就介绍这么多。更多细节还是请阅读STM32参考手册的ADC相关章