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.

[参考译文] AM2431:EPWM012和 AMP;EPWM3同步问题

Guru**** 2747345 points

Other Parts Discussed in Thread: AM2431

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1306778/am2431-epwm012-epwm3-synchronize-problem

器件型号:AM2431

您好!所有 TI 专家!

我目前正在使用产品板上的 AM2431实现 EPWM 同步。 我已成功同步 EPWM0/1/2、但在将 EPWM3与上述信号同步时遇到问题。 根据数据表、EPWM0/1/2可以在没有额外设置的情况下同步、但 EPWM3需要配置寄存器 CTRLMMR_EPWM3_CTRL[10-8] SYNCIN_SEL。
 
我参考了 CTRLMMR_EPWM3_CTRL 寄存器、并尝试直接向其中写入值、但未成功实现 EPWM3的同步。
uint32_t addr = CSL_MAIN_CTRL_MMR_CFG0_EPWM3_CTRL_PROXY;
uint32_t value = 1;
uint32_t registerValue = *(volatile uint32_t *) ((uintptr_t) addr);
registerValue &= ~CSL_MAIN_CTRL_MMR_CFG0_EPWM3_CTRL_SYNCIN_SEL_MASK;
registerValue |= ((value << CSL_MAIN_CTRL_MMR_CFG0_EPWM3_CTRL_SYNCIN_SEL_SHIFT) & CSL_MAIN_CTRL_MMR_CFG0_EPWM3_CTRL_SYNCIN_SEL_MASK);
*(volatile uint32_t *) ((uintptr_t) addr) = registerValue;
是否有人可以帮助验证我在实施过程中可能出错的地方?
此致、
拉里