ZHCAAX3 March   2021 TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28075 , TMS320F28075-Q1 , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S , TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DK-Q1

 

  1.   商标
  2. 1引言
  3. 2CRM/ZVS PFC
  4. 3基于 4 类 PWM 的 PFC CRM/ZVS 实现
  5. 4演示代码和流程图
    1. 4.1 外设配置
    2. 4.2 解决方案代码
  6. 5试验结果
  7. 6总结
  8. 7参考文献

外设配置

    //----------------------------------------------------------------------
    // CMPSS5H 捕捉 ZVS(电感器电流 NZC)
    //----------------------------------------------------------------------
    //设置 CMPSS 5 的模拟输入,将电感器电流信号连接到 CMPSS5
    ASysCtl_selectCMPHPMux(ASYSCTL_CMPHPMUX_SELECT_5, 2);
    // 在本地启动比较器
    CMPSS_enableModule(base5);
    // 将反相输入连接到内部 DAC。反相 CMPH 输出。
    CMPSS_configHighComparator(base5, CMPSS_INSRC_DAC|CMPSS_INV_INVERTED);
    // 设置 DAC 输出
    CMPSS_setDACValueHigh(base5, (int16_t)(iL_limit));
    // DACHVALA 从 DACHVALS 更新(无内坡道)
    CMPSS_configDAC(base5, CMPSS_DACSRC_SHDW);
    // 输出 = 异步比较器输出(反相输出)
    CMPSS_configOutputsHigh(base5, CMPSS_TRIP_ASYNC_COMP);
    // Xbar 设置
    //------------------------------------------------------------------------
    // CMPSS5H - ZVS(电感器电流 NZC)
    //------------------------------------------------------------------------
    XBAR_setEPWMMuxConfig(XBAR_TRIP5, ZVS_CAPTURE_XBAR_MUX_CONFIG);
    XBAR_enableEPWMMux(XBAR_TRIP5, ZVS_CAPTURE_XBAR_MUX);    
    //初始化期间清除 XBAR 标记
    XBAR_clearInputFlag(XBAR_INPUT_FLG_CMPSS2_CTRIPH);
    //***********************************************************************************
    // 为开关频率和谷底开关配置 PWM1A。
    //***********************************************************************************
    // ZVS(电感器电流 NZC)相关的寄存器设置由此开始
    // 选择 DCAEVT1 事件之一作为事件过滤逻辑块的输入
    EPWM_setDigitalCompareFilterInput(base1, EPWM_DC_WINDOW_SOURCE_DCAEVT1);
    // 选择边沿滤波器
    EPWM_enableDigitalCompareEdgeFilter(base1);
    // 选择边沿模式
    EPWM_setDigitalCompareEdgeFilterMode(base1, EPWM_DC_EDGEFILT_MODE_BOTH);
    // 选择边沿计数
    EPWM_setDigitalCompareEdgeFilterEdgeCount(base1,1);
    //软件触发器(在 ISR 中触发)
    EPWM_setValleyTriggerSource(base1, EPWM_VALLEY_TRIGGER_EVENT_SOFTWARE);
    //启用谷底捕捉
    EPWM_enableValleyCapture(base1);
    //应用 DELAY
    EPWM_enableValleyHWDelay(base1);
    //SW DELAY 持续时间
    EPWM_setValleySWDelayValue(base1, SWDELAY);
    // DCAH = 比较器 5 输出 = TRIP5in
    EPWM_selectDigitalCompareTripInput(base1, EPWM_DC_TRIP_TRIPIN5,EPWM_DC_TYPE_DCAH);
    //DCAH = 高(边沿滤波器生成 1 TBCLK 宽脉冲)
    EPWM_setTripZoneDigitalCompareEventCondition(base1, EPWM_TZ_DC_OUTPUT_A1,
                                                 EPWM_TZ_EVENT_DCXH_HIGH);
    //源已过滤 DCAEVT1
    EPWM_setDigitalCompareEventSource(base1, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1,
                                      EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
    //异步
    EPWM_setDigitalCompareEventSyncMode(base1, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1,
                                        EPWM_DC_EVENT_INPUT_NOT_SYNCED);
    //使用消隐窗口过滤 PZC 边沿和噪声
    EPWM_enableDigitalCompareBlankingWindow(base1);
    EPWM_setDigitalCompareBlankingEvent(base1, EPWM_DC_WINDOW_START_TBCTR_ZERO);
    // 消隐窗口偏移 = CMPA(n+1)
    EPWM_setDigitalCompareWindowOffset(base1, 1);
    // 消隐窗口长度
    EPWM_setDigitalCompareWindowLength(base1, MIN_PERIOD);
    // 启用时基计数器捕捉
    EPWM_enableDigitalCompareCounterCapture(base1);
    //ZVS 代码到此结束