PWM

[English]

概述

bk7239 TIM 配置寄存器共有4个group,每个group为3个TIM的配置,共有12个TIM定时器。

可配置channel连接到任意一个TIM定时器,当前软件中默认配置的TIM定时器与PWM channel对应关系如下:

TIM Index

Channel Index

TIM1

0

TIM2

1

TIM3

2

TIM4

3

TIM5

4

TIM6

5

TIM7

6

TIM8

7

TIM9

8

TIM10

9

TIM11

10

TIM12

11

因此,bk7239 共支持12个channel,对应软件中的 PWM_ID_0PWM_ID_11

工作模式

定时器可以工作在3种模式下:

  1. 独立输出模式

  2. 互补输出模式

  3. 输入捕获模式

功能框图

PWM block diagram

时钟源

PWM 控制器 有两个时钟源可选:

  • clk_32K

  • XTAL(40MHz)

可通过 SYSTEM_REG0x8 配置。

PSC

预分频器,对输入时钟(clk_32K或XTAL)进行分频,输出CLK_CNT用来驱动计数器TIM计数。

其中,group0 PSC的设置可通过 PWM_REG_0x4a 来配置,可实现1-256分频。

例如:

当我们时钟源选择XTAL=40MHz,配置PSC1=39时,计数器TIM1时钟则为1MHz,若计数器+1,则+1us。

备注

由于4个group寄存器配置完全相同,为方便描述,以下寄存器均以group0为参考。

CCR

当计数器CNT的值跟比较寄存器CCR的值相等时,输出参考信号OCxREF的信号的极性就会改变,并且会产生CCxI中断,相应的标志位CCxIF(REG_0x44寄存器中)会置位。 然后OCxREF再经过一系列的控制之后输出PWM信号。

BK7239 每个TIM 对应3个 CCR ,即在一个周期内,信号的极性可以翻转3次,其中

  • CCR1,CCR2,CCE3(REG_0x51-REG_0x53)对应TIM1

  • CCR4,CCR5,CCE6(REG_0x54-REG_0x56)对应TIM2

  • CCR7,CCR8,CCE9(REG_0x57-REG_0x59)对应TIM3

当用作PWM输出模式时,输出方波信号的占空比由CCR决定。

ARR

自动重载寄存器ARR用来存放与计数器CNT比较的值,可以理解为计数器计数的 end_value。

PWM输出方波信号的频率由ARR值决定。

Deadtime Generator

在生成的参考信号OCxREF的基础上,可以插入deadtime,用于生成两路互补的输出信号。

死区时间的大小具体由 REG_0x5a 的 DTx 配置。

PWM 输出模式

输出单路方波信号

bk7239 由于每路PWM连接到12个独立的TIM上,所以共支持12路 PWM 独立输出。

输出互补带死区PWM

bk7239 互补输出功能,均由硬件实现,可配置任意两通道作为互补输出,通过配置 PWM_REG_0x10PWM_REG_0x1b ,连接任意两通道到相同TIM的 P N 极即可。

配置DTx寄存器,可实现带死区的互补输出。