TGPS — 门控周期采样模式(TIM Gated Periodic Sampling Mode)

TIM_MODE = 0b101,依赖 CLK_SEL。手册 13.4.2.6。

1. 一句话说明

可编程的固定周期(N 个 CMU 时钟周期)周期性地采样输入信号,周期值可"飞行中"动态修改。类似定时轮询采样。


2. 时钟来源与选择

|------|------------------------|--------------------------------------------|
| 项目 | 来源 | 说明 |
| 采样时钟 | CMU 时钟 | CTRL.CLK_SEL 选择 CCMi_CLK_RES0..7 |
| 时钟选择 | CTRL.CLK_SEL [26:24] | 决定采样周期分辨率 |

采样周期 = (CNTS+1) × CMU 时钟周期。


3. 计数模式

  • CNT 按 CMU 时钟递增,与 CNTS 比较:

    • CNT >= CNTS → 触发采样(NEWVAL),更新 GPR0/GPR1,CNT 清零;
    • 否则 CNT++;
  • CNTS=0 表示 1 个时钟周期触发一次,CNTS=1 表示 2 个周期,依此类推;
  • GPR1 作为 CNTS 的影子寄存器:CPU 写入 GPR1,可动态改变下一采样周期("on the fly")。

门控:DSL/ISL 可选择在特定输入电平/边沿时才计数(详见 Table 22),实现"门控"采样。


4. 外部读取的内容

|----------|--------------------------------------------|
| 寄存器 | 内容 |
| GPR0 | 由 GPR0_SEL 配置(可选时间戳、CNT、ECNT、INP_VAL 输入快照) |
| GPR1 | 影子:上次 CNTS 值,可写入新周期 |
| CNTS | 当前采样周期配置 |

特殊:GPR0_SEL=0b11, EGPR0_SEL=0 且通道 0 时,可选 Filter F_OUT 作为输入;GPR0 可捕获全部 8 路输入电平(TGPS 通道 0)。

ECNT_RESET:=1 时每次周期到期 ECNT 清零,否则回绕。


5. 对应中断

|------------|----------------------|
| 中断 | 触发 |
| NEWVAL | 每个采样周期到期(CNT>=CNTS) |
| ECNTOFL | ECNT 溢出 |
| GPROFL | 数据溢出覆盖 |
| CNTOFL | 永不置位 |


6. 应用场景

  • 周期性采样:按固定节拍采集输入电平(如按键/开关去抖后的周期扫描);
  • 周期可调的采样:通过写 GPR1 动态调整采样率;
  • 电平监测:配合 GPR0 捕获 8 路输入电平做批量状态轮询。

7. 关键寄存器配置

复制代码
CTRL.TIM_MODE   = 0b101   // TGPS
CTRL.CLK_SEL    = 选择 CMU 分辨率
CNTS            = N       // 采样周期 = (N+1) 个时钟
CTRL.GPR0_SEL   = 按需(时间戳/CNT/INP_VAL)
CTRL.ECNT_RESET = 0/1
CTRL.TIM_EN     = 1

8. 信号路径框图

复制代码
    CMU_CLK_RES[CLK_SEL]──► CNT 递增
                                       │  CNT >= CNTS ?
                                       ▼
                        ┌──────────────────────────┐
                        │ 是: NEWVAL, GPR更新, CNT=0  │
                        │ 否: CNT++                  │
                        └──────────────────────────┘
                                       │
              (可选门控 DSL/ISL + 输入电平)
                                       │
 TIM_IN[x] ─►INPUTSRC─►FLT─►F_OUT────────────────► 采样快照
                                       │
                                       ▼
                              ┌────────────────────┐
                              │ GPR0=采样值/时间戳   │──► CPU/ARU
                              │ GPR1=影子周期(可写)  │──► NEWVAL_IRQ
                              └────────────────────┘

   时序示意(CNTS=2, 每3个时钟采样一次):
   CLK:  ┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐
   CNT:   0 1 2 0 1 2 0 1 2 ...
                ▲       ▲
                └采样    └采样 (NEWVAL)
相关推荐
IOT那些事儿3 个月前
STM32F407测量1MHz波形频率
tim·stm32f407·脉冲捕获
Rubin智造社3 个月前
AI原生创业公司 |第四篇:Launch阶段——AI原生公司的GTM新剧本
opc·launch·gtm·ai创业·产品发布·一人公司·增长策略
ting_zh8 个月前
定时器输出PWM信号同步控制传感器开关与 ADC 采样
stm32·tim·pwm·adc
ting_zh8 个月前
TIM 简介
stm32·tim
ting_zh8 个月前
用定时器生成PWM信号
stm32·单片机·嵌入式硬件·tim·pwm
Darken039 个月前
STM32中的主从触发模式是什么?
stm32·单片机·tim
四谎真好看1 年前
第六章第一节 TIM 定时中断
stm32·单片机·嵌入式硬件·tim·江科大
Mr zhua1 年前
STM32G474VET6-CAN FD使用经典模式+过滤报文ID
stm32·can·tim
生活最重要(ง •̀_•́)ง2 年前
[STM32 标准库]定时器输出PWM配置流程 PWM模式解析
学习笔记·tim·定时器·stm32标准库·pwm输出