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

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

3天内不再提示

ADC触发源的原理介绍

硬件攻城狮 来源:硬件攻城狮 作者:硬件攻城狮 2022-12-09 14:24 次阅读

1.引言

STM32 MCU 中,ADC 有多种启动触发方式,本文对各种触发源的原理进行介绍,方便大家以后如何选择合适的触发源。

2. ADC 的架构与触发源

以 STM32G474 为例,ADC 模块的架构框图如下,基于逐次逼近原理(SAR)完成模拟量到数字量的转换。前端通过多通道选择开关(input selection)来对转换通道进行切换,从而实现对多个输入通道的信号进行采样。

ADC 模块的信道可以工作在规则模式或是注入模式下,对应的触发源分别为规则触发源与注入触发源。所有规则通道共享一个 ADC 结果寄存器,一个通道转换完成后需要及时读取转换结果,否则转换结果可能会被覆盖,具体取决于 overrun 的相关设置。

f5d02840-7779-11ed-8abf-dac502259ad0.png

2.1. 各类触发源工作方式

ADC 的触发源整体上可以分为两类:软件触发与硬件触发。如下面两个表所示,EXTEN[1 :0]与 JEXTEN[1 :0]分别用于设定规则信道和注入信道的触发方式,当其值为 0 时,触发

方式为软件触发,否则为硬件触发。

f62114ee-7779-11ed-8abf-dac502259ad0.png

如果选择软件触发,那么当 ADSTART 或 JADSTART 被置位时,ADC 会立即启动转换。如果选择硬件触发,那么当 ADSTART 或 JADSTART 被置位后,要等待指定的外部事件发生时,ADC 才会启动转换。

对于硬件触发即外部事件触发来说,有多达 32 种外部事件可以选择,这些触发源大致可以分为以下四类,具体可以参考 RM 中关于adc_ext_trgx 和 adc_jext_trgx 的描述。

定时器的比较/捕获事件

• 定时器的触发输出 TRGO/TRGO2

高精度定时器的 ADC 触发

• 外部输入管脚

一个 ADC 单元可以选择多个硬件触发源,多个硬件触发源之间为“OR”的关系,即任何一个被选定的外部事件发生都可以触发 ADC 启动转换。

下面对几类触发源的工作方式进行介绍。

2.1.1. 定时器的比较/捕获事件

选用定时器的比较/捕获事件来触发 ADC 时,比如 TIM1_CC1,首先需要说明是虽从文档的描述来看比较事件与捕获事件都可以用来触发 ADC,但是实际中捕获事件是不能用来触发 ADC 的,只能使用比较事件,且需要结合触发源的上升沿与下降沿(见上表中的说明)的设置来设置TIM_CC1 的电平在比较事件点动作方式。比如设置通道电平在比较事件点由低电平变为高电平,即上升沿,那么在 ADC 触发源的沿选择上也需要选择上升沿,这样才能保证在正确的位置触发ADC 启动转换。

2.1.2. 定时器的触发输出 TRGO/TRGO2

TRGO 或是 TRGO2 来自于定时器的触发输出,可以选择的触发方式也比较多,如下 TRGO2

的选择项:

f64cb22a-7779-11ed-8abf-dac502259ad0.png

定时器的 Reset 事件、Enable 事件、Update 事件以及和 Compare 相关的事件都可以用来做TRGO2。这里以 TRGO2 为例对相关的事件进行简单说明。

• Reset/Enable/Update :定时器 Reset/Enable/Update 事件作为 TRGO2 输出,并触发ADC 转换,选择这几个事件时,可以忽略 ADC 触发源的沿方式的选择。

• Compare pulse:通道的捕获事件或是比较事件作为 TRGO2 输出,触发 ADC 转换,在up-down counting(Center-aligned mode)模式下,可以通过设定 CMS 位的值来确定比较事件是发生在向上计数阶段还是向下计数阶段,或是向上/向下都产生,此种方式下可以忽略ADC 触发源的沿方式的选择。

• Compare - tim_ocxrefc :定时器通道输出信号作为 TRGO2 输出,触发 ADC 转换,此种方式下,需要结合信道输出波形参考的沿与 ADC 触发源的沿方式来确定最终的 ADC 触发点。

• Compare Pulse - tim_ocxrefc:定时器通道输出波形参考指定的沿作为 TRGO2 输出,触发 ADC 转化,此种方式下可以忽略 ADC 触发源的沿方式的选择。

2.1.3. 高精度定时器的 ADC 触发

在高精度定时器中,包含了 10 个 ADC 触发输出,ADC Trigger 1 ~10,每个触发输出可以有多达 32 个触发事件可以选择。对于 ADC Trigger 1~4,可以同时选择多个触发事件(最多 32),多个触发事件之间为“OR”的关系,其中任意一个事件发生,都将产生 ADC 触发输出;对于 ADC Trigger 5~10,则只能选择其 32 个触发事件中的一个来产生触发输出。

另外,可以对高精度定时器中的 ADC 触发输出进行分频。高精度定时器的频率可以上 G,但是很多情况下 ADC 的采样速率并不需要那么高,通过对 ADC 触发输出进行分频可以降低 ADC 的采样速率,实现多个定时器周期才触发一次 ADC 采样。

选择高精度定时器的 ADC 触发方式时,可以忽略 ADC 触发源的沿方式的选择。

f68154a8-7779-11ed-8abf-dac502259ad0.jpg

2.1.4. 外部输入管脚(EXIT LINE)

