STM32高级定时器死区控制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STM32高级定时器都带有死区控制功能,一般来说死区控制主要用于马达、变频器等控制。

一、死区时间概念

BLDC控制换相电路如下

死区时间是两路互补PWM输出时,为了使桥式换相电路上管T1和下管T2、上管T3和下管T4、上管T5和下管T6不会因为开关速度问题发生同时导通(同时导通电源会短路)而设置的一个保护时段。

假设STM32高级定时器OCX和OCXN输出互补通道PWM,极性都是高电平有效,则下图中标注“延迟”那段时间就是死区时间,此时间段上管和下管都没有导通。

二、STM32高级定时器死区时间计算

1. 配置寄存器

2. 死区时间计算示例

假设STM32F407的高级定时器TIM1的时钟为168MHz,设置tDTS=1/168us。

死区时间设置2us,经过估算该死区时间落在DTG[7:5]=110段。

(32+DTG[4:0]) /21 us= 2us,计算出DTG[4:0]=10=01010B,

再与DTG[7:5]拼接,最后算得DTG[7:0]=10=11001010B=0xCA。

死区时间设置4us,经过估算该死区时间落在DTG[7:5]=111段。

2*(32+DTG[4:0]) /21 us= 4us,计算出DTG[4:0]=10=01010B,

再与DTG[7:5]拼接,最后算得DTG[7:0]=10=11101010B=0xEA。

需注意死区时间计算是分段计算,每段公式不一样。

三、配置死区时间过程可能出现的问题

问题:发现插入死区时间后,没有互补脉冲输出了。一般是死区参数设置不合适导致出现了以下两种情况。

如果延迟时间大于有效输出(OCx 或OCxN)的宽度,则不会产生相应的脉冲。

注意:插入死区是为了保证桥式驱动电路中上下桥臂的开关管不会同时导通,提高控制安全性,但不是死区时间越长越好,死区是以牺牲开关管有效驱动脉冲时间为代价的,死区时间长短是由开关管硬件开关的速度决定。

相关文档
最新文档