
第 15 章 电机控制 PWM
目录
本章包括下列主题:
15.1 简介 ............................................................................................................................. 15-2
15.2 控制寄存器 .................................................................................................................. 15-4
15.3 PWM 时基 ................................................................................................................. 15-16
15.4 PWM 占空比比较单元 ............................................................................................... 15-20
15.5 互补 PWM 输出模式 .................................................................................................. 15-26
15.6 死区时间控制 ............................................................................................................15-27
15.7 独立 PWM 输出模式 .................................................................................................. 15-30
15.8 PWM 输出改写 .......................................................................................................... 15-31
15.9 PWM 输出和极性控制 ............................................................................................... 15-34
15.10 PWM 故障引脚 .......................................................................................................... 15-34
15.1 1 PWM 更新锁定 .......................................................................................................... 15-37
15.12 PWM 特殊事件触发器 ............................................................................................... 15-38
15.13 器件低功耗模式下的工作 ..........................................................................................15-38
15.14 用于器件仿真的特殊功能 ..........................................................................................15-39
15.15 相关应用笔记 ............................................................................................................15-42
15.16 版本历史 ....................................................................................................................15-43
© 2005 Microchip Technology Inc. DS70062D_CN 第 15-1 页
15
电机控制
PWM

dsPIC30F 系列参考手册
15.1 简介
电机控制 PWM (MCPWM)模块简化了产生多种同步脉宽调制输出的任务。特别是它还能支持
以下电源和电机控制应用:
• 三相交流感应电机 (AC Induction Motor, ACIM)
• 开关磁阻 (Switched Reluctance, SR)电机
• 直流无刷 (Brushless DC, BLDC)电机
• 不间断电源 (UPS)
PWM 模块具有如下特性:
• 专用时基支持 T
• 每个 PWM 发生器都有两个输出引脚
• 每个配对输出引脚均可互补或独立工作
• 用于互补模式的硬件死区时间发生器
• 可由器件配置位设置输出引脚极性
• 多种输出模式:
- 边沿对齐模式
- 中心对齐模式
- 带双更新的中心对齐模式
- 单事件模式
• 手动改写用于 PWM 输出引脚的寄存器
• 占空比更新可配置为立即更新或与 PWM 同步
• 有可编程功能的硬件故障输入引脚
• 用于同步 A/D 转换的特殊事件触发器
• 每个与 PWM 相关的输出引脚都可以被单独使能
CY/2 PWM 边沿精度
15.1.1 不同 MCPWM 模块
根据所选的 dsPIC30F 器件的不同有两种 MCPWM 模块。一种是 8 输出模块,它通常见于 64 引
脚或以上的器件上。还有一种是 6 输出的 MCPWM 模块,它通常见于引脚数小于 64 的较小器件
上。给定的 dsPIC30F 器件也可能具有一个以上的 MCPWM 模块。
如需更多详细信息,参见特定器件数据手册。
表 15-1: 功能部件总结:6 输出 MCPWM 和 8 输出 MCPWM 的对比
I/O 引脚
PWM 发生器
故障输入引脚
死区时间发生器
6 输出的 MCPWM 模块可用于单相或 3 相电源的应用,而 8 输出的 MCPWM 能支持 4 相电机应
用。表 15-1 提供了 6 输出和 8 输出的 MCPWM 模块的功能部件总结。两种模块都支持多种单相
负载。8 输出 MCPWM 还为应用中提供了更高的灵活性,因为它支持两个故障引脚和两个可编程
死区时间。在随后的各节中将更详细的讨论这些功能。
图 15-1 所示为 MCPWM 模块的简化框图。
功能部件
6 输出 MCPWM 模块 8 输出 MCPWM 模块
68
34
12
12
DS70062D_CN 第 15-2 页 © 2005 Microchip Technology Inc.

图 15-1: MCPWM 框图
第 15 章 电机控制 PWM
16 位数据总线
PTCON
PWMCON1
PWMCON2
DTCON1
DTCON2
FLTACON
FLTBCON
OVDCON
PWM 时基控制
PWM 使能和模式 SFR
死区时间控制 SFR
故障引脚控制 SFR
PWM 手动控制
PWM 发生器 1
PDC1
PWM1 占空比寄存器
比较器
通道
1
死区时间
发生器和
改写逻辑
PWM1H
PWM1L
PTMR
比较器
PTMR 周期寄存器
PTPER
比较器
SEVTCMP
注 1: 没有详细显示 PWM 发生器 2、 3 和 4 的细节。
2: 6 输出 MCPWM 模块中没有虚线中的逻辑电路。
PWM 发生器 2
PWM 发生器 3
PWM 发生器 4
特殊事件
后分频器
通道 2
死区时间
发生器和
改写逻辑
通道 3
死区时间
发生器和
改写逻辑
通道 4
死区时间
发生器和
改写逻辑
用于 A/D 转换器的特殊事件触发器
PWM2H
PWM2L
PWM3H
PWM3L
PWM4H
PWM4L
FLTA
FLTB
15
电机控制
PWM
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-3 页

dsPIC30F 系列参考手册
15.2 控制寄存器
以下寄存器控制 MCPWM 模块的工作:
• PTCON:PWM时基控制寄存器
• PTMR:PWM 时基寄存器
• PTPER:PWM时基周期寄存器
• SEVTCMP:PWM 特殊事件比较寄存器
• PWMCON1:PWM 控制寄存器 1
• PWMCON2:PWM 控制寄存器 2
• DTCON1:死区时间控制寄存器 1
• DTCON2:死区时间控制寄存器 2
• FLTACON:故障 A 控制寄存器
• FLTBCON:故障 B 控制寄存器
• PDC1:PWM占空比寄存器 1
• PDC2:PWM占空比寄存器 2
• PDC3:PWM占空比寄存器 3
• PDC4:PWM占空比寄存器 4
此外,还有三个与 MCPWM 模块相关的器件配置位以设置初始复位状态和 I/O 引脚的极性。这些
配置位位于 FBORPOR 器件配置寄存器中。更多详情请参阅第 24 章 “器件配置”。
DS70062D_CN 第 15-4 页 © 2005 Microchip Technology Inc.

第 15 章 电机控制 PWM
寄存器 15-1: PTCON:PWM 时基控制寄存器
高字节:
R/W-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0
PTEN
bit 15 bit 8
bit 15 PTEN:PWM 时基定时器使能位
bit 14
bit 13 PTSIDL:空闲模式 PWM 时基停止位
bit 12-8
bit 7-4 PTOPS<3:0>:PWM 时基输出后分频比选择位
-
低字节:
bit 7 bit 0
1 = PWM 时基开启
0 = PWM 时基关闭
未用:读作 0
1 = PWM 时基在 CPU 空闲模式停止
0 = PWM 时基在 CPU 空闲模式运行
未用:读作 0
1111 = 1:16 后分频
PTSIDL
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
- - - - -
PTOPS<3:0> PTCKPS<1:0> PTMOD<1:0>
0001 = 1:2 后分频
0000 = 1:1 后分频
bit 3-2 PTCKPS<1:0>:PWM 时基输入时钟预分频比选择位
11 = PWM 时基输入时钟周期为 64 T
10 = PWM 时基输入时钟周期为 16 TCY (1:16 预分频)
01 = PWM 时基输入时钟周期为 4 T
00 = PWM 时基输入时钟周期为 1 TCY (1:1 预分频)
bit 1-0 PTMOD<1:0>:PWM 时基模式选择位
11 = PWM 时基工作在带双 PWM 更新中断的连续向上 / 向下模式
10 = PWM 时基工作在连续向上 / 向下计数模式
01 = PWM 时基工作在单事件模式
00 = PWM 时基工作在自由运行模式
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
CY (1:64 预分频)
CY (1:4 预分频)
15
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-5 页
电机控制
PWM

dsPIC30F 系列参考手册
寄存器 15-2: PTMR:PWM 时基寄存器
高字节:
R-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PTDIR PTMR <14:8>
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PTMR <7:0>
bit 7 bit 0
bit 15 PTDIR:PWM 时基计数方向状态位(只读)
1 = PWM 时基向下计数
0 = PWM 时基向上计数
bit 14-0 PTMR<14:0>:PWM 时基寄存器计数值
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
寄存器 15-3: PTPER:PWM 时基周期寄存器
高字节:
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
-
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
bit 7 bit 0
bit 15
bit 14-0 PTPER<14:0>:PWM 时基周期值位
未用:读作 0
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
PTPER<14:8>
PTPER<7:0>
DS70062D_CN 第 15-6 页 © 2005 Microchip Technology Inc.

第 15 章 电机控制 PWM
寄存器 15-4: SEVTCMP:特殊事件比较寄存器
高字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SEVTDIR SEVTCMP<14:8>
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SEVTCMP<7:0>
bit 7 bit 0
bit 15 SEVTDIR:特殊事件触发器时基方向位
1 = 当 PWM 时基向下计数时触发特殊事件。
0 = 当 PWM 时基向上计数时触发特殊事件。
bit 14-0 SEVTCMP<14:0>:特殊事件比较值位
注 1:SEVTDIR 与 PTDIR (PTMR<15>)比较以产生特殊事件触发信号。
2:SEVTCMP<14:0> 与 PTMR<14:0> 比较以产生特殊事件触发信号。
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
寄存器 15-5: PWMCON1:PWM 控制寄存器 1
高字节:
U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
- - - -
bit 15 bit 8
低字节:
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1
PEN4H PEN3H PEN2H PEN1H PEN4L PEN3L PEN2L PEN1L
bit 7 bit 0
(1)
(2)
PMOD4 PMOD3 PMOD2 PMOD1
bit 15-12
bit 11-8 PMOD4:PMOD1:PWM 配对 I/O 引脚模式位
bit 7-4
bit 3-0 PEN4L-PEN1L:PWMxL I/O 使能位
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-7 页
未用:读作 0
1 = PWM 配对 I/O 引脚处于独立输出模式
0 = PWM 配对 I/O 引脚处于互补输出模式
PEN4H-PEN1H:PWMxH I/O 使能位
1 = PWMxH 引脚使能为 PWM 输出
0 = PWMxH 引脚禁止。 I/O 引脚成为通用 I/O
1 = PWMxL 引脚使能为 PWM 输出
0 = PWMxL 引脚禁止。 I/O 引脚成为通用 I/O
注 1:PENxH 和 PENxL 位的复位状态取决于在器件配置寄存器 FBORPOR 中的
器件配置位 PWM/PIN 的值。
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
(1)
(1)
15
电机控制
PWM

