STM32G4用于电机控制的外设篇(上)

2023-02-09  

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轴的输入


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。