PWM 输出模式
PWM 产生
通过设置寄存器字段 XPWM_MODE = 0x0,使 XPWM 进入 PWM 输出模式。在该模式下,通过周期寄存器 XPWM_PRD 和比较寄存器 XPWM_CMP,可以调节 PWM 的频率以及占空比。
PWM 的生成方式,固定为在计数器 XPWM_CNT = 0 的时刻,XPWM 的输出为高电平。在 XPWM_CNT = XPWM_CMP 的时刻,XPWM 的输出为低电平。
-
PWM_FRE = XPWM_CNT_CLK / XPWM_PRD
-
PWM_DUTY = XPWM_CMP / XPWM_PRD
- XPWM_CNT_CLK = SYS_CLK / DIV
下图以 XPWM_PRD = 0x7,XPWM_CMP = 0x4 的 PWM 输出为例,占空比为 4/7:

动态更新
- 立即更新:修改 XPWM_PRD 和 XPWM_CMP 寄存器后,PWM 立即生效。
- 影子更新:修改 XPWM_PRD 和 XPWM_CMP 寄存器后,在下一个周期进行 PWM 的更新,即下一个周期的 XPWM_CNT_Z 对应的时刻进行更新。
XPWM_CMP 立即更新的举例:
XPWM_CMP 从 CMP0 更新到 CMP1,其中 CMP1 小于 CMP0,也小于当前的计数器数值。

XPWM_CMP 影子更新的举例
XPWM_CMP 从 CMP0 更新到 CMP1,其中 CMP1 小于 CMP0,也小于当前的计数器数值。

XPWM_PRD 立即更新的举例:
XPWM_PRD 从 PRD0 更新到 PRD1,其中 PRD1 小于 PRD0。

XPWM_PRD 影子更新的举例:
XPWM_PRD 从 PRD0 更新到 PRD1,其中 PRD1 是小于 PRD0。

中断信号
XPWM 在 PWM 模式下,支持中断的产生,中断信号如下:
- XPWM_CNT_Z:在计数器 XPWM_CNT = 0 的时刻,对应产生的标记信号。
- XPWM_CNT_CMP:在计数器 XPWM_CNT = XPWM_CMP 的时刻,对应产生的标记信号。
- XPWM_CNT_PRD:在计数器 XPWM_CNT =(XPWM_CNT_PRD - 1)的时刻,对应产生的标记信号。

