This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好。 每个人。
我对 TMS320F28069的 HRPWM 有疑问。
当通过向 PWM1添加相位差来操作 PWM2时、在相位差中、PWM2的输出定期成为跳周期。 *1.
如何摆脱 PWM2输出跳周期?
*发生跳频的1相位值(EPwm2Regs.TBPHS.ALL)
0x00AE9800至0x00AEFF00
0x00AF2000到0x00AFFF00
0x00B02000到0x00B07700
正常波形
黄色:PWM1A、青色:PWM1B、品红色:PWM2A、绿色:PWM2B
非法波形
黄色:PWM1A、青色:PWM1B、品红色:PWM2A、绿色:PWM2B
可以立即发送项目文件。
此致、
Maekawa
您好、Kris - San。
感谢您的快速回复。
PWM 和 HRPWM 的寄存器设置如下。
// ePWM1 EALLOW; EPwm1Regs.TBPRD = 0x0160; EPwm1Regs.TBPRDHR = 0xF000; EPwm1Regs.TBPHS.Half.TBPHS = 0U; EPwm1Regs.TBPHS.Half.TBPHSHR = 0U; EPwm1Regs.TBCTR = 0; EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_updown; EPwm1Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm1Regs.CMPA.ALL = 0x00B07800; EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO _PRD; EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE; EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE; EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL; EPwm1Regs.DBCTL.bit.HALFCYCLE = 1; EPwm1Regs.DBRED = 24; EPwm1Regs.DBFED = 24; EPwm1Regs.TZSEL.bit.OSHT1 = TZ_ENABLE; EPwm1Regs.TZSEL.bit.OSHT2 = TZ_ENABLE; EPwm1Regs.TZSEL.bit.OSHT3 = TZ_ENABLE; EPwm1Regs.TZSEL.bit.DCAEVT1 = TZ_ENABLE; EPwm1Regs.TZSEL.bit.DCBEVT1 = TZ_ENABLE; EPwm1Regs.TZSEL.bit.DCAEVT2 = TZ_DISABLE; EPwm1Regs.TZSEL.bit.DCBEVT2 = TZ_DISABLE; EPwm1Regs.TZSEL.bit.CBC1 = TZ_DISABLE; EPwm1Regs.TZSEL.bit.CBC2 = TZ_DISABLE; EPwm1Regs.TZSEL.bit.CBC3 = TZ_DISABLE; EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO; EPwm1Regs.TZCTL.bit.TSB = TZ_FORCE_LO; EPwm1Regs.TZCTL.bit.DCAEVT1 = TZ_NO_CHANGE; EPwm1Regs.TZCTL.bit.DCBEVT1 = TZ_NO_CHANGE; EPwm1Regs.TZCTL.bit.DCAEVT2 = TZ_NO_CHANGE; EPwm1Regs.TZCTL.bit.DCBEVT2 = TZ_NO_CHANGE; EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP2OUT; EPwm1Regs.DCTRIPSEL.bit.DCBHCOMPSEL = DC_COMP3OUT; EPwm1Regs.DCTRIPSEL.bit.DCALCOMPSEL = DC_TZ2; EPwm1Regs.DCTRIPSEL.bit.DCBLCOMPSEL = DC_TZ3; EPwm1Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAH_HI; EPwm1Regs.TZDCSEL.bit.DCBEVT1 = TZ_DCBH_HI; EPwm1Regs.TZDCSEL.bit.DCAEVT2 = TZ_FCAL_LOW; EPwm1Regs.TZDCSEL.bit.DCBEVT2 = TZ_DCBL_LOW; EPwm1Regs.TZCLR.ALL = 0x007F; EPwm1Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT1; EPwm1Regs.DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_SYNC; EPwm1Regs.DCBCTL.bit.EVT1SRCSEL = DC_EVT1; EPwm1Regs.DCBCTL.bit.EVT1FRCSYNCSEL = DC_EVT_SYNC; EPwm1Regs.DCACTL.bit.EVT2SRCSEL = DC_EVT2; EPwm1Regs.DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_SYNC; EPwm1Regs.DCBCTL.bit.EVT2SRCSEL = DC_EVT2; EPwm1Regs.DCBCTL.bit.EVT2FRCSYNCSEL = DC_EVT_SYNC; EPwm1Regs.HRCNFG.bit.EDGMODE = HR_BEP; EPwm1Regs.HRCNFG.bit.CTLMODE = HR_CMP; EPwm1Regs.HRCNFG.bit.HRLOAD = HR_CTR_ZERO _PRD; EPwm1Regs.HRCNFG.bit.SELOUTB = HR_NORM_B; EPwm1Regs.HRCNFG.bit.AUTOCONV = 1; EPwm1Regs.HRCNFG.bit.SWAPAB = HR_NORM_B; EPwm1Regs.HRPCTL.bit.TBPHSHRLOADE = 1; EPwm1Regs.HRPCTL.bit.HRPE = 1; EDIS; // ePWM2 EALLOW; EPwm2Regs.TBPRD = 0x0160; EPwm2Regs.TBPRDHR = 0xF000; uiDebug_TBPHS_ePWM2 = 0x00B07800; EPwm2Regs.TBPHS.ALL = uiDebug_TBPHS_ePWM2; EPwm2Regs.TBCTR = 0; EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm2Regs.TBCTL.bit.PHSDIR = TB_DOWN; EPwm2Regs.CMPA.ALL = 0x00B07800; EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_Zero_PRD; EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR; EPwm2Regs.AQCTLA.bit.CAU = AQ_SET; EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE; EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; EPwm2Regs.DBCTL.bit.IN_MODE = DBA_ALL; EPwm2Regs.DBCTL.bit.HALFCYCLE = 1; EPwm2Regs.DBRED = 24; EPwm2Regs.DBFED = 24; EPwm2Regs.TZSEL.bit.OSHT1 = TZ_ENABLE; EPwm2Regs.TZSEL.bit.OSHT2 = TZ_ENABLE; EPwm2Regs.TZSEL.bit.OSHT3 = TZ_ENABLE; EPwm2Regs.TZSEL.bit.DCAEVT1 = TZ_ENABLE; EPwm2Regs.TZSEL.bit.DCBEVT1 = TZ_ENABLE; EPwm2Regs.TZSEL.bit.DCAEVT2 = TZ_DISABLE; EPwm2Regs.TZSEL.bit.DCBEVT2 = TZ_DISABLE; EPwm2Regs.TZSEL.bit.CBC1 = TZ_DISABLE; EPwm2Regs.TZSEL.bit.CBC2 = TZ_DISABLE; EPwm2Regs.TZSEL.bit.CBC3 = TZ_DISABLE; EPwm2Regs.TZCTL.bit.TZA = TZ_FORCE_LO; EPwm2Regs.TZCTL.bit.TSB = TZ_FORCE_LO; EPwm2Regs.TZCTL.bit.DCAEVT1 = TZ_NO_CHANGE; EPwm2Regs.TZCTL.bit.DCBEVT1 = TZ_NO_CHANGE; EPwm2Regs.TZCTL.bit.DCAEVT2 = TZ_NO_CHANGE; EPwm2Regs.TZCTL.bit.DCBEVT2 = TZ_NO_CHANGE; EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP2OUT; EPwm2Regs.DCTRIPSEL.bit.DCBHCOMPSEL = DC_COMP3OUT; EPwm2Regs.DCTRIPSEL.bit.DCALCOMPSEL = DC_TZ2; EPwm2Regs.DCTRIPSEL.bit.DCBLCOMPSEL = DC_TZ3; EPwm2Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAH_HI; EPwm2Regs.TZDCSEL.bit.DCBEVT1 = TZ_DCBH_HI; EPwm2Regs.TZDCSEL.bit.DCAEVT2 = TZ_FCAL_LOW; EPwm2Regs.TZDCSEL.bit.DCBEVT2 = TZ_DCBL_LOW; EPwm2Regs.TZCLR.ALL = 0x007F; EPwm2Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT1; EPwm2Regs.DCACTL.bit.EVT1FRCSYNCSEL = DC_EVT_SYNC; EPwm2Regs.DCBCTL.bit.EVT1SRCSEL = DC_EVT1; EPwm2Regs.DCBCTL.bit.EVT1FRCSYNCSEL = DC_EVT_SYNC; EPwm2Regs.DCACTL.bit.EVT2SRCSEL = DC_EVT2; EPwm2Regs.DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_SYNC; EPwm2Regs.DCBCTL.bit.EVT2SRCSEL = DC_EVT2; EPwm2Regs.DCBCTL.bit.EVT2FRCSYNCSEL = DC_EVT_SYNC; EPwm2Regs.HRCNFG.bit.EDGMODE = HR_BEP; EPwm2Regs.HRCNFG.bit.CTLMODE = HR_CMP; EPwm2Regs.HRCNFG.bit.HRLOAD = HR_CTR_ZERO _PRD; EPwm2Regs.HRCNFG.bit.SELOUTB = HR_NORM_B; EPwm2Regs.HRCNFG.bit.AUTOCONV = 1; EPwm2Regs.HRCNFG.bit.SWAPAB = HR_NORM_B; EPwm2Regs.HRPCTL.bit.TBPHSHRLOADE = 1; EPwm2Regs.HRPCTL.bit.HRPE = 1; EDIS;
此致、
Maekawa
您好、Maekawa、
寄存器设置与我所说的内容完全不同。 我将努力让您的代码在本地设备上运行、看看我是否可以复制它。
此致、
Kris
您好、Kris - San、
感谢你的答复。
我可以提供可与 TMDX28069USB 或 TMDSCNCD28069配合使用的项目文件。
此致、
Maekawa
您好、Maekawa、
这将非常有帮助。 请上传项目、这样会加快调试。
此致、
Kris
您好、Kris - San、
共享项目文件。
e2e.ti.com/.../F28069_5F00_HRPWM_5F00_skip_5F00_cycle.zip
此致、
Maekawa
您好、Maekawa、
没有权变措施-它只是外设的设计方式。 HRPWM 在前几个周期内对寄存器执行更新、因此有可能丢失事件。 如果您需要加载这些值、从工作台看、如果 CMP 寄存器的 HR 部分为0、则似乎可以正常工作。 但是、我并不相信情况总是如此。
此致、
Kris
您好、Kris - San、
感谢你的答复。
我不能说没有解决办法。
此致、
Maekawa