TMS320F280049C: PCMC模式下移相全桥PSFB软件配置问题

Part Number: TMS320F280049C

TI专家您好!

最近在学习PCMC_PSFB_F28004x项目时遇到如下问题:
1.  关于ADC过采样函数 PSFB_HAL_setupAdcOvrSamplPWM,源程序如下:

void PSFB_HAL_setupAdcOvrSamplPWM(uint32_t base1, uint16_t pwm_period_ticks)
{
    EALLOW;

    EPWM_setPeriodLoadMode(base1, EPWM_PERIOD_DIRECT_LOAD);
    EPWM_setTimeBasePeriod(base1, pwm_period_ticks - 1);
    EPWM_setTimeBaseCounter(base1, 2);    EPWM_setPhaseShift(base1, 2);    
    EPWM_setTimeBaseCounterMode(base1, EPWM_COUNTER_MODE_UP);
    EPWM_setClockPrescaler(base1, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);

    EPWM_enablePhaseShiftLoad(base1); 

    //产生同步信号
    HRPWM_setSyncPulseSource(base1, HRPWM_PWMSYNC_SOURCE_COMPC_UP);   

 EPWM_setCounterCompareValue(base1, EPWM_COUNTER_COMPARE_C,
                                 pwm_period_ticks - 5);

    EDIS;
}

蓝色粗体字部分是产生了一个同步信号,结合整个项目,这个同步信号应该给比较器的,然后再看比较器的配置函数:

//
// initCmpssPCMC - Function to configure the high comparator of CMPSS3
//
void PSFB_HAL_initCmpssPCMC(void)
{

……

//前面的代码我省略,只是以下代码有些困惑

//

// Set PWMSYNC as coming from ADC_OVERSAMPLE_PWM_BASE    
//
    HWREGH(PSFB_PCMC_OCP_CMPSS_BASE + CMPSS_O_COMPDACCTL) =
            (HWREGH(PSFB_PCMC_OCP_CMPSS_BASE + CMPSS_O_COMPDACCTL) &
             ~(CMPSS_COMPDACCTL_RAMPSOURCE_M)) | (4);

}

看上面绿色字部分和它的注释,它的主要作用来设置RAMPSOURCE这个寄存器,而且根据注释来源是ADC过采样的EPWM,可RAMPSOURCE这里设置的值为(4),按照寄存器RAMPSOURCE的设置逻辑,如下图:

image.png

那么岂不是要设置来源是EPWM5?而我仔细看了整个PCMC_PSFB_280049x源程序,程序中根本就没有用到过EPWM5,而过采样ADC用的是EPWM3(#define PSFB_ADC_OVERSAMPLE_PWM_BASE             EPWM3_BASE

所以想确认我的理解是否有误,特别是RAMPSOURCE寄存器的配置,其中的
0 EPWM1SYNCPER
1 EPWM2SYNCPER
2 EPWM3SYNCPER
是否分别对应EPWM1, EPWM2, EPWM3?

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好!

    那行代码的意思是不是将整个COMPDACCTL寄存器设置为4?这样的话RAMPSOURCE的值bit【4-1】就是0010 = 2,刚好就对应EPWM3_BASE?我不知理解是否正确?
     HWREGH(PSFB_PCMC_OCP_CMPSS_BASE + CMPSS_O_COMPDACCTL) =
                (HWREGH(PSFB_PCMC_OCP_CMPSS_BASE + CMPSS_O_COMPDACCTL) &
                 ~(CMPSS_COMPDACCTL_RAMPSOURCE_M)) | (4);

  • 另外,还想请教下:针对大功率输出的拓扑结构,除了移相全桥的数字化方案,还有哪些推荐的数字解决方案?比如有没有基于C2000 的LLC全桥方案?如果有麻烦发送个链接,谢谢!