PWM
概述
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_0 到 PWM_ID_11。
工作模式
定时器可以工作在3种模式下:
独立输出模式
互补输出模式
输入捕获模式
功能框图
时钟源
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_0x10 至 PWM_REG_0x1b ,连接任意两通道到相同TIM的 P N 极即可。
配置DTx寄存器,可实现带死区的互补输出。