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 , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
//----------------------------------------------------------------------
// 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 代码到此结束