stm32定时器:什么是 Timer Trigger Output Event
目录
核心概念
为什么需要它?—— 解决的问题
TRGO可以触发哪些外设?
如何配置TRGO?—— 触发事件的选择
与“从模式”和“触发输入”的区别
总结
核心概念
Timer Trigger Output Event(定时器触发输出事件),通常简称为 TRGO,是STM32高级定时器(如TIM1, TIM8)和通用定时器(如TIM2-TIM5)的一个输出信号。
你可以把它想象成定时器的一个 “硬件通知信号”。当定时器内部发生某个特定的事件(例如计数器溢出、更新、捕获比较匹配等)时,它会通过TRGO引脚(这是一个内部、虚拟的连接,并非物理引脚)向其他外设发送一个脉冲信号。
这个“通知”的目的是触发另一个外设开始执行某个操作。
为什么需要它?—— 解决的问题
在没有这个功能的情况下,如果我们想让定时器控制另一个外设(比如ADC),我们通常需要:
-
在定时器中断中设置一个标志位。
-
CPU检测到这个标志位。
-
CPU执行中断服务程序,在程序中用软件命令去启动ADC。
这个过程存在延迟(中断响应时间)和CPU开销。
而使用TRGO功能,整个过程完全在硬件层面自动完成:
-
定时器事件(如更新事件)发生。
-
定时器立即、无延迟地发出一个TRGO信号。
-
ADC硬件收到这个TRGO信号后,自动开始一次转换。
优势:
-
极高精度:消除了软件延迟,触发时序非常精确(到时钟周期级别)。
-
减轻CPU负担:CPU无需处理中断,可以休眠或处理其他任务,大大提高了效率。
-
实现硬实时操作:非常适合电机控制、电源转换、音频处理等对时序要求极其苛刻的应用。
TRGO可以触发哪些外设?
TRGO作为一个内部的触发源,可以连接到芯片内部的多个外设,最常见的包括:
-
ADC(模数转换器):这是最经典的应用。用定时器的TRGO来触发ADC开始采样和转换,可以实现固定频率(或与PWM同步)的精确采样。
-
DAC(数模转换器):触发DAC输出一个新的数据。
-
其他定时器:用一个定时器(主定时器)的TRGO去触发另一个定时器(从定时器)的计数、启动或复位,实现定时器的同步或级联。
-
DMA(直接存储器访问):触发DMA进行一次数据传输。例如,在ADC被触发转换完成后,再用另一个信号触发DMA将ADC结果搬运到内存。
如何配置TRGO?—— 触发事件的选择
不是所有定时器事件都会产生TRGO。你需要通过配置定时器的 CR2寄存器 中的 MMS(主模式选择) 位域来选择具体是哪个事件来产生TRGO信号。
常见的可触发事件包括:
-
复位事件:当定时器被触发输入信号复位时,产生TRGO。
-
使能事件:当定时器被触发输入信号启动时,产生TRGO。
-
更新事件:当计数器发生上溢/下溢(即溢出)时,产生TRGO。这是最常用的源。
-
比较脉冲:当捕获/比较通道1发生匹配时,产生TRGO。
-
比较OC1REF信号:输出比较1的参考信号。
-
比较OC2REF信号:输出比较2的参考信号。
-
比较OC3REF信号:输出比较3的参考信号。
举例:用更新事件触发ADC
如果你希望定时器每1毫秒触发一次ADC采样,你会:
-
配置定时器为向上计数模式,ARR和PSC的值设置为产生1ms的更新中断。
-
配置CR2寄存器的MMS位,选择
010
(更新事件作为TRGO源)。 -
配置ADC的“外部触发源”,选择来自这个定时器的TRGO。
-
使能ADC的“外部触发转换”功能。
这样,每次定时器计数溢出产生更新事件时,它都会自动发出一个TRGO脉冲,ADC收到后便自动开始一次转换。
与“从模式”和“触发输入”的区别
-
TRGO(Trigger Output):是定时器的输出,是它去触发别人。
-
从模式 & 触发输入:是定时器的输入,是它被别人触发。定时器可以配置为“从模式”,等待另一个主定时器的TRGO信号来复位、启动或同步自己。
一个定时器可以同时是“主”和“从”:
-
它可以被上一个定时器(Master)的TRGO触发(Slave行为)。
-
同时,它又可以产生自己的TRGO去触发下一个外设(Master行为)。
总结
特性 | 描述 |
是什么 | 定时器产生的一个内部硬件触发信号(TRGO)。 |
目的 | 实现硬件外设之间的自动、精确、无CPU干预的协同工作。 |
优势 | 高精度、低延迟、减轻CPU负担。 |
常见应用 | 触发ADC进行同步采样、触发DAC、同步/级联其他定时器。 |
如何配置 | 通过定时器的CR2寄存器中的MMS位选择触发源(如更新事件)。 |
简单来说,Timer Trigger Output Event 是STM32硬件自动化系统的“指挥官的口令”,它让定时器能够以硬件级的精度和速度去指挥其他外设协同工作,是实现高效嵌入式系统设计的关键技术之一。