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);