F28335 ePWM死区模块(DB)

1 为什么要产生死区?

在这里插入图片描述
如图所示,PWM一般作用在桥式结构的电路中,这种电路如果上下桥臂同时导通就会导致管子被烧,在系统中甚至会造成更大的损失。所以为了保证上下桥臂中,在同一时刻只有一个导通,就需要死区时间来保证一个管子的关断后,另外一个桥臂的管子才打开。

2 ePWM的死区模块DB的作用 和 工作特点

2.1 死区模块DB作用

死区模块的最大作用就是使得两个互补对称的PWM波,上升沿的发出滞后于PWM下降时间的发出。并且可以人为控制这个下降或者上升延时的时间长短。通过配置DBFED 和 DBDED两个寄存器来控制时间长短。

2.2 死区模块DB的工作特点

在这里插入图片描述

如上图所示:

死区模块具有2组独立的选择机制

  1. ePWMA作为上升沿下降沿输入源,系统默认选择
  2. ePWMA作为上升沿输入源,ePWMB作为下降沿输入源
  3. ePWMB作为上升沿输入源,ePWMA作为下降沿输入源
  4. ePWMB作为上升沿下降沿输入源

输出模式可选择

  1. 禁止边沿延时,禁止死区功能
  2. 禁止上升沿延时,使能下降沿延时
  3. 禁止下降沿延时,使能上升沿延时
  4. 双边沿延时

输出极性可选择

  1. ePWMA和ePWMB都不翻转
  2. ePWMA翻转,ePWMB不翻转
  3. ePWMB翻转,ePWMA不翻转
  4. ePWMA和ePWMB都翻转

3 死区模块寄存器及其配置

在这里插入图片描述

配置方式:

#define DB_IN_A 0
#define DB_IN_A_UP_B_DOWN 2
#define DB_IN_B_UP_A_DOWN 1
#define DB_IN_B 3

#define DB_SEL_0  0
#define DB_SEL_A_F 1
#define DB_SEL_B_F 2
#define DB_SEL_A_B_F 3

#define DB_OUT_0 0
#define DB_Y_DOWN 1
#define DB_Y_UP 2
#define DB_Y_UP_DOWN 3
.
.
.
.
EPwm1Regs.DBCTL.bit.IN_MODE=DB_IN_A_UP_B_DOWN;  //EPWMA上边沿延时输入源,EPWMB下边沿延时输入源
EPwm1Regs.DBCTL.bit.POLSEL=DB_SEL_0; //EPWMA 和 EPWMB都不翻转
EPwm1Regs.DBCTL.bit.OUT_MODE =DB_Y_UP_DOWN; //EPWMA 和 EPWMB 双边沿延时
EPwm1Regs.DBRED = 1; //上升沿延时一个时钟周期
EPwm1Regs.DBFED = 1; //下升沿延时一个时钟周期

猜你喜欢

转载自blog.csdn.net/sy243772901/article/details/83181656