大家好、
参考设计: 两相交错 PFC 套件
硬件:定制 PCB、输入直流150V、 使用 IIC 设置 PFCcmd 电流测试控制环路。
软件:定制程序、参考 TI 设计。
使用 EPWM1A 和 EPWM2A 来控制两相 PFC。 频率为200kHz。 相位差为180°。 启用 HRPWM。
模拟输入(电流信号)和 DAC 比较输出到 TZ 模块、保护模式为循环。
以下是配置:
e2e.ti.com/.../Thread_5F00_540555.c
PWMDRV_PFC2PhiL 的某些部分 经过修改:
PWMDRV_PFC2PHIL .macro n ;====================== ;说明 ;PWM工作在UpDowm模式 ;计数器增大匹配时产生上升沿,计数器减小匹配时产生下降升沿 ;Temp(Q32) = (Period(Q16) * Duty(Q24) ;CMPA = Period - Temp取整数部份 ;使用HRPWM时,EdgeMode选择PWM_HrEdgeMode_Falling,下降沿后移(以180 ps步进),占空比变大 ;CMPAHR = Temp取小数部份 * MEP_ScaleFactor * 2 (UpDowm模式,得乘以2) ;2023.02.15 为解决运算错误,改回在此处计算PWMDRV_PFC2PhiL_MEP * 2 .ref _VpfcOut .ref _VpfcMax .ref _MEP_ScaleFactor ; MOVW DP,#_VpfcOut MOVW DP, #_PWMDRV_PFC2PhiL_Duty:n: ; load DP for net pointer MOVL XAR0, @_PWMDRV_PFC2PhiL_Duty:n: ; XAR0 = PWMDRV_PFC2PhiL_Duty = &PFCDuty ; MOVL XAR1, @_PWMDRV_PFC2PhiL_MEP:n: ; XAR1 = MEP_ScaleFactor * 2 MOVL XT, @_PWMDRV_PFC2PhiL_Period:n: ; XT = Period (I16Q16) MOVW DP, #_MEP_ScaleFactor ; load DP for net pointer MOV ACC, @_MEP_ScaleFactor<<1 ; MOVL XAR1, ACC ; XAR1 = MEP_ScaleFactor * 2 ; MOV 16位数据移动 ; MOVL 32位数据移动 MOVW DP, #_VpfcOut ; load DP for net pointer MOVL ACC,@_VpfcOut CMPL ACC,@_VpfcMax B SKIP_LT,LT SKIP_GT: MOVL ACC,@XAR0 LSL ACC,#16 ; MOV ACC,@XAR0<<16 B SKIP_CMPA,UNC SKIP_LT: IMPYL P,XT,*XAR0 ; P = low 32−bits of (M32*X32) QMPYL ACC,XT,*XAR0 ; ACC = high 32−bits of (M32*X32) ; ACC:P = Period(Q16) * Duty(Q24) = I24Q40 LSL64 ACC:P,#8 ; ACC:P(I16Q48) ACC(I16Q16) SUB @T,AH MOV AR3,T ; AR3 = Period - 整数部份(Period * Duty) MOVW AH, #0 ; MOVL XT,ACC ; XT = 小数部份 IMPYL ACC,XT,@XAR1 ; ACC = low 32−bits of (M32*X32) ; IMPYL ACC,XT,*XAR1 ; ACC = low 32−bits of (M32*X32) ; ACC = MEP *2 * 小数部份 = Q0 * I16Q16 = I16Q16 ASR64 ACC:P,#8 ADD AL, #80H ; AL = MEP部份 AND ACC, #0xFF00<<0 MOV AH, @AR3 SKIP_CMPA: MOVW DP, #_EPwm1Regs.CMPA MOVL @_EPwm1Regs.CMPA,ACC ; CMPA = Duty * Period MOVW DP, #_EPwm1Regs.CMPB MOV @_EPwm1Regs.CMPB,AH ; CMPB = Duty * Period MOVW DP, #_EPwm2Regs.CMPA MOVL @_EPwm2Regs.CMPA,ACC ; CMPA = Duty * Period .endm
以下是两个问题:
生成的脉冲非常窄。 窄脉冲位于两个正常脉冲的中间。 为什么会有该信号?

2. 当比较器有输出跳闸信号时、为什么脉冲的下降沿不陡? 下降沿旁边有时会出现尖锐的脉冲、为什么会这样?

(这些波形直接通过 C2000器件的 GPIO 进行测量。)
--
谢谢、此致、
耶鲁李