dsPIC30F 系列参考手册
寄存器 15-6: PWMCON2:PWM 控制寄存器 2
高字节:
U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
- - - -
bit 15 bit 8
低字节:
U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0
- - - - -
bit 7 bit 0
SEVOPS<3:0>
IUE OSYNC UDIS
bit 15-12
bit 11-8 SEVOPS<3:0>:PWM 特殊事件触发器输出后分频比选择位
bit 7-3
bit 2 IUE:立即更新使能位
bit 1 OSYNC:输出改写同步位
bit 0 UDIS:PWM 更新禁止位
未用:读作 0
1111 = 1:16 后分频
0001 = 1:2 后分频
0000 = 1:1 后分频
未用:读作 0
1 = 立即更新有效的 PDC 寄存器
0 = 对有效的 PDC 寄存器的更新与 PWM 时基同步
1 = 通过设置 OVDCON 寄存器,使得输出改写与 PWM 时基同步
0 = 通过设置 OVDCON 寄存器,使得输出改写在下一个 T
1 = 禁止从占空比和周期缓冲寄存器更新
0 = 使能从占空比和周期缓冲寄存器更新
注 1:IUE 位在 dsPIC30F6010 器件中未用。
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
(1)
CY 边沿发生
DS70062D_CN 第 15-8 页 © 2005 Microchip Technology Inc.

第 15 章 电机控制 PWM
寄存器 15-7: DTCON1:死区时间控制寄存器 1
高字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
DTBPS<1:0> DTB<5:0>
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
DTAPS<1:0> DTA<5:0>
bit 7 bit 0
bit 15-14 DTBPS<1:0>:死区时间单元 B 预分频比选择位
11 = 死区时间单元 B 的时钟周期为 8 T
10 = 死区时间单元 B 的时钟周期为 4 TCY
01 = 死区时间单元 B 的时钟周期为 2 TCY
00 = 死区时间单元 B 的时钟周期为 TCY
bit 13-8 DTB<5:0>:死区时间单元 B 的无符号 6 位死区时间值位
bit 7-6 DTAPS<1:0>:死区时间单元 A 预分频比选择位
11 = 死区时间单元 A 的时钟周期为 8 T
10 = 死区时间单元 A 的时钟周期为 4 TCY
01 = 死区时间单元 A 的时钟周期为 2 TCY
00 = 死区时间单元 A 的时钟周期为 TCY
bit 5-0 DTA<5:0>:死区时间单元 A 的无符号 6 位死区时间值位
CY
CY
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
15
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-9 页
电机控制
PWM

dsPIC30F 系列参考手册
寄存器 15-8: DTCON2:死区时间控制寄存器 2
高字节:
U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
- - - - - - - -
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
DTS4A DTS4I DTS3A DTS3I DTS2A DTS2I DTS1A DTS1I
bit 7 bit 0
bit 15-8
bit 7 DTS4A:PWM4 信号变为有效的死区时间选择位
bit 6 DTS4I:PWM4 信号变为无效的死区时间选择位
bit 5 DTS3A:PWM3 信号变为有效的死区时间选择位
bit 4 DTS3I:PWM3 信号变为无效的死区时间选择位
bit 3
bit 2 DTS2I:PWM2 信号变为无效的死区时间选择位
bit 1 DTS1A:PWM1 信号变为有效的死区时间选择位
bit 0 DTS1I:PWM1 信号变为无效的死区时间选择位
未用:读作 0
1 = 由单元 B 提供死区时间
0 = 由单元 A 提供死区时间
1 = 由单元 B 提供死区时间
0 = 由单元 A 提供死区时间
1 = 由单元 B 提供死区时间
0 = 由单元 A 提供死区时间
1 = 由单元 B 提供死区时间
0 = 由单元 A 提供死区时间
DTS2A:PWM2 信号变为有效的死区时间选择位
1 = 由单元 B 提供死区时间
0 = 由单元 A 提供死区时间
1 = 由单元 B 提供死区时间
0 = 由单元 A 提供死区时间
1 = 由单元 B 提供死区时间
0 = 由单元 A 提供死区时间
1 = 由单元 B 提供死区时间
0 = 由单元 A 提供死区时间
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位
DS70062D_CN 第 15-10 页 © 2005 Microchip Technology Inc.
0 = 清零 x = 未知

第 15 章 电机控制 PWM
寄存器 15-9: FLTACON:故障 A 控制寄存器
高字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FAOV4H FAOV4L FAOV3H FAOV3L FAOV2H FAOV2L FAOV1H FAOV1L
bit 15 bit 8
低字节:
R/W-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTAM
bit 7 bit 0
bit 15-8 FAOV4H-FAOV1L:故障输入 A PWM 改写值位
1 = PWM 输出引脚在发生外部故障输入事件时驱动为有效
0 = PWM 输出引脚在发生外部故障输入事件时驱动为无效
bit 7 FLTAM:故障 A 模式位
1 = 在逐个周期模式中,故障 A 输入引脚起作用
0 = 故障 A 输入引脚将所有控制引脚锁存在 FLTACON<15:8> 中编程的状态。
bit 6-4
bit 3 FAEN4:故障输入 A 使能位
bit 2 FAEN3:故障输入 A 使能位
bit 1 FAEN2:故障输入 A 使能位
bit 0 FAEN1:故障输入 A 使能位
未用:读作 0
1 = PWM4H/PWM4L 这对引脚由故障输入 A 控制
0 = PWM4H/PWM4L 这对引脚不由故障输入 A 控制
1 = PWM3H/PWM3L 这对引脚由故障输入 A 控制
0 = PWM3H/PWM3L 这对引脚不由故障输入 A 控制
1 = PWM2H/PWM2L 这对引脚由故障输入 A 控制
0 = PWM2H/PWM2L 这对引脚不由故障输入 A 控制
1 = PWM1H/PWM1L 这对引脚由故障输入 A 控制
0 = PWM1H/PWM1L 这对引脚不由故障输入 A 控制
- - -
FAEN4 FAEN3 FAEN2 FAEN1
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
15
电机控制
PWM
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-11 页

dsPIC30F 系列参考手册
寄存器 15-10: FLTBCON:故障 B 控制寄存器
高字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FBOV4H FBOV4L FBOV3H FBOV3L FBOV2H FBOV2L FBOV1H FBOV1L
bit 15 bit 8
低字节:
R/W-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTBM
- - -
bit 7 bit 0
bit 15-8 FBOV4H:FBOV1L:故障输入 B PWM 改写值位
1 = PWM 输出引脚在发生外部故障输入事件时驱动为有效
0 = PWM 输出引脚在发生外部故障输入事件时驱动为无效
bit 7 FLTBM:故障 B 模式位
1 = 在逐个周期模式中,故障 B 输入引脚起作用
0 = 故障 B 输入引脚将所有控制引脚锁存为在 FLTBCON<15:8>中编程的状态。
bit 6-4
bit 3 FAEN4:故障输入 B 使能位
未用:读作 0
(1)
1 = PWM4H/PWM4L 这对引脚由故障输入 B 控制
0 = PWM4H/PWM4L 这对引脚不由故障输入 B 控制
bit 2 FAEN3:故障输入 B 使能位
(1)
1 = PWM3H/PWM3L 这对引脚由故障输入 B 控制
0 = PWM3H/PWM3L 这对引脚不由故障输入 B 控制
bit 1 FAEN2:故障输入 B 使能位
(1)
1 = PWM2H/PWM2L 这对引脚由故障输入 B 控制
0 = PWM2H/PWM2L 这对引脚不由故障输入 B 控制
bit 0 FAEN1:故障输入 B 使能位
(1)
1 = PWM1H/PWM1L 这对引脚由故障输入 B 控制
0 = PWM1H/PWM1L 这对引脚不由故障输入 B 控制
注 1:如果两者同时使能的话,故障引脚 A 的优先级高于故障引脚 B。
FBEN4 FBEN3 FBEN2 FBEN1
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
DS70062D_CN 第 15-12 页 © 2005 Microchip Technology Inc.

第 15 章 电机控制 PWM
寄存器 15-11: OVDCON:改写控制寄存器
高字节:
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1
POVD4H POVD4L POVD3H POVD3L POVD2H POVD2L POVD1H POVD1L
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
POUT4H POUT4L POUT3H POUT3L POUT2H POUT2L POUT1H POUT1L
bit 7 bit 0
bit 15-8 POVD4H-POVD1L:PWM 输出改写位
1 = PWMxx I/O 引脚上的输出由 PWM 发生器控制
0 = PWMxx I/O 引脚上的输出由相应的 POUTxx 位中的值控制
bit 7-0 POUT4H-POUT1L:PWM 手动输出位
1 = 在相应的 POVDxx 位被清零时 PWMxx I/O 引脚驱动为有效
0 = 在相应的 POVDxx 位被清零时 PWMxx I/O 引脚驱动为无效
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
寄存器 15-12: PDC1:PWM 占空比寄存器 1
高字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PWM 占空比 1 的 15-8 位
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PWM 占空比 1 的 7-0 位
bit 7 bit 0
bit 15-0 PDC1<15:0>: PWM占空比 1 值位
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
15
电机控制
PWM
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-13 页

