1、TIMx可以使用互补PWM输出?

        STM32F4系列有高级定时器TIM1、TIM8,这两个定时器可以使用互补输出。

        TIM1和TIM8由一个可编程预调量器驱动的16位自动加载计数器组成。

        它可以用于各种目的,包括测量输入信号的脉冲长度(输入捕获)或产生输出波形(输出比较,PWM,带死区插入的互补PWM)。

2、CubeMX时钟树配置

        输入8MHZ的晶振信号

3、定时器初始化

  1. 时钟源选定为内部时钟,开启TIM1通道123的互补输出
  2. 设置PWM的频率为 3 0000HZ --------168 000 000 / 56 分频 / 100自动重装
  3. 死区时间设定为 250ns ------( 0000 0010 )*  125ns晶振频率的倒数

step1(如下)

step2(如下)

step3(如下)

4、重点解释死区时间的设置

上图为 TIM1、TIM8的断开和死区时间寄存器

低八位DTG[7:0]用于设置死区时间

对应的计算公式如下:

其中 0xx 对应下的只有低7位生效范围,所以是2的7次方,同理。

5、如何运用(计算死区时间)?

生成代码后,在keil中查看,死区的范围是二进制下的0X00-0XFF,所以在CubeMX中设置直接设置成十六进制就行

这里我需要250ns的死区时间,那就设成 0X02,既 0000 0010

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