MICROCHIP dsPIC33FJ32GP302, dsPIC33FJ32GP304, dsPIC33FJ64GPX02, dsPIC33FJ64GPX04, dsPIC33FJ128GPX02 Technical data

...
dsPIC33FJ32GP302/304
dsPIC33FJ64GPX02/X04
dsPIC33FJ128GPX02/X04
数据手册
高性能 16
数字信号控制器
2008 Microchip Technology Inc. 超前信息 DS70292A_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 MATErfPIC SmartShunt
均为 Microchip Technology Inc. 在美国和其他国家或地区的 注册商标。
FilterLabLinear Active ThermistorMXDEVMXLAB SEEVAL、SmartSensor The Embedded Control Solutions
Company 均为 Microchip Technology Inc. 在美国的注册商
标。
Analog-for-the-Digital AgeApplication Maestro CodeGuarddsPICDEMdsPICDEM.netdsPICworks
dsSPEAKECANECONOMONITORFanSense In-Circuit Serial Programming、 ICSP、 ICEPIC、 Mindi、
MiWiMPASMMPLAB Certified 徽标、MPLIBMPLINK mTouchPICkitPICDEMPICDEM.netPICtailPIC
32
徽标、 PowerCalPowerInfoPowerMatePowerTool REAL ICE、 rfLAB、 Select Mode、 Total Endurance、 UNI/O、WiperLockZENA 均为 Microchip Technology Inc.在
美国和其他国家或地区的商标。 SQTP Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。
© 2008, Microchip Technology Inc. 版权所有。
Microchip Gresham
印度的设计中心均通过了
MCU与dsPIC® DSC、KEELOQ
设、非易失性存储器和模拟产品方面的质量体系流程均符合
16949:2002
系也已通过了
位于美国亚利桑那州
的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和
。此外,
Microchip
ISO 9001:2000
Chandler和Te mp e
ISO/TS-16949:2002
®
跳码器件、串行
在开发系统的设计和生产方面的质量体
认证。
与位于俄勒冈州
认证。公司在
EEPROM
®
PIC
、单片机外
ISO/TS-
DS70292A_CN ii 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304
dsPIC33FJ64GPX02/X04
dsPIC33FJ128GPX02/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
直接存储器访问 (DMA):
•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/Calendar, RTCC):
- 提供时钟、日历和闹钟功能
中断控制器:
中断响应延时为 5 个周期
•118个中断向量
最多 49 个中断源
最多 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. 超前信息 DS70292A_CN 第 1
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
系统管理:
灵活的时钟选择:
- 外部振荡器、晶振、谐振器和内部 RC 振荡器
- 全集成锁相环 (Phase-Locked LoopPLL
- 极低抖动 PLL
上电延时定时器
振荡器起振定时器 / 稳定器
自带 RC 振荡器的看门狗定时器
故障保护时钟监视器
多个复位源
功耗管理:
片上 2.5V 稳压器
实时时钟源切换
可快速唤醒的空闲、休眠和打盹模式
模数转换器 (Analog-to-Digital ConverterADC):
•10位 1.1 Msps 或 12 位 500 Ksps 转换:
-2路和 4 路同时采样 (10 位 ADC)
- 最多 13 路带自动扫描功能的输入通道
- 可手动启动转换或与 4 个触发源中的一个同步
- 休眠模式下仍可进行转换
- 积分非线性误差最大为 ±2 LSb
- 微分非线性误差最大为 ±1 LSb
音频数模转换器 (Digital-to-Analog ConverterDAC):
•16位双通道 DAC 模块
• 100 Ksps 最大采样速率
二阶数字 ∆−Σ 调制器
数据转换器接口 (Data Converter InterfaceDCI)模块:
编解码器接口
支持 I
最多 16 位数据字,每帧最多 16
•4字深度的发送和接收缓冲区
2
S AC’97 协议
通信模块:
•4线 SPI (最多 2 个模块):
- 帧支持简单编解码器的 I/O 接口
- 支持 8 位和 16 位数据
- 支持所有串行时钟格式和采样模式
2
C™
•I
- 完全支持多主机从模式
-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
®
编解码
封装:
比较器模块:
•2个模拟比较器,具有可编程输入 / 输出配置
CMOS 闪存技术:
低功耗高速闪存技术
全静态设计
•3.3V(±10%)工作电压
工业级和扩展级温度
低功耗
DS70292A_CN 第 2 页 超前信息  2008 Microchip Technology Inc.
•28引脚 SDIP/SOIC/QFN-S
•44引脚 TQFP/QFN
注: 关于每个器件的具体外设特性,请参见相
应的器件数据表。
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
dsPIC33FJ32GP302/304 dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04 产品系列
下表列出了每个系列的器件名称、引脚数、存储容量和 可用的外设,表后还附有它们的引脚图。
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04 控制器系列
(1)
器件
dsPIC33FJ128GP804 44 128 16 26 5 4 4 1 2 2 1 1 1 1 13 6 1/1 11 35 QFN
dsPIC33FJ128GP802 28 128 16 16 5 4 4 1 2 2 1 1 1 1 10 4 1/0 2 21 SDIP
dsPIC33FJ128GP204 44 128 8 26 5 4 4 1 2 2 0 1 1 1 13 0 1/1 11 35 QFN
dsPIC33FJ128GP202 28 128 8 16 5 4 4 1 2 2 0 1 1 1 10 0 1/0 2 21 SDIP
dsPIC33FJ64GP804 44 64 16 26 5 4 4 1 2 2 1 1 1 1 13 6 1/1 11 35 QFN
dsPIC33FJ64GP802 28 64 16 16 5 4 4 1 2 2 1 1 1 1 10 4 1/0 2 21 SDIP
dsPIC33FJ64GP204 44 64 8 26 5 4 4 1 2 2 0 1 1 1 13 0 1/1 11 35 QFN
dsPIC33FJ64GP202 28 64 8 16 5 4 4 1 2 2 0 1 1 1 10 0 1/0 2 21 SDIP
dsPIC33FJ32GP304 44 32 4 26 5 4 4 1 2 2 0 1 1 1 13 0 1/1 11 35 QFN
dsPIC33FJ32GP302 28 32 4 16 5 4 4 1 2 2 0 1 1 1 10 0 1/0 2 21 SDIP
1: 除了 dsPIC33FJ32GP302/304 以外,所有器件的 RAM 中包括 2KBDMA RAMdsPIC33FJ32GP302/304 包括 1KBDMA RAM
25 个定时器中只有 4 个是可重映射的。
引脚数
闪存程序存储器
KB
RAM KB
可重映射的引脚数
(2)
16 位定时器
可重映射的外设
输出比较
输入捕捉
标准 PWM
UART
数据转换器接口
C™
2
I
SPI
RTCC
ECAN™
(通道数)
(引脚数)
CRC 发生器
10 /12 ADC
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
封装
2008 Microchip Technology Inc. 超前信息 DS70292A_CN 3
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
引脚图
28 引脚 SDIP SOIC
MCLR
AN0/VREF+/CN2/RA0
REF-/CN3/RA1
AN1/V
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
SOSCI/RP4/CN1/PMBE/RB4
SOSCO/T1CK/CN0/PMA1/RA4
VDD
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
1
2
3
dsPIC33FJ128GP802
4
5
6
7
8
9
10
11
12
13
14
dsPIC33FJ64GP802
AVDD
28
AVSS
27
AN9/DAC1LN/RP15/CN11/PMCS1/RB15
26
AN10/DAC1LP/RTCC/RP14/CN12/PMWR/RB14
25
AN11/DAC1RN/RP13/CN13/PMRD/RB13
24
AN12/DAC1RP/RP12/CN14/PMD0/RB12
23
PGC2/EMUC2/TMS/RP11/CN15/PMD1/RB11
22
PGD2/EMUD2/TDI/RP10/CN16/PMD2/RB10
21
VCAP/VDDCORE
20
SS
V
19
TDO/SDA1/RP9/CN21/PMD3/RB9
18
TCK/SCL1/RP8/CN22/PMD4/RB8
17
INT0/RP7/CN23/PMD5/RB7
16
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
15
28 引脚 SDIP SOIC
AN0/VREF+/CN2/RA0
AN1/V
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
MCLR
REF-/CN3/RA1
VSS
VDD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
dsPIC33FJ128GP202
26
dsPIC33FJ32GP302
dsPIC33FJ64GP202
25
24
23
22
21
20
19
18
17
16
15
AVDD
AVSS
AN9/RP15/CN11/PMCS1/RB15
AN10/RTCC/RP14/CN12/PMWR/RB14
AN11/RP13/CN13/PMRD/RB13
AN12/RP12/CN14/PMD0/RB12
PGC2/EMUC2/TMS/RP11/CN15/PMD1/RB11
PGD2/EMUD2/TDI/RP10/CN16/PMD2/RB10
VCAP/VDDCORE
SS
V
TDO/SDA1/RP9/CN21/PMD3/RB9
TCK/SCL1/RP8/CN22/PMD4/RB8
INT0/RP7/CN23/PMD5/RB7
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
DS70292A_CN 第 4 页 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
引脚图 (续)
28 引脚 QFN-S
REF-/CN3/RA1
DD
AV
MCLR
AN0/VREF+/CN2/RA0
6
7
5
2
2
2
11
10
9
AVSS
AN10/DAC1LP/RP15/CN11/PMCS1/RB15
4 2
13
12
AN9/DAC1LN/RTCC/RP14/CN12/PMWR/RB14
3
2
2
2
21
20
19
18
17
16
15
14
AN11/DAC1RN/RP13/CN13/PMRD/RB13
AN12/DAC1RP/RP12/CN14/PMD0/RB12
PGC2/EMUC2/TMS/RP11/CN15/PMD1/RB11
PGD2/EMUD2/TDI/RP10/CN16/PMD2/RB10
CAP/VDDCORE
V
VSS
TDO/SDA1/RP9/CN21/PMD3/RB9
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
AN1/V
8
2
1
2
3
dsPIC33FJ64GP802
4
dsPIC33FJ128GP802
5
6
7
8
VDD
SOSCI/RP4/CN1/PMBE/RB4
SOSCO/T1CK/CN0/PMA1/RA4
INT0/RP7/CN23/PMD5/RB7
TCK/SCL1/RP8/CN22/PMD4/RB8
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
2008 Microchip Technology Inc. 超前信息 DS70292A_CN 第 5
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
引脚图 (续)
28 引脚 QFN-S
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
VSS
REF-/CN3/RA1
9
AN0/VREF+/CN2/RA0
27
MCLR
26
10
VDD
DD
AV
AVSS
5
24
2
11
12
AN1/V
8 2
1
2
dsPIC33FJ32GP302
3
dsPIC33FJ64GP202
4
dsPIC33FJ128GP202
5
6
7
8
/RB14
/RB15
AN10/DAC1LP/RP15/CN11/PMCS1
AN9/DAC1LN/RTCC/RP14/CN12/PMWR
3
2
2
2
13
14
AN11/RP13/CN13/PMRD/RB13
21
AN12/RP12/CN14/PMD0/RB12
20
PGC2/EMUC2/TMS/RP11/CN15/PMD1/RB11
19
PGD2/EMUD2/TDI/RP10/CN16/PMD2/RB10
18
VCAP/VDDCORE
17
VSS
16
TDO/SDA1/RP9/CN21/PMD3/RB9
15
SOSCI/RP4/CN1/PMBE/RB4
SOSCO/T1CK/CN0/PMA1/RA4
INT0/RP7/CN23/PMD5/RB7
TCK/SCL1/RP8/CN22/PMD4/RB8
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
DS70292A_CN 第 6 页 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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
AN9/DAC1LN/RP15/CN11/PMCS1/RB15
AN10/DAC1LP/RTCC/RP14/CN12/PMWR/RB14
TCK/PMA7/RA7
11
13
14
15
12
10
9
8
7
6
5
4
3
232
41
1
44
43
42
AN11/DAC1RN/RP13/CN13/PMRD/RB13
AN12/DAC1RP/RP12/CN14/PMD0/RB12
PGC2/EMUC2/RP11/CN15/PMD1/RB11
PGD2/EMUD2/RP10/CN16/PMD2/RB10
CAP/VDDCORE
V
VSS
RP25/CN19/PMA6/RC9
RP24/CN20/PMA5/RC8
RP23/CN17/PMA0/RC7
RP22/CN18/PMA1/RC6
SDA1/RP9/CN21/PMD3/RB9
AN4/C1IN-/RP2/CN6/RB2
AN5/C1IN+/RP3/CN7/RB3
AN6/DAC1RM/RP16/CN8/RC0
AN7/DAC1LM/RP17/CN9/RC1
REF/RP18/PMA2/CN10/RC2
AN8/CV
OSCI/CLKI/CN30/RA2
OSCO/CLKO/CN29/RA3
TDO/PMA8/RA8
SOSCI/RP4/CN1/RB4
V
VSS
DD
PGC1/EMUC1/AN3/C2IN+/RP1/CN5/RB1
23
22 24
25
26
27
dsPIC33FJ64GP804
28
dsPIC33FJ128GP804
29
30
31
33
34
TDI/PMA9/RA9
RP19/CN28/PMBE/RC3
SOSCO/T1CK/CN0/RA4
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
2008 Microchip Technology Inc. 超前信息 DS70292A_CN 第 7
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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
AN9/RP15/CN11/PMCS1/RB15
15
41
TMS/PMA10/RA10
AN10/RTCC/RP14/CN12/PMWR/RB14
TCK/PMA7/RA7
AN11/RP13/CN13/PMRD/RB13
11
13
14
12
AN12/RP12/CN14/PMD0/RB12
10
PGC2/EMUC2/RP11/CN15/PMD1/RB11
9
PGD2/EMUD2/RP10/CN16/PMD2/RB10
8
CAP/VDDCORE
V
7
VSS
6
RP25/CN19/PMA6/RC9
5
RP24/CN20/PMA5/RC8
4
RP23/CN17/PMA0/RC7
3
RP22/CN18/PMA1/RC6
232
SDA1/RP9/CN21/PMD3/RB9
1
44
43
42
AN4/C1IN-/RP2/CN6/RB2
AN5/C1IN+/RP3/CN7/RB3
AN6/RP16/CN8/RC0
AN7/RP17/CN9/RC1
REF/RP18/PMA2/CN10/RC2
AN8/CV
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
23
22 24
25
26
dsPIC33FJ32GP304
27
dsPIC33FJ64GP204
28
29
dsPIC33FJ128GP204
30
31
33
34
TDI/PMA9/RA9
RP19/CN28/PMBE/RC3
SOSCO/T1CK/CN0/RA4
RP20/CN25/PMA4/RC4
RP21/CN26/PMA3/RC5
INT0/RP7/CN23/PMD5/RB7
SCL1/RP8/CN22/PMD4/RB8
PGC3/EMUC3/ASCL1/RP6/CN24/PMD6/RB6
PGD3/EMUD3/ASDA1/RP5/CN27/PMD7/RB5
DS70292A_CN 第 8 页 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
引脚图 (续)
44 引脚 TQFP
REF-/CN3/RA1
REF+/CN2/RA0
AN0/V
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
MCLR
AN1/V
20
363435937
AVDDAVSS
16
17
18
19
40
39
38
PGC1/EMUC1/AN3/C2IN+/RP1/CN5/RB1
PGD1/EMUD1/AN2/C2IN-/RP0/CN4/RB0
21
22
23 24 25
26 27
dsPIC33FJ64GP804
28
dsPIC33FJ128GP804
29 30 31 32 33
AN9/DAC1LN/RP15/CN11/PMCS1/RB15
15
41
AN10/DAC1LP/RTCC/RP14/CN12/PMWR/RB14
14
42
13
43
TCK/PMA7/RA7
TMS/PMA10/RA10
12
11
AN11/DAC1RN/RP13/CN13/PMRD/RB13
10
AN12/DAC1RP/RP12/CN14/PMD0/RB12 PGC2/EMUC2/RP11/CN15/PMD1/RB11
8
PGD2/EMCD2/RP10/CN16/PMD2/RB10
7
CAP/VDDCORE
V
6
VSS
5
RP25/CN19/PMA6/RC9
4
RP24/CN20/PMA5/RC8
3
RP23/CN17/PMA0/RC7
2
RP22/CN18/PMA1/RC6
1
SDA1/RP9/CN21/PMD3/RB9
44
SOSCO/T1CK/CN0/RA4
TDI/PMA9/RA9
RP19/CN28/PMBE/RC3
VSS
RP21/CN26/PMA3/RC5
RP20/CN25/PMA4/RC4
DD
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. 超前信息 DS70292A_CN 第 9
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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
MCLR
AN1/V
20
363435937
AVDDAVSS
16
17
18
19
40
39
38
PGC1/EMUC1/AN3/C2IN+/RP1/CN5/RB1
PGD1/EMUD1/AN2/C2IN-/RP0/CN4/RB0
21
22
23 24 25
26
dsPIC33FJ32GP304
27 28
dsPIC33FJ64GP204
29
dsPIC33FJ128GP204
30 31 32 33
AN9/RP15/CN11/PMCS1/RB15
15
41
TMS/PMA10/RA10
AN10/RTCC/RP14/CN12/PMWR/RB14
TCK/PMA7/RA7
12
13
14
11
AN11/RP13/CN13/PMRD/RB13
10
AN12/RP12/CN14/PMD0/RB12 PGC2/EMUC2/RP11/CN15/PMD1/RB11
8
PGD2/EMCD2/RP10/CN16/PMD2/RB10
7
CAP/VDDCORE
V
6
VSS
5
RP25/CN19/PMA6/RC9
4
RP24/CN20/PMA5/RC8
3
RP23/CN17/PMA0/RC7
2
RP22/CN18/PMA1/RC6
1
SDA1/RP9/CN21/PMD3/RB9
44
43
42
SOSCO/T1CK/CN0/RA4
TDI/PMA9/RA9
RP19/CN28/PMBE/RC3
VSS
RP21/CN26/PMA3/RC5
RP20/CN25/PMA4/RC4
DD
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
DS70292A_CN 10 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
目录
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 和 dsPIC33FJ128GPX02/X04 产品系列 .......................................................... 3
1.0 器件概述 ..................................................................................................................................................................................... 13
2.0 CPU ............................................................................................................................................................................................ 17
3.0 存储器构成 ................................................................................................................................................................................. 29
4.0 闪存程序存储器 .......................................................................................................................................................................... 63
5.0 复位 ............................................................................................................................................................................................ 69
6.0 中断控制器 ................................................................................................................................................................................. 77
7.0 直接存储器访问 (DMA......................................................................................................................................................... 119
8.0 振荡器配置 ............................................................................................................................................................................... 131
9.0 节能特性 ................................................................................................................................................................................... 143
10.0 I/O 端口 .................................................................................................................................................................................... 145
11.0 Timer1 ...................................................................................................................................................................................... 175
12.0 Timer2/3 TImer4/5 特性 ...................................................................................................................................................... 177
13.0 输入捕捉 ................................................................................................................................................................................... 183
14.0 输出比较 ................................................................................................................................................................................... 185
15.0 串行外设接口 (SPI)............................................................................................................................................................... 189
2
16.0 I
C™......................................................................................................................................................................................... 197
17.0 通用异步收发器 (UART....................................................................................................................................................... 207
18.0 增强型 CAN ECAN™)模块 ................................................................................................................................................. 215
19.0 数据转换器接口 (DCI)模块................................................................................................................................................... 245
20.0 10 /12 位模数转换器 (ADC1)............................................................................................................................................ 259
21.0 音频数模转换器 (DAC......................................................................................................................................................... 271
22.0 比较器模块 ............................................................................................................................................................................... 277
23.0 实时时钟和日历 (RTCC)....................................................................................................................................................... 283
24.0 可编程循环冗余校验 (CRC)发生器 ...................................................................................................................................... 295
25.0 并行主端口 (PMP................................................................................................................................................................ 299
26.0 特殊功能 ................................................................................................................................................................................... 309
27.0 指令集汇总 ............................................................................................................................................................................... 319
28.0 开发支持 ................................................................................................................................................................................... 327
29.0 电气特性 ................................................................................................................................................................................... 331
30.0 封装信息 ................................................................................................................................................................................... 375
附录 A:版........................................................................................................................................................................ 383
索引................................................................................................................................................................................................... 385
Microchip 网站.................................................................................................................................................................................... 391
变更通知客户服务 .............................................................................................................................................................................. 391
客户支持............................................................................................................................................................................................. 391
读者反馈表 ......................................................................................................................................................................................... 392
产品标识体系 ..................................................................................................................................................................................... 393
2008 Microchip Technology Inc. 超前信息 DS70292A_CN 11
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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 上注册。
DS70292A_CN 12 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04

1.0 器件概述

注: 本数据手册总结了 dsPIC33FJ32GP302/
304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04 系列器件的功
能。但是不应把本手册当作无所不包的参 考手册来使用。如需了解本数据手册的补 充信息,请参见 《dsPIC33F 系列参考手 册》中的相关章节,该文档可从 Microchip 网站 (www.microchip.com)下载。
本文档包含 dsPIC33FJ32GP302/304
dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/ X04 数字信号控制器(Digital Signal Controller,DSC
器件的特定信息。dsPIC33F 器件在其高性能 16 位单片 机(MCU)架构中,融合了丰富的数字信号处理器
Digital Signal ProcessorDSP)功能。
1-1 给出了 dsPIC33FJ32GP302/304、
dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/ X04 系列器件中内核和外设模块的一般框图。表 1-1 出了引脚图中显示的各引脚的功能。
2008 Microchip Technology Inc. 超前信息 DS70292A_CN 第 13
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
1-1 dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
框图
PSV 和表 数据访问 控制模块
Y 数据总线
23
地址锁存器
程序存储器
数据锁存器
OSC2/CLKO
OSC1/CLKI
中断
控制器
23
时序 发生
FRC/LPRC
振荡器
高精度
带隙 参考
稳压器
23
PCU
堆栈 控制 逻辑
地址总线
24
指令
译码和
控制
至各模块的 控制信号
上电延时
起振定时器
8
PCH PCL
程序计数器
循环 控制 逻辑
定时器
振荡器
上电 复位
看门狗 定时器
欠压 复位
16
X 数据总线
16
数据锁存器
X RAM
锁存器
ROM 锁存器
指令寄存器
DSP 引擎
除法支持
16
数据锁存器
地址
16
地址发生器单元
16
Y RAM
地址
锁存器
16
EA 多路开关
16
立即数数据
16 x 16
W 寄存器阵列
16 ALU
16
16
DMA RAM
DMA
控制器
16
16
16
PORTA
PORTB
PORTC
可重映射的
引脚
VDDCORE/VCAP
PMP/
EPSP
RTCC
注: 并非在所有器件的引脚配置中都实现了全部的引脚或功能。请参见引脚图了解每个器件上的特定引脚和功能的信息。
DD 和 VSS
V
比较器
1, 2
DAC1
MCLR
ECAN1
SPI1, 2
定时器
1-5
IC1, 2, 7, 8
UART1, 2
CNx
ADC1
I2C1
输出比较 /
PWM1-4
DCI
DS70292A_CN 14 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
1-1 引脚说明
引脚名称
AN0-AN12
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
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/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. 超前信息 DS70292A_CN 第 15
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
1-1 引脚说明 (续)
引脚名称
引脚 类型
TMS TCK TDI TDO
O
C1RX C1TX
O
RTCC O
CVREF OANA
C1IN- C1IN+ C1OUT
O
C2IN­C2IN+ C2OUT
PMA0 PMA1 PMA2 -PMPA10 PMBE PMCS1 PMD0-PMPD7 PMRD PMWR
DAC1RN DAC1RP DAC1RM
DAC1LN DAC1LP DAC1LM
O
I/O I/O
O O O
I/O
O O
O O O
O O O
COFS I/O ST
CSCK I/O ST
CSDI I ST
CSDO O
PGD1/EMUD1
I/O PGC1/EMUC1 PGD2/EMUD2
I/O PGC2/EMUC2 PGD3/EMUD3
I/O PGC3/EMUC3
MCLR
AV
DD PP
AV
SS PP
I/P ST
VDD P—
V
DDCORE P—
Vss P
V
REF+ I Analog
V
REF- I Analog
图注: CMOS = CMOS 兼容输入或输出 Analog = 模拟输入 P = 电源
ST = CMOS 电平的施密特触发器输入 O = 输出 I = 输入
缓冲器
类型
I I I
I
ST ST ST
ST
JTAG 测试模式选择引脚。 JTAG 测试时钟输入引脚。 JTAG 测试数据输入引脚。 JTAG 测试数据输出引脚。
ECAN1 总线接收引脚。 ECAN1 总线发送引脚。
说明
实时时钟闹钟输出。 比较器参考电压输出。
I I
I I
ANA ANA
ANA ANA
ST ST
— — —
ST
— —
— — —
— — —
比较器 1 的负极输入。 比较器 1 的正极输入。 比较器 1 的输出。
比较器 2 的负极输入。 比较器 2 的正极输入。 比较器 2 的输出。
并行主端口地址 bit 0 的输入 (带缓冲的从模式)和输出 (主模式)。 并行主端口地址 bit 1 的输入 (带缓冲的从模式)和输出 (主模式)。 并行主端口地址 (非复用的主模式)。 并行主端口字节使能选通。 并行主端口片选 1 选通。 并行主端口数据 (非复用的主模式)或地址 / 数据 (复用的主模式)。 并行主端口读选通。 并行主端口写选通。
DAC1 右通道的负极输出。 DAC1 右通道的正极输出。 DAC1 右通道的中点值 (典型值为 1.65V)。
DAC1 左通道的负极输出。 DAC1 左通道的正极输出。 DAC1 左通道的中点值 (典型值为 1.65V)。
数据转换器接口帧同步引脚。
数据转换器接口串行时钟输入 / 输出引脚。
数据转换器接口串行数据输入引脚。
数据转换器接口串行数据输出引脚。
ST
I
ST ST
I
ST ST
I
ST
编程 / 调试通信通道 1 使用的数据 I/O 引脚。 编程 / 调试通信通道 1 使用的时钟输入引脚。 编程 / 调试通信通道 2 使用的数据 I/O 引脚。 编程 / 调试通信通道 2 使用的时钟输入引脚。 编程 / 调试通信通道 3 使用的数据 I/O 引脚。 编程 / 调试通信通道 3 使用的时钟输入引脚。
主复位输入。此引脚为低电平有效的器件复位输入端。 模拟模块的正电源。 模拟模块的参考地。 外设逻辑和 I/O 引脚的正电源。 CPU 逻辑滤波电容连接。 逻辑和 I/O 引脚的参考地。 模拟参考电压 (高电压)输入。 模拟参考电压 (低电压)输入。
DS70292A_CN 16 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04

2.0 CPU

注: 本数据手册总结了 dsPIC33FJ32GP302/
304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04 系列器件的功
能。但是不应把本手册当作无所不包的参 考手册来使用。如需了解本数据手册的补 充信息,请参见 《dsPIC33F 系列参考手 册》的“第 2 CPU”(DS70204A_CN), 该文档也能从 Microchip 网站
www.microchip.com)下载。

2.1 概述

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

2.4 MCU 的特性

dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04dsPIC33FJ128GPX02/X04 支持小数和整数的 16/16
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04dsPIC33FJ128GPX02/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 dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
CPU 内核框图
PSV 和表 数据访问
控制模块
23
地址锁存器
中断
控制器
8
23
23
PCU
程序计数器
堆栈 控制 逻辑
16
PCH PCL
循环 控制 逻辑
Y 数据总线
X 数据总线
16
16
数据锁存器
X RAM
地址
锁存器
16
地址发生器单元
数据锁存器
16
Y RAM
地址
锁存器
16
DMA
RAM
16
DMA
控制器
程序存储器
数据锁存器
地址总线
24
指令
译码和
控制
至各模块的
控制信号
ROM 锁存器
DSP 引擎
除法支持
指令寄存器
EA 多路开关
16
16
立即数数据
16 x 16
W 寄存器阵列
16 ALU
16
16
16
至外设模块
DS70292A_CN 18 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
2-2 dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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
7
22
22
TBLPAG
PSVPAG
AD39 AD0AD31
ACCA
ACCB
0
数据表页地址
0
程序空间可视性页地址
15
15
DOSTART
DOEND
SPLIM
RCOUNT
DCOUNT
PC0
0
堆栈指针限制寄存器
AD15
程序计数器
0
REPEAT 循环计数器
0
DO 循环计数器
0
DO 循环起始地址
DO 循环结束地址
15
CORCON
OA OB SA SB
2008 Microchip Technology Inc. 超前信息 DS70292A_CN 第 19
OAB SAB
SRH
DA DC
IPL2 IPL1
RA
IPL0 OV
SRL
0
内核配置寄存器
N
C
Z
状态寄存器
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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
SABSA 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
DS70292A_CN 20 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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. 超前信息 DS70292A_CN 21
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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 未实现:读为 0
bit 12
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 = 正在进行 0 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 中断优先级。
DS70292A_CN 22 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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. 超前信息 DS70292A_CN 23
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04

2.6 算术逻辑单元 (ALU

dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04dsPIC33FJ128GPX02/X04 ALU 16 位宽,并能进 行加法、减法、移位和逻辑运算。除非特别指明,算术 运算一般采用二进制补码。根据不同的运算,ALU 可能 会影响 SR 寄存器中的进位标志位 (C)、全零标志位
Z)、负标志位 (N)、溢出标志位 (OV)和半进位
标志位 (DC)的值。在减法运算中, C DC 状态位 分别作为借位
根据所使用的指令模式,ALU 可执行 8 位或 16 位运算。 根据指令的寻址模式, ALU 运算的数据可以来自 W 寄 存器阵列或数据存储器。同样,ALU 的输出数据可被写 入 W 寄存器阵列或数据存储单元。
有关每条指令所影响的 SR 位的信息,请参见
dsPIC30F/33F 程序员参考手册》(DS70157B_CN)。
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04dsPIC33FJ128GPX02/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 位加法器 / 减法器 (两个目标累加 器、舍入逻辑和饱和逻辑)组成。
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04dsPIC33FJ128GPX02/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 所示。
DS70292A_CN 24 超前信息  2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/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 引擎框图

有 无 无 有 无
无 无 无 有
Y 数据总线
40
进位 / 借位输出
进位 / 借位输入
40 位累加器 A 40 位累加器 B
饱和
加法器
取补
40
40
符号扩展
33
40
桶形 移位
寄存器
32
32
40
16
40
补零
舍入 逻辑
16
X 数据总线
16
17
乘法器 / 定标器
16
/ 来自 W 阵列
2008 Microchip Technology Inc. 超前信息 DS70292A_CN 第 25
16
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
2.7.1 乘法器
17 x 17 位乘法器可以进行有符号或无符号运算,其 输出经过定标器进行换算后可支持 1.31 小数(Q31)或 32 位整数结果。无符号操作数经过零扩展后,送入乘法
器输入值的第 17 位。有符号操作数经过符号扩展后,送 入乘法器输入值的第 17 位。17 位 x 17 位乘法器 / 定标 器的输出是 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.0 0x8000)到 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)
• SABSA SB 的逻辑或 (OR
每次数据通过加法器 / 减法器,就会修改 OA OB 位。 置 1 时,它们表明最近的操作已溢出到累加器警戒位
bit 32bit 39)。如 果 OAOB 位置 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 位将产生算术警告陷阱。
DS70292A_CN 26 超前信息 2008 Microchip Technology Inc.
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
在状态寄存器 (SR)中,对于溢出和饱和状态位,可 以将 OA OB 的逻辑或形成 OAB 位,将 SA SB 的 逻辑或形成 SAB 位。这样,只需检查状态寄存器中的一 个位,程序员就能判断是否有累加器溢出;检查状态寄 存器中的另一个位,就可以判断是否有累加器饱和。对 于通常要使用两个累加器的复数运算而言,这很有用。
器件支持三种饱和和溢出模式:
•bit 39溢出和饱和: 当发生 bit 39 溢出和饱和时,饱和逻辑将最大的正
9.31 值(0x7FFFFFFFFF)或最小的负 9.31
0x8000000000)装入目标累加器。 SA SB
1 并保持直到被用户应用程序清零。这称为
“超饱和”,为错误数据或不可预期的算法问题 (例如,增益计算)提供了保护机制。
•bit 31溢出和饱和: 当发生 bit 31 溢出和饱和时,饱和逻辑将最大的正
1.31 值(0x007FFFFFFF)或最小的负 1.31
0x0080000000)装入目标累加器。 SA SB
1 并保持直到被用户应用程序清零。当这种饱 和模式生效时,不使用警戒位,因此 OAOB
OAB 位不会被置 1。
•bit 39灾难性溢出: 加法器的 bit 39 溢出状态位用来将 SA SB 位置 1 ;这两位置 1 后,将保持状态直到被用户应用程
序清零。不进行饱和操作,允许累加器溢出 (破 坏其符号位)。如果 INTCON1 寄存器中的 COVTE 位置 1,灾难性溢出会导致一个陷阱异 常。
2.7.3 累加器 “回写”
MAC 类指令(MPYMPY.NED EDAC 除外)可以选 择将累加器高位字 (bit 16 bit 31)的舍入形式写入 数据存储空间,前提是当前指令不对该累加器进行操 作。通过 X 总线寻址组合的 X Y 地址空间,执行回写 操作。支持以下寻址模式:
•W13,寄存器直接寻址: 非操作目标的累加器的舍入内容以 1.15 小数形式 写入 W13
• [W13] + = 2,执行后递增的寄存器间接寻址: 非操作目标的累加器的舍入内容以 1.15 小数形式 写入 W13 指向的地址。然后 W13 递增 2 (对于 字写入)。
2.7.3.1 舍入逻辑
舍入逻辑是一个组合模块,在累加器写(存储)过程中 执行常规的(有偏)或收敛的(无偏)舍入功能。舍入 模式由 CORCON 寄存器中 RND 位的状态决定。它会 产生一个 16 位的 1.15 数据值,该值被送到数据空间写 饱和逻辑。如果指令不指明舍入,就会存储一个截取的
1.15 数据值,简单地丢弃低位字。
常规舍入取累加器的 bit 15,对它进行零扩展并将扩展 后的值加到 ACCxH 字 (累加器的 bit 16 bit 31)。
如果ACCxL 字(累加器的 bit 0 bit 15)在 0x80000xFFFF 之间 (包括 0x8000),则 ACCxH 递 增 1
如果 ACCxL 0x0000 0x7FFF 之间,则 ACCxH 不变。
此算法的结果经过一系列随机舍入操作,值会稍稍偏大
(正偏)。
除非 ACCxL 等于 0x8000,否则收敛的(或无偏)舍入 操作方式与常规舍入相同。在这种情况下,要对 ACCxH 的最低位 (累加器的 bit 16)进行检测:
如果它为 1ACCxH 递增 1
如果它为 0ACCxH 不变。
假设 bit 16 本身是随机的,这样的机制将消除任何可能 累加的舍入偏差。
通过 X 总线, SAC SAC.R 指令将目标累加器内容的 截取 (SAC)或舍入 (SAC.R)形式存入数据存储空间
(这受数据饱和的影响,请参见第 2.7.3.2 节 “数据空
间写饱和”)。对于 MAC 类指令,累加器回写操作将以 同样的方式进行,通过 X 总线寻址组合的 MCU X Y)数据空间。对于此类指令,数据始终要进行舍入。
2008 Microchip Technology Inc. 超前信息 DS70292A_CN 27
dsPIC33FJ32GP302/304dsPIC33FJ64GPX02/X04 dsPIC33FJ128GPX02/X04
2.7.3.2 数据空间写饱和
除了加法器 / 减法器饱和,对数据空间进行写操作也会 饱和,但不会影响源累加器的内容。数据空间写饱和逻 辑模块接受来自舍入逻辑块的一个 16 位的 1.15 小数值 作为输入,还接受来自源 (累加器)和 16 位舍入加法 器的溢出状态。这些输入经过组合用来选择适当的 1.15 小数值作为输出,写入数据存储空间中。
如果 CORCON 寄存器中的 SATDW 位置 1,将检测(经 过舍入或截取后的)数据是否溢出,并进行相应的调 整。
如果输入数据大于 0x007FFF,则写入存储器中的 数据被强制为最大的正 1.15 值, 0x7FFF
如果输入数据小于 0xFF8000,则写入存储器中的 数据被强制为最小的负 1.15 值, 0x8000
源累加器的最高位 (bit 39)用来决定被检测的操作数 的符号。
如果 CORCON 寄存器中的 SATDW 位没有置 1,则输 入数据都将通过,在任何情况下都不会被修改。
2.7.4 桶形移位寄存器
桶形移位寄存器在单个周期内可将数据算术或逻辑右移 或左移最多 16 位。源操作数可以是两个 DSP 累加器中 的任何一个或 X 总线(支持寄存器或存储器中数据的多 位移位)。
移位寄存器需要一个有符号二进制值,用来确定移位操 作的幅度 (位数)和方向。正值将操作数右移。负值则 将操作数左移。值为 0 则不改变操作数。
桶形移位寄存器为 40 位宽,于是,它为 DSP 移位操作 提供了 40 位的结果,而为 MCU 移位操作提供 16 位的 结果。来自 X 总线的数据在桶形移位寄存器中的存放方 式是:右移则数据存放在 bit 16 bit 31,左移则存放 在 bit 0 bit 15
DS70292A_CN 28 超前信息 2008 Microchip Technology Inc.
Loading...
+ 366 hidden pages