你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

四个ADC模块同时转换之应用示例

[复制链接]
STMCU-管管 发布时间:2020-5-28 10:26
有人使用STM32F303VC开发电源方面的产品,想使用4个ADC模块进行同时采样转换,感觉不知怎么实现。这里简单介绍下实现过程,以供参考。
$ _  @; N: `) I, R& ?
11.png
  ]4 a0 s% `* i0 _, w2 q
现在希望四个ADC模块同时进行AD转换。我们使用双ADC主从模式,ADC1与ADC2成为一组,构成主从模式。同样,ADC3与ADC4也成为一组构成主从模式。其中,ADC1和ADC3分别为各组中的主,并让两组都工作在同时转换模式,对规则通道进行ADC转换。
3 D' n4 e$ d* h7 ~! m, z7 t6 u
22.png

. d0 L. ]' J/ E# t9 I; l7 w
它们的转换使用同一定时器事件来触发,这里选择TIM4的更新事件来触发所有ADC的转换。如下图所示,主ADC的CH1与从ADC的CH16同时进行转换,主ADC的CH2与从ADC的CH14同时进行转换,就这样依次按照红色箭头方向进行。
. ?- E7 Z0 ?  i2 f3 e) b6 U7 D
33.png

6 X3 n* L( ]* t7 _- [3 M  z
对于工作在主从模式的双ADC的转换结果,可以合并成一个字放在一个公共数据寄存器里ADCx_CDR( x=12 or 34),能被CPU或DMA读取访问。其中高半字存放从ADC的转换结果,低半字存放主ADC的转换结果。【这里各ADC的分辨率选用12位,转换结果采用右对齐方式。】
+ B1 n/ H: W4 N* J, p# V
44.png

* w" W  S, z( i
大致原理就介绍到这里,更多细节还得看STM32参考手册。
现在将4个ADC模块用起来,同时进行ADC转换,通过DMA传输ADC结果。这里只用到规则转换,其中,ADC1使用它的CH1/CH2,ADC2使用它的CH3/CH4, ADC3使用它的CH5/CH6, ADC4使用CH7/CH8。

- k) E0 a$ c0 I4 ]$ r5 m% t" L
55.png

: v' L3 u) d/ X3 ]; D' }
各ADC模块的采样通道连接如下图所示,ADC经定时器事件触发转换。
- [# x4 H+ c0 S, b' J: U
66.png

1 I$ U, O$ H8 @; E3 g
现在基于STM32CubeMx进行初始化配置。
先看TIM4的配置,它的更新事件作为所有ADC的转换触发事件。

' i! D5 a4 V9 A% H( U) W
88.png

! x) d- q" J! i: S! b
然后根据上面的规划,对4个ADC模块进行配置。

% n$ }0 |; n& I" J; T
99.png

, a. g$ v% U8 M/ G7 _
4个ADC的配置除了各自选择的通道不一样外,在上面页面里的配置都相同。定时器触发,工作在双模式同时转换。
因为要对ADC结果实行DMA传输,根据当前所选择的工作模式,这里只需对ADC1和ADC3两个主ADC的转换事件进行DMA配置,如下图所示:
1 {3 k$ G. E1 a( f& s/ D; e+ k
10.png
; b/ X% P% _, N: t  j
我这里将DMA传输配置成循环模式,基于ADC3事件的DMA传输配置跟上面一样,只是DMA通道不同而已。
将时钟等必要的配置完成后即可生成初始化代码。在初始化代码的基础上添加用户代码。
我定义了2个数组pData12[4]、pData34[4]分别存放ADC1/2 与ADC3/4合并后的转换结果。
! P/ \' u; I$ d& f8 L+ D
111.png

# R8 `8 p" E3 c7 B8 y
基于STM32Cube HAL库组织代码,相关参考代码如下:
; z: U' K7 B. N5 z3 K
222.png
1 a( q7 _" P9 y/ X+ ?4 c
代码直观明了,无须过多解释。提醒一点,使用双ADC模式时,从ADC要先于主ADC启动使能。
基于上面的规划与代码,测试结果如下:
) i+ h" p, }: _9 L
333.png

! {1 S1 G6 M. r; z
结果跟实际硬件连接情况完全吻合。
上面只是基于双ADC模块规则通道的同时转换模式做了简单应用介绍。其实对于双ADC模式,还有其它更多转换模式,在STM32开发应用中可以灵活选择使用。
" v; m  }2 O/ O' D  b# z' Z7 l- C2 q2 b% [

3 p5 W( ~5 s# B0 E% d- g
收藏 评论2 发布时间:2020-5-28 10:26

举报

2个回答
w014017 回答时间:2020-5-28 13:52:43
学习
疯de_恒 回答时间:2020-5-28 15:43:18
学习一下。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版