dsPIC30F 系列参考手册
寄存器 15-13: PDC2:PWM 占空比寄存器 2
高字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PWM 占空比 2 的 15-8 位
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PWM 占空比 2 的 7-0 位
bit 7 bit 0
bit 15-0 PDC2<15:0>:PWM 占空比寄存器 2 值位
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
寄存器 15-14: PDC3:PWM 占空比寄存器 3
高字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PWM 占空比 3 的 15-8 位
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PWM 占空比 3 的 7-0 位
bit 7 bit 0
bit 15-0 PDC3<15:0>:PWM 占空比寄存器 3 值位
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
DS70062D_CN 第 15-14 页 © 2005 Microchip Technology Inc.

第 15 章 电机控制 PWM
寄存器 15-15: PDC4:PWM 占空比寄存器 4
高字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PWM 占空比 4 的 15-8 位
bit 15 bit 8
低字节:
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PWM 占空比 4 的 7-0 位
bit 7 bit 0
bit 15-0 PDC1<15:0>:PWM 占空比寄存器 4 值位
图注:
R = 可读位 W = 可写位 U = 未用位,读作 0
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
寄存器 15-16: FBORPOR:BOR 和 POR 器件配置寄存器
高字节:
U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
- - - - - - - -
bit 23 bit 16
中字节:
U-0 U-0 U-0 U-0 U-0 R/P R/P R/P
- - - - -
bit 15 bit 8
低字节:
R/P U-0 R/P R/P U-0 U-0 R/P R/P
BOREN
bit 7 bit 0
bit 10 PWMPIN:MPWM 驱动器初始化位
1 = I/O 端口控制复位时的引脚状态 (PWMCON1<7:0> = 0x00)
0 =PWM 模块控制复位时的引脚状态 (PWMCON1<7:0> = 0xFF)
bit 9 HPOL:MCPWM 高边驱动器 (PWMxH)极性位
1 = PWMxH 引脚上的输出信号极性为高电平有效
0 = PWMxH 引脚上的输出信号极性为低电平有效
bit 8 LPOL:MCPWM 低边驱动器 (PWMxL)极性位
1 = PWMxL 引脚上的输出信号极性为高电平有效
0 = PWMxL 引脚上的输出信号极性为低电平有效
注: 有关寄存器上其他配置位的信息,请参阅第 24 章 “器件配置”。
-
BORV<1:0>
PWMPIN HPOL LPOL
- -
FPWRT<1:0>
15
图注:
R = 可读位 W = 可写位 U = 未用位,读作
-n = 上电复位时的值 1 = 置位 0 = 清零 x = 未知
P = 可编程配置位
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-15 页
0
电机控制
PWM

dsPIC30F 系列参考手册
15.3 PWM 时基
PWM 时基由一个带有预分频器和后分频器的 15 位定时器提供(参见图 15-2)。时基的 15 位可
通过 PTMR 寄存器访问。 PTMR<15> 为一个只读状态位 PTDIR,显示 PWM 时基当前的计数方
向。如果 PTDIR 状态位清零,则表示 PTMR 正在向上计数。如果 PTDIR 置 1,则表示 PTMR 正
在向下计数。
通过置位 / 清零 PTEN 位(PTCON<15>)来使能 / 禁止时基。当 PTEN位由软件清零时,PTMR
位不会清零。
图 15-2: PWM 时基框图
PTMOD1
TCY
预分频器
1:1, 1:4, 1:16, 1:64
PTMOD0
零匹配
周期匹配
时钟
控制
PTEN
比较器
时基周期寄存器
PTPER
零匹配
周期匹配
PTMR 寄存器
零检测
周期匹配
门控
周期加载
禁止更新(UDIS)
零匹配
PTMOD1
后分频器
1:1-1:16
PTMR 时钟
定时器复位
上 / 下
定时器
方向控制
周期加载
中断
控制
PTDIR (PTMR<15>)
立即更新
使能(IUE)
PTIF
门控
占空比
加载
PTMOD1
PTMOD0
可以将 PWM 时基配置为以下四种不同的工作模式:
1. 自由运行模式
单事件模式
2.
3. 连续向上 / 向下计数模式
4. 带双更新中断的连续向上 / 向下计数模式。
DS70062D_CN 第 15-16 页 © 2005 Microchip Technology Inc.

这四个模式通过 PTMOD<1:0> 控制位 (PTCON<1:0>)选择。
注: PWM 时基模式决定模块产生的 PWM 信号的类型。(更多细节,请参阅第 15.4.2
15.3.1 自由运行模式
在自由运行模式中,时基将向上计数直到与 PTPER 寄存器中的值发生匹配。 PTMR 寄存器在接
下来的输入时钟边沿复位,且只要 PTEN 位保持置 1,时基仍将继续向上计数。
15.3.2 单事件模式
在单事件计数模式中,PWM 时基在 PTEN 位置位时将开始向上计数。当 PTMR 值与 PTPER 寄
存器匹配时,PTMR寄存器将在接下来的输入时钟边沿复位,且由硬件清零PTEN位以停止时基。
15.3.3 向上 / 向下计数模式
在连续向上 / 向下计数模式中,PWM 时基将向上计数直到与 PTPER 寄存器中的值发生匹配。定
时器将在接下来 的输入时钟 边沿开始向下计 数,并继续向下计数直到达到 0。 PTDIR 位
PTMR<15> 是只读位,显示计数方向。当定时器向下计数时 PTDIR位将置 1。
15.3.4 PWM 时基预分频器
PTMR 的输入时钟 (TCY)的预分频选项有 1:1、1:4、1:16 或 1:64,通 过控制位 PTCKPS<1:0>
(PTCON<3:2>)选择。当发生以下情况中的任何一种时,预分频器计数器清零:
• 对 PTMR 寄存器写
• 对 PTCON 寄存器写
• 任何器件复位
当写入 PTCON 时, PTMR 寄存器不会清零。
第 15 章 电机控制 PWM
节、第 15.4.3 节和第 15.4.4 节。)
15.3.5 PWM 时基后分频器
PTMR 的匹配输出可以选择通过一个 4 位后分频器 (可进行 1:1 到 1:16 的分频,包括 1:1 和
1:16)选择性地进行后分频并产生中断。当 PWM 占空比不需要在每个 PWM 周期被更新时,后
分频器非常有用。
当发生以下情况中的任何一种时,后分频器计数器将清零:
• 对 PTMR 寄存器写
• 对 PTCON 寄存器写
• 任何器件复位
当入写 PTCON 时, PTMR 寄存器不会清零。
15
电机控制
PWM
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-17 页

dsPIC30F 系列参考手册
15.3.6 PWM 时基中断
PWM 时基根据模式选择位 PTMOD<1:0> (PTCON<1:0>)和时基后分频器位 PTOPS<3:0>
(PTCON<7:4>)产生中断信号。
• 自由运行模式
当 PWM 时基处于自由运行模式 (PTMOD<1:0> = 00)时,在 PTMR 寄存器与 PTPER 寄存器
匹配而复位到“0”时,产生中断。在此定时器模式中可以使用后分频比选择位以减小中断事件
发生的频率。
• 单事件模式
当 PWM 时基处于单事件模式时 (PTMOD<1:0> = 01)时,在 PTMR 寄存器与 PTPER 寄存器
匹配而复位到“0”时,产生中断。此时 PTEN 位(PTCON<15>)也被清零以禁止 PTMR 继续
加计数。后分频比选择位对此定时器模式没有影响。
• 向上 / 向下计数模式
在向上 / 下计数模式 (PTMOD < 1: 0 > = 10)中,每
事件,这时 PWM 时基开始向上计数。在此定时器模式中可使用后分频比选择位以减小中断事件
发生的频率。
• 带双更新的向上 / 向下计数模式
在双更新模式 (PTMOD<1:0> = 11)中,每次 PTMR 寄存器等于零和每当发生周期匹配时都产
生中断。后分频器选择位对此定时器模式没有影响。
由于 PWM 占空比在每个周期可更新两次,所以双更新模式可使控制循环带宽加倍。 PWM 信号
的每个上升沿和下降沿都可以用双更新模式控制。
当 PTMR 寄存器的值变为零时都会发生中断
15.3.7 PWM 周期
PTPER寄存器为 PTMR设置计数周期。用户必须将 15位值写入PTPER<14:0>。当PTMR<14:0>
的值与 PTPER<14:0> 中的值匹配时,时基将复位为 0,或在下一个时钟输入边沿改变计数方向。
具体执行哪一种行为取决于时基的工作模式。
时基周期被双缓冲以使 PWM 信号可随时更改周期而不产生毛刺。 PTPER 寄存器作为实际时基
周期寄存器的缓冲寄存器,用户不能对它进行访问。 PTPER 寄存器的内容在以下时候装载到实
际时基周期寄存器中:
• 自由运行和单事件模式:当 PTMR 寄存器在与 PTPER寄存器发生匹配后复位为零时。
• 向上 / 向下计数模式:当 PTMR 寄存器为零时。
当 PWM 时基被禁止 (PTEN =
图 15-3 和图 15-4 指出了将 PTPER 寄存器中的值装入时基周期寄存器的时间。
0)时, PTPER 寄存器中保存的值被自动装入时基周期寄存器。
DS70062D_CN 第 15-18 页 © 2005 Microchip Technology Inc.

