Other Parts Discussed in Thread: PMP23338
器件型号: TMS320F280039C-Q1
主题: PMP23338 中讨论的其他器件
嗨、大家好
我正在研究双预期 EV 充电器的过流保护(输入侧)
我正在遵循以下文档
www.ti.com/.../spradd9.pdf
本文档规定不使用传统的 CBC 方案、而是在发生过流(双向充电器的输入侧电感器电流)时使用 T1 事件来停止 PWM。
我将 epwm6 用于高频 PWM。
void EPWM_init (){
EPWM_setClockPrescaler (myEPWM0_BASE、EPWM_CLOCK_DIVIDER_1、EPWM_HSCLOCK_DIVIDER_1);
EPWM_setTimeBasePeriod (myEPWM0_BASE、999);
EPWM_setTimeBaseCounter (myEPWM0_BASE、0);
EPWM_setTimeBaseCounterMode (myEPWM0_BASE、EPWM_COUNTER_MODE_UP);
ePWM_disablePhaseShiftLoad (myEPWM0_base);
EPWM_setPhaseShift (myEPWM0_base、0);
EPWM_setCounterCompareValue (myEPWM0_BASE、EPWM_COUNTER_COMPARE_A、320);
EPWM_setCounterCompareShadowLoadMode (myEPWM0_BASE、EPWM_COUNTER_COMPARE_A、EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue (myEPWM0_BASE、EPWM_COUNTER_COMPARE_B、0);
EPWM_setCounterCompareShadowLoadMode (myEPWM0_BASE、EPWM_COUNTER_COMPARE_B、EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue (myEPWM0_BASE、EPWM_COUNTER_COMPARE_C、490);
EPWM_setActionQualifierT1TriggerSource (myEPWM0_BASE、EPWM_AQ_TRIGGER_EVENT_TRIG_DCA_2);
EPWM_setActionQualifierT2TriggerSource (myEPWM0_BASE、EPWM_AQ_TRIGGER_EVENT_TRIG_DCA_2);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_HIGH、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_T1_COUNT_UP);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction (myEPWM0_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_LOW、EPWM_AQ_OUTPUT_ON_T1_COUNT_UP);
EPWM_setDeadBandDelayPolarity (myEPWM0_BASE、EPWM_DB_FED、EPWM_DB_POLARITY_ACTIVE_LOW);
EPWM_setDeadBandDelayMode (myEPWM0_BASE、EPWM_DB_RED、TRUE);
EPWM_setRisingEdgeDelayCountShadowLoadMode (myEPWM0_BASE、EPWM_RED_LOAD_ON_CNTR_ZERO);
eMp_disableRisingEdgeDelayCountShadowLoadMode (myEPWM0_BASE);
ePWM_setRisingEdgeDelayCount (myEPWM0_BASE、48);
ePWM_setDeadBandDelayMode (myEPWM0_BASE、ePWM_DB_FED、TRUE);
EPWM_setFallingEdgeDelayCountShadowLoadMode (myEPWM0_BASE、EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_disableFallingEdgeDelayCountShadowLoadMode (myEPWM0_BASE);
EPWM_setFallingEdgeDelayCount (myEPWM0_BASE、48);
EPWM_selectDigitalCompareTripInput (myEPWM0_BASE、EPWM_DC_TRIP_TRIPIN4、EPWM_DC_TYPE_DCAH);
EPWM_setTripZoneDigitalCompareEventCondition (myEPWM0_BASE、EPWM_TZ_DC_OUTPUT_A1、EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_enableADCTrigger (myEPWM0_BASE、EPWM_SOC_A);
EPWM_setADCTriggerSource (myEPWM0_BASE、EPWM_SOC_A、EPWM_SOC_TBCTR_U_CMPC);
EPWM_setADCTriggerEventPrescale (myEPWM0_BASE、EPWM_SOC_A、1);
}
另外,我有比较器 1H ,它将电流作为其正桥臂,将 DAC 值 3700 作为其负桥臂
在我的台式机上,我使用电位计,当值低于 3700,我看到完美的 PWM(免费,死区为 400ns ;我的 SYSCLK 为 120MHz)
高于 3700 时、epwm6A 关闭、但 epwm6B 仍继续生成 PWM
第二、我也不理解文件中的这一段
“
因此、图 1-3 展示了 PWM 配置的理想 CBC 保护方案。 的 PWM
同步开关(在本例中为用于正周期的高侧 FET Q1)应在有源开关之后导通
关断、并具有自定义死区时间。 但是、ePWM 的传统跳闸区域 (TZ) 子模块不能
使用来实现上述逻辑。 如图 1-4 所示、当发生逐周期跳闸事件时、相应操作即为具体操作
在 ePWMxA 和 ePWMxB 输出端立即执行 TZ 子模块中指定的操作、不带任何信号
延迟、因为 TZ 子模块是 ePWM 输出之前的最后一部分。 此外、对于图腾柱 PFC
用于有源 FET 和同步 FET 的 EPWM 输出根据 VAC 极性而有所不同、因此内部设置的操作也不同
TZ 子模块无法自动在正周期和负周期中运行。
“
我实现了 ZCD。
在 ZCD 检测功能中、我可以更改负半周期的 DAC 值。 但现在我只关注+ve 半周期。
如果我理解有什么问题、请帮助我
