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

    文章

    16984

    浏览量

    350251
  • adc
    adc
    +关注

    关注

    98

    文章

    6430

    浏览量

    544056
  • 模拟量
    +关注

    关注

    5

    文章

    491

    浏览量

    25502

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

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

收藏 人收藏

    评论

    相关推荐

    STM32G474如果使用HRTIM A触发ADC,使用ADC的DMA中断接受数据,该怎么处理呢?

    HRTIM A设置comp3作为ADC触发源ADC启动DMA,并使用DMA中断来处理ADC数据和环2路计算。 问题:当开启HRTIMA 的中断和DMA
    发表于 07-18 08:10

    CW32使用DMA单通道、定时器触发ADC实现了多路AD采集

    本测试样例基于CW32F030C8T6MCU,使用DMA单通道、定时器触发ADC实现了12路AD采集。
    的头像 发表于 05-24 09:29 788次阅读
    CW32使用DMA单通道、定时器<b class='flag-5'>触发</b><b class='flag-5'>ADC</b>实现了多路AD采集

    求助,关于ADC触发器的基本问题求解

    我有一些关于 ADC 触发器的问题。 我知道我们可以使用同一个 gtm-adc-trigger 从一个原子定时器触发多个 ADC 组转换。
    发表于 05-20 06:54

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

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

    CS32G020 DAC触发源选择定时器时,无法触发DAC转换?

    */ DAC_ITConfig(DAC_IE_OV, ENABLE); /* NVIC_EnableIRQ(IRQn_ADC)*/ NVIC->NVIC_ISER = 1 <<
    发表于 04-01 14:02

    关于STM32H723 TIM1触发ADC延时问题求解

    STM32H723 ,用TIM1 的update 事件作为trgo2 去触发ADC 注入采样 ,ADC1和ADC2 设置成双通道注入+规则同时采样模式(规则采样没有启动),在updat
    发表于 03-22 07:26

    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

    TOM触发ADC采集,触发延迟时间在哪里改啊?

    TOM触发ADC采集,触发延迟时间在哪里改啊 不想触发立即采集,想上升沿过几微妙采集问题
    发表于 02-04 06:19

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

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

    tc297带外扩adcadc模块可以用硬件触发吗?

    tc297带外扩adcadc模块可以用硬件触发么?
    发表于 01-25 06:22

    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

    STM32ADC中断的使用注意事项和优化建议

    使用中断是提高系统性能和精确度的关键。本文将详细介绍STM32ADC中断的使用注意事项和优化建议。 注意事项: 1. 合理选择中断触发方式:STM32ADC可以通过软件
    的头像 发表于 01-12 15:17 3144次阅读