第 15 章 电机控制 PWM
图 15-3: 自由运行计数模式下 PWM 周期缓冲器的更新
从 PTPER 缓冲寄存器装入周期值
新的 PTPER 值
旧的 PTPER 值
新值写入 PTPER 缓冲
PWM 周期可通过下式确定:
公式 15-1: 自由运行计数模式下 PWM 周期的计算
(PTMOD = 10 或 11)
PTMR 值
PTPER =
例 :
F
CY = 20 MHz
PWM = 20,000 Hz
F
PTMR 预分频比 = 1:1
PTPER =
图 15-4: 向上 / 向下计数模式下 PWM 周期缓冲器的更新
新的 PTPER值
旧的 PTPER 值
F
PWM • (PTMR 预分频比 )
= 1000 -1
= 999
FCY
20,000,000
20,000 • 1
从 PTPER 缓冲寄存器装入 PWM 周期
PTMR 值
- 1
- 1
新值写入 PTPER 缓冲
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-19 页
15
电机控制
PWM

dsPIC30F 系列参考手册
公式 15-2: 向上 / 向下计数模式下 PWM 周期的计算
(PTMOD = 00 或 01)
PTPER =
例 :
F
CY = 20 MHz
F
PWM = 20,000 Hz
PTMR 预分频比 = 1:1
CY
F
F
PWM • (PTMR 预分频比 ) • 2
- 1
15.4 PWM 占空比比较单元
MCPWM 模块有四个 PWM 发生器。有四个 16 位特殊功能寄存器用于为 PWM 发生器指定占空
比值,如下:
• PDC1
• PDC2
• PDC3
• PDC4
在后面的讨论中, PDCx 指的是四个 PWM 占空比寄存器中的任何一个。
15.4.1 PWM 占空比精度
给定器件振荡器的最大精度 (以位为单位)和 PWM 频率可以用以下公式确定:
公式 15-3: PWM 精度
表 15-2 所示为选择不同执行速度和 PTPER 值时的 PWM 精度和频率。表 15-2 中的 PWM 频率
用于边沿对齐 (自由运行 PTMR)的 PWM 模式。而对于中心对齐模式 (向上 / 向下 PTMR 模
式), PWM 频率为表 15-3 中值的 1/2。
表 15-2: PWM 频率和分辨率示例,预分频比 1:1,边沿对齐的 PWM
CY (FCY) PTPER 值
T
33 ns (30 MHz)
33 ns (30 MHz)
50 ns (20 MHz)
50 ns (20 MHz)
100 ns (10 MHz)
100 ns (10 MHz)
200 ns (5MHz)
200 ns (5MHz)
PTPER =
20,000,000
20,000 • 1 • 2
= 500 -1
= 499
Resolution
0x7FFF 0xFFFF
0x3FF 0x7FF
0x7FFF 0xFFFF
0x1FF 0x3FF
0x7FFF 0xFFFF
0xFF 0x1FF
0x7FFF 0xFFFF
0x7F 0xFF
- 1
2TPWM
⎛⎞
------------------
log
⎝⎠
TCY
--------------------------------=
2()log
100% 的
PDCx 值
PWM 分辨率 PWM 频率
16 位
11 位
16 位
10 位
16 位
9 位
16 位
8 位
915 Hz
29.3 kHz
610 Hz
39.1 kHz
305 Hz
39.1 kHz
153 Hz
39.1 kHz
DS70062D_CN 第 15-20 页 © 2005 Microchip Technology Inc.

第 15 章 电机控制 PWM
表 15-3: PWM 频率和分辨率示例,预分频比 1:1,中心对齐的 PWM
CY (FCY) PTPER 值
T
33 ns (30 MHz)
33 ns (30 MHz)
50 ns (20 MHz)
50 ns (20 MHz)
100 ns (10 MHz)
100 ns (10 MHz)
200 ns (5MHz)
200 ns (5MHz)
0x7FFF 0xFFFF
0x3FFF 0x7FFF
0x7FFF 0xFFFF
0x1FFF 0x3FFF
0x7FFF 0xFFFF
0xFFF 0x1FFF
0x7FFF 0xFFFF
0x7FF 0xFFF
MCPWM 模块能够产生精度为 TCY/2 的 PWM 信号沿。预分频比为 1:1 时,PTMR 在每个 TCY 进
行加计数。为了达到 TCY/2边沿精度,PDCx<15:1>与 PTMR<14:0> 进行了比较以判断占空比是
否匹配。 PDCx<0> 确定 PWM 信号边沿在 T
预分频比为 1:4、 1:16 或 1:64 时, PDCx<0> 与预分频器计数器时钟的 MSb进行比较确定发生
PWM 边沿的时间。
PTMR 和 PDCx 分辨率如图 15-5 所示。图中 PTMR 分辨率为 TCY 而 PDCx 分辨率为 TCY/2,选
择的预分频比为 1:1。
100% 时的
PDCx 值
CY 边界发生还是在 TCY/2 边界发生。当 PWM 时基
PWM 分辨率 PWM 频率
16 位
15 位
16 位
14 位
16 位
13 位
16 位
12 位
458 Hz
916 Hz
305 Hz
1.22 kHz
153 Hz
1.22 kHz
76.3 Hz
1.22 kHz
图 15-5: PTMR 和 PDCx 分辨率时序图。自由运行模式,预分频比 1:1
TCY
PTPER = 10
TCY
PTMR
PDCx = 14
PDCx = 15
TCY/2
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-21 页
15
电机控制
PWM

dsPIC30F 系列参考手册
图 15-6: 占空比比较逻辑
14 0 N 位预分频比
PTMR N21 TCY
15
15
注:预分频比为 1:1 时,PDCx<0> 与 FOSC/2 信号进行比较。
15.4.2 边沿对齐的 PWM
当 PWM 时基工作在自由运行模式时,模块产生边沿对齐的 PWM 信号。给定 PWM 通道的输出
信号的周期由装入 PTPER 的值指定,其占空比由相应的 PDCx 寄存器指定(参见图 15-7)。 假
设占空比非零且立即更新未被使能(IUE = 0),所有使能的 PWM 发生器的输出在 PWM 周期开
始(PTMR = 0)时被驱动为有效。当 PTMR 的值与 PWM 发生器的占空比值发生匹配时,各
PWM 输出都被驱动为无效。
如果 PDCx 寄存器中的值为 0,则相应的 PWM 引脚的输出在整个 PWM 周期内都将为无效。此
外,如果 PDCx 寄存器中的值大于 PTPER 寄存器中保存的值,那么
PWM 周期内都将有效。
如果使能了立即更新 (IUE = 1), 则在新值写入任一有效的 PDC 寄存器时,新的占空比值即被
装入。
图 15-7: 边沿对齐的 PWM
15 位
比较
PDCx
15 1 0
1 位比较
边沿
逻辑
从 PDCx 装入的新的占空比
PWM 边沿事件
PWM 引脚的输出在整个
PTPER
PDC1
PDC2
0
PWM1H
PWM2H
DS70062D_CN 第 15-22 页 © 2005 Microchip Technology Inc.
占空比
周期
PTMR 值

15.4.3 单事件 PWM 工作
当 PWM 时基配置为单事件模式(PTMOD<1:0> = 01)时 , PWM 模块将产生单脉冲输出。此工
作模式对于驱动某些类型的电子换相电机很有用。该模式尤其适用于高速 SR 电机的运行。在单
事件模式下,只能产生边沿对齐的输出。
在单事件模式中,当 PTEN 位置 1 时, PWM I/O 引脚被驱动为有效状态。当 PTMR 的值与占空
比寄存器的值匹配时,PWM I/O引脚被驱动为无效状态。当与 PTPER寄存器的值匹配时,PTMR
寄存器被清零,所有的有效 PWM I/O 引脚都将驱动为无效状态,PTEN 位清零,并且会产生一个
中断。 PWM 模块将停止工作,直到 PTEN 在软件中被重新置 1。
图 15-8: 单事件 PWM 工作
PTPER
PDC1
PDC2
PTEN
第 15 章 电机控制 PWM
PTEN 位由软件
置 1
PTEN 位由硬件
清零
PWM2H
PWM1H
PWMIF
PWMIF 由软件清零
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-23 页
15
电机控制
PWM

