大家好、我们将 UCD3138用于在次级侧具有同步整流功能的有源钳位正向转换器。 下面是 DPWM 的配置。 是否有人可以验证下面的 DPWM?
DPWM0A =初级_正向_MOSFET
DPWM0B =次级钳位 MOSFET
DPWM1A=初级_Clamp_MOSFET
DPWM1B =次级正向 MOSFET
void init_dpwm0_OL (void)// DPWM1B 用于驱动同步 FET
{
Dpwm0Regs.DPWMCTRL1.bit.global_Period_EN = 1;
Dpwm0Regs.DPWMEV1.ALL = 0;//
Dpwm0Regs.DPWMEV2.all =(周期>> 1);
Dpwm0Regs.DPWMEV3.ALL =(周期>> 1)+死区时间;
Dpwm0Regs.DPWMEV4.ALL =周期-死区时间;
Dpwm0Regs.DPWMCTRL0.bit.PWM_MODE = 0;//设置为正常模式
Dpwm0Regs.DPWMCTRL0.bit.CLA_EN = 1;
Dpwm0Regs.DPWMCTRL1.bit.EVENT_UP_SEL = 1;//事件在周期结束时更新
Dpwm0Regs.DPWMCTRL1.bit.CHECK_OVERRIDE = 1;//通常 CLA = 0被视为故障;设置校验覆盖、以便 CLA=0
Dpwm0Regs.DPWMCTRL1.bit.ALL_PHASE_CLK_ENA = 1;//需要所有相位实现高分辨率
Dpwm0Regs.DPWMSAMPTRIG1.all = 1500;//(周期>> 1);/2100;279*16ns = 4.464us;-5000;//向所有写入以标准化为高分辨率
Dpwm0Regs.DPWMCTRL2.bit.sample_trig_1_EN = 1;
Dpwm0Regs.DPWMCTRL0.bit.PWM_EN = 1;
Dpwm0Regs.DPWMCTRL0.bit.MSYNC_SLAVE_EN =0;// DPWM0为主器件
Dpwm0Regs.DPWMCTRL0.bit.MASTER_SYNC_CNTL_SEL =0;// DPWM0为主器件
//*********
//启用同步 FET
Dpwm0Regs.DPWMCTRL2.bit.IDE_Duty_B_EN = 1;//启用 IDE
//*********
}
void init_dpwm1_OL (void)// DPWM1B 用于驱动同步 FET
{
Dpwm1Regs.DPWMCTRL0.bit.PWM_EN = 0;//针对初始化在本地禁用
Dpwm1Regs.DPWMCTRL0.bit.CLA_EN = 1;//默认为1 -使用 CLA
Dpwm1Regs.DPWMPRD.All =周期;//对所有值使用.all,以便缩放匹配
Dpwm1Regs.DPWMEV4.ALL = 0;//将事件1设置为周期的0%(开始)
Dpwm1Regs.DPWMEV3.ALL =(周期>> 1);//将事件2设置为周期的25%
Dpwm1Regs.DPWMEV2.all =(周期>> 1)+死区时间;//将事件3设置为周期的50%
Dpwm1Regs.DPWMEV1.all =周期-死区时间;//将事件4设置为周期的75%
Dpwm1Regs.DPWMCTRL0.bit.D_ENABLE = 1;//占空比为1-D
Dpwm1Regs.DPWMCYCADJA.ALL =死区时间*2;
Dpwm1Regs.DPWMSAMPTRIG1.ALL =(周期)/2;//3/4周期
Dpwm1Regs.DPWMCTRL2.bit.sample_trig_1_EN = 1;//启用1个采样触发器
Dpwm1Regs.DPWMCTRL1.bit.EVENT_UP_SEL = 1;//在周期结束时更新
Dpwm1Regs.DPWMCTRL0.bit.PWM_MODE = 4;//正常模式(这不是默认值)
Dpwm1Regs.DPWMCTRL0.bit.PWM_EN = 1;//本地启用 DPWM0
LoopMuxRegs.DPWMMUX.bit.DPWM1_SYNC_SEL = 0;
Dpwm1Regs.DPWMCTRL0.bit.MSYNC_SLAVE_EN = 1;// DPWM0为主器件、DPWM1为从器件
//*********
//启用同步 FET
Dpwm1Regs.DPWMCTRL2.bit.IDE_Duty_B_EN = 1;//启用 IDE
//*********
}