wenbo2005.online

学习记录 / STM32

TIM1 的互补输出

STM322024-07-13

1,互补输出即为一路为高电平时,另一路为低电平,镜像对称;带死区,即为一路PWM波由,低变高或者由高变低时,另一路PWM不会立即变化,而是延长一段时间再变(死区时间);

2,在H桥上,该设计能防止H桥一边短路(三极管自身的延时效应造成)。

3,死区时间计算:

(一),确定T(DTS)的值:

                    T(DTS) = 分频因子 * 1 / 72000000                    // TIM1

(二)判断使用DTG[7:5]的公式:

DTG[7:5] = 0xx =>                 DT = DTG[7:0] * T(dtg),T(dtg) = T(DTS) ;

DTG[7:5] = 10x =>                 DT = (DTG[5:0] + 64 ) * T(dtg),T(dtg) = 2 * T(DTS) ;

DTG[7:5] = 110 =>                 DT = (DTG[4:0] + 32 ) * T(dtg),T(dtg) = 8 * T(DTS) ;

DTG[7:5] = 111 =>                 DT = (DTG[4:0] + 32 ) * T(dtg),T(dtg) = 16 * T(DTS) ;

例如DTG[7:0] = 200 ====> 1 1 0 0 1 0 0 0

高三位为110,所以需要使用公式三

结果为: DT = ( 8 + 32 ) * 8 * 55.56ns = 17.8us

//=============================================================================================

1,开启TIM1通道1的PWM Generstion CH1 CH1N ,PSC = 71 , ARR = 999;

2,开启 Activate Break input ,CKD选4分频;

3,开启BRK State(刹车),BRK Polarity 选择高电平触发(可以将输入通道拉低);

4,开启Automatic Output State  (当刹车触发结束后,将恢复PWM输出),Dead Time 为200;

5,CH idle State -> Reset 与 CHN idle State -> Reset 表示 触发刹车后,两个通道输出低电平。//注意:不能都设置为高电平(H桥短路),同时STM32会自动输出低电平。

HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);