Timer PWM波的产生
时基单元
分频器:Clock Prescaler
核心计数器:CNT Counter
自动重装载器:Auto-Reload Register
时基设定即为PWM频率设定
比较输出功能
基本原理:根据计数器与CCRx的比较结果,结合不同的输出控制模式
波形输出模式配置非常灵活
常见电机控制PWM波形
设定中心计数模式
插入死区时间
比较输出模式设定为PWM Mode 1
预装载机制
定时器中的PSC/ARR/RCR/CCR寄存器具有预装载功能
每类寄存器具有双寄存器机制,分别由各自的影子寄存器和预装载寄存器组成
如果使能了预装载机制,那么只有更新事件时,数据才进行装载动作
定时器四大事件
更新事件:比如影子寄存器更新往往需借助该事件
触发事件:定时器收到各类触发输入信号时激发该事件
捕获事件:发生输入捕捉产生该事件
比较事件:比较输出时会产生该事件
上面几类事件都可以触发中断或DMA请求
更新操作与更新事件
更新操作不等于更新事件!
更新操作是一种动作,是更新事件的源头,即事件源;
更新事件是基于更新操作所导致的后续影响或结果。
可能的更新操作有3类:核心计数器的溢出(上溢或下溢)、软件设定UG位、来自从模式的更新。
更新事件
控制寄存器的UDIS@TIMx_CR1位决定更新操作能否升级为事件
对于高级定时器必须每溢出RCR+1次时才能产生更新事件
RCR计数器
更新事件可控制
中断发生在几个波形后产生
Break功能
硬件关闭PWM输出,配置后无需软件参与
可以产生中断事件
两路BKIN输入:BKIN:当Break发生时PWM可以配置输出为inactive state或者预定义的安全状态;BKIN2:当Break发生时PWM输出为inactive state(高或者低)
Timer Capture模式
定时器捕获比较框图
左右两边的重复编号通道只是逻辑上的,物理上只有1个通道与之对应。
每个通道既可配置为输入捕获、也可配置为比较输出。
定时器输入捕获
信号经过一系列环节才输入到计数器
捕获寄存器:CCR
捕获模式CCR对用户是只读的,不可对其进行修改、赋值
传感器连接—STM32硬件Encoder接口
在全系列STM32中都有硬件增量编码器Encoder接口
每个正交沿都可有加/减计数
传感器连接—STM32硬件Hall接口
在全系列STM32中都有硬件Hall接口
可以每个Hall跳变沿都产生中断
Timer同步机制
定时器主从触发与同步
主从定时器之间的同步级联
实质是定时器从模式的具体应用
内部触发信号TRGI
tim_etrf:外部触发输入
tim_itr:内部触发输入
tim_ti1f_ed:通道1边沿检测输入
tim_ti1fp1:通道1输入(经过滤波以及边沿检测)
tim_ti2fp2:通道2输入(经过滤波以及边沿检测)
tim_etrf:外部触发输入
tim_itr:内部触发输入
TI1,TI1FP1,TI1FP_ED关系示意图
定时器TRGO及产生
TRGO可连接到其他定时器,作为从定时器的触发输入信号TRGI
TRGO可作为其他外设控制触发信号,如触发ADC/DAC等
可以有五种源产生TRGO
STM32G4高级定时器新增机制
基本PWM输出
在STM32G4上增加了CH4的互补输出,可以用于控制两相四线的步进电机
死区设定改进
死区时间可以设定为前后不同
PWM控制精度提高
通过Dithering模式可以将PWM控制精度提高4-bit
可以进行更细微的PWM调整
Encoder
支持x1,x2,x4 encoding模式,在电机高速运行时可以减轻CPU负荷
增加了两种编码器的支持
更好的支持不同的增量编码器
增加清零信号
传统的清零(或对齐)用法是I/O中断+软件配置方式
在STM32G4中增加了Z轴的输入