0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

双ADC模块规则通道同时转换的应用介绍

牵手一起梦 来源:ST MCU 信息交流 作者:佚名 2020-06-03 15:30 次阅读

有人使用STM32F303VC开发电源方面的产品,想使用4个ADC模块进行同时采样转换,感觉不知怎么实现。这里简单介绍下实现过程,以供参考。

双ADC模块规则通道同时转换的应用介绍

现在希望四个ADC模块同时进行AD转换。我们使用双ADC主从模式,ADC1与ADC2成为一组,构成主从模式。同样,ADC3与ADC4也成为一组构成主从模式。其中,ADC1和ADC3分别为各组中的主,并让两组都工作在同时转换模式,对规则通道进行ADC转换。

双ADC模块规则通道同时转换的应用介绍

它们的转换使用同一定时器事件来触发,这里选择TIM4的更新事件来触发所有ADC的转换。如下图所示,主ADC的CH1与从ADC的CH16同时进行转换,主ADC的CH2与从ADC的CH14同时进行转换,就这样依次按照红色箭头方向进行。

双ADC模块规则通道同时转换的应用介绍

对于工作在主从模式的双ADC的转换结果,可以合并成一个字放在一个公共数据寄存器里ADCx_CDR( x=12 or 34),能被CPUDMA读取访问。其中高半字存放从ADC的转换结果,低半字存放主ADC的转换结果。【这里各ADC的分辨率选用12位,转换结果采用右对齐方式。】

双ADC模块规则通道同时转换的应用介绍

大致原理就介绍到这里,更多细节还得看STM32参考手册。

现在将4个ADC模块用起来,同时进行ADC转换,通过DMA传输ADC结果。这里只用到规则转换,其中,ADC1使用它的CH1/CH2,ADC2使用它的CH3/CH4, ADC3使用它的CH5/CH6, ADC4使用CH7/CH8。

双ADC模块规则通道同时转换的应用介绍

各ADC模块的采样通道连接如下图所示,ADC经定时器事件触发转换。

双ADC模块规则通道同时转换的应用介绍

现在基于STM32CubeMx进行初始化配置。

先看TIM4的配置,它的更新事件作为所有ADC的转换触发事件。

双ADC模块规则通道同时转换的应用介绍

然后根据上面的规划,对4个ADC模块进行配置。

双ADC模块规则通道同时转换的应用介绍

4个ADC的配置除了各自选择的通道不一样外,在上面页面里的配置都相同。定时器触发,工作在双模式同时转换。

因为要对ADC结果实行DMA传输,根据当前所选择的工作模式,这里只需对ADC1和ADC3两个主ADC的转换事件进行DMA配置,如下图所示:

双ADC模块规则通道同时转换的应用介绍

我这里将DMA传输配置成循环模式,基于ADC3事件的DMA传输配置跟上面一样,只是DMA通道不同而已。

时钟等必要的配置完成后即可生成初始化代码。在初始化代码的基础上添加用户代码。

我定义了2个数组pData12[4]、pData34[4]分别存放ADC1/2 与ADC3/4合并后的转换结果。

双ADC模块规则通道同时转换的应用介绍

基于STM32Cube HAL库组织代码,相关参考代码如下:

双ADC模块规则通道同时转换的应用介绍

代码直观明了,无须过多解释。提醒一点,使用双ADC模式时,从ADC要先于主ADC启动使能。

基于上面的规划与代码,测试结果如下:

双ADC模块规则通道同时转换的应用介绍

结果跟实际硬件连接情况完全吻合。

上面只是基于双ADC模块规则通道的同时转换模式做了简单应用介绍。其实对于双ADC模式,还有其它更多转换模式,在STM32开发应用中可以灵活选择使用。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    182

    文章

    16552

    浏览量

    244694
  • adc
    adc
    +关注

    关注

    95

    文章

    5650

    浏览量

    539440
  • 产品
    +关注

    关注

    0

    文章

    84

    浏览量

    23210