当选择的 EXIT LINE 对应的管脚电平出现上升沿或是下降沿时触发 ADC 转换,通过这种方式将 ADC 触发信号与 MCU 外部的信号关联起来,灵活的控制 ADC 转换。

该方式下需要对 ADC 触发源的沿方式的选择,以确定具体的触发时刻是发生在信号的上升沿或是下降沿。

小结

这里对 ADC 的架构进行了简单的介绍,重点说明了 ADC 的各种触发源和工作原理以及在实际选择中需要注意的事项。

审核编辑 :李倩

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

    关注

    146

    文章

    16018

    浏览量

    343637
  • adc
    adc
    +关注

    关注

    95

    文章

    5651

    浏览量

    539481
  • 模拟量
    +关注

    关注

    5

    文章

    437

    浏览量

    25074

原文标题:ADC 触发源的原理介绍

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    采用同一个触发源和双重采样有什么区别?有什么好处呢?

    采用同一个触发源和双重采样有什么区别?有什么好处?假如两个通道采样,一个方式是采用双重采样,宁外一个方式两个ADC均独立模式但是采用同一个触发源,这样出来的的结果一样,这两种方式有啥区别?
    发表于 04-10 06:29

    STM32F334如何才能配置不同的通道有独自的触发源

    我现在想尝试用STM32F334来制作三相PFC,需要采集每一相的电感电流,采样时间都是在开关周期的中点进行采样,还要同时对每一相的电压进行采样,六路采样每个都是不同的触发源,我看STM32这种基于序列的触发做起来只能使用软件实现,如果不使用软件的话请问如何才能配置出类似
    发表于 03-19 08:06

    DMA Request不是DMA的触发源吗?为什么没反应?

    这个DMA Request不是DMA的触发源吗,我想在TIM执行完一个周期后,DMA再行将数据写入CCR寄存器,那不是应该选择TIM_UP的DMA触发源吗,为什么没反应,反而选择TIM_CH1为触发源是正常的
    发表于 03-12 08:17

    gd32f130代码写好ADC后,运行发现ADC的各个寄存器值没有改变,后续循环判断eoc的位也没有置1

    _REGULAR_CHANNEL,ENABLE); //adc外部触发源CTL1的17 18 19 位是设置触发源 全1为软件触发 adc
    发表于 03-05 16:34

    如何使用GTM_TIM (TIM_EXT_CAPTURE) 作为触发源在SOMP模式下触发GTM_ATOM频道?

    我正在使用 TC3XX 系列,我想知道如何使用 GTM_TIM (TIM_EXT_CAPTURE) 作为触发源在 SOMP 模式下触发 GTM_ATOM 频道?是否需要连接到端口引脚(TIM 输入
    发表于 01-29 08:13

    XMC7200 ADC触发器输入和触发通道输入有什么区别吗?

    我正在尝试编写一个用于从 PWM 通道触发 ADC 通道转换的应用程序。 ADC trigger options in Device Configurator设备配置器中的 ADC
    发表于 01-24 07:53

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

    快速了解STM32的ADC功能,从入门到精通 1.关于ADC输入通道与GPIO口的输入关系需要查看STM32芯片手册(p31)而非数据手册。 2.外部触发源指的是触发
    发表于 01-15 09:16

    在AT32微控制器上通过同一触发源触发3个ADC转换的方法

    AT32 3ADC simultaneous trigger介绍了在AT32微控制器上通过同一触发源触发3个ADC转换的方法,实现在任意时刻
    发表于 10-23 07:35

    同时触发ADC1 ADC2 ADC3方法

    同时触发ADC1 ADC2 ADC3方法
    发表于 10-19 06:24

    华芯微特MCU之TIMER触发ADC

    华芯微特MCU之TIMER触发ADC
    的头像 发表于 09-27 16:21 477次阅读
    华芯微特MCU之TIMER<b class='flag-5'>触发</b><b class='flag-5'>ADC</b>

    STM32G4中ADC触发分频的实现方式

    电子发烧友网站提供《STM32G4中ADC触发分频的实现方式.pdf》资料免费下载
    发表于 09-19 16:38 5次下载
    STM32G4中<b class='flag-5'>ADC</b><b class='flag-5'>触发</b>分频的实现方式

    雅特力AT32F425 ADC使用指南

    多种模式,不同模式可组合使用满足多种应用不同优先权的通道,普通通道与抢占通道具备不同的优先权多种独立的触发源,包括TMR、EXINT、软触发等多种触发选择数据后级
    的头像 发表于 09-14 08:17 871次阅读
    雅特力AT32F425 <b class='flag-5'>ADC</b>使用指南

    如何使用PWM触发ADC和PWM刹车功能来阻止PWM输出

    应用程序:本文件描述如何使用 PWM 触发 ADC 和 PWM 刹车功能来阻止 PWM 输出 。 BSP 版本:Mini51DE系列 BSP CMISIS V3.02.000 硬件
    发表于 08-23 07:31

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

    本章教程主要在第三十章教程基础上进行,通过定时器3的TRGO事件触发启动ADC转换。 1、ADC简介及相关函数介绍关于FLASH编程,本次所使用的库函数数中工具体函数如下:
    发表于 05-10 16:21

    求助,S32K144 DMAMUX触发源没有TRGMUX,如何使用TRGMUX_IN0触发DMA传输?

    我想通过引脚触发 DMA 传输,但没有 TRGMUX 的 DMAMUX 触发源。 如何使用 TRGMUX_IN0 触发 DMA 传输?
    发表于 05-04 08:19