dsPIC30F 系列参考手册
15.4.4 中心对齐的 PWM
当 PWM 时基配置为两个向上 / 向下计数模式(PTMOD<1:0> = 1x)之一时,模块将产生中心对
齐的 PWM 信号。
当占空比寄存器的值与 PTMR 的值相匹配,并且 PWM 时基正在向下计数(PTD IR = 1)时,
PWM 比较输出驱动为有效状态。当 PWM 时基正在向上计数(PTDIR = 0),且 PTMR 寄存器
中的值与占空比值匹配时, PWM 比较输出将驱动为无效状态。
如果特定占空比寄存器中的值为 0,则相应 PWM 引脚的输出在整个 PWM 周期中都将为无效。
此外,如果占空比寄存器中的值大于 PTPER 寄存器中保存的
PWM 周期内都将有效。
图 15-9: 中心对齐的 PWM
PTPER
PDC1
PDC2
0
PWM1H
值,则 PWM 引脚的输出在整个
周期 /2
PTMR
值
PWM2H
15.4.5 占空比寄存器缓冲
四个 PWM 占空比寄存器 PDC1 - PDC4 都采用了缓冲计数以使 PWM 输出更新时无毛刺。对 于
每个发生器,都有可由用户访问的 PDCx 寄存器(缓冲寄存器)和保存实际比较值的非存储器映
射的占空比寄存器。 PWM 占空比是在 PWM 周期的特定时间使用 PDCx 寄存器中的值更新的,
以避免 PWM 输出信号产生毛刺。
当 PWM 时基工作在自由运行或单事件模式(PTMOD<1:0> = 0x)时 ,只要 PTMR 与 PTPER 寄
存器发生了匹配, PWM 占空比就会更新,同时 PTMR 复位为 0。
注: 当 PWM 时基被禁止(PTEN = 0)时,任何对 PDCx 寄存器的写入都会立即更新占
当 PWM 时基工作在向上 / 向下计数模式 (PT MO D < 1: 0 > = 10)时,当 PTMR 寄存器的值为 0
且 PWM 时基开始向
生的时间。
当 PWM 时基处于带有双重更新的向上 / 向下计数模式 (PTMOD < 1: 0 > = 11)时,当 PTMR 寄
存器的值为 0以及 PTMR寄存器的值与 PTPER寄存器中的值匹配时,都会更新占空比。图 15-11
显示了此 PWM 时基模式的占空比更新发生的时间。
PDCx
值
周期
空比。这可以使占空比的改变在 PWM 信号发生被使能前生效。
上计数时,更新占空比。图 15-10 显示了此 PWM 时基模式下占空比更新发
DS70062D_CN 第 15-24 页 © 2005 Microchip Technology Inc.

第 15 章 电机控制 PWM
图 15-10: 向上 / 向下计数模式中的占空比更新时间
从 PDCx寄存器装入占空比,CPU 中断
PWM 输出
PTMR 的值
PTIF
写入 PDCx 寄存器的新值
图 15-11:双重更新向上 / 向下计数模式中的占空比更新时间
从 PDCx 寄存器装入占空比,CPU 中断
PWM 输出
PTMR 的值
15.4.6 PWM 占空比立即更新
当立即更新使能位置 1(IUE = 1)时 ,任 何向占空比寄存器的写入操作均将立即更新为新的占空
比。这种功能为用户提供了一种选择,使其可以立即更新有效的 PWM 占空比寄存器,而不必等
到当前时基周期结束。在闭环伺服应用中,如果使能了立即更新 (IUE = 1),系统稳定性将由于
系统观察到发出系统校正命令之间时间的缩短而提高。
如果新占空比写入时 PWM 输出有效,且新占空比小于当前时基的值,则 PWM 脉宽将变窄。如
果新占空比写入时 PWM 输出有效,且新占空比大于当前时基的值,则 PWM 脉宽将变宽。 如果
新占空比写入时 PWM 输出无效,且新占空比大于当前时基的值, PWM 输出将立即有效且对新
写入的占空比值保持有效。
图 15-12 所示为立即更新使能 (IUE = 1)时发生占空比更新的时间。
注: IUE 位在 dsPIC30F6010 器件中未用。
向 PDCx寄存器写入新值
15
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-25 页
电机控制
PWM

dsPIC30F 系列参考手册
图 15-12: 立即更新使能 (IUE = 1)时的占空比更新时间
向 PDCx 寄存器写入新值
最新写入 PDCx
的占空比值
PWM 输出
PTMR 值
15.5 互补 PWM 输出模式
50%
90% 10% 90%
互补输出模式用于驱动与图 15-13 所示类似的逆变器负载。此逆变器拓扑常用于 ACIM 和 BLDC
应用。在互补输出模式中,一对 PWM 输出不能同时有效。每个 PWM 通道和每一对输出引脚均
按图 15-14 所示进行内部配置。在器件切换的过程中,有一段两个引脚的输出均无效的短暂时
期,此时可以选择插入一个死区时间 (参见 15.6 “死区时间控制”)。
图 15-13:互补PWM 输出的典型负载
+V
1H
1L
2H
2L
3H
3L
三相负载
通过将 PWMCON1 中相应的 PMODx 位清零,可以将对应的一对 PWM I/O 引脚选择为互补模
式。在器件复位时, PWM I/O 引脚默认设置为互补模式。
图 15-14: PWM 通道框图,互补模式
PWM 发生器
死区
时间
发生器
改写
和
故障逻辑
PWMxH
PWMxL
DS70062D_CN 第 15-26 页 © 2005 Microchip Technology Inc.

15.6 死区时间控制
当任何一对 PWM I/O 引脚工作在互补输出模式时 , 死区时间的生成被自动使能。因为电源输出设
备不可能瞬时完成切换,所以必须在关闭互补的一对 PWM 输出中的一个和开启另一个晶体管之
间提供一定的时间。
6 输出的 PWM 模块有一个可编程死区时间。8 输出的 PWM 模块允许编程两个不同的死区时间。
这两个死区时间可以用以下两种方法之一来提高用户灵活性:
• 可以对 PWM 输出信号进行优化使高边和低边晶体管的关断时间不同。在一对互补对中下边
晶体管的关断事件和高边晶体管的导通事件之间插入第一个死区时间。在高边晶体管的关断
事件和低边晶体管的导通事件之间插入第二个死区时间。
• 两个死区时间可以单独分配给一对 PWM I/O 引脚。此工作模式可以使 PWM 模块可以单独
对每一对 PWM I/O 引脚驱动不同的晶体管 / 负载。
15.6.1 死区时间发生器
PWM模块的每一对互补输出都有一个 6位的向下计数器,用于插入死区时间。如图 15-15所示,
每个死区时间单元都有与占空比比较输出相连的上升沿和下降沿检测器。
在检测到 PWM 边沿事件时,两个可能的死区时间之一就被装入定时器。根据边沿是上升沿还是
下降沿,一对互补输出中的一个将延时到定时器计数减到零才跳变。图 15-16所示为在一对PWM
输出中插入死区时间的时序图。为了说明得更清楚,图中上升沿和下降沿事件的两个不同死区时
间被放大了。
第 15 章 电机控制 PWM
图 15-15: 一对输出引脚的死区时间单元框图
TCY
PWM
发生器
输入
注: 在 6 输出 PWM 模块中没有虚线中的逻辑电路。
预分频器
时钟控制
死区时间 A 死区 时间 B
零比较
6 位向下计数器
死区时间
选择逻辑
高边 PWM 信号
到输出引脚
低边 PWM 信号
到输出引脚
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-27 页
15
电机控制
PWM

dsPIC30F 系列参考手册
图 15-16: 死区时间插入图
PWM 发生器
PWMxH
PWMxL
PWMxH
PWMxL
由 DTSxA 位选择的时间(A 或 B)由DTSxI 位选择的时间(A 或 B)
死区时间 = 0
非零
死区时间
DS70062D_CN 第 15-28 页 © 2005 Microchip Technology Inc.

15.6.2 死区时间分配
DTCON2 寄存器包含控制位,可以将两个可编程死区时间分配到每个互补输出。每个互补输出都
有两个死区时间分配控制位。例如,用 DTS1A 和 DTS1I 控制位选择用于 PWM1H/PWM1L 这一
对互补输出的死区时间。一对死区时间选择 控制位分别称 为 “死区时间选择 有 效”
(Dead-Time-Select-Active)和 “死区时间选择无效”(Dead-Time-Select-Inactive)。这一对控
制位中各位的功能如下:
• DTSxA 控制位选择在高边输出被驱动为有效前插入死区时间。
• DTSxI 控制位选择在低边 PWM 输出被驱动为有效前插入死区时间。
表 15-4 总结了每个死区时间选择控制位的功能。
表 15-4: 死区时间选择位
DTS1A
DTS1I
DTS2A
DTS2I
DTS3A
DTS3I
DTS4A
DTS4I
第 15 章 电机控制 PWM
注: 死区时间分配逻辑电路只适用于包含 8 输出的 PWM 模块的不同 dsPIC 器件。 6 输
出的 PWM 模块只使用死区时间 A。
位功能
选择 PWM1H/PWM1L 死区时间在 PWM1H 被驱动为有效前插入。
选择 PWM1H/PWM1L 死区时间在 PWM1L 被驱动为有效前插入。
选择 PWM1H/PWM1L 死区时间在 PWM2H 被驱动为有效前插入。
选择 PWM1H/PWM1L 死区时间在 PWM2L 被驱动为有效前插入。
选择 PWM1H/PWM1L 死区时间在 PWM3H 被驱动为有效前插入。
选择 PWM1H/PWM1L 死区时间在 PWM3L 被驱动为有效前插入。
选择 PWM1H/PWM1L 死区时间在 PWM4H 被驱动为有效前插入。
选择 PWM1H/PWM1L 死区时间在 PWM4L 被驱动为有效前插入。
15.6.3 死区时间范围
死区时间 A 和死区时间 B 是通过选择输入时钟预分频比和 6 位无符号死区时间计数值来设置的。
死区时间单元提供了四种输入时钟预分频器选项,使用户根据器件的工作频率选择适当的死区时
间范围。可以为两个死区时间值中的每一个独立地选择时钟预分频器选项。死区时间时钟预分频
比是使用 D TCON1 SFR 中的 DTAPS<1:0> 和 DTBPS<1:0> 控制位选择的。每个死区时间均可
选择以下时钟预分频器选项:
• T
• 2 TCY
• 4 TCY
• 8 TCY
公式 15-4: 死区时间计算
CY
DT =
注 :DT(死区时间)是 DTA<5:0> 或 DTB<5:0> 寄存器中的值。
死区时间
预分频比·T
CY
15
电机控制
PWM
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-29 页