收藏 人收藏

    评论

    相关推荐

    stm32f103ADC同步规则模式两个ADC转换通道数量能不一样吗?

    stm32f103rct6,配置成双ADC同步规则模式时,主ADC1、从ADC2,因为需要总共采集9路通道,便配置成
    发表于 04-10 06:21

    请问STM32G4的ADC1,ADC2,ADC3,ADC4可以同时工作在独立模式吗?

    咨询下各位: STM32G4的ADC1,ADC2,ADC3,ADC4可以同时工作在独立模式吗?每个ADC
    发表于 04-10 06:01

    STM32F4 ADC采集数据不匹配是什么原因造成的?如何解决?

    通过STM32F4 进行同步规则AD采集,设置ADC1,ADC2各2路通道,一共4路通道进行A
    发表于 04-02 08:21

    ChirpIoT远距离无线模块规格书

    电子发烧友网站提供《ChirpIoT远距离无线模块规格书.pdf》资料免费下载
    发表于 03-05 09:55 1次下载

    快速了解STM32的ADC功能,从入门到精通

    当我们使用一个ADC要采集多个通道时,单独规则组由于只使用了一个数据寄存器,并且是整个组转换完后才会触发中断,因此数据会覆盖,这种情况下需要使用DMA方法(后面采用试试),这时数据写到
    发表于 01-15 09:16

    需要让AD7176-2读取4个模拟通道的数据,如何不影响ADC对0通道进行的AD转换

    ADC进行通道选择,还是使用ADC的自动循环读取模式,ADC都必须等待当前通道转换完成后,才可以
    发表于 12-18 07:26

    MSP430的ADC可以支持几个通道转换

    MSP430的ADC可以支持几个通道转换
    发表于 10-11 08:08

    STM32L15x模数转换ADC

    ) ADC输入范围 VREF- ≤ VIN ≤ VREF+ 多达26路输入通道: 24路外部通道 2路内部通道连接到 : 温度传感器 内部参考电压VREFINT = 1.22V
    发表于 09-13 07:43

    STM32L4模数转换模块(ADC)介绍

    设计 •消耗线性与转化率:200µA/MSps •ADC速度独立于CPU频率(时钟架构) •ADC转换时间: •快速通道:高达5.3Ms/
    发表于 09-11 07:04

    RA6T2的16位模数转换器操作 [6] 配置RA6T2 ADC模块 (3)

    2 配置RA6T2 ADC模块 2.1 ADC规范 2.1.6 扫描模式 扫描操作是指按顺序对模拟通道进行A/D转换的操作。扫描操作有3种扫
    的头像 发表于 07-28 12:15 393次阅读
    RA6T2的16位模数<b class='flag-5'>转换</b>器操作 [6] 配置RA6T2 <b class='flag-5'>ADC</b><b class='flag-5'>模块</b> (3)

    瑞萨单片机RA6T2的16位模数转换器操作 [5] 配置RA6T2 ADC模块 (2)

    2 配置RA6T2 ADC模块 2.1 ADC规范 2.1.4 模拟输入模式 ADC外设支持以下数量的单端输入和差分输入: • A/D转换
    的头像 发表于 07-26 12:10 810次阅读

    请问M451 ADC如何设置多通道依次转换

    M451,ADC如何设置多通道依次转换?比如我想让ADC_CH0,ADC_CH1,ADC_CH5
    发表于 06-26 06:52

    M451系列ADC如何设置多通道连续转换

    M451系列,ADC如何设置多通道连续转换?有手册吗?
    发表于 06-25 09:40

    如何通过中断配置ADC通道0的2个ADC通道以及ADC通道12?

    嗨,我需要通过基于中断配置 adc 通道 0 和 adc 通道 12 的 2 个 adc 通道
    发表于 05-30 06:16

    CH32V103基础教程90-ADC-DMA-TIM3触发ADC转换

    的配置决定规则组和注册组的外部事件源。本章教学主要通过定时器3的TRGO事件触发启动ADC转换。关于ADC介绍,在前面章节已经
    发表于 05-10 16:21