class="markdown_views prism-atom-one-light">
1 为什么要产生死区?
如图所示,PWM一般作用在桥式结构的电路中,这种电路如果上下桥臂同时导通就会导致管子被烧,在系统中甚至会造成更大的损失。所以为了保证上下桥臂中,在同一时刻只有一个导通,就需要死区时间来保证一个管子的关断后,另外一个桥臂的管子才打开。
2 ePWM的死区模块DB的作用 和 工作特点
2.1 死区模块DB作用
死区模块的最大作用就是使得两个互补对称的PWM波,上升沿的发出滞后于PWM下降时间的发出。并且可以人为控制这个下降或者上升延时的时间长短。通过配置DBFED 和 DBDED两个寄存器来控制时间长短。
2.2 死区模块DB的工作特点
如上图所示:
死区模块具有2组独立的选择机制
- ePWMA作为上升沿下降沿输入源,系统默认选择
- ePWMA作为上升沿输入源,ePWMB作为下降沿输入源
- ePWMB作为上升沿输入源,ePWMA作为下降沿输入源
- ePWMB作为上升沿下降沿输入源
输出模式可选择
- 禁止边沿延时,禁止死区功能
- 禁止上升沿延时,使能下降沿延时
- 禁止下降沿延时,使能上升沿延时
- 双边沿延时
输出极性可选择
- ePWMA和ePWMB都不翻转
- ePWMA翻转,ePWMB不翻转
- ePWMB翻转,ePWMA不翻转
- 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;
EPwm1Regs.DBCTL.bit.POLSEL=DB_SEL_0;
EPwm1Regs.DBCTL.bit.OUT_MODE =DB_Y_UP_DOWN;
EPwm1Regs.DBRED = 1;
EPwm1Regs.DBFED = 1;