MICROCHIP dsPIC33FJ32MC302, dsPIC33FJ32MC3304, dsPIC33FJ64MCX02, dsPIC33FJ64MCX04, dsPIC33FJ128MCX02 Technical data

...
dsPIC33FJ32MC302/304
dsPIC33FJ64MCX02/X04
dsPIC33FJ128MCX02/X04
数据手册
高性能
16 位数字信号控制器
2008 Microchip Technology Inc. 超前信息 DS70291A_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
• Microchip 的产品均达到 Microchip 数据手册中所述的技术指标。
• Microchip 确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的 操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
• Microchip 愿与那些注重代码完整性的客户合作。
• Microchip 或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视 为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的
软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含 的英文部分,因为其中提供了有关 Microchip 产品性能和使用
情况的有用信息。Microchip Technology Inc. 及其分公司和相 关公司、各级主管与员工及事务代理机构对译文中可能存在的
任何差错不承担任何责任。建议参考 Microchip Technology Inc. 的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便 利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或 暗示、书面或口头、法定或其他形式的声明或担保,包括但不 限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而 引起的后果不承担任何责任。如果将 Microchip 器件用于生命 维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障 Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron dsPIC、 K
EELOQ、 KEELOQ 徽标、 MPLAB、 PIC、
PICmicroPICSTARTPRO MATE、 rfPIC 和 SmartShunt
均为 Microchip Technology Inc. 在美国和其他国家或地区的 注册商标。
FilterLabLinear Active ThermistorMXDEVMXLAB SEEVAL、SmartSensor The Embedded Control Solutions Company 均为 Microchip Technology Inc.在美国的注册商
标。
Analog-for-the-Digital AgeApplication Maestro CodeGuarddsPICDEMdsPICDEM.net、 dsPICworks、
dsSPEAKECANECONOMONITORFanSense In-Circuit Serial Programming、 ICSP、 ICEPIC、 Mindi、
MiWi、MPASM、MPLAB Certified 徽标、MPLIBMPLINK mTouchPICkitPICDEMPICDEM.netPICtailPIC
32
徽标、 PowerCalPowerInfoPowerMate、 PowerTool REAL ICE、rfLAB、Select ModeTotal Endurance、UNI/O、 WiperLockZENA均为Microchip Technology Inc.在美国和其
他国家或地区的商标。 SQTP Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。
© 2008, Microchip Technology Inc.版权所有。
Microchip Gresham
印度的设计中心均通过了
MCU与dsPIC® DSC、KEELOQ
设、非易失性存储器和模拟产品方面的质量体系流程均符合
16949:2002
系也已通过了
位于美国亚利桑那州
的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和
。此外,
ISO 9001:2000
Chandler和Te mp e
ISO/TS-16949:2002
®
跳码器件、串行
Microchip
在开发系统的设计和生产方面的质量体
认证。
与位于俄勒冈州
认证。公司在
EEPROM
®
PIC
、单片机外
ISO/TS-
DS70291A_CN ii 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304
dsPIC33FJ64MCX02/X04
dsPIC33FJ128MCX02/X04
高性能 16 位数字信号控制器
工作范围:
最高 40 MIPS 的工作速度 (3.0-3.6V 时):
- 工业级温度范围 -40°C +85°C
- 扩展级温度范围
-40°C +125°C
高性能 DSC CPU
改进型哈佛架构
• C 编译器优化指令集
• 16 位宽数据总线
• 24 位宽指令
可寻址最大 4M 指令字的线性程序存储空间
可寻址最大 64 KB 的线性数据存储空间
• 83 条基本指令:多为单字 / 单周期指令
两个带舍入和饱和选项的 40 位累加器
灵活而强大的寻址模式:
- 间接寻址
- 模寻址
- 位反转寻址
软件堆栈
• 16 x 16 位小数 / 整数乘法运算
• 32/16 位和 16/16 位除法运算
单周期乘 - 累加运算:
-DSP运算的累加器回写操作
- 双数据取操作
可将最多 40 位的数据左移或右移最多 16
直接存储器访问 (Direct Memory AccessDMA):
• 8 通道硬件 DMA
最大 2 KB 的双端口 DMA 缓冲区 (DMA RAM 用于存储通过 DMA 传输的数据:
- 允许 CPU 执行代码时在 RAM 和外设之间传
输数据 (不占用周期)
大部分外设都支持 DMA
定时器 / 捕捉 / 比较 /PWM
定时器 / 计数器,最多 5 个 16 位定时器
- 可以配对作为最多 2 32 位定时器使用
-1个定时器依靠外部 32.768 kHz 振荡器作为
实时时钟运行
- 可编程预分频器
输入捕捉 (最多 4 路通道):
- 上升沿捕捉、下降沿捕捉或上升 / 下降沿捕捉
-16位捕捉输入功能
- 每路捕捉通道都带有 4 字深度的 FIFO 缓冲区
输出比较 (最多 4 路通道):
-1个或 2 个 16 位比较模式
-16位无毛刺 PWM 模式
硬件实时时钟 / 日历 (Real-Time Clock/ CalendarRTCC):
- 提供时钟、日历和闹钟功能
中断控制器:
中断响应延时为 5 个周期
• 118 个中断向量
最多 53 个中断源
最多 3 个外部中断
• 7 个可编程优先级
• 5 个处理器异常
数字 I/O
外设引脚选择功能
最多 35 个可编程数字 I/O 引脚
最多 21 个引脚上具有唤醒 / 电平变化中断功能
输出引脚可驱动 3.0V 3.6V 的电压
漏极开路配置、最高 5V 的输出
所有数字输入引脚可承受 5V 的电压
所有 I/O 引脚的最大拉 / 灌电流为 4 mA
片上闪存和 SRAM
闪存程序存储器 (最大 128 KB
数据 SRAM (最大 16 KB
闪存程序存储器的引导、安全和通用安全性
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 第1
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
系统管理:
灵活的时钟选择:
- 外部振荡器、晶振、谐振器和内部 RC 振荡器
- 全集成锁相环 (Phase-Locked Loop, PLL)
- 极低抖动 PLL
上电延时定时器
振荡器起振定时器 / 稳定器
自带 RC 振荡器的看门狗定时器
故障保护时钟监视器
多个复位源
功耗管理:
片上 2.5V 稳压器
实时时钟源切换
可快速唤醒的空闲、休眠和打盹模式
模数转换器 (Analog-to-Digital ConverterADC):
• 10 1.1 Msps 或 12 位 500 ksps 转换:
-2路或 4 路输入同时采样 (10 位 ADC)
- 最多 9 路带自动扫描功能的输入通道
- 可手动启动转换或与 4 个触发源中的一个同
- 休眠模式下仍可进行转换
- 最大积分非线性误差为 ±2 LSb
- 最大微分非线性误差为 ±1 LSb
音频数模转换器 (Digital-to-Analog ConverterDAC):
-16位双通道 DAC 模块
- 最大 100 ksps 采样速率
- 二阶数字Δ -Σ 调制器
比较器模块:
带可编程输入 / 输出配置的两个模拟比较器
电机控制外设:
• 6 通道 16 位电机控制 PWM
-3个占空比发生器
- 独立或互补模式
- 可编程死区和输出极性
- 边沿对齐或中心对齐
- 手动输出改写控制
-1路故障输入
-ADC转换触发
-16位分辨率时的 PWM 频率
@ 40 MIPS):边沿对齐模式为 1220 Hz
中心对齐模式为 610 Hz
-11位分辨率时的 PWM 频率@ 40 MIPS):边沿对齐模式为 39.1 kHz
中心对齐模式为 19.55 kHz
• 2 通道 16 位电机控制 PWM
-1个占空比发生器
- 独立或互补模式
- 可编程死区和输出极性
- 边沿对齐或中心对齐
- 手动输出改写控制
-1路故障输入
-ADC转换触发
-16位分辨率时的 PWM 频率
@ 40 MIPS):边沿对齐模式为 1220 Hz
中心对齐模式为 610 Hz
-11位分辨率时的 PWM 频率@ 40 MIPS):边沿对齐模式为 39.1 kHz
中心对齐模式为 19.55 kHz
双正交编码器接口模块:
-A相、 B 相和索引脉冲输入
-16位递增 / 递减位置计数器
- 计数方向状态
- 位置测量 (x2 x4)模式
- 输入端上的可编程数字噪声滤波器
- 备用 16 位定时器 / 计数器模式
- 位置计数器计满返回 / 下溢中断
CMOS 闪存技术:
低功耗高速闪存技术
全静态设计
• 3.3V (±10%)工作电压
工业级和扩展级温度
低功耗
DS70291A_CN 第2 页 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
通信模块:
• 4 线 SPI (最多 2 个模块):
- 帧支持与简单编解码器的 I/O 接口
- 支持 8 位和 16 位数据
- 支持所有串行时钟格式和采样模式
2
• I
C™
- 完全支持多主机从模式
-7位和 10 位寻址
- 总线冲突检测和仲裁
- 集成信号调理
- 从地址掩码
• UART (最多 2 个模块):
- 检测到地址位时产生中断
- 出现 UART 错误时产生中断
- 检测到启动位时将器件从休眠模式唤醒
-4字符深的发送和接收 FIFO 缓冲区
-LIN总线支持
- 硬件 IrDA
- 高速波特率模式
- 使用 CTS RTS 的硬件流控制
增强型 CAN ECAN™模块) 2.0B active
- 最多 8 个发送缓冲区、最多 32 个接收缓冲区
-16个接收过滤器和 3 个屏蔽器
- 环回、监听和监听所有报文模式
- 用于诊断和总线监视的报文模式
- 接收到 CAN 报文时唤醒
- 远程发送请求的自动处理
- 使用 DMA FIFO 模式
- 支持 DeviceNet™寻址模式
并行主从端口 (PMP/EPSP):
- 支持 8 位或 16 位数据
- 支持 16 根地址线
可编程循环冗余校验 (Cyclic Redundancy CheckCRC
- CRC 发生器多项式的可编程位长度 (最大
16 位长度)
- 用于数据输入的 8 级深 16 位或 16 级深 8
FIFO
®
编解码器
封装:
• 28 引脚 SPDIP/SOIC/QFN-S
• 44 引脚 TQFP/QFN
注: 关于每个器件的具体外设特性,请参见相
应的器件数据表。
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 3
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
dsPIC33FJ32MC302/304 dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04 产品系列
下表列出了每个器件的器件名、引脚数、存储容量和可 用的外设。表后各页还附有它们的引脚图。
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04 控制器系列
16 位定时器
可重映射的外设
输出比较
输入捕捉
标准 PWM
(3)
(通道)
电机控制 PWM
正交编码器
接口
UART
SPI
RTCC
ECAN™
2
C™ I
封装
(通道数)
CRC 发生器
10 /12 ADC
6 引脚 16 DAC
模拟比较器
2 通道 / 稳压器)
8 位并行主
端口 (地址线)
I/O 引脚
TQFP
SOIC
QFN-S
TQFP
SOIC
QFN-S
TQFP
SOIC
QFN-S
TQFP
SOIC
QFN-S
TQFP
SOIC
QFN-S
(1)
器件
dsPIC33FJ128MC80444128162654 4 6, 2 2 221111 9 1 1/1 11 35QFN
dsPIC33FJ128MC80228128161654 4 6, 2 2 221111 6 0 1/0 2 21SPDIP
dsPIC33FJ128MC2044412882654 4 6, 2 2 220111 9 0 1/1 11 35QFN
dsPIC33FJ128MC2022812881654 4 6, 2 2 220111 6 0 1/0 2 21SPDIP
dsPIC33FJ64MC804 4464162654 4 6, 2 2 221111 9 1 1/1 11 35QFN
dsPIC33FJ64MC802 2864161654 4 6, 2 2 221111 6 0 1/0 2 21SPDIP
dsPIC33FJ64MC204 4464 82654 4 6, 2 2 220111 9 0 1/1 11 35QFN
dsPIC33FJ64MC202 2864 81654 4 6, 2 2 220111 6 0 1/0 2 21SPDIP
dsPIC33FJ32MC304 4432 42654 4 6, 2 2 220111 9 0 1/1 11 35QFN
dsPIC33FJ32MC302 2832 41654 4 6, 2 2 220111 6 0 1/0 2 21SPDIP
1: 所有器件的 RAM 大小包括 2KBDMA RAMdsPIC33FJ32MC302/304 除外,它包含 1KBDMA RAM
25 个定时器中只有 4 个是可重映射的。 3: 只有 PWM 故障引脚是可重映射的。
引脚数
KB
闪存程序存储器
(2)
RAM KB
可重映射的引脚数
DS70291A_CN 4 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
引脚图
28 引脚 SPDIP SOIC
AN0/VREF+/CN2/RA0
AN1/V
REF-/CN3/RA1
PGD1/EMUD1/AN2/C2IN-/RP0/CN4/RB0
PGC1/EMUC1/ AN3/C2IN+/RP1/CN5/RB1
AN4/C1IN-/RP2/CN6/RB2
AN5/C1IN+/RP3/CN7/RB3
OSCI/CLKI/CN30/RA2
OSCO/CLKO/CN29/PMA0/RA3
SOSCI/RP4/CN1/PMBE/RB4
SOSCO/T1CK/CN0/PMA1/RA4
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
28 引脚 QFN-S
MCLR
VSS
VDD
1
2
3
dsPIC33FJ128MC802
4
5
6
7
8
9
10
11
12
13
14
dsPIC33FJ32MC302
dsPIC33FJ64MC202
dsPIC33FJ64MC802
dsPIC33FJ128MC202
AVDD
28
AVSS
27
PWM1L1/RP15/CN11/PMCS1/RB15
26
PWM1H1/RTCC/RP14/CN12/PMWR/RB14
25
PWM1L2/RP13/CN13/PMRD/RB13
24
PWM1H2/RP12/CN14/PMD0/RB12
23
PGC2/EMUC2/TMS/PWM1L3/RP11/CN15/PMD1/RB11
22
PGD2/EMUD2/TDI/PWM1H3/RP10/CN16/PMD2/RB10
21
VCAP/VDDCORE
20
SS
V
19
TDO/PWM2L1/SDA1/RP9/CN21/PMD3/RB9
18
TCK/PWM2H1/SCL1/RP8/CN22/PMD4/RB8
17
INT0/RP7/CN23/PMD5/RB7
16
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
15
PGD1/EMUD1/AN2/C2IN-/RP0/CN4/RB0
PGC1/EMUC1/AN3/C2IN+/RP1/CN5/RB1
AN4/C1IN-/RP2/CN6/RB2
AN5/C1IN+/RP3/CN7/RB3
VSS
OSCI/CLKI/CN30/RA2
OSCO/CLKO/CN29/PMA0/RA3
REF-/CN3/RA1
DD
AN1/V
AV
MCLR
AN0/VREF+/CN2/RA0
8
6
7
5
2
2
2
2
1
2
dsPIC33FJ32MC302
3
dsPIC33FJ64MC202
4
dsPIC33FJ64MC802 dsPIC33FJ128MC202
5
dsPIC33FJ128MC802
6
7
9
10
8
11
VDD
SOSCI/RP4/CN1/PMBE/RB4
SOSCO/T1CK/CN0/PMA1/RA4
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
AVSS
4 2
12
PGC3/ EMUC3/ASCL1/RP6/CN24/PMD6/RB6
PWM1L1/RP15/CN11/PMCS1/RB15
PWM1H1/RTCC/RP14/CN12/PMWR/RB14
2
3
2
2
PWM1L2/RP13/CN13/PMRD/RB13
21
PWM1H2/RP12/CN14/PMD0/RB12
20
PGC2/EMUC2/TMS/PWM1L3/RP11/CN15/PMD1/RB11
19
PGD2/EMUD2/TDI/PWM1H3/RP10/CN16/PMD2/RB10
18
CAP/VDDCORE
V
17
VSS
16
TDO/PWM2L1/SDA1/RP9/CN21/PMD3/RB9
15
14
13
INT0/RP7/CN23/PMD5/RB7
TCK/PWM2H1/SCL1/RP8/CN22/PMD4/RB8
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 第5
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
引脚图 (续)
44 引脚 QFN
REF-/CN3/RA1
REF+/CN2/RA0
PGC1/EMUC1/AN3/C2IN+/RP1/CN5/RB1
PGD1/EMUD1/AN2/C2IN-/RP0/CN4/RB0
AN5/C1IN+/RP3/CN7/RB3
AN6/DAC1RM/RP16/CN8/RC0
AN7/DAC1LM/RP17/CN9/RC1
AN8/CV
REF/RP18/PMA2/CN10/RC2
OSCI/CLKI/CN30/RA2
OSCO/CLKO/CN29/RA3
TDO/PMA8/RA8
SOSCI/RP4/CN1/RB4
V
VSS
DD
AN1/V
AVDDAVSS
AN0/V
MCLR
23
24
25
26
27
28
29
30
31
33
20
21
22
17
18
19
dsPIC33FJ64MC804 dsPIC33FJ128MC804
39
38
37
36
35
34
SS
V
40
DD
V
16
TMS/PMA10/RA10
PWM1L1/DAC1LN/RP15/CN11/PMCS1/RB15
PWM1H1/DAC1LP/RTCC/RP14/CN12/PMWR/RB14
TCK/PMA7/RA7
PWM1L2/DAC1RN/RP13/CN13/PMRD/RB13AN4/C1IN-/RP2/CN6/RB2
11
13
14
15
12
PWM1H2/DAC1RP/RP12/CN14/PMD0/RB12
10
PGC2/EMUC2/PWM1L3/RP11/CN15/PMD1/RB11
9
PGD2/EMUD2/PWM1H3/RP10/CN16/PMD2/RB10
8
V
CAP/VDDCORE
7
VSS
6
RP25/CN19/PMA6/RC9
5
RP24/CN20/PMA5/RC8
4
PWM2L1/RP23/CN17/PMA0/RC7
3
PWM2H1/RP22/CN18/PMA1/RC6
232
SDA1/RP9/CN21/PMD3/RB9
41
1
44
43
42
SOSCO/T1CK/CN0/RA4
TDI/PMA9/RA9
RP19/CN28/PMBE/RC3
RP20/CN25/PMA4/RC4
RP21/CN26/PMA3/RC5
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
INT0/RP7/CN23/PMD5/RB7
SCL1/RP8/CN22/PMD4/RB8
DS70291A_CN 第6 页 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
引脚图 (续)
44 引脚 QFN
REF-/CN3/RA1
REF+/CN2/RA0
AN0/V
MCLR
PGD1/EMUD1/AN2/C2IN-/RP0/CN4/RB0
AN1/V
AVDDAVSS
20
21
36
35
16
17
18
19
40
39
38
37
SS
DD
V
V
TMS/PMA10/RA10
PWM1L1/RP15/CN11/PMCS1/RB15
PWM1H1/RTCC/RP14/CN12/PMWR/RB14
TCK/PMA7/RA7
PWM1L2/RP13/CN13/PMRD/RB13
11
13
14
15
12
PWM1H2/RP12/CN14/PMD0/RB12
10
PGC2/EMUC2/PWM1L3/RP11/CN15/PMD1/RB11
9
PGD2/EMUD2/PWM1H3/RP10/CN16/PMD2/RB10
8
V
CAP/VDDCORE
7
VSS
6
RP25/CN19/PMA6/RC9
5
RP24/CN20/PMA5/RC8
4
PWM2L1/RP23/CN17/PMA0/RC7
3
PWM2H1/RP22/CN18/PMA1/RC6
232
SDA1/RP9/CN21/PMD3/RB9
41
1
44
43
42
AN4/C1IN-/RP2/CN6/RB2
AN5/C1IN+/RP3/CN7/RB3
AN6/RP16/CN8/RC0
AN7/RP17/CN9/RC1
AN8/CV
REF/RP18/PMA2/CN10/RC2
OSCI/CLKI/CN30/RA2
OSCO/CLKO/CN29/RA3
SOSCI/RP4/CN1/RB4
V
VSS
TDO/PMA8/RA8
DD
PGC1/EMUC1/AN3/C2IN+/RP1/CN5/RB1
23
22 24
25
26
dsPIC33FJ32MC304
27
dsPIC33FJ64MC204
28
29
dsPIC33FJ128MC204
30
31
33
34
SOSCO/T1CK/CN0/RA4
TDI/PMA9/RA9
RP21/CN26/PMA3/RC5
RP20/CN25/PMA4/RC4
RP19/CN28/PMBE/RC3
INT0/RP7/CN23/PMD5/RB7
SCL1/RP8/CN22/PMD4/RB8
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 第7
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
引脚图 (续)
44 引脚 TQFP
REF-/CN3/RA1
REF+/CN2/RA0
PGC1/EMUC1/AN3/C2IN+/RP1/CN5/RB1
PGD1/EMUD1/AN2/C2IN-/RP0/CN4/RB0
AN4/C1IN-/RP2/CN6/RB2
AN5/C1IN+/RP3/CN7/RB3
AN6/DAC1RM/RP16/CN8/RC0
AN7/DAC1LM/RP17/CN9/RC1
AN8/CV
REF/RP18/PMA2/CN10/RC2
OSCI/CLKI/CN30/RA2
OSCO/CLKO/CN29/RA3
TDO/PMA8/RA8
SOSCI/RP4/CN1/RB4
V
VSS
DD
AN1/V
AVDDAVSS
AN0/V
MCLR
18
19
20
21
22
23 24 25
26 27
dsPIC33FJ64MC804
28
dsPIC33FJ128MC804
29 30 31 32 33
363435937
17
39
38
16
40
TMS/PMA10/RA10
PWM1L1/DAC1LN/RP15/CN11/PMCS1/RB15
TCK/PMA7/RA7
PWM1H1/DAC1LP/RTCC/RP14/CN12/PMWR/RB14
12
13
14
15
11
PWM1L2/DAC1RN/RP13/CN13/PMRD/RB13
10
PWM1H2/DAC1RP/RP12/CN14/PMD0/RB12 PGC2/EMUC2/PWM1L3/RP11/CN15/PMD1/RB11
8
PGD2/EMCD2/PWM1H3/RP10/CN16/PMD2/RB10
7
CAP/VDDCORE
V
6
VSS
5
RP25/CN19/PMA6/RC9
4
RP24/CN20/PMA5/RC8
3
PWM2L1/RP23/CN17/PMA0/RC7
2
PWM2H1/RP22/CN18/PMA1/RC6
1
SDA1/RP9/CN21/PMD3/RB9
44
43
42
41
SOSCO/T1CK/CN0/RA4
TDI/PMA9/RA9
RP19/CN28/PMBE/RC3
RP20/CN25/PMA4/RC4
SS
V
RP21/CN26/PMA3/RC5
DD
V
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
INT0/RP7/CN23/PMD5/RB7
SCL1/RP8/CN22/PMD4/RB8
DS70291A_CN 第8 页 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
引脚图 (续)
44 引脚 TQFP
REF-/CN3/RA1
REF+/CN2/RA0
AN0/V
AN4/C1IN-/RP2/CN6/RB2
AN5/C1IN+/RP3/CN7/RB3
AN6/RP16/CN8/RC0
AN8/CV
AN7/RP17/CN9/RC1
REF/RP18/PMA2/CN10/RC2
OSCI/CLKI/CN30/RA2
OSCO/CLKO/CN29/RA3
SOSCI/RP4/CN1/RB4
V
DD
VSS
TDO/PMA8/RA8
PGC1/EMUC1/AN3/C2IN+/RP1/CN5/RB1
22
23 24 25
26
dsPIC33FJ32MC304
27 28
dsPIC33FJ64MC204
29
dsPIC33FJ128MC204
30 31 32 33
MCLR
PGD1/EMUD1/AN2/C2IN-/RP0/CN4/RB0
AN1/V
17
18
19
20
21
39
363435937
38
AVDDAVSS
16
40
TMS/PMA10/RA10
PWM1L1/RP15/CN11/PMCS1/RB15
TCK/PMA7/RA7
PWM1H1/RTCC/RP14/CN12/PMWR/RB14
12
13
14
15
11
PWM1L2/RP13/CN13/PMRD/RB13
10
PWM1H2/RP12/CN14/PMD0/RB12 PGC2/EMUC2/PWM1L3/RP11/CN15/PMD1/RB11
8
PGD2/EMCD2/PWM1H3/RP10/CN16/PMD2/RB10
7
CAP/VDDCORE
V
6
VSS
5
RP25/CN19/PMA6/RC9
4
RP24/CN20/PMA5/RC8
3
PWM2L1/RP23/CN17/PMA0/RC7
2
PWM2H1/RP22/CN18/PMA1/RC6
1
SDA1/RP9/CN21/PMD3/RB9
44
43
42
41
SOSCO/T1CK/CN0/RA4
TDI/PMA9/RA9
RP19/CN28/PMBE/RC3
RP20/CN25/PMA4/RC4
RP21/CN26/PMA3/RC5
SS
DD
V
V
INT0/RP7/CN23/PMD5/RB7
SCL1/RP8/CN22/PMD4/RB8
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 第9
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
目录
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04 产品系列 ......................................................... 4
1.0 器件概述 ..................................................................................................................................................................................... 13
2.0 CPU............................................................................................................................................................................................ 19
3.0 存储器构成 ................................................................................................................................................................................. 31
4.0 闪存程序存储器 .......................................................................................................................................................................... 67
5.0 复位 ............................................................................................................................................................................................ 73
6.0 中断控制器 ................................................................................................................................................................................. 81
7.0 直接存储器访问 (DMA......................................................................................................................................................... 123
8.0 振荡器配置 ............................................................................................................................................................................... 135
9.0 节能特性 ................................................................................................................................................................................... 147
10.0 I/O 端口..................................................................................................................................................................................... 149
11.0 Timer2/3 Timer4/5 特性........................................................................................................................................................ 181
12.0 Timer1 ...................................................................................................................................................................................... 187
13.0 输入捕捉 ................................................................................................................................................................................... 189
14.0 输出比较 ................................................................................................................................................................................... 191
15.0 电机控制 PWM 模块 ................................................................................................................................................................. 195
16.0 正交编码器接口 (QEI)模块................................................................................................................................................... 217
17.0 串行外设接口 (SPI)............................................................................................................................................................... 225
2
18.0 I
C™ ........................................................................................................................................................................................ 233
19.0 通用异步收发器 (UART....................................................................................................................................................... 243
20.0 增强型 CAN ECAN™)模块 ................................................................................................................................................. 251
21.0 10 /12 位模数转换器 (ADC1)............................................................................................................................................ 281
22.0 音频数模转换器 (DAC......................................................................................................................................................... 295
23.0 比较器模块 ............................................................................................................................................................................... 301
24.0 实时时钟和日历 (RTCC....................................................................................................................................................... 307
25.0 可编程循环冗余校验 (CRC)发生器 ...................................................................................................................................... 319
26.0 并行主端口 (PMP................................................................................................................................................................ 323
27.0 特殊功能 ................................................................................................................................................................................... 333
28.0 指令集汇总 ............................................................................................................................................................................... 343
29.0 开发支持 ................................................................................................................................................................................... 351
30.0 电气特性 ................................................................................................................................................................................... 355
31.0 封装信息 ................................................................................................................................................................................... 399
Microchip 网站.................................................................................................................................................................................... 413
变更通知客户服务 .............................................................................................................................................................................. 413
客户支持............................................................................................................................................................................................. 413
读者反馈表 ......................................................................................................................................................................................... 414
产品标识体系...................................................................................................................................................................................... 415
DS70291A_CN 10 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
致客户
我们旨在提供最佳文档供客户正确使用 Microchip 产品。为此,我们将不断改进出版物的内容和质量,使之更好地满足您的要求。 出版物的质量将随新文档及更新版本的推出而得到提升。
如果您对本出版物有任何问题和建议,请通过电子邮件联系我公司 TRC 经理,电子邮件地址为 CTRC@microchip.com,或将本 数据手册后附的 《读者反馈表》传真到 86-21-5407 5066。我们期待您的反馈。
最新数据手册
欲获得本数据手册的最新版本,请查询我公司的网站:
http://www.microchip.com
查看数据手册中任意一页下边角处的文献编号即可确定其版本。文献编号中数字串后的字母是版本号,例如:DS30000A 是DS30000A 版本。
勘误表
现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。一旦我们了解到 器件 / 文档存在某些差异时,就会发布勘误表。勘误表上将注明其所适用的硅片版本和文件版本。
欲了解某一器件是否存在勘误表,请通过以下方式之一查询:
• Microchip 网站, http://www.microchip.com
当地 Microchip 销售办事处 (见最后一页)
在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本 (包括文献编号)。
客户通知系统
欲及时获知 Microchip 产品的最新信息,请到我公司网站 www.microchip.com 上注册。
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 11
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
注:
DS70291A_CN 12 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304、 dsPIC33FJ64MCX02/X04 和 dsPIC33FJ128MCX02/X04

1.0 器件概述

注: 本数据手册总结了 dsPIC33FJ32MC302/
304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04 系列器件的特
性。但是不应把本手册当作无所不包的参 考手册来使用。如需了解本数据手册的补 充信 息,请 参 考 “dsPIC33F Family Reference Manual”的相关章节,该文档 可从 Microchip 网站
www.microchip.com)下载。
本文档包含 dsPIC33FJ32MC302/304
dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/ X04 数字信号控制器(Digital Signal Controller,DSC
器件的特定信息。dsPIC33F 器件在高性能 16 位单片机MCU)架构中,融合了丰富的数字信号处理器 (Digital Signal ProcessorDSP)功能。
1-1 给出了 dsPIC33FJ32MC302/304
dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/
X04 系列器件内核和外设模块的通用框图。表 1-1 列出
了引脚图中所示各引脚的功能。
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 第 13
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
1-1 dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
框图
PSV
和表 数据访问 控制模块
23
23
地址锁存器
中断
控制器
23
8
PCU
程序计数器
堆栈 控制 逻辑
16
PCH PCL
循环 控制 逻辑
Y
数据总线
X
数据总线
16
16
数据锁存器
X RAM
地址
锁存器
16
地址发生器单元
数据锁存器
Y RAM
地址
锁存器
16
16
PORTA
DMA RAM
PORTB
DMA 控制器
16
PORTC
程序存储器
数据锁存器
OSC2/CLKO
OSC1/CLKI
时序 发生
FRC/LPRC
振荡器
高精度
带隙 参考
稳压器
VDDCORE/VCAP
地址总线
至各模块的
控制信号
DD 和 VSS
V
24
指令
译码和
控制
上电延时
定时器
振荡器
起振定时器
上电 复位
看门狗 定时器
欠压 复位
MCLR
DSP
除法支持
ROM
指令寄存器
引擎
锁存器
EA
多路开关
16
立即数数据
16 x 16
W
寄存器阵列
可重映射的
引脚
16
16
16
16位ALU
16
PMP/
EPSP
RTCC
注: 并非所有器件的引脚配置中都实现了全部的引脚或特性。请参见引脚图了解每个器件上的特定引脚和特性的信息。
比较器
1, 2
DAC1
ECAN1
SPI1, 2
定时器
1-5
IC1, 2, 7, 8
UART1, 2
CNx
ADC1
I2C1
输出比较 /
PWM1-4
QEI1, 2
PWM
2 通道
PWM
6 通道
DS70291A_CN 14 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04

1-1 引脚输入 / 输出说明

引脚名称
AN0-AN8
CLKI CLKO
OSC1 OSC2
SOSCI SOSCO
CN0-CN30 I ST
IC1-IC2 IC7-IC8
OCFA OC1-OC4
INT0 INT1 INT2
RA0-RA4 RA7-RA10
RB0-RB15 I/O ST
RC0-RC9 I/O ST
T1CK T2CK T3CK T4CK T5CK
U1CTS U1RTS
U1RX U1TX
U2CTS U2RTS
U2RX U2TX
SCK1 SDI1 SDO1
SS1
SCK2 SDI2 SDO2
SS2
SCL1 SDA1 ASCL1 ASDA1
图注: CMOS = CMOS 兼容输入或输出 Analog = 模拟输入 P = 电源
ST = CMOS 电平的施密特触发器输入 O = 输出 I = 输入
引脚类型缓冲器
类型
IAnalog
I
ST/CMOS
O
I
I/O
I
O
I I
I
O
I I I
I/O I/O
I I I I I
I
O
I
O
I
O
I
O
I/O
I
O
I/O
I/O
I
O
I/O
I/O I/O I/O I/O
ST/CMOS
ST/CMOS
ST ST
ST
ST ST ST
ST ST
ST ST ST ST ST
ST
ST
ST
ST
ST ST
ST
ST ST
ST
ST ST ST ST
说明
模拟输入通道。
外部时钟源输入。总是与 OSC1 引脚功能相关联。 晶振输出。在晶振模式下,连接到晶振或谐振器。也可选择在 RC EC 模式 下用作 CLKO。总是与 OSC2 引脚功能相关联。
晶振输入。配置为 RC 模式时为 ST 缓冲器输入;否则为 CMOS 缓冲器输入。 晶振输出。在晶振模式下,连接到晶振或谐振器。也可选择在 RC EC 模式 下用作 CLKO
32.768 kHz 低功耗晶振输入;否则为 CMOS 输入。
32.768 kHz 低功耗晶振输出。
电平变化通知输入。 可将所有输入用软件编程为内部弱上拉。
捕捉输入 1/2 捕捉输入 7/8
比较故障 A 输入 (用于比较通道 1、 2、 3 和 4)。 比较输出 1 4
外部中断 0。 外部中断 1。 外部中断 2
PORTA 是双向 I/O 端口。 PORTA 是双向 I/O 端口。
PORTB 是双向 I/O 端口。
PORTC 是双向 I/O 端口。 Timer1 外部时钟输入。
Timer2 外部时钟输入。 Timer3 外部时钟输入。 Timer4 外部时钟输入。 Timer5 外部时钟输入。
UART1 允许发送。 UART1 请求发送。 UART1 接收。 UART1 发送。
UART2 允许发送。 UART2 请求发送。 UART2 接收。 UART2 发送。
SPI1 的同步串行时钟输入 / 输出。 SPI1 数据输入。 SPI1 数据输出。 SPI1 从同步或帧脉冲 I/O
SPI2 的同步串行时钟输入 / 输出。 SPI2 数据输入。 SPI2 数据输出。 SPI2 从同步或帧脉冲 I/O
I2C1 的同步串行时钟输入 / 输出。 I2C1 的同步串行数据输入 / 输出。 I2C1 的备用同步串行时钟输入 / 输出。 I2C1 的备用同步串行数据输入 / 输出。
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 第 15
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
1-1 引脚输入 / 输出说明 (续)
引脚名称
TMS TCK TDI TDO
INDX1 QEA1
QEB1
UPDN1
INDX2 QEA2
QEB2
UPDN2
C1RX C1TX
RTCC O
REF OANA
CV
C1IN- C1IN+ C1OUT
C2IN­C2IN+ C2OUT
PMA0 PMA1 PMA2 -PMPA10 PMBE PMCS1 PMD0-PMPD7 PMRD PMWR
DAC1RN DAC1RP DAC1RM
DAC2RN DAC2RP DAC2RM
FLTA1 PWM1L1 PWM1H1 PWM1L2 PWM1H2 PWM1L3 PWM1H3 FLTA2 PWM2L1 PWM2H1
图注: CMOS = CMOS 兼容输入或输出 Analog = 模拟输入 P = 电源
ST = CMOS 电平的施密特触发器输入 O = 输出 I = 输入
引脚 类型
I I I
O
I I
I
O
I I
I
O
I
O
I I
O
I I
O
I/O I/O
O O O
I/O
O O
O O O
O O O
I O O O O O O I O O
缓冲器
类型
CMOS
CMOS
ANA ANA
ANA ANA
ST — — — — — — ST — —
ST ST ST
ST ST
ST
ST ST
ST
ST
ST ST
— — —
ST
— —
— — —
— — —
说明
JTAG 测试模式选择引脚。 JTAG 测试时钟输入引脚。 JTAG 测试数据输入引脚。 JTAG 测试数据输出引脚。
正交编码器索引 1 脉冲输入。 在 QEI1 模式下为正交编码器 A 相输入。 在定时器模式下为辅助定时器外部时钟 / 门控输入。 在 QEI1 模式下为正交编码器 B 相输入。 在定时器模式下为辅助定时器外部时钟 / 门控输入。 位置递增 / 递减计数器方向状态。
正交编码器索引 2 脉冲输入。 在 QEI2 模式下为正交编码器 A 相输入。 在定时器模式下为辅助定时器外部时钟 / 门控输入。 在 QEI2 模式下为正交编码器 B 相输入。 在定时器模式下为辅助定时器外部时钟 / 门控输入。 位置递增 / 递减计数器方向状态。
ECAN1 总线接收引脚。 ECAN1 总线发送引脚。
实时时钟闹钟输出。 比较器参考电压输出。 比较器 1 反相输入。
比较器 1 同相输入。 比较器 1 输出。
比较器 2 反相输入。 比较器 2 同相输入。 比较器 2 输出。
并行主端口地址 Bit 0 输入 (缓冲从模式下)和输出 (主模式下)。 并行主端口地址 Bit 1 输入 (缓冲从模式下)和输出 (主模式下)。 并行主端口地址线 (非复用主模式)。 并行主端口字节使能选通。 并行主端口片选 1 选通。 并行主端口数据线 (非复用主模式下)或者地址 / 数据线 (复用主模式下)。 并行主端口读选通。 并行主端口写选通。
DAC1 负输出。 DAC1 正输出。 DAC1 中点电压值输出 (典型值为 1.65V)。
DAC2 负输出。 DAC2 正输出。 DAC2 中点电压值输出 (典型值为 1.65V)。
PWM1 故障 A 输入。 PWM1 低端输出 1 PWM1 高端输出 1 PWM1 低端输出 2 PWM1 高端输出 2 PWM1 低端输出 3 PWM1 高端输出 3 PWM2 故障 A 输入。 PWM2 低端输出 1 PWM2 高端输出 1
DS70291A_CN 16 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
1-1 引脚输入 / 输出说明 (续)
引脚名称
PGD1/EMUD1 PGC1/EMUC1 PGD2/EMUD2 PGC2/EMUC2 PGD3/EMUD3 PGC3/EMUC3
MCLR
AVDD PP
AVSS PP
V
DD P—
VDDCORE P—
Vss P
V
REF+IAnalog
VREF-IAnalog
图注: CMOS = CMOS 兼容输入或输出 Analog = 模拟输入 P = 电源
ST = CMOS 电平的施密特触发器输入 O = 输出 I = 输入
引脚类型缓冲器
类型
I/O
I
I/O
I
I/O
I
ST ST ST ST ST ST
I/P ST
说明
编程 / 调试通信通道 1 使用的数据 I/O 引脚。 编程 / 调试通信通道 1 使用的时钟输入引脚。 编程 / 调试通信通道 2 使用的数据 I/O 引脚。 编程 / 调试通信通道 2 使用的时钟输入引脚。 编程 / 调试通信通道 3 使用的数据 I/O 引脚。 编程 / 调试通信通道 3 使用的时钟输入引脚。
主复位输入。此引脚为低电平有效的器件复位输入。 模拟模块的正电源。 模拟模块的参考地。 外设逻辑和 I/O 引脚的正电源。 CPU 逻辑滤波电容连接。 逻辑和 I/O 引脚的参考地。 模拟参考电压 (高电压)输入。 模拟参考电压 (低电压)输入。
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 17
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
注:
DS70291A_CN 18 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304、 dsPIC33FJ64MCX02/X04 和 dsPIC33FJ128MCX02/X04

2.0 CPU

注: 本数据手册总结了 dsPIC33FJ32MC302/
304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04 系列器件的特
性。但是不应把本手册当作无所不包的参 考手册来使用。如需了解本数据手册的补 充信 息,请 参 考 “dsPIC33F Family
Reference Manual”的 “ Section 2. CPUDS70204),该文档可从 Microchip 网站 (www.microchip.com)下载。

2.1 概述

dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04 CPU 模块采用 16
(数据)的改进型哈佛架构,具有增强指令集,包括对
DSP 的强大支持。CPU 具有 24 位指令字,指令字带有 长度可变的操作码字段。程序计数器(Program CounterPC)为 23 位宽,可寻址最大 4M x 24 位的 用户程序存储空间。实际实现的程序存储容量因器件而 异。单周期指令预取机制可帮助维持吞吐量并提供指令 的预测执行功能。除了改变程序流的指令、双字传送
MOV.D)指令和表指令以外,所有指令都在单个周期
内执行。使用 DO REPEAT 指令支持无开销的程序循 环结构,这两条指令在任何时间都可以被中断。
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04 器件的编程模型中有 1616 位工作寄存器。每个工作寄存器都可以充当数据、 地址或地址偏移量寄存器。第 16 个工作寄存器(W15) 作为软件堆栈指针(Stack PointerSP),用于中断和 调用。
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04 器件具有两类指令:MCU 类指令和 DSP 类指令。这两类指令无缝地集成到单个 CPU 中。指令集包括很多寻址模式,指令的设计可使 C 编译器的效率达到最优。对于大多数指令, dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04能够在每个指令周期内执 行一次数据 (或程序数据)存储器读取、一次工作寄存 器 (数据)读取、一次数据存储器写入以及一次程序
(指令)存储器读取操作。因此,支持三操作数指令,
允许在单个周期内执行 A + B = C 这样的操作。
CPU 的框图如图 2-1 所示,dsPIC33FJ32MC302/304 dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/ X04 的编程模型如图 2-2 所示。

2.2 数据寻址概述

数据空间可以作为 32K 字或 64 KB 寻址,并被分成两 块,称为 X Y 数据存储区。每个存储区有各自独立的 地址发生单元 (Address Generation Unit, AGU)。 MCU 类指令只通过 X 存储空间 AGU 进行操作,可将整 个存储器映射作为一个线性数据空间访问。某些 DSP指 令通过 X Y AGU 进行操作以支持双操作数读操作, 这样会将数据地址空间分成两个部分。X 和 Y 数据空间 的边界视具体器件而定。
X Y 地址空间都支持无开销循环缓冲区 (模寻址模 式)。模寻址省去了 DSP 算法的软件边界检查开销。此 外,X AGU 的循环寻址可以用于任何 MCU 类指令。X AGU 还支持位反转寻址,大幅简化了基为 2 FFT 算 法对输入或输出数据的重新排序。
可以选择将数据存储空间的高 32 KB 映射到由 8 位程序 空间可视性页 (Program Space Visibility Page, PSVPAG)寄存器定义的任何 16K 程序字边界内的程序 空间内。程序空间到数据空间的映射功能让任何指令都 能像访问数据空间一样访问程序空间。

2.3 DSP 引擎概述

DSP 引擎具有一个高速 17 x 17 位乘法器、一个 40ALU、两个 40 位饱和累加器和一个 40 位双向桶形移 位寄存器。该桶形移位寄存器能在单个周期内将一个 40 位的值右移或左移最多 16 位。DSP 指令可以无缝地与 所有其他指令一起操作,且设计为能获得最佳实时性 能。MAC 指令和其他相关指令可以在同一个周期内,同 时完成从存储器中取两个数据操作数,将两个 W 寄存器 相乘并累加,且可选择使结果饱和。这要求 RAM 数据空 间对于这些指令拆分为两块,但对于所有其他指令保持 线性。数据空间分块是通过将某些工作寄存器专用于每 个地址空间,以透明和灵活的方式实现的。
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 19
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04

2.4 MCU 的特性

dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04 支持小数和整数的 16/16
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04 具有一个由 MCU ALU DSP 引擎共用的 17 x 17 位单周期乘法器。此乘法器 可以进行有符号、无符号和混合符号的乘法运算。使用 17 x 17 位乘法器进行 16 x 16 位乘法运算不仅允 许您执行混合符号的乘法运算,而且对于 (-1.0) x (-1.0) 这样的特殊运算也可以得到准确结果。
位和32/16位除法运算。所有的除法指令都是迭代操作。 它们必须在一个 REPEAT 循环内执行,总执行时间为 19 个指令周期。在这 19 个周期的任一周期内可以中断除 法运算而不会丢失数据。
一个 40 位桶形移位寄存器用于在单个周期内将数据左 移或右移最多 16 位。 MCU DSP 指令都可以使用该 桶形移位寄存器。
2-1 dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
CPU 内核框图
PSV 和表 数据访问
控制模块
地址锁存器
中断
控制器
8
23
23
23
PCU 程序计数器
堆栈 控制 逻辑
16
PCH PCL
循环 控制 逻辑
Y 数据总线
X 数据总线
16
16
数据锁存器
X RAM
地址
锁存器
地址发生器单元
数据锁存器
16
16
Y RAM
地址
锁存器
16
DMA
RAM
16
DMA
控制器
程序存储器
数据锁存器
地址总线
24
指令
译码和
控制
至各模块的
控制信号
指令寄存器
DSP 引擎
除法支持
ROM 锁存器
EA 多路开关
16
16
立即数数据
16 x 16
W 寄存器阵列
16 ALU
16
16
16
至外设模块
DS70291A_CN 20 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
2-2 dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
的编程模型
D0D15
DSP 操作数
寄存器
DSP 地址 寄存器
W0/WREG
W1
W2
W3
W4
W5
W6
W7
W8
W9
W10
W11
W12/DSP 偏移量
W13/DSP 回写
W14/ 帧指针
W15/ 堆栈指针
工作寄存器
PUSH.S 影子寄存器
DO 影子寄存器
图注
DSP
累加器
PC22
7
22
22
TBLPAG
7
PSVPAG
AD39 AD0AD31
ACCA
ACCB
0
数据表页地址
0
程序空间可视性页地址
15
15
DOSTART
DOEND
SPLIM 堆栈指针限制寄存器
AD15
PC0
程序计数器
0
0
RCOUNT
DCOUNT
REPEAT 循环计数器
0
DO 循环计数器
0
DO 循环起始地址
DO 循环结束地址
15
CORCON
OA OB SA SB
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 第 21
OAB SAB
SRH
DA DC
IPL2 IPL1
RA
IPL0 OV
SRL
0
内核控制寄存器
N
C
Z
状态寄存器
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04

2.5 CPU 控制寄存器

寄存器 2-1 SRCPU 状态寄存器

R-0 R-0 R/C-0 R/C-0 R-0 R/C-0 R -0 R/W-0
OA OB SA
(1)
bit 15 bit 8
SB
(1)
OAB SAB DA DC
R/W-0
(3)
IPL<2:0>
R/W-0
(3)
(2)
R/W-0
(3)
R-0 R/W-0 R/W-0 R/W-0 R/W-0
RA N OV Z C
bit 7 bit 0
图注:
C = 只可清零位 R = 可读位 U = 未实现位,读为 0 S = 只可置 1 位 W = 可写位 -n = POR 时的值 1 = 10 = 清零 x = 未知
bit 15
OA累加器 A 溢出状态位
1 = 累加器 A 溢出 0 = 累加器 A 未溢出
bit 14
OB累加器 B 溢出状态位
1 = 累加器 B 溢出 0 = 累加器 B 未溢出
bit 13
SA:累加器 A 饱和 “粘住”状态位
(1)
1 = 累加器 A 饱和或在某时已经饱和 0 = 累加器 A 未饱和
bit 12
SB:累加器 B 饱和 “粘住”状态位
(1)
1 = 累加器 B 饱和或在某时已经饱和 0 = 累加器 B 未饱和
bit 11
OAB: OA || OB 组合的累加器溢出状态位
1 = 累加器 A B 已经溢出 0 = 累加器 A B 都未溢出
bit 10
SAB SA || SB 组合的累加器饱和 (粘住)状态位
(4)
1 = 累加器 A B 饱和或在过去某时已经饱和 0 = 累加器 A B 都未饱和
bit 9
DA DO 循环活动位 1 = 正在进行 DO 循环
0 = 不在进行 DO 循环
bit 8
DCMCU ALU 半进位 / 借位标志位
1 = 结果的第 4 个低位 (对于字节大小的数据)或第 8 个低位 (对于字大小的数据)发生了进位 0 = 结果的第 4 个低位 (对于字节大小的数据)或第 8 个低位 (对于字大小的数据)未发生进位
1: 此位可被读取或清零 (但不能置 1)。
2IPL<2:0> 位与 IPL<3> 位(CORCON<3>)组合形成 CPU 中断优先级。如果 IPL<3> = 1,那么括号中的
值表示 IPL。当 IPL<3> = 1 时,禁止用户中断。
3: 当 NSTDIS INTCON1<15> = 1 时, IPL<2:0> 状态位是只读的。
4: 此位可被读取或清零 (但不能置 1)。清零此位的同时将清零 SA SB
DS70291A_CN 22 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
寄存器 2-1 SRCPU 状态寄存器 (续)
bit 7-5
bit 4
bit 3
bit 2
bit 1
bit 0
IPL<2:0>CPU 中断优先级状态位
111 = CPU 中断优先级为 7 15),禁止用户中断 110 = CPU 中断优先级为 6 14 101 = CPU 中断优先级为 5 13 100 = CPU 中断优先级为 4 12 011 = CPU 中断优先级为 3 11 010 = CPU 中断优先级为 2 10 001 = CPU 中断优先级为 1 9 000 = CPU 中断优先级为 0 8
RA REPEAT 循环活动位 1 = 正在进行 REPEAT 循环
0 = 不在进行 REPEAT 循环
NMCU ALU 负标志位
1 = 结果为负 0 = 结果为非负 (零或正值)
OV MCU ALU 溢出标志位 此位用于有符号的算术运算 (以二进制补码方式进行) 。它表示量值上的溢出,这种溢出将导致符号
位改变状态。
1 = 有符号算术运算中发生溢出 (本次运算) 0 = 未发生溢出
ZMCU ALU 全零标志位
1 = 影响 Z 位的任何运算在过去某时已将该位置 1 0 = 影响 Z 位的最近一次运算已将该位清零 (即运算结果非零)
CMCU ALU 进位 / 借位
1 = 结果的最高位发生了进位 0 = 结果的最高位未发生进位
标志位
(2)
1: 此位可被读取或清零 (但不能置 1)。
2IPL<2:0> 位与 IPL<3> 位(CORCON<3>)组合形成 CPU 中断优先级。如果 IPL<3> = 1,那么括号中的
值表示 IPL。当 IPL<3> = 1 时,禁止用户中断。
3: 当 NSTDIS INTCON1<15> = 1 时, IPL<2:0> 状态位是只读的。
4: 此位可被读取或清零 (但不能置 1)。清零此位的同时将清零 SA SB
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 23
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04

