请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28069 Thread 中讨论的其他器件:controlSUITE
工具/软件:Code Composer Studio
您好!
我将 Piccolo 实验套件与 F28069控制卡配合使用。 我使用 了 controlSUITE 中的 HRPWM 示例。 当我尝试向 Epwm2寄存器添加相移时、它不起作用。 请有人解释一下。
EPwm1Regs.TBCTL.bit.PRDLD = TB_Immediate;//设置立即加载 EPwm1Regs.TBPRD =周期-1; // PWM 频率= 1/周期 EPwm1Regs.CMPA.half.CMPA =周期/ 2; //初始设置占空比50% EPwm1Regs.CMPA.half.CMPAHR =(1 << 8); //初始化 HRPWM 扩展 EPwm1Regs.CMPB =周期/ 2; //初始设置占空比50% EPwm1Regs.TBPHS.ALL = 0; EPwm1Regs.TBCTR = 0; EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // EPwm1是主设备 EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE; EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR; // PWM 切换为低/高 EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; EPwm1Regs.AQCTLB.bit.ZRO = AQ_CLEAR; EPwm1Regs.AQCTLB.bit.CBU = AQ_SET; EALLOW; EPwm1Regs.HRCNFG.ALL = 0x0; EPwm1Regs.HRCNFG.bit.EDGMODE = HR_REP; //上升沿上的 MEP 控制 EPwm1Regs.HRCNFG.bit.CTLMODE = HR_CMP; EPwm1Regs.HRCNFG.bit.HRLOAD = HR_CTR_ZERO; EDIS; } // // HRPWM2_Config - // void HRPWM2_Config (uint16周期) { // 使用 HRPWM 进行// ePWM2寄存器配置 // ePWM2A 在上升沿由 MEP 控制切换为低电平/高电平 // EPwm2Regs.TBCTL.bit.PRDLD = TB_Immediate;//设置立即加载 EPwm2Regs.TBPRD =周期-1; // PWM 频率= 1/周期 EPwm2Regs.CMPA.half.CMPA =周期/ 2; //初始设置占空比50% EPwm1Regs.CMPA.half.CMPAHR =(1 << 8); //初始化 HRPWM 扩展 EPwm2Regs.CMPB =周期/ 2; //初始设置占空比50% EPwm2Regs.TBPHS.ALL =(周期/2)-1; //180相移 EPwm2Regs.TBCTR = 0; EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; EPwm2Regs.AQCTLA.bit.ZRO = AQ_CLEAR; // PWM 切换为低/高 EPwm2Regs.AQCTLA.bit.CAU = AQ_SET; EPwm2Regs.AQCTLB.bit.ZRO = AQ_CLEAR; EPwm2Regs.AQCTLB.bit.CBU = AQ_SET; EALLOW; EPwm2Regs.HRCNFG.ALL = 0x0; EPwm2Regs.HRCNFG.bit.EDGMODE = HR_REP; //上升沿上的 MEP 控制 EPwm2Regs.HRCNFG.bit.CTLMODE = HR_CMP; EPwm2Regs.HRCNFG.bit.HRLOAD = HR_CTR_ZERO; EDIS; }