PWM 特性
➢ 3 组带死区互补 PWM 或 6 路独立 PWM 输出
➢ 12 位 PWM
➢ 提供每个 PWM 周期溢出中断,但中断共用同一向量入口
➢ 输出极性可选择
➢ 提供出错帧测功能可紧急关闭 PWM 输出
➢ PWM 工作时钟源可设定时钟分频比
➢ PWM 可做定时器/计数器使用
HC89F0332/0322/0312 集成了三个 12 位 PWM 模块 PWM0、PWM1 和 PWM2,三个模块各有一
个计数器,PWM0 的计数器由 PWM0_EN 来控制,只要使能 PWM0_EN,计数器就会启动,计数器的
时钟源通过 PWM0C 控制寄存器里的 CK0 来选择。
当需要从芯片管脚输出 PWM 波形时,还需要使能 PWM0_OEN 或 PWM01_OEN,同时需要将端
口设置为强推挽模式。如果不**从芯片管脚上输出 PWM 波形,可以不用使能 PWM0_OEN 或
PWM01_OEN,这时候 PWM0 的计数器可以当一个定时器来使用,当计数器溢出时,如果中断允许也
会产生 PWM 中断。
如果 EFLT0 置 1,PWM0 输出和其互补输出可由 FLT0 引脚输入信号变化自动关闭。一旦检测到
FLT0 引脚输入有效电平,PWM 输出会立即关闭,但 PWM 内部计数器仍在继续运行,这样方便在 FLT0
引脚错误去除后继续 PWM 输出。在 FLT0 输入信号有效期间,FLT0S 位无法清除。只有当 FLT0 输入
信号消失后,才能软件清除 FLT0S 状态位,此时 PWM 恢复正常输出。
PWM0 故障检测端口 FLT0(P0.0 端口)具有消抖功能,用户可根据需要设置合适的消抖时间。
配置 FLT0 的消抖时间即配置端口 P0.0 的消抖时间,设置方法详见端口消抖控制寄存器 P00DBC、
P01DBC、P02DBC 章节。
三个 PWM 模块的功能及操作完全一样,用户可通过控制寄存器产生 3 路带死区互补的 PWM 或
6 路单独的 PWM 输出。
3 个 PWM 模块共用一个中断向量入口,但有各自的控制位及标志位,方便用户定时修改 PWM 模
块下一次循环的周期或占空比。
|