dsPIC30F 系列参考手册
表 15-5 举例显示了死区时间范围与所选的输入时钟预分频器和器件工作频率之间的关系。
表 15-5: 死区时间范围示例
T
CY (FCY) 预分频器选择 精度 死区时间范围
33 ns (30 MHz)
50 ns (20 MHz)
100 ns(10 MHz)
100 ns(10 MHz)
15.6.4 死区时间失真
对于 PWM 占空比较小的情况,死区时间相对于有效 PWM 时间的比例可能会较大。在极端的情
况下,当占空比小于或等于编程占空比时,不会产生 PWM 脉冲。在这些情况下,插入的死区时
间将会导致 PWM 模块产生的波形失真。通过保持 PWM 占空比至少比死区时间大三倍,用户即
可以确保死区时间失真最小。用其他技术也可以纠正死区时间失真,例如使用闭环电流控制。
占空比接近 100% 时也会产生类似的失真。应用中最大占空比的选择应该确保 PWM 信号的最小
无效时间比死区时间大三倍以上。
15.7 独立 PWM 输出模式
独立 PWM 输出模式对于驱动诸如图 15-17 所示的一类负载很有用。当 PWMCON1 寄存器中的
相应 PMOD 位置 1 时,某一对 PWM 输出就处于独立输出模式。在独立模式中,死区时间发生器
被禁止,并且对于给定的一对输出引脚,引脚状态没有限制。
4 TCY 130 ns
4 TCY 200 ns
2 TCY 200 ns
1 T
CY 100 ns
130 μs—9 μs
200 μs—12 μs
200 μs—12 μs
100 μs—6 μs
图 15-17:不对称逆变器
+V
1H
1L
图 15-18: 独立模式、一对单输出引脚 PWM 框图
PWM 发生器
改写
和
故障逻辑
PWMxH
PWMxL
DS70062D_CN 第 15-30 页 © 2005 Microchip Technology Inc.

15.8 PWM 输出改写
PWM 输出改写位可以让用户手动将 PWM I/O 引脚驱动为指定逻辑状态,而 不 受占空比比较单元
的影响。在控制各种电子换相电机时, PWM 改写位很有用。
所有与 PWM 输出改写功能相关的控制位都在 OVDCON寄存器中。OVDCON 寄存器的高半部分
包含 8 个位 (POVDxx),决定哪个 PWM I/O 引脚将要被改写。 OVDCON 寄存器的低半部分也
包含 8 个位 (POUTxx),决定当通过 POVDxx 位改写时 PWM I/O 引脚的状态。
POVD 位为低有效控制位。当 POVD 位置 1 时,相应的 POUTxx 位对 PWM 输出没有影响。当
一个 POVD 位清零时,相应的 PWM I/O 引脚的输出将由 POUT 位的状态决定。当 POUT 位置
时, PWM 引脚将被驱动为有效状态。当 POUT 引脚清零时, PWM 引脚将被驱动为无效状态。
15.8.1 互补输出模式的改写控制
当一对 PWM I/O 引脚工作在互补模式 (PMODx = 0)时, PWM 模块将不会允许对输出进行某
些改写。模块将不允许同一对输出的两个引脚同时变为有效。每对输出的高边引脚总是占有优先
权。
注: 在插入死区时间期间,如果手动改写 PWM 通道,死区时间仍将持续。
15.8.2 改写同步
如果 OSYNC 位置 1(PWMCON2<1>),所有通过 OVDCON 寄存器执行的输出改写将与 PWM
时基同步。同步的输出改写将发生在以下时间:
• 若是边沿对齐模式,则当 PTMR 为 0 时。
• 若是中心对齐模式,则当 PTMR 为 0 时或者
• 当 PTMR 与 PTPER的值匹配时。
当使能了改写同步功能时,该功能可用于在 PWM 输出引脚上避免不希望的窄脉冲。
第 15 章 电机控制 PWM
1
15.8.3 输出改写示例
图 15-19 显示了使用 PWM 输出改写功能可能会产生的波形示例。该图显示了一个 BLDC 电机的
六步换相序列。该电机通过一个如图 15-13 所示的三相逆变器驱动。当检测到适当的转子位置
时, PWM 输出会切换到序列中下一个换相状态。在此例中, PWM 输出被驱动为特定的逻辑状
态。表 15-6 列出了用于产生图 15-19 中信号的 OVDCON 寄存器值。
PWM 占空比寄存器可以和 OVDCON 寄存器配合使用。占空比寄存器控制流经负载的电流,
OVDCON寄存器控制换相。图 15-20就显示了这样一个例子。表 15-7列出了用于产生图 15-20
中信号的 OVDCON 寄存器值。
15
电机控制
PWM
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-31 页

dsPIC30F 系列参考手册
表 15-6: PWM 输出改写示例 1
状态
1 00000000b 00100100b
2 00000000b 00100001b
3 00000000b 00001001b
4 00000000b 00011000b
5 00000000b 00010010b
6 00000000b 00000110b
图 15-19: PWM 输出改写示例 1
OVDCON<15:8> OVDCON<7:0>
状态
12345
PWM3H
PWM3L
PWM2H
PWM2L
PWM1H
PWM1L
注: 在状态 1 - 6 之间切换的时间由用户软件控制。
状态切换通过向 OVDCON 写入新值进行控制。
表 15-7: PWM 输出改写示例 2
状态
OVDCON<15:8> OVDCON<7:0>
1 11000011b 00000000b
2 11110000b 00000000b
3 00111100b 00000000b
4 00001111b 00000000b
6
DS70062D_CN 第 15-32 页 © 2005 Microchip Technology Inc.

图 15-20: PWM 输出改写示例 2
第 15 章 电机控制 PWM
状态
123
PWM4H
PWM4L
PWM3H
PWM3L
PWM2H
PWM2L
PWM1H
PWM1L
注: 在状态 1 - 4 之间切换的时间由用户软件 控制。状态切换通过向 OVDCON 写入新值进行控制。
此例中 PWM 输出 运行在独立模式中产生的。
4
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-33 页
15
电机控制
PWM

dsPIC30F 系列参考手册
15.9 PWM 输出和极性控制
PWMCON1 中的 PENxx 控制位用于使能每个 PWM 输出引脚供模块使用。当引脚使能为 PWM
输出时,控制引脚的 PORT 和 TRIS 寄存器被禁止。
除了 PENxx控制位,在器件配置寄存器 FBORPOR中还有三个配置位提供 PWM输出引脚控制。
• 配置位 HPOL
• 配置位 LPOL
• 配置位 PWMPIN
这三个配置位与位于 PWMCON1 的 PWM 使能位 (PENxx)配合工作。这些配置位确保在发生
器件复位后, PWM 引脚处于正确的状态。
15.9.1 输出极性控制
PWM I/O引脚的极性是在器件编程的过程中,通过器件配置寄存器中 FBORPOR的配置位 HPOL
和 LPOL 设置的。配置位 HPOL 设置高边 PWM 输出 PWM1H - PWM4H 的输出极性。配置位
LPOL 设置低边 PWM 输出 PWM1L - PWM4L 的输出极性。
如果极性配置位编程为 1,相应的 PWM I/O 引脚的输出极性将为高电平有效。如 果极性配置位编
程为 0,则相应的 PWM 引脚极性为低电平有效。
15.9.2 PWM 输出引脚复位状态
配置位 PWMPIN决定器件复位时的 PWM 输出引脚的行为,且该位还可用于消除对由 PWM 模块
控制的器件所连接的外部上拉 / 下拉电阻的需要。
如果配置位 PWMPIN 编程为 1,控制位 PENxx 将在器件复位时清零。因此,所有 PWM 输出将
为三态,并由相应的 PORT 和 TRIS 寄存器控制。
如果配置位 PWMPIN 编程为 0,控制位 PENxx 将在器件复位时置 1。所有的 PWM 引脚在器件
复位时使能为 PWM 输出,并将处于由 HPOL 和 LPOL 配置位规定的无效状态。
15.10 PWM 故障引脚
有两个与 PWM 模块相关的故障引脚,它们是 FLTA 和 FLTB。当使能时,可以选择用这些引脚将
PWM I/O 引脚驱动为定义的状态。此操作无需软件干预即可发生,因此可以快速处理故障事件。
根据不同的 dsPIC 器件,故障引脚也可能会有其他复用功能。当用作故障输入时,每个故障引脚
都可通过其相应 PORT 寄存器读取。 FLTA 和 FLTB 引脚作为低电平有效输入引脚,因此可以轻
易地将许多输入源一起进行“线或”后,通过一个外部上拉电阻输入给同一个引脚。当不与 PWM
模块一起使用时,这些引脚可以作为通用功能 I/O 或其他复用功能。每个故障引脚都有与其相关
的中断向量、中断标志位、中断使能位和中断优先级位。
引脚的功能由 FLTACON 寄存器控制, FLTB 引脚的功能由 FLTBCON 寄存器控制。
FLTA
15.10.1 故障引脚使能位
寄存器 FLTACON 和 FLTBCON 各有 4 个控制位 (FxEN1 - FxEN4),这些控制位决定某对
PWM I/O 引脚是否要由故障输入引脚控制。要将某一对 PWM I/O 引脚使能为故障改写,必须置
位寄存器 FLTACON 或 FLTBCON 中的相应位。
如果寄存器 FLTACON 或 FLTBCON 中所有的使能位都被清零,则该对故障输入引脚 PWM 模块
没有影响,并且不会产生故障中断。
DS70062D_CN 第 15-34 页 © 2005 Microchip Technology Inc.

