您好!
对于一个项目、多个通道被用来并行输出 PWM 信号。 各种 PWM 信号对该功能至关重要。
多个通道应进行时间同步以同时启动、并且最好不要进行相移(交错)。
同步功能已知。
但是、当前使用单独的汇编器线程来修改 PWM 以同时启动。 这不是首选方法、因为任何可能的跳过/延迟都会损坏应用。
请在这方面为我提供支持。
此致
Kevin
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.
您好!
对于一个项目、多个通道被用来并行输出 PWM 信号。 各种 PWM 信号对该功能至关重要。
多个通道应进行时间同步以同时启动、并且最好不要进行相移(交错)。
同步功能已知。
但是、当前使用单独的汇编器线程来修改 PWM 以同时启动。 这不是首选方法、因为任何可能的跳过/延迟都会损坏应用。
请在这方面为我提供支持。
此致
Kevin
尊敬的 Kevin:
这里的关键问题是需要同步启动多少个 PWM。
从我看到的情况来看 、PWMGenEnable 可被用来启动一个 PWM 对、该 PWM 对属于一个特定的发生器模块-也就是两个 PWM 通道-同时。 除此之外、我看不到在启动时立即同步的方法。 对于通用 MCU、该要求可能过于具体。 为 PWM 外设提供的同步选项运行良好、并且即使在处理 PWM 同步应用时、此同步启动问题也不是我之前提到的问题。
如果他们需要两个以上的通道... 也许他们可以使用三态来保持信号、直到所有发生器都被设置好? 前提是三态本身不会引入某些异步行为。
您好 Ralph、
我们的小组-通过过去的经验-可能会在"多通道同步 PWM 操作"中证明很有用。
我们将通过以下方式记录我们的信念:
驱动程序库提供2个关键功能: (两个 API 功能似乎都"直接满足此海报的需求")
21.2.2.9 PWMGenConfigure
说明:此函数用于设置 PWM 发生器的工作模式。 计数模式、同步模式和调试行为均已配置
当 PWM 发生器参数(周期和脉宽)被修改时、它们对输出 PWM 信号的影响会被延迟。 在同步模式下、在发生同步事件之前不会应用参数更新。 此模式允许修改多个参数并同时生效、而不是一次生效。 此外、同步模式下多个 PWM 发生器的参数可同时更新、使其被视为统一的发生器。
21.2.2.35 PWMSyncTimeBase
同步一个或多个 PWM 发生器模块中的计数器。
现在、我们的海报指出、"同步功能是已知的。" 然而、似乎(甚至)知识-海报寻求(进一步)清晰和理解。 相信这篇帖子的答案需要...
以及我们过去的准则: (被认为"对 Gov't 工作有好处")
//将两个 PWM 发生器配置为递增/递减计数模式、同步更新以及在调试事件发生时停在零。 (再次说明-所有4个'Gens'都可以//可以容纳)
ROM_PWMGenConfigure (PWM0_BASE、PWM_GEN_0、(PWM_GEN_MODE_UP_DOWN |
PWM_GEN_MODE_GEN_SYNC_LOCAL |
PWM_GEN_MODE_DB_SYNC_LOCAL |
PWM_GEN_MODE_FAULT_EXT | PWM_GEN_MODE_FAULT_MINPER |
PWM_GEN_MODE_DBG_STOP);
ROM_PWMGenConfigure (PWM0_BASE、PWM_GEN_2、(PWM_GEN_MODE_UP_DOWN |
PWM_GEN_MODE_GEN_SYNC_LOCAL |
PWM_GEN_MODE_DB_SYNC_LOCAL |
PWM_GEN_MODE_FAULT_EXT | PWM_GEN_MODE_FAULT_MINPER |
PWM_GEN_MODE_DBG_STOP);
和
//同步发生器的时基。
//
ROM_PWMSyncTimeBase (PWM0_BASE、PWM_GEN_0_BIT | PWM_GEN_2_BIT | PWM_GEN_3_BIT); //这些参数非常直观。 //我们已将它们"重新命名"(未显示)、在该过程中、参数与特定 PWM 发生器函数的关系要好得多...