MICROCHIP dsPIC33FJ06GS101, dsPIC33FJ06GSX02, dsPIC33FJ16GSX02, dsPIC33FJ16GSX04 Technical data

dsPIC33FJ06GS101/X02
dsPIC33FJ16GSX02/X04
数据手册
高性能
16 位数字信号控制器
2008 Microchip Technology Inc. 初稿 DS70318B_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
• Microchip 的产品均达到 Microchip 数据手册中所述的技术指标。
• Microchip 确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的 操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
• Microchip 愿与那些注重代码完整性的客户合作。
• Microchip 或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视 为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act)》。如果这种行为导致他人在未经授权的情况下,能访问您的
软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含 的英文部分,因为其中提供了有关 Microchip 产品性能和使用
任何差错不承担任何责任。建议参考 Microchip Technology Inc. 的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便 利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或 暗示、书面或口头、法定或其他形式的声明或担保,包括但不
限于针对其使用情况、质量、性能、适销性或特定用途的适用 性的声明或担保。 Microchip 对因这些信息及使用这些信息而
引起的后果不承担任何责任。如果将 Microchip 器件用于生命 维持和 / 或生命安全应用,一切风险由买方自负。买方同意在 由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障
Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识 产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron dsPIC、 K
EELOQ、 KEELOQ 徽标、 MPLAB、 PIC、
PICmicroPICSTARTrfPIC 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
系也已通过了
位于美国亚利桑那州
的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和
。此外,
ISO 9001:2000
Chandler和Te mp e
ISO/TS-16949:2002
®
跳码器件、串行
Microchip
在开发系统的设计和生产方面的质量体
认证。
与位于俄勒冈州
认证。公司在
EEPROM
®
PIC
、单片机外
ISO/TS-
DS70318B_CN ii 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02
dsPIC33FJ16GSX02/X04
高性能 16 位数字信号控制器
工作范围:
最高 40 MIPS 的工作速度 (3.0-3.6V 时):
- 工业级温度范围 -40°C +85° C
- 扩展级温度范围
-40°C +125° C
高性能数字信号控制器 (Digital Signal ControllerDSC CPU:
改进型哈佛架构
• C 编译器优化指令集
• 16 位宽数据总线
• 24 位宽指令
可寻址最大 4M 指令字的线性程序存储空间
可寻址最大 64 KB 的线性数据存储空间
• 83 条基本指令:多为单字 / 单周期指令
两个带舍入和饱和选项的 40 位累加器
灵活而强大的寻址模式:
- 间接寻址
- 模寻址
- 位反转寻址
软件堆栈
• 16 x 16 位小数 / 整数乘法运算
• 32/16 位和 16/16 位除法运算
单周期乘 - 累加运算:
-DSP运算的累加器回写操作
- 双数据取操作
可将最多 40 位数据左移或右移最多 16
数字 I/O
外设引脚选择功能
最多 35 个可编程数字 I/O 引脚
最多 30 个引脚上具有唤醒 / 电平变化中断功能
输出引脚可驱动 3.0V 3.6V 的电压
漏极开路配置、最高 5V 的输出
数字输入引脚可耐受 5V 的电压 (RB5 除外)
所有 PWM 引脚的拉 / 灌电流为 16 mA
片上闪存和 SRAM
外设特性:
定时器 / 计数器,最多 3 个 16 位定时器
- 最多可以配对成 1 32 位定时器
输入捕捉 (最多 2 路通道):
- 上升沿捕捉、下降沿捕捉或上升 / 下降沿捕捉
-16位捕捉输入功能
- 每路捕捉通道都带有 4 级深度的 FIFO 缓冲区
输出比较 (最多 2 路通道):
- 单次或两次 16 位比较模式
-16位无毛刺 PWM 模式
• 4 线 SPI:
- 帧支持与简单编解码器的 I/O 接口
-1级深度 FIFO 缓冲区
- 支持 8 位和 16 位数据
- 支持所有串行时钟格式和采样模式
2
C™
• I
- 支持完全的多主机从模式
-7位和 10 位寻址
- 总线冲突检测和仲裁
- 集成信号调理
- 从地址掩码
• UART
- 检测到地址位时产生中断
- 出现 UART 错误时产生中断
- 检测到启动位时将器件从休眠模式唤醒
-4字符深的发送和接收 FIFO 缓冲区
-LIN总线支持
- 硬件 IrDA
- 高速波特率模式
- 使用 CTS RTS 的硬件流控制
®
编码和解码
中断控制器:
中断响应延时为 5 个周期
• 118 个中断向量
最多 35 个中断源
最多 3 个外部中断
• 7 个可编程优先级
• 4 个处理器异常
闪存程序存储器 (最大 16 KB
数据 SRAM (最大 2 KB
闪存程序存储器的引导和通用安全性
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第1
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
高速 PWM 模块特性:
最多支持 4 个 PWM 发生器,能提供 4-8 路输出
• 8 路 PWM 输出的每一路都具有独立的时基和占空
上升沿和下降沿死区
占空比分辨率为 1.04 ns
死区分辨率为 1.04 ns
相移分辨率为 1.04 ns
频率分辨率为 1.04 ns
支持的 PWM 模式:
- 标准边沿对齐
- 真正独立输出
- 互补
- 中心对齐
- 推挽
- 多相
- 可变相位
- 固定关断时间
- 电流复位
- 限流
用于 8 路 PWM 输出的独立故障 / 限流输入
输出改写控制
特殊事件触发器
• PWM 捕捉功能
输入时钟的预分频器
PWM 模块送至 ADC analog-to-digital converterADC)的双路触发信号
• PWMxL 和 PWMxH 输出引脚交换
• PWM4H 和 PWM4L 引脚可重映射
可在运行过程中更改 PWM 频率、占空比和相移
各独立 PWM 发生器的禁止
前沿消隐 (Leading-Edge BlankingLEB)功能
高速模拟比较器
最多 4 个模拟比较器:
- 20 ns 响应时间
- 与每个模拟比较器相关的 10 DAC
- 提供 DAC 输出的 DACOUT 引脚
- 可编程的输出极性
- 可选择输入信号源
-ADC采样和转换功能
PWM 模块的接口:
-PWM占空比控制
-PWM周期控制
-PWM故障检测
高速 10 ADC
• 10 位分辨率
最多 12 路输入通道可组成 6 个转换对
两个内部参考电压监控输入组成一对内部模拟输入
用于并行转换模拟输入对的逐次逼近型
Successive Approximation RegisterSAR)转换
器:
- 对于带两个 SAR 的器件,转换速率为 4 Msps
- 对于带一个 SAR 的器件,转换速率为 2 Msps
用于每路模拟通道的专用结果缓冲区
用于每个模拟输入转换对的独立触发源
功耗管理:
片上 2.5V 稳压器
实时时钟源切换
可快速唤醒的空闲、休眠和打盹模式
CMOS 闪存技术:
低功耗高速闪存技术
全静态设计
• 3.3V (±10%)工作电压
工业级和扩展级温度
低功耗
系统管理:
灵活的时钟选择:
- 外部振荡器、晶振、谐振器和内部 RC 振荡器
- 120 MHz 压控振荡器 (Voltage Controlled OscillatorVCO)的锁相环 (Phase-Locked LoopPLL
-3 MHz至 40 MHz 范围内的主晶振
- 频率为 32 kHz 的内部低功耗 RC Low­Power RC, LPRC)振荡器
- 频率为 7.37 MHz 的内部快速 RC Fast RCFRC)振荡器
上电复位 (Power-on ResetPOR
欠压复位 (Brown-out ResetBOR
上电延时定时器 (Power-up TimerPWRT
振荡器起振定时器 (Oscillator Start-up Timer OST
自带 RC 振荡器的看门狗定时器
故障保护时钟监视器 (FSCM
多个复位源
在线串行编程 (In-Circuit Serial Programming™ ICSP™
封装:
• 18 引脚 SOIC
• 28 引脚 SPDIP/SOIC/QFN-S
• 44 引脚 TQFP/QFN
注: 关于每个器件的具体外设特性,请参见相
应的器件数据表。
DS70318B_CN 2 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 产品系列
下表列出了每个器件的器件名、引脚数、存储容量和可 用的外设。表后各页还附有它们的引脚图。
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 控制器系列
可重映射的外设
ADC
(3)
模拟比较器
外部中断
030113613SOIC
431126821SPDIP
4311261235QFN
DAC 输出
2
C™ I
SAR
I/O 引脚
模数转换输入
采样 / 保持(S&H)电 路
SOIC
QFN-S
SOIC
QFN-S
SOIC
QFN-S
TQFP
SOIC
QFN-S
TQFP
SPI
(2)
PWM
(1)
(1)
(1)
器件
dsPIC33FJ06GS101 18 6 256 8 2 0 1 1 1 2x2
dsPIC33FJ06GS102 28 6 256 16 2 0 1 1 1 2x2 0 3 0 1 1 3 6 21 SPDIP
dsPIC33FJ06GS202 28 6 1K 16 2 1 1 1 1 2x2 2 3 1 1 1 3 6 21 SPDIP
dsPIC33FJ16GS402 28 16 2K 16 3 2 2 1 1 3x2 0 3 0 1 1 4 8 21 SPDIP
dsPIC33FJ16GS404 44 16 2K 30 3 2 2 1 1 3x2 0 3 0 1 1 4 8 35 QFN
dsPIC33FJ16GS502 28 16 2K 16 3 2 2 1 1 4x2
dsPIC33FJ16GS504 44 16 2K 30 3 2 2 1 1 4x2
引脚
RAM (字节)
闪存程序存储器 (KB
可重映射的引脚数
输入捕捉
16 位定时器
输出比较
UART
1PWM4H:PWM4L 引脚是可重映射的。
2PWM 故障引脚和 PWM 同步引脚是可重映射的。 33 个中断中只有 2 个是可重映射的。
封装
2008 Microchip Technology Inc. 初稿 DS70318B_CN 3
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
引脚图
18 引脚 SOIC
OSCI/CLKI/AN6/RP1
OSCO/CLKO/AN7/RP2
TCK/PGD2/EMUD2/INT0/RP3
TMS/PGC2/EMUC2/RP4
28 引脚 SOIC SPDIP
AN5/RP10
OSCI/CLKIN/RP1
OSCO/CLKO/RP2
TCK/PGD2/EMUD2/INT0/RP3
TMS/PGC2/EMUC2/RP4
PGD3/EMUD3/RP8
AN3/RP0
AN3/RP0 AN4/RP9
AN0/RA0
AN1/RA1
AN2/RA2
(1)
/CN0/RB0
(1)
/CN1/RB1
(1)
/CN2/RB2
(1)
/CN3/RB3
(1)
/CN4/RB4
AN0/RA0 AN1/RA1
AN2/RA2
(1)
/CN0/RB0
(1)
/CN9/RB9
(1)
/CN10/RB10
(1)
/CN1/RB1
(1)
/CN2/RB2
(1)
/CN3/RB3
(1)
/CN4/RB4
(1)
/CN8/RB8
MCLR
MCLR
VDD
1
2
3
4
5
6
7
8
9
1 2 3 4 5 6 7
8 9 10 11 12 13 14
18
dsPIC33FJ06GS101
V
VSS
17
PWM1L/RA3
16
PWM1H/RA4
15
14
V
V
13
PGC1/EMUC1/SDA1/RP7
12
PGD1/EMUD1/TDI/SCL1/RP6
11
TDO/RP5
10
28 27
dsPIC33FJ06GS102
26 25 24 23 22 21 20 19 18 17 16 15
DD
CAP/VDDCORE
SS
AV
DD
(1)
/CN5/RB5
(1)
AVSS PWM1L/RA3 PWM1H/RA4 PWM2L/RP14 PWM2H/RP13 RP12 RP11
V
DDCORE/VCAP
V
SS
PGC1/EMUC1/SDA/RP7 PGD1/EMUD1/TDI/SCL/RP6 TDO/RP5 PGC3/EMUC3/RP15
(1)
/CN12/RB12
(1)
/CN11/RB11VSS
(1)
/CN5/RB5
(1)
/CN14/RB14
(1)
/CN13/RB13
(1)
(1)
/CN15/RB15
/CN7/RB7
(1)
/CN6/RB6
/CN7/RB7
(1)
/CN6/RB6
28 引脚 SPDIP SOIC
VDD
1 2 3 4 5 6 7
8 9 10 11 12 13 14
AN0/CMP1A/RA0 AN1/CMP1B/RA1
AN2/CMP1C/CMP2A/RA2
AN3/CMP1D/CMP2B/RP0
AN4/CMP2C/RP9
AN5/CMP2D/RP10
(1)
OSCI/CLKIN/RP1
OSCO/CLKO/RP2
PGD2/EMUD2/DACOUT/INT0/RP3
PGC2/EMUC2/EXTREF/RP4
PGD3/EMUD3/RP8
MCLR
(1)
/CN0/RB0
(1)
/CN9/RB9
/CN10/RB10
(1)
/CN1/RB1
(1)
/CN2/RB2
(1)
/CN3/RB3
(1)
/CN4/RB4
(1)
/CN8/RB8
1RPn 引脚可由任何可重映射的外设使用。可用外设的列表,请参见 “dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
控制器系列”表 。
DS70318B_CN 4 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS202
28 27 26 25 24 23 22
21 20 19 18 17 16 15
DD
AV AVSS PWM1L/RA3 PWM1H/RA4 PWM2L/RP14 PWM2H/RP13 TCK/RP12 TMS/RP11
V V PGC1/EMUC1/SDA/RP7 PGD1/EMUD1/TDI/SCL/RP6 TDO/RP5
(1)
(1)
DDCORE/VCAP
SS
(1)
/CN5/RB5
PGC3/EMUC3/RP15
(1)
/CN14/RB14
(1)
/CN13/RB13 /CN12/RB12 /CN11/RB11VSS
(1)
/CN15/RB15
(1)
/CN7/RB7
(1)
/CN6/RB6
引脚图 (续)
28 引脚 SPDIP SOIC
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
AN3/RP0 AN4/RP9
AN5/RP10
OSCI/CLKIN/AN6/RP1
OSCO/CLKO/AN7/RP2
PGD2/EMUD2/INT0/RP3
PGC2/EMUC2/RP4
PGD3/EMUD3/RP8
28 引脚 SPDIP SOIC
AN0/CMP1A/RA0 AN1/CMP1B/RA1
AN2/CMP1C/CMP2A/RA2 AN3/CMP1D/CMP2B/RP0 AN4/CMP2C/CMP3A/RP9
AN5/CMP2D/CMP3B/RP10
OSCI/CLKIN/AN6/CMP3C/CMP4A/RP1
OSCO/CLKO/AN7/CMP3D/CMP4B/RP2
PGD2/EMUD2/DACOUT/INT0/RP3
PGC2/EMUC2/EXTREF/RP4
CN8/RB8/PGD3/EMUD3/RP8
AN0/RA0 AN1/RA1 AN2/RA2
(1)
/CN0/RB0
(1)
/CN9/RB9
(1)
/CN10/RB10
(1)
/CN1/RB1
(1)
/CN2/RB2
(1)
/CN3/RB3
(1)
/CN4/RB4
(1)
/CN8/RB8
(1)
/CN0/RB0
(1)
/CN9/RB9
(1)
/CN10/RB10
(1)
/CN1/RB1
(1)
/CN2/RB2
(1)
/CN3/RB3
(1)
/CN4/RB4
(1)
/CN8/RB8
MCLR
VDD
MCLR
VDD
1 2 3 4 5 6 7
8 9 10 11 12 13 14
1 2 3 4 5 6 7
8 9 10 11 12 13 14
28 27
dsPIC33FJ16GS402
26 25 24 23 22 21 20 19 18 17 16 15
28 27
dsPIC33FJ16GS502
26 25 24 23 22 21 20 19 18 17 16 15
DD
AV AVSS PWM1L/RA3 PWM1H/RA4 PWM2L/RP14 PWM2H/RP13 TCK/PWM3L/RP12 TMS/PWM3H/RP11
V
DDCORE/VCAP
V
SS
PGC1/EMUC1/SDA/RP7 PGD1/EMUD1/TDI/SCL/RP6 TDO/RP5
(1)
(1)
(1)
/CN5/RB5
/CN14/RB14
/CN13/RB13
(1)
/CN12/RB12
(1)
/CN11/RB11VSS
(1)
/CN7/RB7
(1)
PGC3/EMUC3/RP15/CN15/RB15
DD
AV AVSS PWM1L/RA3 PWM1H/RA4 PWM2L/RP14 PWM2H/RP13 TCK/PWM3L/RP12 TMS/PWM3H/RP11
V
DDCORE/VCAP
SS
V PGC1/EMUC1/SDA/RP7
PGD1/EMUD1/TDI/SCL/RP6 TDO/RP5 PGC3/EMUC3/RP15
(1)
(1)
(1)
/CN6/RB5
/CN14/RB14
/CN13/RB13
(1)
/CN12/RB12
(1)
/CN11/RB11VSS
(1)
(1)
/CN15/RB15
/CN7/RB7
(1)
/CN6/RB6
/CN6/RB6
1RPn 引脚可由任何可重映射的外设使用。可用外设的列表,请参见 “dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
控制器系列”表 。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 5
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
引脚图 (续)
28 引脚 QFN-S
AVDD
AVSS
PWM1L/RA3
12 13 14
/CN8/RB8
(1)
/CN15/RB15
(1)
PWM1H/RA4
22
232425262728
21 20 19 18 17 16 15
/CN6/RB6
/CN5/RB5
(1)
(1)
TDO/RP5
PWM2L/RP14 PWM2H/RP13 TCK/RP12 TMS/RP11
VDDCORE/VCAP V
SS
PGC1/EMUC1/SDA/RP7
(1)
/CN14/RB14
(1)
/CN13/RB13
(1)
/CN12/RB12
(1)
/CN11/RB11
(1)
/CN7/RB7
AN3/RP0 AN4/RP9
AN5/RP10
OSCI/CLKIN/RP1
OSCO/CLKO/RP2
AN2/RA2
(1)
/CN0/RB0
(1)
/CN9/RB9
(1)
/CN10/RB10
(1)
/CN1/RB1
(1)
/CN2/RB2
1 2 3 4
dsPIC33FJ06GS102
V
SS
5 6 7
AN0/RA0
AN1/RA1
10 11
9
8
/CN3/RB3
/CN4/RB4
(1)
(1)
MCLR
DD
V
AN3/CMP1D/CMP2B/RP0
AN2/CMP1C/CMP2A/RA2
AN4/CMP2C/RP9
AN5/CMP2D/RP10
(1)
OSCI/CLKIN/RP1
OSCO/CLKO/RP2
(1)
/CN0/RB0
(1)
/CN9/RB9
/CN10/RB10
V
(1)
/CN1/RB1
(1)
/CN2/RB2
1 2 3 4
dsPIC33FJ06GS202
SS
5 6 7
8
(1)
PGC2/EMUC2/RP4
PGD3/EMUD3/RP8
PGD2/EMUD2/INT0/RP3
PGC3/EMUC3/RP15
PGD1/EMUD1/TDI/SCL/RP6
AVDD
AVSS
PWM1L/RA3
AN1/CMP1B/RA1
AN0/CMP1A/RA0
MCLR
PWM1H/RA4
22
232425262728
21 20 19 18 17 16
12 13 14
/CN5/RB5
(1)
/CN15/RB15
(1)
15
/CN6/RB6
(1)
10 11
9
/CN3/RB3
/CN4/RB4
(1)
DD
V
/CN8/RB8
(1)
TDO/RP5
PWM2L/RP14 PWM2H/RP13 TCK/RP12 TMS/RP11
VDDCORE/VCAP
SS
V
PGC1/EMUC1/SDA/RP7
(1)
/CN14/RB14
(1)
/CN13/RB13
(1)
/CN12/RB12
(1)
/CN11/RB11
(1)
/CN7/RB7
PGD3/EMUD3/RP8
PGC3/EMUC3/RP15
PGC2/EMUC2/EXTREF/RP4
PGD1/EMUD1/TDI/SCL/RP6
PGD2/EMUD2/DACOUT/INT0/RP3
1RPn 引脚可由任何可重映射的外设使用。可用外设的列表,请参见 “dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
控制器系列”表 。
DS70318B_CN 6 初稿 2008 Microchip Technology Inc.
引脚图 (续)
28 引脚 QFN-S
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
AVDD
AVSS
PWM1L/RA3
22
232425262728
12 13 14
/CN8/RB8
/CN5/RB5
(1)
(1)
/CN15/RB15
(1)
TDO/RP5
PWM1H/RA4
21
PWM2L/RP14
20
PWM2H/RP13 TCK/PWM3L/RP12
19
TMS/PWM3H/RP11
18 17
VDDCORE/VCAP
16
SS
V
15
PGC1/EMUC1/SDA/RP7
/CN6/RB6
(1)
/CN14/RB14
(1)
/CN13/RB13
(1)
/CN12/RB12
(1)
/CN11/RB11
(1)
/CN7/RB7
AN3/RP0 AN4/RP9
AN5/RP10
OSCI/CLKIN/AN6/RP1
OSCO/CLKO/AN7/RP2
AN2/RA2
(1)
/CN0/RB0
(1)
/CN9/RB9
(1)
/CN10/RB10
(1)
/CN1/RB1
(1)
/CN2/RB2
1 2 3
4
dsPIC33FJ16GS402
SS
V
5 6 7
8
/CN3/RB3
(1)
AN1/RA1
9
(1)
MCLR
AN0/RA0
10 11
DD
V
/CN4/RB4
(1)
AN3/CMP1D/CMP2B/RP0
AN2/CMP1C/CMP2A/RA2
AN4/CMP2C/CMP3A/RP9
AN5/CMP2D/CMP3B/RP10
(1)
OSCI/CLKIN/AN6/CMP3C/CMP4A/RP1
OSCO/CLKO/AN7/CMP3D/CMP4B/RP2
(1)
/CN0/RB0
(1)
/CN9/RB9
/CN10/RB10
V
(1)
/CN1/RB1
(1)
/CN2/RB2
1 2 3 4
dsPIC33FJ16GS502
SS
5 6 7
8
(1)
PGC2/EMUC2/RP4
PGD3/EMUD3/RP8
PGD2/EMUD2/INT0/RP3
AVDD
MCLR
AN0/CMP1A/RA0
AN1/CMP1B/RA1
10 11
12 13 14
9
DD
V
/CN3/RB3
/CN4/RB4
/CN8/RB8
(1)
(1)
(1)
PGD3/EMUD3/RP8
PGC3/EMUC3/RP15
PGD1/EMUD1/TDI/SCL/RP6
AVSS
PWM1L/RA3
PWM1H/RA4
22
232425262728
21
PWM2L/RP14
20
PWM2H/RP13 TCK/PWM3L/RP12
19
TMS/PWM3H/RP11
18 17
VDDCORE/VCAP
16
SS
V
PGC1/EMUC1/SDA/RP7
15
/CN6/RB6
/CN5/RB5
(1)
(1)
/CN15/RB15
TDO/RP5
PGC3/EMUC3/RP15
(1)
/CN14/RB14
(1)
/CN13/RB13
(1)
/CN12/RB12
(1)
/CN11/RB11
(1)
/CN7/RB7
PGC2/EMUC2/EXTREF/RP4
PGD1/EMUD1/TDI/SCL/RP6
PGD2/EMUD2/DACOUT/INT0/RP3
1RPn 引脚可由任何可重映射的外设使用。可用外设的列表,请参见 “dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
控制器系列”表 。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 7
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
引脚图 (续)
44 引脚 QFN
/CN6/RB6
(1)
(1)
PGD1/EMUD1/TDI/SCL/RP6
/CN15/RB15
(1)
(1)
/CN5/RB5
TDO/RP5
PGC3/EMUC3/RP15
/CN8/RB8
/CN24/RC8
/CN23/RC7
(1)
(1)
DD
SS
V
RP24
V
PGD3/EMUD3/RP8
RP23
/CN3/RB3
(1)
/CN4/RB4
(1)
/CN18/RC2
(1)
PGC2/EMUC2/RP4
PGD2/EMUD2/INT0/RP3
RP18
44
43 42 41 40 39 38 37 36 35
1
2 32
3
4
5
6
dsPIC33FJ16GS404
7
8
9
10
11
PGC1/EMUC1/SDA/RP7
RP20 RP21 RP22
RP19
V
TMS/PWM3H/RP11
TCK/PWM3L/RP12
PWM2H/RP13
PWM2L/RP14
(1)
/CN7/RB7
(1)
/CN20/RC4
(1)
/CN21/RC5
(1)
/CN22/RC6
(1)
/CN19/RC3
DDCORE/VCAP
(1)
/CN11/RB11
(1)
/CN12/RB12
(1)
/CN13/RB13
(1)
/CN14/RB14
VSS
12 13 14 15 16 17 18 19 20 21
DD
AVSS
AV
MCLR
/CN16/RC0
/CN29/RC13
PWM1L/RA3
PWM1H/RA4
(1)
(1)
RP16
RP29
1RPn 引脚可由任何可重映射的外设使用。可用外设的列表,请参见 “dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
控制器系列”表 。
34
33
OSCO/CLKO/AN7/RP2 OSCI/CLKI/AN6/RP1
31
AN8/CMP4C/RP17
30
V
SS
V
29
28
27
26
25
24
23
DD
RP26 RP25
AN5/RP10
AN4/RP9
AN3/RP0 AN2/RA2
(1)
/CN26/RC10
(1)
/CN25/RC9
(1)
/CN10/RB10
(1)
/CN9/RB9
(1)
/CN0/RB0
(1)
/CN2/RB2
(1)
/CN1/RB1
(1)
/CN17/RC1
22
AN1/RA1
AN0/RA0
/CN27/RC11
/CN28/RC12
(1)
(1)
RP27
RP28
DS70318B_CN 第8 页 初稿  2008 Microchip Technology Inc.
引脚图 (续)
44 引脚 QFN
PGC1/EMUC1/SDA/RP7
RP19
TMS/PWM3H/RP11 TCK/PWM3L/RP12
PWM2H/RP13
PWM2L/RP14
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
/CN3/RB3
(1)
(1)
RP20
(1)
RP21
(1)
RP22
(1)
V
DDCORE/VCAP
(1)
(1)
(1)
(1)
(1)
/CN7/RB7
/CN20/RC4 /CN21/RC5
/RN22/RC6
/CN19/RC3
VSS
/CN11/RB11 /CN12/RB12 /CN13/RB13
/CN14/RB14
/CN6/RB6
(1)
/CN15/RB15
/CN8/RB8
(1)
(1)
/CN5/RB5
(1)
DD
SS
V
TDO/RP5
PGD1/EMUD1/TDI/SCL/RP6
44
43 42 41 40 39 38 37 36 35
V
PGD3/EMUD3/RP8
PGC3/EMUC3/RP15
1
2 32
3
4
5
6
dsPIC33FJ16GS504
7
8
9
10
11
12 13 14 15 16 17 18 19 20 21
/CN18/RC2
(1)
/CN4/RB4
(1)
/CN23/RC7
/CN24/RC8
(1)
(1)
AN9/EXTREF/CMP4D/RP18
RP23
RP24
PGC2/EMUC2/RP4
PGD2/EMUD2/DACOUT/INT0/RP3
34
22
33
OSCO/CLKO/AN7/CMP3D/CMP4B/RP2 OSCI/CLKI/AN6/CMP3C/CMP4A/RP1
31
AN8/CMP4C/RP17
30
V
SS
V
29
DD
AN10/RP26
28
AN11/RP25
27
26
AN5/CMP2D/CMP3B/RP10
25
AN4/CMP2C/CMP3A/RP9
24
AN3/CMP1D/CMP2B/RP0
23
AN2/CMP1C/CMP2A/RA2
(1)
(1)
/CN26/RC10
(1)
/CN25/RC9
/CN17/RC1
(1)
/CN10/RB10
(1)
/CN9/RB9
(1)
/CN0/RB0
(1)
/CN2/RB2
(1)
/CN1/RB1
DD
AVSS
AV
MCLR
/CN16/RC0
/CN29/RC13
PWM1L/RA3
PWM1H/RA4
(1)
(1)
RP16
RP29
1RPn 引脚可由任何可重映射的外设使用。可用外设的列表,请参见 “dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
控制器系列”表 。
/CN27/RC11
/CN28/RC12
(1)
(1)
AN1/CMP1B/RA1
AN0/CMP1A/RA0
RP27
RP28
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第9
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
引脚图 (续)
44 引脚 TQFP
/CN6/RB6
(1)
/CN15/RB15
/CN8/RB8
(1)
(1)
/CN5/RB5
(1)
PGD3/EMUD3/RP8
PGC3/EMUC3/RP15
TDO/RP5
PGD1/EMUD1/TDI/SCL/RP6
DD
V
/CN24/RC8
/CN23/RC7
(1)
(1)
SS
RP24
RP23
V
/CN3/RB3
(1)
/CN4/RB4
(1)
/CN18/RC2
(1)
RP18
PGC2/EMUC2/RP4
PGD2/EMUD2/INT0/RP3
PGC1/EMUC1/SDA/RP7
TMS/PWM3H/RP11 TCK/PWM3L/RP12
PWM2H/RP13
PWM2L/RP14
1RPn 引脚可由任何可重映射的外设使用。可用外设的列表,请参见 “dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
(1)
/CN7/RB7
(1)
/CN20/RC4
RP20
(1)
RP21
/CN21/RC5
(1)
RP22
/CN22/RC6
(1)
RP19
/CN19/RC3
V
VDDCORE/VCAP
(1)
/CN11/RB11
(1)
/CN12/RB12
(1)
/CN13/RB13
(1)
/CN14/RB14
控制器系列”表
SS
4443424140
1 2
3 4 5
6 7 8 9
10
121314
11
PWM1H/RA4
dsPIC33FJ16GS404
15
/CN16/RC0
/CN29/RC13
PWM1L/RA3
(1)
(1)
RP16
RP29
39
1819202122
16
17
DD
AVSS
AV
38
MCLR
/CN27/RC11
(1)
RP27
37
363435
/CN28/RC12
(1)
RP28
AN0/RA0
AN1/RA1
33 32 31 30
29 28
27
26
25 24 23
OSCO/CLKO/AN7/RP2 OSCI/CLKI/AN6/RP1
(1)
RP17
/CN17/RC1 VSS
V
DD
(1)
RP26
/CN26/RC10
(1)
RP25
/CN25/RC9
AN5/RP10 AN4/RP9
AN3/RP0
(1)
/CN10/RB10
(1)
/CN9/RB9
(1)
/CN0/RB0
AN2/RA2
(1)
/CN2/RB2
(1)
/CN1/RB1
DS70318B_CN 10 初稿  2008 Microchip Technology Inc.
引脚图 (续)
44 引脚 TQFP
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
/CN3/RB3
(1)
/CN6/RB6
(1)
PGD1/EMUD1/TDI/SCL/RP6
(1)
/CN15/RB15
/CN8/RB8
(1)
(1)
/CN5/RB5
PGC3/EMUC3/RP15
PGD3/EMUD3/RP8
TDO/RP5
DD
V
/CN18/RC2
(1)
/CN4/RB4
(1)
/CN24/RC8
/CN23/RC7
(1)
(1)
SS
AN9/EXTREF/CMP4D/RP18
V
RP24
PGC2/EMUC2/RP4
RP23
PGD2/EMUD2/DACOUT/INT0/RP3
PGC1/EMUC1/SDA/RP7
RP20 RP21
RP22
RP19
VDDCORE/VCAP
TMS/PWM3H/RP11
TCK/PWM3L/RP12
PWM2H/RP13
PWM2L/RP14
1RPn 引脚可由任何可重映射的外设使用。可用外设的列表,请参见 “dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
(1)
(1)
(1)
控制器系列”表 。
(1)
/CN7/RB7
(1)
/CN20/RC4
(1)
/CN21/RC5
(1)
/CN22/RC6
(1)
/CN19/RC3
(1)
/CN11/RB11 /CN12/RB12 /CN13/RB13 /CN14/RB14
4443424140
1 2
3 4 5
SS
V
dsPIC33FJ16GS504
6 7 8 9
10 11
121314
PWM1H/RA4
15
/CN16/RC0
PWM1L/RA3
(1)
RP16
/CN29/RC13
(1)
RP29
39
1819202122
16
17
DD
AVSS
AV
38
MCLR
/CN27/RC11
(1)
RP27
363435
37
33 32 31 30
29 28
27
26
25 24 23
/CN28/RC12
(1)
AN1/CMP1B/RA1
AN0/CMP1A/RA0
RP28
OSCO/CLKO/AN7/CMP3D/CMP4B/RP2 OSCI/CLKI/AN6/CMP3C/CMP4A/RP1
AN8/CMP4C/RP17
(1)
/CN17/RC1 VSS
V
DD
AN10/RP26 AN11/RP25
AN5/CMP2D/CMP3B/RP10 AN4/CMP2C/CMP3A/RP9
AN3/CMP1D/CMP2B/RP0
(1)
/CN26/RC10
(1)
/CN25/RC9
(1)
/CN10/RB10
(1)
/CN9/RB9
(1)
/CN0/RB0
AN2/CMP1C/CMP2A/RA2
(1)
/CN2/RB2
(1)
/CN1/RB1
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第11
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
目录
1.0 器件概述 ..................................................................................................................................................................................... 13
2.0 CPU............................................................................................................................................................................................ 17
3.0 存储器构成 ................................................................................................................................................................................. 29
4.0 闪存程序存储器 .......................................................................................................................................................................... 71
5.0 复位 ............................................................................................................................................................................................ 77
6.0 中断控制器 ................................................................................................................................................................................. 85
7.0 振荡器配置 ............................................................................................................................................................................... 125
8.0 节能特性 ................................................................................................................................................................................... 135
9.0 I/O 端口..................................................................................................................................................................................... 143
10.0 Timer1 ...................................................................................................................................................................................... 173
11.0 Timer2/3 特性 ........................................................................................................................................................................... 175
12.0 输入捕捉 ................................................................................................................................................................................... 181
13.0 输出比较 ................................................................................................................................................................................... 183
14.0 高速 PWM................................................................................................................................................................................. 187
15.0 串行外设接口 (SPI)............................................................................................................................................................... 207
2
16.0 I
C™ ........................................................................................................................................................................................ 213
17.0 通用异步收发器 (UART....................................................................................................................................................... 221
18.0 高速 10 位模数转换器 (ADC................................................................................................................................................ 227
19.0 高速模拟比较器 ........................................................................................................................................................................ 249
20.0 特殊功能 ................................................................................................................................................................................... 253
21.0 指令集汇总 ............................................................................................................................................................................... 261
22.0 开发支持 ................................................................................................................................................................................... 269
23.0 电气特性 ................................................................................................................................................................................... 273
24.0 封装信息 ................................................................................................................................................................................... 307
附录 A 版本历史......................................................................................................................................................................... 319
Microchip 网站.................................................................................................................................................................................... 327
变更通知客户服务 .............................................................................................................................................................................. 327
客户支持............................................................................................................................................................................................. 327
读者反馈表 ......................................................................................................................................................................................... 328
产品标识体系...................................................................................................................................................................................... 329
致客户
我们旨在提供最佳文档供客户正确使用 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 上注册。
DS70318B_CN 12 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

1.0 器件概述

注: 本数据手册总结了 dsPIC33FJ06GS101/
X02 dsPIC33FJ16GSX02/X04 系列器件
的特性。但是不应把本手册当作无所不包 的参考手册来使用。如需了解本数据手册 的补充信息,请参考 “dsPIC33F Family Reference Manual”。请访问 Microchip 站(www.microchip.com)了解最新的
dsPIC33F Family Reference Manual”章
节。
本文档包含如下 dsPIC33F 数字信号控制器(DSC)器 件的特定信息:
• dsPIC33FJ06GS101
• dsPIC33FJ06GS102
• dsPIC33FJ06GS202
• dsPIC33FJ16GS402
• dsPIC33FJ16GS404
• dsPIC33FJ16GS502
• dsPIC33FJ16GS504
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
器件在高性能 16 位单片机 (microcontroller MCU) 架构中,融合了丰富的数字信号处理器 (Digital Signal Processor DSP)功能。
1-1 给出了 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器件内核和外设模块的通用 框图。表 1-1 列出了引脚图中所示各引脚的功能。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 13
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

1-1 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的框图

PSV
和表
数据访问
控制模块
23
23
地址锁存器
程序存储器
数据锁存器
中断
控制器
23
PCU
程序计数器
堆栈 控制 逻辑
地址总线
24
8
PCH PCL
循环
控制
逻辑
16
Y
数据总线
X
数据总线
16
16
数据锁存器
X RAM
地址
锁存器
16
地址发生器单元
ROM
锁存器
数据锁存器
Y RAM
地址
锁存器
16
EA
16
多路开关
16
16
16
PORTA
PORTB
PORTC
可重映射
的引脚
OSC2/CLKO
OSC1/CLKI
时序 发生
FRC/LPRC
振荡器
高精度
带隙 参考
稳压器
VDDCORE/VCAP
和控制
至各模块的
控制信号
起振定时器
V
DD 和 VSS
定时器
模拟
比较器
指令 译码
上电延时
定时器
振荡器
上电 复位
看门狗 定时器
欠压 复位
1-3
1-4
MCLR
UART1
IC1,2
DSP
除法支持
指令寄存器
引擎
ADC1
CNx
立即数数据
16 x 16
寄存器阵列
W
OC1 OC2
I2C1
16
16位ALU
16
16
PWM
4 x 2
SPI1
注: 并非所有器件的引脚配置中都实现了全部的引脚或特性。请参见引脚图了解每个器件上的特定引脚和特性的信息。
DS70318B_CN 14 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
1-1 引脚输入 / 输出说明
引脚名称
AN0-AN11 I Analog
CLKI CLKO
OSC1
OSC2
CN0-CN29 I ST
IC1-IC2 I ST
OCFA OC1-OC2
INT0 INT1 INT2
RA0-RA4 I/O ST
RB0-RB15 I/O ST
RC0-RC13 I/O ST
RP0-RP29 I/O ST
T1CK T2CK T3CK
U1CTS U1RTS U1RX U1TX
SCK1 SDI1 SDO1 SS1
SCL1 SDA1
TMS TCK TDI TDO
图注: CMOS = CMOS 兼容输入或输出 Analog = 模拟输入 I = 输入
ST = CMOS 电平的施密特触发器输入 P = 电源 O = 输出 TTL = 晶体管 - 晶体管逻辑
引脚类型缓冲器
类型
IOST/CMOS
I
ST/CMOS
I/O
I
O
I I I
I I I
I
O
I
O
I/O
I
O
I/O
I/O I/O
I I I
O
ST
ST ST ST
ST ST ST
ST
ST
ST ST
ST
ST ST
TTL TTL TTL
说明
模拟输入通道 外部时钟源输入。总是与 OSC1 引脚功能相关联。
晶振输出。在晶振模式下,连接到晶振或谐振器。也可选择在 RC EC 模式下用作 CLKO。总是与 OSC2 引脚功能相关联。
晶振输入。配置为 RC 模式时为 ST 缓冲器输入;否则为 CMOS 缓冲器 输入。 晶振输出。在晶振模式下,连接到晶振或谐振器。也可选择在 RC EC 模式下用作 CLKO
电平变化通知输入。可将所有输入用软件编程为内部弱上拉。 捕捉输入 1/2 比较故障 A 输入 (用于比较通道 1 2
比较输出 1 2 外部中断 0
外部中断 1 外部中断 2
PORTA 是双向 I/O 端口 PORTB 是双向 I/O 端口 PORTC 是双向 I/O 端口 可重映射的 I/O 引脚 Timer1 外部时钟输入
Timer2 外部时钟输入 Timer3 外部时钟输入
UART1 允许发送 UART1 请求发送 UART1 接收 UART1 发送
SPI1 的同步串行时钟输入 / 输出 SPI1 数据输入 SPI1 数据输出 SPI1 从同步或帧脉冲 I/O
I2C1 的同步串行时钟输入 / 输出 I2C1 的同步串行数据输入 / 输出
JTAG 测试模式选择引脚 JTAG 测试时钟输入引脚 JTAG 测试数据输入引脚 JTAG 测试数据输出引脚
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第15
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
1-1 引脚输入 / 输出说明 (续)
引脚名称
CMP1A CMP1B CMP1C CMP1D CMP2A CMP2B CMP2C CMP2D CMP3A CMP3B CMP3C CMP3D CMP4A CMP4B CMP4C CMP4D
DACOUT 0
EXTREF I Analog
REFCLK 0
FLT1-FLT8 SYNCI1-SYNCI2 SYNCO1 PWM1L PWM1H PWM2L PWM2H PWM3L PWM3H PWM4L PWM4H
PGD1/EMUD1 PGC1/EMUC1 PGD2/EMUD2 PGC2/EMUC2 PGD3/EMUD3 PGC3/EMUC3
MCLR
AV
DD PP
AVSS PP
DD P—
V
V
DDCORE P—
VSS P—
图注: CMOS = CMOS 兼容输入或输出 Analog = 模拟输入 I = 输入
ST = CMOS 电平的施密特触发器输入 P = 电源 O = 输出 TTL = 晶体管 - 晶体管逻辑
引脚类型缓冲器
类型
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
Analog
I
I O O O O O O O O O
I/O
I
I/O
I
I/O
I
I/P ST
ST ST
— — — — — — — — —
ST ST ST ST ST ST
说明
比较器 1 的通道 A 比较器 1 的通道 B 比较器 1 的通道 C 比较器 1 的通道 D 比较器 2 的通道 A 比较器 2 的通道 B 比较器 2 的通道 C 比较器 2 的通道 D 比较器 3 的通道 A 比较器 3 的通道 B 比较器 3 的通道 C 比较器 3 的通道 D 比较器 4 的通道 A 比较器 4 的通道 B 比较器 4 的通道 C 比较器 4 的通道 D
DAC 输出电压 用于参考 DAC 的外部参考电压输入
REFCLK 输出信号是对系统时钟后分频得到的
PWM 模块的故障输入 PWM 主时基的外部同步信号 用于外部器件同步的 PWM 主时基输出 PWM1 低端输出 PWM1 高端输出 PWM2 低端输出 PWM2 高端输出 PWM3 低端输出 PWM3 高端输出 PWM4 低端输出 PWM4 高端输出
编程 / 调试通信通道 1 使用的数据 I/O 引脚 编程 / 调试通信通道 1 使用的时钟输入引脚 编程 / 调试通信通道 2 使用的数据 I/O 引脚 编程 / 调试通信通道 2 使用的时钟输入引脚 编程 / 调试通信通道 3 使用的数据 I/O 引脚 编程 / 调试通信通道 3 使用的时钟输入引脚
主复位输入。此引脚为低电平有效的器件复位输入。
模拟模块的正电源。此引脚必须始终连接。 模拟模块的参考地 外设逻辑和 I/O 引脚的正电源 CPU 逻辑滤波电容连接 逻辑和 I/O 引脚的参考地
DS70318B_CN 16 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

2.0 CPU

注: 本数据手册总结了
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 系列器件的特
性。但是不应把本手册当作无所不包的参 考手册来使用。如需了解本数据手册的补 充信息,请参考“dsPIC33F Family
Reference Manual”的“Section 2. CPUDS70204),该文档可从 Microchip 网站 (www.microchip.com)下载。
dsPIC33FJ06GS101/X02dsPIC33FJ16GSX02/X04 CPU 模块采用 16 位 (数据)的改进型哈佛架构,具有 增强指令集,其中包括对 DSP 的强大支持。 CPU 具有 24 位指令字,指令字带有长度可变的操作码字段。程序
计数器(Program CounterPC)为 23 位宽,可寻址最 大 4M x 24 位的用户程序存储空间。实际的程序存储器 容量因器件而异。单周期指令预取机制可帮助维持吞吐 量并提供指令的预测执行功能。除了改变程序流的指 令、双字传送 (MOV.D)指令和表指令以外,所有指令 都在单个周期内执行。使用 DO REPEAT 指令支持无开 销的程序循环结构,这两条指令在任何时间都可以被中 断。
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器 件的编程模型中有 16 16 位工作寄存器。每个工作寄 存器都可以充当数据、地址或地址偏移量寄存器。第 16 个工作寄存器(W15)作为软件堆栈指针(Stack
PointerSP),用于中断和调用。
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
器件具有两类指令:MCU 类指令和 DSP 类指令。这两 类指令无缝地集成到单个 CPU 中。指令集包括很多寻 址模式,指令的设计可使 C 编译器的效率达到最优。对 于大多数指令, dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 能够在每个指令周期内执行 一次数据 (或程序数据)存储器读取、一次工作寄存器
(数据)读取、一次数据存储器写入以及一次程序 (指
令)存储器读取操作。因此,支持三操作数指令,允许 在单个周期内执行 A+B=C这样的操作。
CPU 的框图如图 2-1 所示, dsPIC33FJ06GS101/X02dsPIC33FJ16GSX02/X04 的编程模型如图 2-2 所示。

2.1 数据寻址概述

数据空间可以作为 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.2 DSP 引擎概述

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

2.3 MCU 的特性

dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 具有一个由 MCU ALU DSP 引擎共用的 17 x 17 位 单周期乘法器。此乘法器可以进行有符号、无符号和混 合符号的乘法运算。使用 17 x 17 位乘法器进行 16 x 16 位乘法运算不仅允许您执行混合符号的乘法运算, 而且对于 (-1.0) x (-1.0) 这样的特殊运算也可以得到准确 结果。
dsPIC33FJ06GS101/X02dsPIC33FJ16GSX02/X04 支 持小数和整数的 16/16 位和 32/16 位除法运算。所有的除 法指令都是迭代操作。它们必须在一个 REPEAT 循环内 执行,总执行时间为 19 个指令周期。在这 19 个周期的 任一周期内可以中断除法运算而不会丢失数据。
一个 40 位桶形移位寄存器用于在单个周期内将数据左 移或右移最多 16 位。 MCU DSP 指令都可以使用该 桶形移位寄存器。

2-1 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 CPU 内核框图

PSV 和表
数据访问
控制模块
中断
控制器
8
23
23
23
PCU 程序计数器
堆栈 控制 逻辑
16
PCH PCL
循环 控制 逻辑
Y 数据总线
X 数据总线
16
数据锁存器
X RAM
地址
锁存器
16
16
数据锁存器
16
Y RAM
地址
锁存器
16
16
地址锁存器
程序存储器
数据锁存器
地址总线
24
指令
译码和
控制
至各模块的
控制信号
ROM 锁存器
指令寄存器
DSP 引擎
除法支持
地址发生器单元
EA 多路开关
16
16
立即数数据
16 x 16
W 寄存器阵列
16 ALU
16
16
16
至外设模块
DS70318B_CN 18 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

2-2 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的编程模型

D0D15
W0/WREG
W1
W2
W3
W4
DSP 操作数
寄存器
DSP 地址 寄存器
W13/DSP 回写
W5
W6
W7
W8
W9
W10
W11
W12/DSP 偏移量
W14/ 帧指针
W15/ 堆栈指针
工作寄存器
PUSH.S 影子寄存器
DO 影子寄存器
图注
DSP 累加器
PC22
7
TBLPAG
7
PSVPAG
22
22
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. 初稿 DS70318B_CN 第19
OAB SAB
SRH
DA DC
IPL2 IPL1
IPL0 OV
RA
SRL
0
内核控制寄存器
N
C
Z
状态寄存器
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

2.4 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
(1,4)
DA DC
R/W-0
(2)
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 组合的累加器饱和 “粘住”状态位
(1,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 中断优先级 (Interrupt Priority LevelIPL)。
如果 IPL<3> = 1,那么括号中的值表示 IPL。当 IPL<3> = 1 时,禁止用户中断。
3: 当 NSTDIS INTCON1<15> = 1 时, IPL<2:0> 状态位是只读的。 4: 清零此位将同时清零 SA SB
DS70318B_CN 20 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/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 中断优先级 (Interrupt Priority LevelIPL)。
如果 IPL<3> = 1,那么括号中的值表示 IPL。当 IPL<3> = 1 时,禁止用户中断。
3: 当 NSTDIS INTCON1<15> = 1 时, IPL<2:0> 状态位是只读的。 4: 清零此位将同时清零 SA SB
2008 Microchip Technology Inc. 初稿 DS70318B_CN 21
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/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 = 程序空间在数据空间中不可视
bit 1
RND舍入模式选择位
1 = 使能有偏 (常规)舍入 0 = 使能无偏 (收敛)舍入
bit 0
IF整数或小数乘法器模式选择位
1 = 使能 DSP 乘法运算的整数模式 0 = 使能 DSP 乘法运算的小数模式
1: 此位将总是读为 0
2IPL3 位与 IPL<2:0> 位(SR<7:5>)组合形成 CPU 中断优先级。
DS70318B_CN 22 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

2.5 算术逻辑单元 (ALU

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

2.6 DSP 引擎

DSP 引擎由一个高速 17 x 17 位乘法器、一个桶形移 位寄存器和一个 40 位加法器 / 减法器 ( 带两个目标累 加器、舍入逻辑和饱和逻辑)组成。
dsPIC33FJ06GS101/X02dsPIC33FJ16GSX02/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 所示。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第23
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/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
MPY A = x * y
MPY A = x 2
MPY.N A = – x * y
MSC A = A – x * y

2-3 DSP 引擎框图

A 中内容将不发生改变
有 无 无 有 无
无 无 无 有
Y 数据总线
40
进位 / 借位输出
进位 / 借位输入
40 位累加器 A 40 位累加器 B
饱和
加法器
取补
40
40
符号扩展
33
40
桶形
移位
寄存器
32
32
40
16
40
舍入
补零
逻辑
16
X 数据总线
16
17
乘法器 / 定标器
16
/ 来自 W 阵列
DS70318B_CN 24 初稿  2008 Microchip Technology Inc.
16
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2.6.1 乘法器
17 x17 位乘法器可以进行有符号或无符号运算,其输 出经过定标器进行换算后可支持 1.31 小数 (Q31)或 32 位整数结果。无符号操作数经过零扩展后,送入乘法
器输入值的第 17 位。有符号操作数经过符号扩展后,送 入乘法器输入值的第 17 位。17 x17 位乘法器 / 定标 器的输出是 33 位值,它将被符号扩展为 40 位。整型数 据的固有表示形式为有符号的二进制补码值,其中最高 有效位(MSb)定义为符号位。N 位二进制补码整数的 范围为 -2
对于 16 位整数,数据范围为 -32768 0x8000
对于 32 位整数,数据范围为 -2,147,483,648
0x8000 0000)到 2,147,483,647 0x7FFF
当乘法器配置为小数乘法时,数据表示为二进制补码小 数,其中 MSb 定义为符号位,小数点暗含在符号位之 后(QX 格式)。暗含小数点的 N 位二进制补码小数的 范围为 -1.0 到(1 – 2 据范围为 -1.00x8000)到 0.9999694820x7FFF), 包括 0 在内,其精度为 3.01518x10-5。在小数模式下,
16 x 16 乘法运算将产生 1.31 乘积,其精度为 4.65661 x 10
同一个乘法器还用来支持 MCU 乘法指令,包括整数的 16 位有符号、无符号和混合符号乘法运算。
MUL 指令可以使用字节或字长度的操作数。字节操作数 将产生 16 位结果,而字操作数将产生 32 位结果,结果 存放在 W 寄存器阵列的指定寄存器中。
N-1
N-1
2
– 1
32767 0x7FFF),包括 0 在内。
FFFF)。
1-N
)。对于 16 位小数, Q15
-10
2.6.2 数据累加器和加法器 / 减法器
数据累加器包含一个 40 位加法器 / 减法器,它带有自动 符号扩展逻辑。它可以选择两个累加器 (A B)之一 作为其累加前的源累加器和累加后的目标累加器。对于 ADD LAC 指令,可选择通过桶形移位器在累加之前将 要累加或装入的数据进行换算。
2.6.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 32 bit 39)。如果 OA OB 位置 1 INTCON1
寄存器中相应的溢出陷阱允许位 (OVATE 和 OVBTE)1 的话,还可以选择用 OA OB 位产生算术警告陷 阱(见第 6.0 节 “中断控制器”)。这使得用户应用程 序能够立即采取措施,例如,校正系统增益。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 25
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
每次数据通过加法器 / 减法器,就会修改 SA SB 位, 但用户应用程序只能对它们进行清零。置 1 时,它们表 明累加器已溢出其最大范围(对于 32 位饱和是 bit 31, 而 40 位饱和是 bit 39),并发生饱和(如果饱和使能的 话)。如果没有使能饱和, SA SB 1 默认为 bit 39 溢出,以此指示产生了灾难性溢出。如果 INTCON1 寄 存器中的 COVTE 位置 1,当饱和被禁止时, SA SB 位将产生算术警告陷阱。
在状态寄存器 (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.6.3 累加器 “回写”
MAC 类指令(MPYMPY.NED EDAC 除外)可以选 择将累加器高位字 (bit 16 bit 31)的舍入形式写入 数据存储空间,前提是当前指令不对该累加器进行操 作。通过 X 总线寻址组合的 X Y 地址空间,执行回写 操作。支持以下寻址模式:
• W13,寄存器直接寻址: 非操作目标的累加器的舍入内容以 1.15 小数形式 写入 W13
• [W13]+ = 2,执行后递增的寄存器间接寻址: 非操作目标的累加器的舍入内容以 1.15 小数形式 写入 W13 指向的地址。然后 W13 递增 2 (对于字 写入)。
2.6.3.1 舍入逻辑
舍入逻辑是一个组合模块,在累加器写 (存储)过程 中执行常规的(有偏)或收敛的(无偏)舍入功能。舍 入模式由 CORCON 寄存器中 RND 位的状态决定。它 会产生一个 16 位的 1.15 数据值,该值被送到数据空间 写饱和逻辑。如果指令不指明舍入,就会存储一个截取 的 1.15 数据值,简单地丢弃低位字。
常规舍入取累加器的 bit 15,对它进行零扩展并将扩展 后的值加到 ACCxH 字 (累加器的 bit 16 bit 31)。
如果 ACCxL 字 (累加器的 bit 0 bit 15)在 0x8000 0xFFFF 之间 (包括 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.6.3.2 节 “数据空
间写饱和”)。对于 MAC 类指令,累加器回写操作将以 同样的方式进行,通过 X 总线寻址组合的 MCU X
Y)数据空间。对于此类指令,数据始终要进行舍入。
DS70318B_CN 26 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2.6.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.6.4 桶形移位寄存器
桶形移位寄存器在单个周期内可将数据算术或逻辑右移 或左移最多 16 位。源操作数可以是两个 DSP 累加器中 的任何一个或 X 总线(支持寄存器或存储器中数据的多 位移位)。
移位寄存器需要一个有符号二进制值,用来确定移位操 作的幅度 (位数)和方向。正值将操作数右移。负值则 将操作数左移。值为 0 则不改变操作数。
桶形移位寄存器为 40 位宽,于是,它为 DSP 移位操作 提供了 40 位的结果,而为 MCU 移位操作提供 16 位的 结果。来自 X 总线的数据在桶形移位寄存器中的存放方 式是:右移则数据存放在 bit 16 bit 31,左移则存放 在 bit 0 bit 15
2008 Microchip Technology Inc. 初稿 DS70318B_CN 27
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
注:
DS70318B_CN 28 初稿 2008 Microchip Technology Inc.
Loading...
+ 302 hidden pages