【问题标题】:Microchip dsPIC33 Start all PWMs at same timeMicrochip dsPIC33 同时启动所有 PWM
【发布时间】:2021-02-04 18:44:19
【问题描述】:

在 Curiosity 板上使用 dsPIC33CK256MP508。

尝试在高分辨率模式下运行 4 个 PWM 发生器。

我将以单循环模式运行它们。试图弄清楚如何同时启动所有 4 个信号,或者从同一个事件中触发它们,但我无法理解这个外设相当复杂的触发安排。

数据表显示的图表似乎表明它们都从相同的时基运行,或者至少它们似乎都在完全相同的时间开始,但实际上,随着每个 PWM 发生器启用或启动一个周期使用 PGxSTATbits.TRSET,每个周期将按顺序启动,因为它们是由顺序命令在不同时间启动的。

有没有简单的方法来做到这一点?理想情况下,我想写一点,甚至驱动一个引脚或其他东西,以便每个发电机同时启动。触发器和它们实际开始之间可能会有一些延迟,只要它们同时开始。

谢谢。

【问题讨论】:

    标签: pic microchip pwm dspic


    【解决方案1】:

    您可以初始化不同 PWM 定时器/计数器的计数器寄存器的值,以便它们同相启动。实际值取决于为每个定时器设置 TRSET 位之间的指令数,以及您的预分频器选项。

    首先,为您的模块/函数生成一个汇编列表,并在手动触发每个 PWM 定时器之间计算时钟周期。这将为您提供 PWM 定时器之间的准确相位差。

    一旦您确切知道相位差的周期数,通过在依次触发它们之前设置每个计数器的值来调整 PWM 计数器/定时器的相位。

    换句话说,您必须计算时钟周期并设置初始计数器值,以便它们在启动后同时达到零或比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-04
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多