Microchip dsPIC33同时启动所有PWM



在Curiosity板上使用dsPIC33CK256MP508。

尝试在高分辨率模式下运行4台PWM发电机。

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

数据表显示的图表似乎表明它们都在同一时间点运行,或者至少它们似乎都在完全相同的时间启动,但实际上,当每个PWM发生器启用或使用PGxSTATbits.TRSET启动一个循环时,每个循环都将按序启动,因为它们是通过顺序命令在不同的时间启动的。

有简单的方法吗?理想情况下,我想写一点,甚至驱动一个引脚之类的东西,这样每个生成器都能同时启动。只要触发器同时启动,从触发器到它们实际启动之间可能会有一些延迟。

谢谢。

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

首先,为您的模块/功能生成一个组件列表,并计算手动启动每个PWM定时器之间的时钟周期。这将为您提供PWM定时器之间的精确相位差。

一旦您准确地知道相位差的周期数,在按顺序启动PWM计数器/定时器之前,通过设置每个计数器的值来调整它们的相位。

换句话说,您必须对时钟周期进行计数,并设置初始计数器值,以便它们在启动后同时达到ZERO或COMPARE。

最新更新