定时器的时钟来源(内置触发,外部捕获,其它外设驱动)

乐活   2025-01-29 12:42   内蒙古  

MCU定时器-从度量到设计  这篇文章里面写的是CW32的,但是今天文章里面出现的是TI的MSPM0,里面有很多有趣的设计。

其次就是TI本身也是在模拟的道路上一路绝尘,在我这里是非常喜欢的公司,哈哈哈哈。

TI-MSPM0L1306-潮到风湿的开发板

TI-MSPM0C模块化设计案例

以前小小的写过,太水了,看新篇吧~

不像别的MCU,对定时器有一些名字上面的划分,TI是按照一个统一的外设来描述的。

OK,这就是一切的源头

搞明白了模块,也就搞明白了这个外设。

分为三类:

  1. 内部时钟(Internal Clock) → 使用主系统时钟(如 APB1 或 APB2 时钟)。
  2. 外部时钟(External Clock) → 通过 ETR(外部触发引脚)或 TIx(输入捕获通道)输入外部信号进行计数。
  3. 从模式(Slave Mode) → 由其他外设(如另一个定时器、DMA、ADC)触发计数。
计数器通过外部信号驱动(External Clock Mode)
在外部时钟模式下,计数器可以通过 ETR(外部触发输入引脚)或 TIx(输入捕获引脚)驱动。
例如,在 STM32 中:
ETR 模式(外部触发时钟模式 1):定时器通过 ETR 引脚接收外部脉冲信号,每个脉冲使计数器递增。

浮空输入

TIx 模式(外部触发时钟模式 2):定时器从 TI1 或 TI2(输入捕获通道)接收外部信号。

在这里

我们接下来看通过外部输入信号进行事件计数。
可以计数外部脉冲信号,即每当输入引脚检测到上升沿(或下降沿)时,计数器递增或递减。
STM32 事件计数模式
在 STM32 中,可以使用输入捕获通道(TIMx_CHx)作为外部时钟源。

  1. TI1FP1(TIMx 通道 1 的输入)
  2. TI2FP2(TIMx 通道 2 的输入)
就是这样的,输入的信号有两个边沿,哪个是你要的?反正都是要设置的。
红外编码器测速:电机上的旋转编码器每转一圈输出多个脉冲,定时器可以统计脉冲数量,从而计算速度。

就是这样的了

计数按钮按下次数:每次按下按钮,定时器计数 +1。
TIM3 通过 TI1(输入引脚)接收外部脉冲,每次脉冲计数器 +1。
适用于测速、事件计数等应用。
计数器通过其他外设触发:

就像这样

在 STM32 中,定时器可以通过其他外设(如 DMA、ADC、UART)产生的事件触发计数:

TRGO就在这里

都有触发

基本定时器就会简单点

  1. 触发 ADC 采样:定时器控制 ADC 采样速率(如 PWM 触发 ADC)。
  2. 触发 DMA 传输:定时器产生中断,自动触发 DMA 传输数据。
  3. 触发另一个定时器:两个定时器级联,比如 TIM1 控制 TIM2。
需要对某个信号进行定时采样(也就是隔一段时间,比如说2ms)。

OK,这里看个ADC

从这里进去的

还有一个计数模式:

  1. 递增模式(Up Mode):计数器从 0 递增到 ARR,然后回到 0。
  2. 递减模式(Down Mode):计数器从 ARR 递减到 0,然后回到 ARR。
  3. 中心对齐模式(Center-Aligned Mode):计数器先递增到 ARR,然后递减到 0,形成对称 PWM 波形。

云深之无迹
纵是相见,亦如不见,潇湘泪雨,执念何苦。
 最新文章