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.
EPWM_setCounterCompareShadowLoadMode (uint32_t base、
EPWM_CounterCompareModule 补偿模块、
EPWM_CounterCompareLoadMode loadMode)
LoadMode 可以是以下三个中的一个:
EPWM_COMP_LOAD_ON_CNTR_ZERO 和 EPWM_COMP_LOAD_ON_SYNC_CNTR_ZERO 之间的唯一差异 是"SYNC";
EPWM_COMP_LOAD_ON_SYNC_ONLY 仅在"SYNC"上加载。
我的问题如下:
1.您能向我介绍一下"SYNC"的详细文档说明吗? 如何生成 SYNC? 按软件或硬件列出?
2.您能指出一个关于使用此"SYNC"的示例项目吗?
谢谢!
尊敬的 Quentin:
F28004x 器件上的同步如下:
1. 您能否给我指出"同步"的详细文档说明? 如何生成 SYNC? 按软件或硬件?
同步脉冲可能有多种来源:
您可以为每个 ePWM 选择同步输出源。 这是通过 TBCTL[SYNCOSEL]位来完成的。 如果您选择"00:EPWMxSYNCI / SWFSYNC"、则只能作为 SYNCOUT 生成基于软件的同步。
2. 您能指出一个关于使用此"同步"的项目示例吗?
C2000Ware 中有一个同步示例:
C:\ti\c2000\C2000Ware_version\driverlib\f28004x\examples\epwm\epwm_ex3_synchronization
此外、本视频还介绍了同步(约3:50): https://www.ti.com/video/6304743941001?keyMatch=C2000%20EPWM
此致、
Marlyn
尊敬的 Marlyn:
非常感谢您的回复?
我犯了个错误--我使用的是280025而不是280049 《280025技术参考手册》中指出:
=========
17.4.5在 ePWM 模块之间同时写入 TBPRD 和 CMPx 寄存器
对于变频应用、需要同时写入 TBPRD 和 CMPx 寄存器
模块之间的连接。 这可防止 CTR = 0或 CTR = PRD 脉冲强制影子到的情况
在所有寄存器在 ePWM 模块之间更新之前主动加载这些寄存器(导致某些
从新的影子值加载寄存器、而其他寄存器从旧的影子值加载)。 拓扑
这是针对 TBPRD:TBPRDHR、CMPA:CMPAHR、CMPB:CMPBHR、CMPC 和的 ePWM 寄存器链接方案
添加了 PWM 模块之间的 CMPD 寄存器。
对于特定的 ePWM 模块# A,用户代码将"B+1"写入 EPWMXLINK 中链接的寄存器位域。 "B"为
链接到的 ePWM 模块#(即、写入 ePWM 模块"B" TBPRD:TBPRDHR、
CMPA:CMPAHR、CMPB:CMPBHR 或 CMPC 将同时写入 ePWM 中的相应寄存器
模块"A")。 例如、配置了 ePWM3 EPWMXLINK 寄存器以便 CMPA:CMPAHR 链接到该寄存器
ePWM1、然后在 ePWM 1中写入 CMPA:CMPAHR 将同时写入相同的值
CMPA:ePWM3中的 CMPAHR。 如果 ePWM4的 CMPA:CMPAHR 寄存器也链接到 ePWM1、则对进行写入
ePWM 1将向 ePWM3和 ePWM4中的 CMPA:CMPAHR 寄存器写入相同的值。
EPWMXLINK 的寄存器描述清楚地解释了相应的寄存器位域链接值
例如 ePWM。 使用 EPWMXLINK 的一个示例是将 ePWM2 CMPA 与 ePWM1的 CMPA 链接在一起。 在本例中为 a
写入 ePWM1的 CMPA 也将更改 ePWM2的 CMPA 值。
=========
您可以指出一个示例项目、即"在 ePWM 模块之间同时写入 TBPRD 和 CMPx 寄存器"?
更具体地说、你能否给我指一个 driverlib 示例项目:" 在 EPWM 模块之间同时写入 TBPRD 和 CMPx 寄存器"? 谢谢!
如果没有示例项目、则实现"在 ePWM 模块之间同时写入 TBPRD 和 CMPx 寄存器"的某些代码片段也非常有用。 谢谢!
尊敬的 Quentin:
如果没有示例项目,一些实现"在 ePWM 模块之间同时写入 TBPRD 和 CMPx 寄存器"的代码片段也非常有用。 谢谢!
我不相信我们有任何专用的示例项目来展示正在使用的 EPWMxLINK 寄存器,但本 应用报告( ePWM 开发人员指南: https://www.ti.com/lit/sprad12 )将其整合到应用程序中,代码可以在 C2000Ware 中找到。 本应用报告是使用 F2838x 器件完成的、但 F28002x 具有相同的 ePWM 模块。
如果您对该功能有任何问题、请告诉我、我可以帮助您进一步进行说明。
此致、
Marlyn
非常感谢、Marlyn!
是否有办法 在 ePWM 模块之间同时复位 VCAPCTL 寄存器(例如,使用 ePWM_startValleyCapture ())?
尊敬的 Quentin:
不可以。遗憾的是、我们没有这样的东西可以跨模块更新 VCAPCTL、对于所有需要更新的模块、这仍然必须是单独的更新。
此致、
Marlyn