15.10.2 故障状态
特殊功能寄存器 FLTACON 和 FLTBCON各有 8 个位,这些位决定当故障输入引脚变为有效时每
个 PWM I/O 引脚的状态。当这些位清零时, PWM I/O 引脚将被驱动为无效状态。当这些位置 1
时,PWM I/O引脚将被驱动为有效状态。有 效和无效状态与 PWM I/O 引脚被定义的极性 (通过
HPOL 和 LPOL 器件配置位设置)相对应。
当 PWM 模块的一对 I/O 处于互补模式,并且两个引脚都编程为在产生故障状条件时驱动为有效
时,存在一种特殊情况。在互补模式中高边的引脚将始终优先,因此两个 I/O 引脚不能同时被驱
动为有效。
15.10.3 故障输入模式
每个故障输入引脚都有两种工作模式:
• 锁存模式:当故障引脚驱动为低电平时, PWM 输出将进入 FLTxCON寄存器定义的状态。
• 逐个周期模式:当故障输入引脚驱动为低电平时,只要故障引脚保持为低电平, PWM 输出
各故障输入引脚的工作模式通过控制位 FLTAM 和 FLTBM(FLTACON<7> 和 FLTBCON<7>)选
择。
第 15 章 电机控制 PWM
PWM 输出将保持在此状态,直到故障引脚被驱动为高电平并且相应的中断标志 (FLTxIF)
由软件清零。当这两种行为都发生后, PWM 输出将在下一个 PWM 周期开始时或在半周期
边界返回到正常工作状态,而无论立即更新使能位 (IUE)为何值。如果中断标志在故障状
态结束前清零, PWM 模块将等到故障引脚不再有效时才恢复输出。
将会一直
PWM 周期开始时 (或中心对齐模式的半周期边界)返回正常工作状态,即使在立即更新被
使能的情况下也是如此。
保持定义的故障状态。在故障引脚被驱动为高电平后, PWM 输出将在下一个
15.10.3.1 进入故障状态
当故障引脚被使能并驱动为低电平时,无论 PDCx 和 OVDCON 寄存器中的值如何, PWM 引脚
都会立即驱动为其编程的故障状态。故障操作的优先级高于所有其他 PWM 控制寄存器。
15.10.3.2 退出故障状态
必须通过外部电路将故障输入引脚驱动为高电平并将故障中断标志清零 (仅限锁存模式),才能
清除故障状态。在故障引脚
PWM 输出信号。对于产生边沿对齐的 PWM 信号的情况,PWM 输出将会在 PTMR = 0 时恢复。
对于产生中心对齐的 PWM 信号的情况,PWM 输出将会在任意 PTMR = 0 或 PTMR = PTPER 先
发生时恢复。
PWM 时基被禁止(PTEN = 0)时,将发生上述规则例外的事件。如果 PWM 时基被禁止,PWM
模块将在故障条件被清除后立即恢复 PWM 输出信号。
条件被清除后, PWM 模块将在下一个 PWM 周期或半周期边界恢复
15
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-35 页
电机控制
PWM

dsPIC30F 系列参考手册
15.10.4 故障引脚优先级
如果两个故障输入引脚均被分配为控制某一对 PWM 引脚,为 FLTA 输入引脚编程的故障状态将
优先于 FLTB
当故障 A 的条件被清除时,会发生两个行为之一。如果 FLTB
下个周期或半周期边界返回 FLTBCON 寄存器中编程的状态。如果 FLTB 输入被禁止, PWM 输
出将在下个周期或半周期边界返回正常工作状态。
注: 当 FLTA 引脚编程为锁存模式时, PWM 输出将不会返回故障 B 状态或正常工作状
15.10.5 故障引脚软件控制
每个故障引脚都可以通过软件手动控制。因为每个故障输入都与端口 I/O 引脚共用,通过将对应
的 TRIS 位清零,可以将端口 (PORT)引脚配置为输出。当引脚的 PORT 位清零时,故障输入
被激活。
注: 当通过软件控制故障输入时,用户应该特别注意。如 果故障引脚的 TRIS 位清零,故
15.10.6 故障时序示例
图 15-21: 故障时序示例,逐个周期模式
输入引脚。
态,直到故障 A 中断标志被清零并且 FLTA
障输入就无法从外部驱动。
输入仍然被使能, PWM 输出将在
引脚禁止。
PWM 周期
PTMR
情形 1:
PWM
FLTA
情形 2:
FLTA
情形 3:
PWM
FLTA
注:箭头所指为正常 PWM 工作恢复的时间。
占空比 = 50%
占空比 = 50%
占空比 = 100%
故障状态
故障状态PWM
故障状态
DS70062D_CN 第 15-36 页 © 2005 Microchip Technology Inc.

图 15-22: 故障时序示例,锁存模式
PTMR
占空比 = 50%
PWMxx
FLTA
FLTAIF
故障条件结束
图 15-23: 故障时序示例,逐个周期模式,优先级工作
第 15 章 电机控制 PWM
返回正常
工作状态
故障状态
中断标志
被软件清零
PTMR
占空比 = 50%
PWM
FLTA
FLTB
15.11 PWM 更新锁定
在某些应用中,在新值生效前写入所有的占空比和周期寄存器是很重要的。更新禁止功能允许用
户指定模块可以使用新占空比和周期值的时间。通过将 UDIS 控制位 (PWMCON2<0>)置 1 可
使能 PWM 更新锁定功能。
UDIS 位会影响所有的占空比寄存器 (PDC1 - PDC4)和 PWM 时基周期缓冲器 PTPER。要执
行更新锁定,用户应该执行以下步骤:
• 将 UDIS 位置 1。
• 如果适用,写所有占空比寄存器和 PTPER。
• 将 UDIS 位清零以重新使能更新。
注: 要使用 PWM 更新锁定功能,必须禁止立即更新 (IUE = 0)。
故障状态 B 故障状态 A
返回
正常
工作状态
故障状态 B
返回故障状态 B
15
电机控制
PWM
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-37 页

dsPIC30F 系列参考手册
15.12 PWM 特殊事件触发器
PWM 模块有一个特殊事件触发器,可以使 A/D 转换与 PWM 时基同步。可以将 A/D 采样和转换
时间编程为在 PWM 周期中的任何时间发生。特殊事件触发器可以使用户将采集 A/D 转换结果的
时间与占空比值更新的时间之间的延迟减到最小。
PWM 特殊事件触发器有一个 SFR (SEVTCMP)和四个后分频器控制位 (SEVOPS<3:0>)用
于控制其工作方式。用于产生特殊事件触发信号的 PTMR 值装入 SEVTCMP 寄存器。
当 PWM 时基处于向上 / 向下计数模式时,还需要一个控制位指定特殊事件触发信号的计数方向。
此计数方向是通过使用 SEVTCMP 的 MSb 中的 SEVTDIR 控制位选择的。如果 SEVTDIR 位清
零,特殊事件触发信号将在 PWM
触发信号将在 PWM 时基的向下计数周期产生。如果 PWM 时基不配置为向上 / 向下计数模式,
SEVTDIR 控制位不起作用。
15.12.1 特殊事件触发器使能
PWM 模块总是会产生特殊事件触发信号。此信号可以由 A/D 模块选用。如需更多有关使用特殊
事件触发器的信息,请参见第 17 章 “10 位 A/D 转换器”。
15.12.2 特殊事件触发器后分频器
PWM 特殊事件触发器有一个允许后分频比为 1:1 到 1:16 的后分频器。当不需要在每个 PWM 周
期同步 A/D 转换时,后分频器是很有用的。通过写 PWMCON2 SFR 中的 SEVOPS<3:0> 控制位
可配置后分频器。
特殊事件输出后分频器在下列事件发生时清零:
• 对 SEVTCMP 寄存器的任何写入。
• 任何器件复位。
时基的向上计数周期产生。如果 SEVTDIR 位置 1,特殊事件
15.13 器件低功耗模式下的工作
15.13.1 休眠模式下的 PWM 工作
当器件进入休眠模式后,系统时钟被禁止。因为 PWM 时基的时钟来自系统时钟源(TCY),所
以它也会被禁止。所有使能的 PWM 输出引脚都会被冻结在进入休眠模式之前有效的输出状态。
如果 PWM 模块用于控制电源应用中的负载,在执行 PWRSAV 指令前,用户应该将 PWM 模块的
输出置为一个 “安全”的状态。根据不同的应用,当 PWM 输出冻结在特定输出状态下时,负载
可能会开始消耗额外的电流。例如,如以下代码示例所示, OVDCON 寄存器可以用于手动关闭
PWM 输出引脚。
; This code example drives all PWM pins to the inactive state
; before executing the PWRSAV instruction.
CLR OVDCON ; Force all PWM outputs inactive
PWRSAV #0 ; Put the device in SLEEP mode
SETM.B OVDCONH ; Set POVD bits when device wakes.
如果通过 FLTxCON 寄存器使能了故障 A 和故障 B 输入引脚来控制 PWM 引脚,则这两个输入引
脚将在器件处于休眠模式时继续正常工作。当器件处于休眠
动为低电平, PWM 输出将被驱动为在 FLTxCON 寄存器中编程的故障状态。
模式时,如果其中一个故障引脚被驱
DS70062D_CN 第 15-38 页 © 2005 Microchip Technology Inc.

