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.

[参考译文] TMS570LS1224:如何验证对称PWM?

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1089190/tms570ls1224-how-do-we-verify-the-symmetric-pwm

部件号:TMS570LS1224

我们编写了以下代码,用于生成3个PWM,将所有PWM同步,并将EPWMA用于ADC转换(ADC1组1,ADC 2组1)。  我们如何验证ADC转换是在上行计数器的中心触发的,因为我们已经完成了计数器上行的所有配置? 在触发ADC转换时,是否有任何事件或标志为我们提供参考?

我们的代码初始化:

*/开始

_enable_interrupit_();
adcStartConversion (adcREG1,adcGROUP1);
adcStartConversion (adcREG2,adcGROUP1);
//etpwmStartTBCLK();
KickerReg ->KICKER0 = 0x83E70B13U;
KickerReg ->KICKER1 = 0x95A4F1E0U;
PinMuxReg ->PINMMR35 = 0x1000;
KickerReg->KICKER0 = 0x0万U;
KickerReg->KICKER1 = 0x0万U;
/*设置etPWM */
etpwmSetCounterMode (etpwmREG1,CounterMode_UpDown);
etpwmSetCounterMode (etpwmREG2,CounterMode_UpDown);
etpwmSetCounterMode (etpwmREG3,CounterMode_UpDown);
etpwmSetSyncOut(etpwmREG1,SyncOut_CtrlEqZer);
etpwmSetSyncOut (etpwmREG2,SyncOut_EPWMxSYNCI);
etpwmSetSyncOut (etpwmREG3,SyncOut_EPWMxSYNCI);
etpwmDisableCounterLoadOnSync(etpwmREG1);
etpwmEnableCounterLoadOnSync (etpwmREG2,0,0x2000);
etpwmEnableCounterLoadOnSync (etpwmREG3,0,0x2000);
etpwmREG2->TBCTL |=(uint16)4u;
etpwmREG3->TBCTL |=(uint16)4u;
/*将模块配置为在ctr=0时将PWMA值设置为1,在ctr=CmpA */时将其设置为0
etpwmActionQualConfig_t configPWM;
configPWM.CtrlEqPeriod_Action = ActionQual_Disabled;
configPWM.CtrlEqZero _Action = ActionQual_Disabled;
configPWM.CtrlEqCmpAux_Action = ActionQual_set;
configPWM.CtrlEqCmpADown _操作= ActionQual_Clear;
configPWM.CtrlEqCmpBUp_Action = ActionQual_Disabled;
configPWM.CtrlEqCmpBDown _操作= ActionQual_Disabled;
etpwmSetActionQualPwmA (etpwmREG1,configPWM);
etpwmSetActionQualPwmA (etpwmREG2,configPWM);
etpwmSetActionQualPwmA (etpwmREG3,configPWM);
/*启用SOC触发器*/

etpwmEnableSOCA (etpwmREG2,CTR PRD,EventPeriod_FirstEvent);
etpwmClearEventFlag (etpwmREG2,Event_SOCA);
etpwmTriggerEvent (etpwmREG2,Event_SOCA);


etpwmEnableCmpAShadowMode(etpwmREG1, LoadMode_CtrlEqZer);
etpwmEnableCmpAShadowMode(etpwmREG2, LoadMode_CtrlEqZero);
etpwmEnableCmpAShadowMode (etpwmREG3,LoadMode_CtrlEqZero);

etpwmStartTBCLK();
adcEnableNotification (adcREG1,adcGROUP1);
adcEnableNotification (adcREG2,adcGROUP1);

*/结束

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,我们的专家在4月7日之前不在办公室。 请期待回复延迟。

    此外,请参阅此常见问题解答: software-dl.ti.com/.../index.html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们1224我们如何验证ADC转换在我们完成所有计数器配置后的中心被触发? 在触发ADC转换时,是否有任何事件或标志为我们提供参考?[/QUOT]

     在生成 转换脉冲的开始时,会设置ETFLG寄存器中的SOCA或SOCB标记

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以启用ADC 组转换结束中断。 无论何时完成转换,都会生成中断。