HRTIMofSTM32

前言:就在去年(2019年),ST公司推出了一个全新的控制器系列——G4。该系列主打方向为电源和驱动类电路控制,笔者好奇的发现STM32G474这个产品线,相对其他的控制器一大亮点为——超高精度定时器(High-resolution Timer)。具有184ps的定时精度!

HRTIM框图

HRTIM

亮点特性

  • 184ps定时精度
  • 12路输出(6个定时器单位,每单位两路)
  • 可触发内部模拟外设(ADC、DAC、比较器)
  • 对偶信号可插入死区时间(735ps精度)
  • 支持突发模式(DCDC转换器轻载模式)

主要实例

主定时器(master timer)

该定时器的主要设计目的是(需要的时候)同步控制6个定时器实例,或者通过复位输出来间接控制实例

MT

  • 16位计数器
  • 通过比较器复位12路输出的任何一路

定时器(timer A~F)

HRTIM共有6个相同的定时器,每个实例框图如下:

tiemr

每个实例都有:

  • 一个16位向上计数器
  • 4个比较器
  • 2个捕获器

当计数器计满时,可触发:

  • 改变输出
  • DMA
  • IRQ(中断)
  • ADC
  • 其他定时器

时钟

clockTree

上图给出了STM32G474的时钟树组织结构,可见HRTIM的时钟源和系统内核一样高达170MHz

$$
f_{HRTIM} \le 170MHz
$$

该时钟送入HRTIM后会按照初始化指令进行倍频或分频作为定时器的内部工作时钟,最大可32倍频

$$
f_{HRCK}=170MHz \times 32 = 5.44GHz
$$

辅助时钟

  • 死区时钟
    $$
    f_{DTG}=\frac{f_{HRTIM}\times 8}{2^{DTPSC}}
    $$
  • 突发模式时钟

    该时钟可以由多个源提供

  • 错误输入采样时钟
  • 外部事件采样时钟

死区时间插入

对于这款主打功率驱动的芯片来说,很贴心的提供了死区时间插入的功能

TIPS:在MOS半桥驱动技术中,没有死区时间直接炸管🔥那么这款定时器提供的互补PWM也没啥用了

deadtime

并且很贴心地提供了多种死区时间的工作模式,使得灵活性更强,场景适用更多

deadtimeMode

死区时间由寄存器DTFx和DTRx决定,当然对于使用CubeMX和HAL库开发的笔者并不在意用了哪些寄存器

$$
t_{DT}=\pm DTx[8:0]\times t_{DTG} \\
t_{DTG}=2^{DTPRSC[2:0]}\times\frac{t_{HRTIM}}{8}
$$

最后⚡也要注意死区时间在极小或极大占空比情况下,可能带来错误的输出。如下图,由于占空比过大,死区时间带来了同时截止和同时导通的意外情况!

DTerror

所以在半桥驱动PWM的程序中,一般要设置最低和最高输出占空比阈值

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2023 RY.J
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信