故障输入引脚还具有将 CPU 从休眠中唤醒的功能。如果故障中断使能位置 1(FLTxIE = 1),则
当故障引脚被驱动为低电平时,器件将从休眠中被唤醒。如果故障引脚中断的优先级高于当前
CPU 的优先级,则当器件被唤醒时,将在故障引脚中断向量处开始程序执行。否则,程序将在
PWRSAV 指令后的下一条指令开始执行。
15.13.2 空闲模式下的 PWM 工作
当器件进入空闲模式时,系统时钟源保持工作而 CPU 停止执行代码。PWM 模块可以选择继续在
空闲模式工作。通过 PTSIDL 位(PTCON<13>)可选择 PWM 模块在空闲模式是停止工作还是
继续正常工作。
如果 PTSIDL = 0,当器件进入空闲模式时,模块将继续正常工作。如果使能了 PWM 时基中断,
则可以使用它将器件从空闲状态唤醒。如果 PWM 时基中断使能位置 1 (PTIE = 1),则 PWM
时基中断产生时,器件将从空闲模式唤醒。如果 PWM 时基中断的优先级高于当前 CPU 的优先
级,则当器件被唤醒时,将在 PWM 时基中断向量处开始程序执行
令后的下一个指令开始执行。
如果 PTSID L = 1,在空闲模式下模块将停止工作。如果 PWM 模块被编程为在空闲模式停止工
作, PWM 输出和故障输入引脚的工作情况将与休眠模式的工作状况相同 (参见 15.13.1 “休眠
模式下的 PWM 工作”中的讨论)。
15.14 用于器件仿真的特殊功能
PWM 模块的一个特殊功能可以支持调试环境。当硬件仿真器或调试器停下来以检查存储器内容
时,所有使能的 PWM 引脚均可以选择显为三态。用户应该连接上拉或下拉电阻,以确保当器件
停止执行时, PWM 输出被驱动为正确状态。
器件复位时, PWM 输出引脚的功能和输出引脚极性由三个器件配置位决定 (参见 15.9 “PWM
输出和极性控制”)。硬件调试器或仿真器工具提供了改变这些配置位值的方法。如需更多信息,
请参见相应工具的用户手册。
第 15 章 电机控制 PWM
。否则,程序将从 PWRSAV 指
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-39 页
15
电机控制
PWM

DS70062D_CN 第 15-40 页 © 2005 Microchip Technology Inc.
表 15-8:与8 输出 PWM 模块相关的寄存器
名称地址
INTCON1 0080 NSTDIS
INTCON2 0082 ALTIVT
IFS2 0088
IEC2 0090
IPC9 00A6
IPC10 00A8
IPC11 00AA
PTCON 01C0 PTEN
PTMR 01C2 PTDIR
PTPER 01C4
SEVTCMP 01C6 SEVTDIR
PWMCON1 01C8 - -
PWMCON2 01CA
DTCON1 01CC DTBPS<1:0>
DTCON2 01CE
FLTACON 01D0 FAOV4H FAOV4L FAOV3H FAOV3L FAOV2H FAOV2L FAOV1H FAOV1L FLTAM
FLTBCON 01D2 FBOV4H FBOV4L FBOV3H FBOV3L FBOV2H FBOV2L FBOV1H FBOV1L FLTBM
OVDCON 01D4 POVD4H POVD4L POVD3H POVD3L POVD2H POVD2L POVD1H POVD1L POUT4H POUT4L POUT3H POUT3L POUT2H POUT2L POUT1H POUT1L 1111 1111 00-0 0000
PDC1 01D6
PDC2 01D8
PDC3 01DA
PDC4 01DC
注 1: 控制位 PENxx 的复位状态取决于器件配置位 PWMPIN 的状态。
2: 阴影的寄存器和位单元在 6 输出 MCPWM 模块中未使用。
3: IUE 位在器件 dsPIC30F6010 中未用。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
-
-
- -
- -
- PWMIP<2:0>
- FLTAIP<2:0>
- - - - - - - - - - - - -
-
-
- -
- -
- - - - - - - - - - - - - -
- - - - - - - - - - - - - -
-
-
PTSIDL
- -
- -
- -
FLTBIF FLTAIF
FLTBIE FLTAIE
- - - - - - - - - - - -
- - - - - - - - - - - -
- - - - -
PMOD4 PMOD3 PMOD2 PMOD1 PEN4H PEN3H PEN2H PEN1H PEN4L PEN3L PEN2L PEN1L 0000 0000 0000 0000
死区时间 B 值寄存器
- -
- - -
- - -
SEVOPS<3:0>
- -
PWM 占空比 1 寄存器
PWM 占空比 2 寄存器
PWM 占空比 3 寄存器
PWM 占空比 4 寄存器
PWMIF
PWMIE
PWM 时基寄存器
PWM 时基周期寄存器
PWM 特殊事件比较寄存器
- -
DTAPS<1:0>
DTS4A DTS4I DTS3A DTS3I DTS2A DTS2I DTS1A DTS1I 0000 0000 0000 0000
- - - - - - -
- - - - - - -
FLTBIP<2:> 0000 0000 0000 0000
PTOPS<3:0> PTCKPS<1:0> PTMOD<1:0> 0000 0000 0000 0000
- -
- - -
- - -
- IUE OSYNC UDIS 0000 0000 0000 0000
死区时间 A 值寄存器
FAEN4 FAEN3 FAEN2 FAEN1 0000 00-0 0000 0000
FBEN4 FBEN3 FBEN2 FBEN1 0000 0000 0000 0000
复位值
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0100 0100 0100 0100
0100 0100 0100 0100
0000 0000 0000 0000
0111 1111 1111 1111
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
dsPIC30F 系列参考手册

© 2005 Microchip Technology Inc. DS70062D_CN 第 15-41 页
表 15-9:与6 输出 PWM 模块相关的寄存器
名称地址
INTCON1 0080 NSTDIS
INTCON2 0082 ALTIVT
IFS2 0088
IEC2 0090
IPC9 00A6
IPC10 00A8
PTCON 01C0 PTEN
PTMR 01C2 PTDIR
PTPER 01C4
SEVTCMP 01C6 SEVTDIR
PWMCON1 01C8
PWMCON2 01CA
DTCON1 01CC
保留
FLTACON 01D0
保留
OVDCON 01D4
PDC1 01D6 PWM 占空比 1 寄存器 0000 0000 0000 0000
PDC2 01D8
PDC3 01DA
注 1: 控制位 PENxx 的复位状态取决于器件配置位 PWMPIN的状态。
2: 阴影的寄存器和位单元在 6 输出 MCPWM 模块中 未使用。
3: IUE位在器件 dsPIC30F6010 中未用。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
01CE
01D2
-
-
- -
- -
- PWMIP<2:0>
- FLTAIP<2:0>
-
-
- -
- -
-
-
- - FAOV3H FAOV3L FAOV2H FAOV2L FAOV1H FAOV1L FLTAM
-
- - POVD3H POVD3L POVD2H POVD2L POVD1H POVD1L
-
-
-
- - - - - - - - - - - - - -
- - - - - - - - - - - - - -
- -
- -
PTSIDL
- - -
- - - -
-
- -
- -
FLATIF
FLTAIE
- - - - - - - - - - - -
- - - - - - - - - - - -
- - - - -
- - - - -
- -
- -
- - -
- - -
PWM 特殊事件比较寄存器
PMOD3 PMOD2 PMOD1
- - - - - - - - - - -
- - - - - - - - - - -
PWM 占空比 2 寄存器
PWM 占空比 3 寄存器
PWMIF
PWMIE
PWM 时基寄存器
PWM 时基周期寄存器
PEN3H PEN2H PEN1H
-
DTAPS<1:0>
- -
- - - - - - -
- - - - - - -
PTOPS<3:0> PTCKPS<1:0> PTMOD<1:0> 0000 0000 0000 0000
- PEN3L PEN2L PEN1L 0000 0000 0000 0000
-
- - -
- -
POUT3H POUT3L POUT2H POUT2L POUT1H POUT1L 1111 1111 00-0 0000
- IUE OSYNC UDIS 0000 0000 0000 0000
死区时基 A 值寄存器
FAEN4 FAEN3 FAEN2 FAEN1 0000 00-0 0000 0000
复位值
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0100 0100 0100 0100
0100 0100 0100 0100
0000 0000 0000 0000
0111 1111 1111 1111
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
PWM
电机控制
第 15 章 电机控制 PWM
15

dsPIC30F 系列参考手册
15.15 相关应用笔记
本节列出了与手册本章内容相关的应用笔记。这些应用笔记可能并不是专为 dsPIC30F 系列产品
而编写的,但是概念是相关的,通过适当修改即可使用,但使用中可能会受到一定限制。当前与
MCPWM 模块相关的应用笔记有:
标题 应用笔记编号
PIC18CXXX/PIC16CXXX Servomotor AN696
dsPIC30F 在无传感器 BLDC 控制中的应用 AN901
使用 dsPIC30F 实现交流感应电机的矢量控制 AN908
使用 dsPIC30F2010 控制带传感器的 BLDC AN957
使用 dsPIC30F MCU 控制交流感应电机 AN984
注: 如需获取更多 dsPIC30F 系列器件的应用笔记和代码示例,请访问 Microchip 网站
(www.microchip.com)。
DS70062D_CN 第 15-42 页 © 2005 Microchip Technology Inc.

15.16 版本历史
第 15 章 电机控制 PWM
版本 A
这是本文档的初始发行版。
版本 B
本版本扩充了有关 dsPIC30F MCPWM 模块的信息。
版本 C
此版本加入了本文档更新时已知的所有勘误表。
版本 D
此版本加入了立即更新使能功能 (IUE)位。
© 2005 Microchip Technology Inc.. DS70062D_CN 第 15-43 页
15
电机控制
PWM

dsPIC30F 系列参考手册
注:
DS70062D_CN 第 15-44 页 © 2005 Microchip Technology Inc.