寄存器 2-2 CORCON:内核控制寄存器

U-0 U-0 U-0 R/W-0 R/W-0 R-0 R-0 R-0
—USEDT
(1)
DL<2:0>
bit 15 bit 8
R/W-0 R/W-0 R/W-1 R/W-0 R/C-0 R/W-0 R/W-0 R/W-0
SATA SATB SATDW ACCSAT IPL3
(2)
PSV RND IF
bit 7 bit 0
图注:
C = 只可清零位 R = 可读位 W = 可写位 -n = POR 时的值 1 = 置 1 0 = 清零 x = 未知 U = 未实现位,读为 0
bit 15-13
bit 12
未实现:读为 0 US DSP 乘法无符号 / 有符号控制位
1 = DSP 引擎执行无符号乘法运算 0 = DSP 引擎执行有符号乘法运算
bit 11
EDTDO 循环提前终止控制位
(1)
1 = 在当前循环迭代结束时终止执行 DO 循环 0 = 无影响
bit 10-8
DL<2:0>:DO 循环嵌套层级状态位 111 = 正在进行 7 DO 循环嵌套
001 = 正在进行 1 DO 循环嵌套 000 = DO 循环嵌套
bit 7
SATA: ACCA 饱和使能位
1 = 使能累加器 A 饱和 0 = 禁止累加器 A 饱和
bit 6
SATB: ACCB 饱和使能位
1 = 使能累加器 B 饱和 0 = 禁止累加器 B 饱和
bit 5
SATDW: DSP 引擎的数据空间写饱和使能位
1 = 使能数据空间写饱和 0 = 禁止数据空间写饱和
bit 4
ACCSAT累加器饱和模式选择位
1 = 9.31 饱和 (超饱和) 0 = 1.31 饱和 (正常饱和)
bit 3
IPL3CPU 中断优先级状态位 3
(2)
1 = CPU 中断优先级大于 7 0 = CPU 中断优先级等于或小于 7
bit 2
PSV数据空间中程序空间可视性使能位
1 = 程序空间在数据空间中可视 0 = 程序空间在数据空间中不可视
1: 此位总是读为 0
2IPL3 位与 IPL<2:0> 位(SR<7:5>)组合形成 CPU 中断优先级。
DS70291A_CN 24 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
寄存器 2-2 CORCON:内核控制寄存器 (续)
bit 1
bit 0
1: 此位总是读为 0
2IPL3 位与 IPL<2:0> 位(SR<7:5>)组合形成 CPU 中断优先级。
RND舍入模式选择位
1 = 使能有偏 (常规)舍入 0 = 使能无偏 (收敛)舍入
IF整数或小数乘法器模式选择位
1 = 使能 DSP 乘法运算的整数模式 0 = 使能 DSP 乘法运算的小数模式
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 25
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04

