PWM 使用指南
PWM 的硬件设计,使用时基计数器产生上述的锯齿波信号,使用一个比较器可同时产生两路 PWM 信号。 PWM 模块的硬件原理图可简化如下:

PWM 模块共支持 4 个 PWM 通道,上图只画出了其中一个 PWM 通道,每个通道的输出信号有两个:PWMx0 和 PWMx1,对应 DTS 参数中的 action0 和 action1 配置,详见 PWM 自定义参数。
PWM 模块支持的功能特性有:
- 每个 PWM 通道可以产生两个 PWM 输出信号: PWMx0 和 PWMx1,可遵循如下配置
-
两个独立的单边输出
-
两个独立的双边对称输出
-
一个独立的双边非对称输出
-
-
专用的 16 位可配置周期和频率的时基计数器(Time Base Counter)
-
系统时钟 100MHz
-
多种事件可配置产生对应的中断
注:
PWM 硬件 Spec 文档中,将两个 PWM 输出信号称作 PWMxA 和 PWMxB,为了避免和阈值 CMPA、CMPB 混淆,软件设计中将两个输出信号称作 PWMx0 和 PWMx1。
在 CMPA、CMPB 同时使用的情况下,锯齿波就会有两次和阈值的比较,共产生 4 个关键时点:
锯齿波信号波段 | CMPA | CMPB |
---|---|---|
增斜率段 | CAU (Compare A Up) | CBU (Compare B Up) |
减斜率段 | CAD (Compare A Down) | CBD (Compare B Down) |
以增减模式的锯齿波为例,共 6 个关键时点:

上图中的,6 个关机时点的触发行为配置是:(行为类型定义见 PWM 自定义参数)
关键时点 | Action 类型 |
---|---|
CBD | none |
CBU | none |
CAD | high |
CAU | none |
PRD | low |
ZRO | low |