前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >定时器的时钟来源(内置触发,外部捕获,其它外设驱动)

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

作者头像
云深无际
发布2025-02-05 14:57:19
发布2025-02-05 14:57:19
1400
举报
文章被收录于专栏:云深之无迹

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 波形。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档