2.6 算术逻辑单元 (ALU

dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04 ALU 16 位宽,可 进行加法、减法、移位和逻辑运算。除非另外指明,算 术运算实际上采用二进制补码形式进行。根据不同的运 算,ALU 可能会影响 SR 寄存器中的进位标志位(C)、 全零标志位(Z)、负标志位(N)、溢出标志位(OV) 和半进位状态位(DC)的值。在减法运算中, C DC 状态位分别作为借位
根据所使用的指令模式,ALU 可执行 8 位或 16 位运算。 根据指令的寻址模式, ALU 运算的数据可以来自 W 寄 存器阵列或数据存储器。同样地,ALU 的输出数据可被 写入 W 寄存器阵列或数据存储单元。
有关每条指令所影响的 SR 位的信息,请参见
dsPIC30F/33F 程序员参考手册》(DS70157B_CN)。
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04 CPU 融入了对乘法和 除法的硬件支持。它包含了专门的硬件乘法器以及支持
16 位除数除法的硬件。
2.6.1 乘法器
通过使用 DSP 引擎的高速 17 x 17 位乘法器, ALU 支持各种无符号、有符号或混合符号的 MCU 乘法运算:
• 16 x 16 位有符号
• 16 x 16 位无符号
• 16 位有符号 x 5 位 (立即数)无符号
• 16 位无符号 x 16 位无符号
• 16 位无符号 x 5 位 (立即数)无符号
• 16 位无符号 x 16 位有符号
• 8 位无符号 x 8 位无符号
标志位和半借位标志位。
2.6.2 除法器
除法模块支持以下数据长度的 32 /16 位和 16 /16 位有符号和无符号整数除法运算:
1. 32 位有符号 /16 位有符号除法
2. 32 位无符号 /16 位无符号除法
3. 16 位有符号 /16 位有符号除法
4. 16 位无符号 /16 位无符号除法
所有除法指令的商都被放在 W0 中,余数放在 W1 中。 16 位有符号和无符号 DIV 指令可为 16 位除数指定任一 W 寄存器 (Wn),为 32 位被除数指定任意连续的 W
寄存器对 (W(m + 1):Wm)。除法运算中处理除数的每 一位需要一个周期,因此执行 32 /16 位和 16 /16 位指令所需的周期数相同。

2.7 DSP 引擎

DSP 引擎由一个高速 17 x 17 位乘法器、一个桶形移 位寄存器和一个 40 位加法器 / 减法器 (两个目标累加 器、舍入逻辑和饱和逻辑)组成。
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04dsPIC33FJ128MCX02/X04采用单周期指令流架构; 因此 DSP 引擎的工作不能与 MCU 指令流同时进行。但 是,某些 MCU ALU DSP 引擎资源可由同一条指令
(如 ED EDAC)同时使用。
DSP 引擎还可以执行固有的不需要其他数据的累加器 -累加器操作。这些指令是 ADDSUB NEG
通过 CPU 内核控制寄存器 (CORCON)中的各个位, 可以对 DSP 引擎的操作进行多种选择,这些选择如下:
小数或整数 DSP 乘法 (IF
有符号或无符号 DSP 乘法 (US
常规或收敛舍入 (RND
• ACCA 自动饱和使能 / 禁止 (SATA
• ACCB 自动饱和使能 / 禁止 (SATB)
对于写数据存储器,自动饱和使能 / 禁止 SATDW
累加器饱和模式选择 (ACCSAT
DSP 引擎的框图如图 2-3 所示。
DS70291A_CN 26 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04

2-1 DSP 指令汇总

指令 代数运算 ACC 回写
CLR A = 0 ED A = (x – y)2 EDAC A = A + (x – y)2 MAC A = A + (x • y) MAC A = A + x2 MOVSAC
A 中内容将不发生改变
MPY A = x • y MPY A = x 2 MPY.N A = – x • y MSC A = A – x • y

2-3 DSP 引擎框图

有 无 无 有 无
无 无 无 有
40
进位 / 借位输出
进位 / 借位输入
Y 数据总线
40 位累加器 A 40 位累加器 B
饱和
加法器
取补
40
40
符号扩展
33
40
桶形移位
寄存器
32
40
40
16
32
补零
舍入
逻辑
16
X 数据总线
16
17
乘法器 / 定标器
16
/ 来自 W 阵列
2008 Microchip Technology Inc. 超前信息 DS70291A_CN 第 27
16
dsPIC33FJ32MC302/304dsPIC33FJ64MCX02/X04 dsPIC33FJ128MCX02/X04
2.7.1 乘法器
17 x17 位乘法器可以进行有符号或无符号运算,其输 出经过定标器进行换算后可支持 1.31 小数 (Q31)或 32 位整数结果。无符号操作数经过零扩展后,送入乘法
器输入值的第 17 位。有符号操作数经过符号扩展后,送 入乘法器输入值的第 17 位。 17 x17 位乘法器 / 定标 器的输出是 33 位值,它将被符号扩展为 40 位。整型数 据的固有表示形式为有符号的二进制补码值,其中最高 有效位(MSb)定义为符号位。N 位二进制补码整数的 范围为 -2
N-1
2
N-1
– 1
对于 16 位整数,数据范围为 -32768 0x8000 32767 0x7FFF),包括 0 在内。
对于 32 位整数,数据范围为 -2,147,483,648
0x8000 0000)到 2,147,483,647 0x7FFF
FFFF)。
当乘法器配置为小数乘法时,数据表示为二进制补码小 数,其中 MSb 定义为符号位,小数点暗含在符号位之 后(QX 格式)。暗含小数点的 N 位二进制补码小数的 范围为 -1.0 到(1 – 2
1-N
)。对于 16 位小数, Q15 数 据范围为 -1.00x8000)到 0.999969482(0x7FFF), 包括 0 在内,其精度为 3.01518x10-5。在小数模式下,
16 x 16 乘法运算将产生 1.31 乘积,其精度为 4.65661
-10
x 10
同一个乘法器还用来支持 MCU 乘法指令,包括整数的 16 位有符号、无符号和混合符号乘法。
MUL 指令可以使用字节或字长度的操作数。字节操作数 将产生 16 位结果,而字操作数将产生 32 位结果,结果 存放在 W 寄存器阵列的指定寄存器中。
2.7.2 数据累加器和加法器 / 减法器
数据累加器包含一个 40 位加法器 / 减法器,它带有自动 符号扩展逻辑。它可以选择两个累加器 (A B)之一 作为其累加前的源累加器和累加后的目标累加器。对于 ADD LAC 指令,可选择通过桶形移位器在累加之前将 要累加或装入的数据进行换算。
2.7.2.1 加法器 / 减法器、溢出和饱和
加法器 / 减法器是一个 40 位加法器,一侧输入可以选择 为零,而另一侧输入可以是原数据或求补后的数据。
对于加法,进位 / 借位
输入是原数据 (没有求补的)。
对于减法,进位 / 借位
输入是求补后的数据。
输入为高电平有效,另一侧
输入为低电平有效,另一侧
加法器 / 减法器产生溢出状态位 SA/SB OA/OB,这 些状态位被锁存在状态寄存器中并在其中得到反映。
bit 39 溢出:这是灾难性溢出,会破坏累加器的 符号位。
溢出到警戒位 (bit 32 bit 39):这是可恢复的 溢出。每当警戒位彼此不完全一致时,就将把这个 状态位置 1
加法器有一个额外的饱和模块,如果选取的话,饱和模 块将控制累加器的数据饱和。饱和模块使用加法器的结 果、上述的溢出状态位、SAT<A:B>(CORCON<7:6>ACCSAT CORCON<4>)模式控制位,来确定何 时饱和、达到何值为饱和。
状态寄存器中有 6 个支持饱和与溢出的位:
• OA:ACCA 溢出到警戒位
• OB:ACCB 溢出到警戒位
• SA:ACCA 已饱和 ( bit 31 溢出并饱和)
或者
ACCA 溢出到警戒位并饱和 (bit 39 溢出并饱和)
• SB:ACCB 已饱和 ( bit 31 溢出并饱和)
或者
ACCB 溢出到警戒位并饱和 (bit 39 溢出并饱和)
• OAB:OA 和 OB 的逻辑或 (OR)
• SAB:SA 和 SB 的逻辑或 (OR)
每次数据通过加法器 / 减法器,就会修改 OA OB 位。 置 1 时,它们表明最近的操作已溢出到累加器警戒位
bit 32bit 39)。如果 OA OB 位置 1 而且 INTCON1
寄存器中相应的溢出陷阱标志允许位 (OVATE 和 OVBTE)置 1 的话,还可以选择用 OA OB 位产生算 术警告陷阱 (见第 6.0 节 “中断控制器”)。这使得用 户应用程序能够立即采取措施,例如,校正系统增益。
每次数据通过加法器 / 减法器,就会修改 SA SB 位, 但用户应用程序只能对它们进行清零。置 1 时,它们表 明累加器已溢出其最大范围(对于 32 位饱和是 bit 31, 而 40 位饱和是 bit 39),并发生饱和(如果饱和使能的 话)。如果没有使能饱和, SA SB 1 默认为 bit 39 溢出,以此指示产生了灾难性溢出。如果 INTCON1 寄 存器中的 COVTE 位置 1,当饱和被禁止时, SA SB 位将产生算术警告陷阱。
DS70291A_CN 28 超前信息 2008 Microchip Technology Inc.
Loading...
+ 388 hidden pages