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

2023-04-11 17:00   420   0  

Timer PWM波的产生


时基单元


  • 分频器:Clock Prescaler

  • 核心计数器:CNT Counter

  • 自动重装载器:Auto-Reload Register

  • 时基设定即为PWM频率设定


333db163-ac53-11ed-bcd2-b8ca3a6cb5c4.png


比较输出功能


  • 基本原理:根据计数器与CCRx的比较结果,结合不同的输出控制模式

  • 波形输出模式配置非常灵活


333db164-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


常见电机控制PWM波形


  • 设定中心计数模式

  • 插入死区时间

  • 比较输出模式设定为PWM Mode 1


333db165-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


预装载机制


  • 定时器中的PSC/ARR/RCR/CCR寄存器具有预装载功能

  • 每类寄存器具有双寄存器机制,分别由各自的影子寄存器和预装载寄存器组成

  • 如果使能了预装载机制,那么只有更新事件时,数据才进行装载动作


333db166-ac53-11ed-bcd2-b8ca3a6cb5c4.png


定时器四大事件


  • 更新事件:比如影子寄存器更新往往需借助该事件

  • 触发事件:定时器收到各类触发输入信号时激发该事件

  • 捕获事件:发生输入捕捉产生该事件

  • 比较事件:比较输出时会产生该事件


上面几类事件都可以触发中断或DMA请求




更新操作与更新事件


更新操作不等于更新事件!


更新操作是一种动作,是更新事件的源头,即事件源;


更新事件是基于更新操作所导致的后续影响或结果。


可能的更新操作有3类:核心计数器的溢出(上溢或下溢)、软件设定UG位、来自从模式的更新。


333db167-ac53-11ed-bcd2-b8ca3a6cb5c4.png


更新事件


  • 控制寄存器的UDIS@TIMx_CR1位决定更新操作能否升级为事件

  • 对于高级定时器必须每溢出RCR+1次时才能产生更新事件


333db168-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


RCR计数器


  • 更新事件可控制

  • 中断发生在几个波形后产生


333db169-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


Break功能


硬件关闭PWM输出,配置后无需软件参与


可以产生中断事件


两路BKIN输入:BKIN:当Break发生时PWM可以配置输出为inactive state或者预定义的安全状态;BKIN2:当Break发生时PWM输出为inactive state(高或者低)


333db16a-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


Timer Capture模式


定时器捕获比较框图


  • 左右两边的重复编号通道只是逻辑上的,物理上只有1个通道与之对应。

  • 每个通道既可配置为输入捕获、也可配置为比较输出。


333db16b-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


定时器输入捕获


  • 信号经过一系列环节才输入到计数器

  • 捕获寄存器:CCR

  • 捕获模式CCR对用户是只读的,不可对其进行修改、赋值


347893a8-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


传感器连接—STM32硬件Encoder接口


  • 在全系列STM32中都有硬件增量编码器Encoder接口

  • 每个正交沿都可有加/减计数


347893a9-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


传感器连接—STM32硬件Hall接口


  • 在全系列STM32中都有硬件Hall接口

  • 可以每个Hall跳变沿都产生中断


347893aa-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


Timer同步机制


定时器主从触发与同步


347893ab-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


  • 主从定时器之间的同步级联

  • 实质是定时器从模式的具体应用


347893ac-ac53-11ed-bcd2-b8ca3a6cb5c4.png


内部触发信号TRGI


  • tim_etrf:外部触发输入

  • tim_itr:内部触发输入

  • tim_ti1f_ed:通道1边沿检测输入

  • tim_ti1fp1:通道1输入(经过滤波以及边沿检测)

  • tim_ti2fp2:通道2输入(经过滤波以及边沿检测)


347893ad-ac53-11ed-bcd2-b8ca3a6cb5c4.png


tim_etrf:外部触发输入


347893ae-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


tim_itr:内部触发输入


347893af-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


TI1,TI1FP1,TI1FP_ED关系示意图


347893b0-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


定时器TRGO及产生


  • TRGO可连接到其他定时器,作为从定时器的触发输入信号TRGI

  • TRGO可作为其他外设控制触发信号,如触发ADC/DAC等

  • 可以有五种源产生TRGO


347893b1-ac53-11ed-bcd2-b8ca3a6cb5c4.png


STM32G4高级定时器新增机制


基本PWM输出


  • 在STM32G4上增加了CH4的互补输出,可以用于控制两相四线的步进电机


347893b2-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


死区设定改进


  • 死区时间可以设定为前后不同


347893b3-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


PWM控制精度提高


  • 通过Dithering模式可以将PWM控制精度提高4-bit

  • 可以进行更细微的PWM调整


347893b4-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


Encoder


  • 支持x1,x2,x4 encoding模式,在电机高速运行时可以减轻CPU负荷


347893b5-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


增加了两种编码器的支持


  • 更好的支持不同的增量编码器


347893b6-ac53-11ed-bcd2-b8ca3a6cb5c4.webp


增加清零信号


  • 传统的清零(或对齐)用法是I/O中断+软件配置方式

  • 在STM32G4中增加了Z轴的输入


347893b7-ac53-11ed-bcd2-b8ca3a6cb5c4.png




登录icspec成功后,会自动跳转查看全文
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。