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.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3.0 存储器构成

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

3.1 程序地址空间

dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器件的程序存储空间可存储 4M 个指令字。可通过 24 位 值寻址这一空间,24 位值由程序执行过程中的 23 位程 序计数器 (PC)或第 3.6 节 “程序存储空间与数据存 储空间的接口”中所述的表操作或数据空间重映射得 到。
用户应用程序只能访问程序存储空间的低半地址范围
0x000000 0x7FFFFF)。使 用 TBLRD/TBLWT 指令
时,情况有所不同,这两条指令使用 TBLPAG<7> 来允 许访问配置存储空间中的配置位和器件 ID
3-1 给出了 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器件的程序存储器映射。
架构具有独立的程序和数据存储空间 / 总线。这一架构还 允许在代码执行过程中从数据空间直接访问程序存储 器。

3-1 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器件的程序存储器映射

dsPIC33FJ06GS101/102/202
GOTO 指令
复位地址
中断向量表
保留
备用向量表
用户闪存
程序存储空间
1792 指令字)
0x000000 0x000002
0X000004
0x0000FE 0x000100 0X000104 0X0001FE 0X000200
0x000FFE 0x001000
dsPIC33FJ16GS402/404/502/504
GOTO 指令
复位地址
中断向量表
保留
备用向量表
用户闪存
程序存储空间
5376 指令字)
0X000000 0X000002
0X000004
0X0000FE 0X000100 0X000104 0X0001FE 0X000200
0X002BFE 0X002C00
用户存储空间
配置存储空间
未实现
(读为 0)
保留
器件配置
寄存器
保留
DEVID (2)
保留
0X7FFFFE 0x800000
0xF7FFFE 0xF80000
0xF80017 0xF80018
0xFEFFFE 0xFF0000
0XFF0002 0xFFFFFE
用户存储空间
配置存储空间
未实现
(读为 0
保留
器件配置
寄存器
保留
DEVID (2)
保留
0X7FFFFE 0X800000
0XF7FFFE 0XF80000
0XF80017 0XF80018
0XFEFFFE
0XFF0000 0XFF0002
0XFFFFFE
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第29
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
3.1.1 程序存储器构成
程序存储空间由可字寻址的块构成。虽然它被视为 24 位 宽,但将程序存储器的每个地址视作一个低位字和一个 高位字的组合更加合理,其中高位字的高字节部分没有 实现。低位字的地址始终为偶数,而高位字的地址为奇 数 (见图 3-2)。
程序存储器地址始终在低位字处按字对齐,并且在代码 执行过程中地址将递增或递减 2。这种寻址模式与数据 存储空间寻址兼容,且为访问程序存储空间中的数据提 供了可能。

3-2 程序存储器构成

msw
地址 lsw 地址)
0x000001 0x000003
0x000005 0x000007
最高有效字
23
00000000
00000000 00000000
00000000
3.1.2 中断向量和陷阱向量
所有 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器件中 0x00000 0x000200 之间的地址空间都是保留的,用来存储硬编码的程序执 行向量。提供了一个硬件复位向量将代码执行从器件复 位时 PC 的默认值重定向到代码实际起始处。用户应用程 序可在地址 0x000000 处编写一条 GOTO 指令以将代码的 实际起始地址设置为 0x000002
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器件也具有两个中断向量表,地址分别为从 0x0000040x0000FF 0x000100 0x0001FF。这两个中断 向量表允许使用不同的中断服务程序(Interrupt Service RoutinesISR)处理器件的每个中断源。关于 中断向量表更详细的讨论,请参见第 6.1 节 “中断向量 表”。
最低有效字
PC 地址
0816
0x000000 0x000002
0x000004 0x000006
程序存储器
“虚拟”字节
(读为 0
指令宽度
DS70318B_CN 30 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3.2 数据地址空间

dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 CPU 具有独立的 16 位宽数据存储空间。使用独立的地址
发生单元 (AGU)对数据空间执行读写操作。数据存储 器映射如图 3-3 所示。
数据存储空间中的所有有效地址 (Effective AddresseEA)均为 16 位宽,并且指向数据空间内的字节。这种 构成方式使得数据空间的地址范围为 64 KB 32K 字。 数据存储空间的低半地址区 (即当 EA<15> = 0 时)用 作实现的存储地址,而高半地址区(EA<15> = 1)则 保 留为程序空间可视性(Program Space Visibility,PSV) 区域 (见第 3.6.3 节 “使用程序空间可视性读程序存储 器中的数据”)。
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器件实现最大 30 KB 的数据存储器。如果 EA 指向了该 区域以外的存储单元,则将返回一个全零的字或字节。
3.2.1 数据空间宽度
数据存储空间由可字节寻址的 16 位宽的块构成。在数 据存储器和寄存器中的数据是以16 位字为单位对齐的, 但所有数据空间 EA 都将解析为字节。每个字的低字节
Least Significant ByteLSB)部分具有偶地址,而高
字节 (Most Significant ByteMSB)部分则具有奇地 址。
3.2.2 数据存储器构成和对齐方式
为维持与 PIC 空间的使用效率, dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的指令集同时支持字和字节 操作。字节访问会在内部对按字对齐的存储空间的所有 有效地址计算进行调整。例如,对于执行后修改寄存器 间接寻址模式 [Ws++] 的结果,字节操作时,内核将其 识别为值 Ws + 1,而字操作时,内核将其识别为值 Ws + 2
使用任何 EA LSB 来确定要选取的字节,数据字节读 取将读取包含字节的整个字。选定的字节被放在数据路 径的 LSB 处。这就是说,数据存储器和寄存器被组织为 两个并行的字节宽的实体,它们共享 (字)地址译码, 但写入线独立。数据字节写操作只写入阵列或寄存器中 与字节地址匹配的那一侧。
®
MCU 器件的后向兼容性和提高数据存储
所有字访问必须按偶地址对齐。不支持不对齐的字数据 取操作,所以在混合字节和字操作时,或者从 8 MCU 代码移植时,必须要小心。如果试图进行不对齐的读或 写操作,将产生地址错误陷阱。如果在读操作时产生错 误,正在执行的指令将完成。而如果在写操作时产生错 误,指令仍将执行,但不会进行写入。无论是哪种情况 都将执行陷阱,从而允许系统和 / 或用户应用程序能够 检查地址错误发生之前的机器状态。
所有装入任何 W 寄存器的字节都将装入 W 寄存器的低 字节 (LSB), W 寄存器的高字节 (MSB)不变。
提供了一条符号扩展(SE)指令,允许用户应用程序把 8 位有符号数据转换为 16 位有符号值。或者,对于 16 位无符号数据,用户应用程序可以通过在适当地址处执 行一条零扩展 (ZE)指令清零任何 W 寄存器的 MSB
3.2.3 SFR 空间
Near 数据空间的前 2KB 存储单元 (从 0x0000 0x07FF)主要被特殊功能寄存器 (Special Function RegistersSFR)占用。 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的内核和外设模块使用这些 寄存器来控制器件的工作。
SFR 分布在受其控制的模块中,通常一个模块会使用一 SFR。大部分 SFR 空间包含未用的地址;它们读为
0
注: 不同器件的实际外设功能集和中断也有所
不同。请参见相应器件的数据表和引脚图 了解特定器件的信息。
3.2.4 NEAR 数据空间
0x0000 0x1FFF 之间的 8 KB 区域被称为 near 数 据空间。可以使用所有存储器直接寻址指令中的 13 位 绝对地址字段直接寻址这一空间中的存储单元。此外, 还可以使用 MOV 指令寻址整个数据空间,MOV 指令支持 使用 16 位地址字段的存储器直接寻址模式或使用工 作寄存器作为地址指针的间接寻址模式。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 31
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-3:带256 字节 RAM 的 dsPIC33FJ06GS101/102 器件的数据存储器映射

2 KB SFR 空间
256 字节
SRAM 空间
MSB
地址
0x0001
0x07FF
0x0801
0x087F 0x0881
0x08FF 0x0901
0x1FFF 0x2001
0x8001
16
LSBMSB
SFR 空间
X 数据 RAM(X)
Y 数据 RAM(Y)
LSB
地址
0x0000
0x07FE 0x0800
0x087E 0x0880
0x08FE 0x0900
0x1FFE
0x2000
0x8000
8 KB Near 数据
空间
可选择 映射到 程序存 储器
0xFFFF
X 数据
未实现(X
0xFFFE
DS70318B_CN 32 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-4:带1KB RAM的 dsPIC33FJ06GS202 器件的数据存储器映射

2 KB SFR 空间
1 KB
SRAM 空间
MSB
地址
0x0001
0x07FF
0x0801
0x09FF 0x0A01
0x0BFF 0x0C01
0x1FFF 0x2001
0x8001
16
LSBMSB
SFR 空间
X 数据 RAM(X)
Y 数据 RAM(Y)
LSB
地址
0x0000
0x07FE 0x0800
0x09FE 0x0A00
0x0BFE 0x0C00
0x1FFE
0x2000
0x8000
8 KB Near 数据
空间
可选择 映射到 程序存 储器
0xFFFF
X 数据
未实现(X
0xFFFE
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第33
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-5:带2 KB RAM 的 dsPIC33FJ16GS402/404/502/504 器件的数据存储器映射

2 KB SFR 空间
2 KB
SRAM 空间
MSB
地址
0x0001
0x07FF
0x0801
0x0BFF 0x0C01
0x0FFF 0x1001
0x1FFF 0x2001
0x8001
16
LSBMSB
SFR 空间
X 数据 RAM(X)
Y 数据 RAM(Y)
LSB
地址
0x0000
0x07FE 0x0800
0x0BFE 0x0C00
0x0FFE 0x1000
0x1FFE
0x2000
0x8000
8 KB Near 数据
空间
可选择 映射到 程序存 储器
0xFFFF
X 数据
未实现(X
0xFFFE
DS70318B_CN 34 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
3.2.5 X Y 数据空间
内核有两个数据空间 X Y。这些数据空间可以看作是 独立的(对于一些 DSP 指令),或者看作是统一的线性 地址范围 (对于 MCU 指令)。使用两个地址发生单元
AGU)和独立的数据总线来访问这两个数据空间。此
特性允许某些指令同时从 RAM 中取两个字,因此提高 了某些 DSP 算法的执行效率,如有限冲激响应(Finite Impulse ResponseFIR)滤波算法和快速傅立叶变换
Fast Fourier TransformFFT)算法。
X 数据空间可用于所有指令,并且支持所有寻址模式。 X 数据空间的读 / 写数据总线相互独立。所有将数据空
间视为组合的 X Y 地址空间的指令均将 X 读数据总线 作为读数据路径。X 读数据总线也可为双操作数 DSP 指 令(MAC 类)的 X 数据预取路径。
MAC 类指令(CLRED、EDAC、MAC、MOVSAC、MPY MPY.N MSC)同时使用 Y 数据空间与 X 数据空间,
从而提供两条可同时对数据进行读操作的路径。
X Y 数据空间都支持所有指令的模寻址,但要受到寻
址模式的限制。位反转寻址模式只是在写 X 数据空间时 才支持。
所有数据存储器写操作 (包括 DSP 指令中的数据存储 器写操作)均把数据空间视为组合的 X Y 地址空间。 X Y 数据空间的分界取决于具体的器件,且不能由用 户编程。
所有有效地址均为16 位宽并且指向数据空间内的字节。 因此,数据空间地址范围为 64 KB 32K 字,尽管不同 器件上实际实现的存储单元有所不同。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第35
DS70318B_CN 36 初稿 2008 Microchip Technology Inc.
3-1 CPU 内核寄存器映射
SFR 名称
WREG0 0000
WREG1 0002
WREG2 0004
WREG3 0006
WREG4 0008
WREG5 000A
WREG6 000C
WREG7 000E
WREG8 0010
WREG9 0012
WREG10 0014
WREG11 0016
WREG12 0018
WREG13 001A
WREG14 001C
WREG15 001E
SPLIM 0020
ACCAL 0022 ACCAL xxxx
ACCAH 0024 ACCAH xxxx
ACCAU 0026 ACCA<39> ACCA<39> ACCA<39> ACCA<39> ACCA<39> ACCA<39> ACCA<39> ACCA<39> ACCAU xxxx
ACCBL 0028 ACCBL xxxx
ACCBH 002A ACCBH xxxx
ACCBU 002C ACCB<39> ACCB<39> ACCB<39> ACCB<39> ACCB<39> ACCB<39> ACCB<39> ACCB<39> ACCBU xxxx
PCL 002E
PCH 0030
TBLPAG 0032
PSVPAG 0034
RCOUNT 0036
DCOUNT 0038 DCOUNT<15:0> xxxx
DOSTARTL 003A DOSTARTL<15:1> 0xxxx
DOSTARTH 003C
DOENDL 003E DOENDL<15:1> 0xxxx
DOENDH 0040
SR 0042 OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C
CORCON 0044 US EDT DL<2:0>
MODCON 0046 XMODEN YMODEN
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
工作寄存器 工作寄存器 工作寄存器 工作寄存器 工作寄存器 工作寄存器 工作寄存器 工作寄存器 工作寄存器
工作寄存器 工作寄存器 工作寄存器 工作寄存器 工作寄存器 工作寄存器 工作寄存器
堆栈指针限制寄存器
程序计数器低位字寄存器
Repeat
循环计数器寄存器
BWM<3:0> YWM<3:0> XWM<3:0> 0000
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
程序计数器高字节寄存器
表页地址指针寄存器
程序存储器可视性页地址指针寄存器
DOSTARTH<5:0> 00xx
DOENDH 00xx
SATA SATB SATDW ACCSAT IPL3 PSV RND IF
所有复 位时的
状态
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0800
xxxx
0000
0000
0000
0000
xxxx
0000
0020
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 37
3-1 CPU 内核寄存器映射 (续)
SFR 名称
XMODSRT 0048 XS<15:1> 0xxxx
XMODEND 004A XE<15:1> 1xxxx
YMODSRT 004C YS<15:1> 0xxxx
YMODEND 004E YE<15:1> 1xxxx
XBREV 0050 BREN XB<14:0> xxxx
DISICNT
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
地址
0052
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
禁止中断计数器
寄存器
所有复 位时的
状态
xxxx
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-2 dsPIC33FJ06GS101 的电平变化通知寄存器映射

文件寄存器
名称
CNEN1 0060
CNPU1 0068
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE
CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE
所有复 位时的
状态
0000
0000

3-3 dsPIC33FJ06GS102dsPIC33FJ06GS202dsPIC33FJ16GS402 dsPIC33FJ16GS502 的电平变化通知寄存器映射

文件寄存器
名称
CNEN1
CNPU1
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
CN15IE CN14IE CN13IE CN12IE CN11IE CN10IE CN9IE CN8IE CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE
0060
CN15PUE CN14PUE CN13PUE CN12PUE CN11PUE CN10PUE CN9PUE CN8PUE CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE
0068
所有复 位时的
状态
0000
0000

3-4 dsPIC33FJ16GS404 dsPIC33FJ16GS504 的电平变化通知寄存器映射

文件寄存器
名称
CNEN1
CNEN2
CNPU1
CNPU2
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
CN15IE CN14IE CN13IE CN12IE CN11IE CN10IE CN9IE CN8IE CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE
0060
0062
0068
006A
CN29IE CN28IE CN27IE CN26IE CN25IE CN24IE CN23IE CN22IE CN21IE CN20IE CN19IE CN18IE CN17IE CN16IE
CN15PUE CN14PUE CN13PUE CN12PUE CN11PUE CN10PUE CN9PUE CN8PUE CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE
CN29PUE CN28PUE CN27PUE CN26PUE CN25PUE CN24PUE CN23PUE CN22PUE CN21PUE CN20PUE CN19PUE CN18PUE CN17PUE CN16PUE
所有复 位时的
状态
0000
0000
0000
0000
DS70318B_CN 38 初稿 2008 Microchip Technology Inc.

3-5 dsPIC33FJ06GS101 器件的中断控制器寄存器映射

文件寄存器
名称
INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR
INTCON2 0082 ALTIVT DISI
IFS0 0084
IFS1 0086
IFS3 008A
IFS4 008C
IFS5 008E
IFS6 0090 ADCP1IF ADCP0IF
IFS7 0092
IEC0 0094
IEC1 0096
IEC2 0098
IEC3 009A
IEC4 009C
IEC5 009E
IEC6 00A0 ADCP1IE ADCP0IE
IEC7 00A2
IPC0 00A4
IPC1 00A6
IPC2 00A8
IPC3 00AA
IPC4 00AC
IPC5 00AE
IPC7 00B2
IPC14 00C0
IPC16 00C4
IPC23 00D2
IPC24 00D4
IPC27 00DA
IPC28 00DC
INTTREG 00E0
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
INT2EP INT1EP INT0EP 0000
ADIF U1TXIF U1RXIF SPI1IF SPI1EIF —T2IF— —T1IFOC1IF—INT0IF0000
—INT2IF — —INT1IFCNIF — MI2C1IF SI2C1IF 0000
PSEMIF 0000
—U1EIF— 0000
—PWM1IF— 0000
—PWM4IF— 0000
ADCP3IF 0000
ADIE U1TXIE U1RXIE SPI1IE SPI1EIE —T2IE— —T1IEOC1IE—INT0IE0000
—INT2IE — INT1IE CNIE MI2C1IE SI2C1IE 0000
0000
PSEMIE 0000
—U1EIE— 0000
—PWM1IE— 0000
—PWM4IE— 0000
ADCP3IE 0000
—T1IP<2:0> — OC1IP<2:0> INT0IP<2:0> 4404
—T2IP<2:0> — 4000
U1RXIP<2:0> SPI1IP<2:0> SPI1EIP<2:0> 4440
-— ADIP<2:0> U1TXIP<2:0> 0044
CNIP<2:0> MI2C1IP<2:0> SI2C1IP<2:0> 4044
INT1IP<2:0> 0004
INT2IP<2:0> 0040
PSEMIP<2:0>
U1EIP<2:0> 0400
PWM1IP<2:0> 0040
PWM4IP<2:0> 4400
ADCP1IP<2:0> ADCP0IP<2:0> 0040
ADCP3IP<2:0> 0000
—ILR<3:0>— VECNUM<6:0> 0000
所有复 位时的
状态
MATHERR ADDRERR STKERR OSCFAIL 0000
0040
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 39

3-6 dsPIC33FJ06GS102 器件的中断控制器寄存器映射

文件寄存器
名称
INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR
INTCON2 0082 ALTIVT DISI
IFS0 0084
IFS1 0086
IFS3 008A
IFS4 008C
IFS5 008E PWM2IF PWM1IF
IFS6 0090 ADCP1IF ADCP0IF
IFS7 0092
IEC0 0094
IEC1 0096
IEC3 009A
IEC4 009C
IEC5 009E PWM2IE PWM1IE
IEC6 00A0 ADCP1IE ADCP0IE
IEC7 00A2
IPC0 00A4
IPC1 00A6
IPC2 00A8
IPC3 00AA
IPC4 00AC
IPC5 00AE
IPC7 00B2
IPC14 00C0
IPC16 00C4
IPC23 00D2
IPC27 00DA
IPC28 00DC
INTTREG 00E0
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
INT2EP INT1EP INT0EP 0000
ADIF U1TXIF U1RXIF SPI1IF SPI1EIF —T2IF — —T1IFOC1IF—INT0IF0000
—INT2IF — INT1IF CNIF MI2C1IF SI2C1IF 0000
—PSEMIF— 0000
—U1EIF— 0000
0000
0000
—ADCP2IF0000
ADIE U1TXIE U1RXIE SPI1IE SPI1EIE —T2IE — —T1IEOC1IE—INT0IE0000
—INT2IE — —INT1IE CNIE —MI2C1IESI2C1IE0000
PSEMIE 0000
—U1EIE— 0000
0000
0000
—ADCP2IE0000
—T1IP<2:0> — OC1IP<2:0> INT0IP<2:0> 4404
—T2IP<2:0> — 4000
U1RXIP<2:0> SPI1IP<2:0> SPI1EIP<2:0> 4440
-— ADIP<2:0> —U1TXIP<2:0>0044
CNIP<2:0> MI2C1IP<2:0> SI2C1IP<2:0> 4044
INT1IP<2:0> 0004
INT2IP<2:0> 0040
—PSEMIP<2:0>—
U1EIP<2:0> 0040
PWM2IP<2:0> PWM1IP<2:0> 4400
ADCP1IP<2:0> ADCP0IP<2:0> 4400
ADCP2IP<2:0> 0004
—ILR<3:0> — VECNUM<6:0> 0000
— MATHERR ADDRERR STKERR OSCFAIL 0000
所有复 位时的
状态
0040
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
DS70318B_CN 40 初稿 2008 Microchip Technology Inc.

3-7 dsPIC33FJ06GS202 器件的中断控制器寄存器映射

文件寄存器
名称
INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR
INTCON2 0082 ALTIVT DISI
IFS0 0084
IFS1 0086
IFS3 008A
IFS4 008C
IFS5 008E PWM2IF PWM1IF
IFS6 0090 ADCP1IF ADCP0IF
IFS7 0092
IEC0 0094
IEC1 0096
IEC3 009A
IEC4 009C
IEC5 009E PWM2IE PWM1IE
IEC6 00A0 ADCP1IE ADCP0IE
IEC7 00A2
IPC0 00A4
IPC1 00A6
IPC2 00A8
IPC3 00AA
IPC4 00AC
IPC5 00AE
IPC7 00B2
IPC14 00C0
IPC16 00C4
IPC23 00D2
IPC25 00D6
IPC27 00DA
IPC28 00DC
IPC29 00DE
INTTREG 00E0
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
INT2EP INT1EP INT0EP 0000
ADIF U1TXIF U1RXIF SPI1IF SPI1EIF —T2IF — T1IF OC1IF IC1IF INT0IF 0000
—INT2IF — INT1IF CNIF AC1IF MI2C1IF SI2C1IF 0000
PSEMIF 0000
—U1EIF— 0000
0000
—AC2IF — 0000
ADCP6IF —ADCP2IF0000
ADIE U1TXIE U1RXIE SPI1IE SPI1EIE —T2IE — T1IE OC1IE IC1IE INT0IE 0000
—INT2IE — INT1IE CNIE AC1IE MI2C1IE SI2C1IE 0000
—PSEMIE— 0000
—U1EIE— 0000
0000
—AC2IE — 0000
—ADCP6IE — ADCP2IE 0000
—T1IP<2:0> — OC1IP<2:0> IC1IP<2:0> INT0IP<2:0> 4444
—T2IP<2:0> — 4000
U1RXIP<2:0> SPI1IP<2:0> SPI1EIP<2:0> 4440
-— ADIP<2:0> —U1TXIP<2:0>0044
CNIP<2:0> AC1IP<2:0> MI2C1IP<2:0> SI2C1IP<2:0> 4444
INT1IP<2:0> 0004
INT2IP<2:0> 0040
—PSEMIP<2:0>—
U1EIP<2:0> 0040
PWM2IP<2:0> PWM1IP<2:0> 4400
—AC2IP<2:0> — 4000
ADCP1IP<2:0> ADCP0IP<2:0> 4400
ADCP2IP<2:0> 0004
ADCP6IP<2:0> 0004
—ILR<3:0> —VECNUM<6:0>0000
所有复 位时的
状态
MATHERR ADDRERR STKERR OSCFAIL 0000
0040
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 41

3-8 dsPIC33FJ16GS402/404 器件的中断控制器寄存器映射

文件寄存器
名称
INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR
INTCON2 0082 ALTIVT DISI
IFS0 0084
IFS1 0086
IFS3 008A
IFS4 008C
IFS5 008E PWM2IF PWM1IF
IFS6 0090 ADCP1IF ADCP0IF
IFS7 0092
IEC0 0094
IEC1 0096
IEC3 009A
IEC4 009C
IEC5 009E PWM2IE PWM1IE
IEC6 00A0 ADCP1IE ADCP0IE
IEC7 00A2
IPC0 00A4
IPC1 00A6
IPC2 00A8
IPC3 00AA
IPC4 00AC
IPC5 00AE
IPC7 00B2
IPC14 00C0
IPC16 00C4
IPC23 00D2
IPC24 00D4
IPC27 00DA
IPC28 00DC
INTTREG 00E0
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
INT2EP INT1EP INT0EP 0000
ADIF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF T2IF OC2IF IC2IF T1IF OC1IF IC1IF INT0IF 0000
—INT2IF — —INT1IF CNIF MI2C1IF SI2C1IF 0000
PSEMIF 0000
—U1EIF— 0000
0000
—PWM3IF0000
ADCP3IF ADCP2IF 0000
ADIE U1TXIE U1RXIE SPI1IE SPI1EIE T3IE T2IE OC2IE IC2IE T1IE OC1IE IC1IE INT0IE 0000
—INT2IE — INT1IE CNIE MI2C1IE SI2C1IE 0000
—PSEMIE— 0000
—U1EIE— 0000
0000
—PWM3IE0000
ADCP3IE ADCP2IE 0000
—T1IP<2:0> — OC1IP<2:0> IC1IP<2:0> —INT0IP<2:0>4444
—T2IP<2:0> — OC2IP<2:0> IC2IP<2:0> 4440
U1RXIP<2:0> SPI1IP<2:0> SPI1EIP<2:0> T3IP<2:0> 4444
-— ADIP<2:0> —U1TXIP<2:0>0044
CNIP<2:0> MI2C1IP<2:0> SI2C1IP<2:0> 4044
—INT1IP<2:0>0004
INT2IP<2:0> 0040
—PSEMIP<2:0>—
U1EIP<2:0> 0040
PWM2IP<2:0> PWM1IP<2:0> -— 4400
PWM3IP<2:0> 0004
ADCP1IP<2:0> ADCP0IP<2:0> -— 4400
ADCP3IP<2:0> ADCP2IP<2:0> 0044
—ILR<3:0> —VECNUM<6:0>0000
— MATHERR ADDRERR STKERR OSCFAIL 0000
所有复 位时的
状态
0040
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
DS70318B_CN 42 初稿 2008 Microchip Technology Inc.

3-9 dsPIC33FJ16GS502 器件的中断控制器寄存器映射

文件寄存器
名称
INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR
INTCON2 0082 ALTIVT DISI
IFS0 0084
IFS1 0086
IFS3 008A
IFS4 008C
IFS5 008E PWM2IF PWM1IF
IFS6 0090 ADCP1IF ADCP0IF
IFS7 0092
IEC0 0094
IEC1 0096
IEC3 009A
IEC4 009C
IEC5 009E PWM2IE PWM1IE
IEC6 00A0 ADCP1IE ADCP0IE
IEC7 00A2
IPC0 00A4
IPC1 00A6
IPC2 00A8
IPC3 00AA
IPC4 00AC
IPC5 00AE
IPC7 00B2
IPC14 00C0
IPC16 00C4
IPC23 00D2
IPC24 00D4
IPC25 00D6
IPC26 00D8
IPC27 00DA
IPC28 00DC
IPC29 00DE
INTTREG 00E0
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
INT2EP INT1EP INT0EP 0000
ADIF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF T2IF OC2IF IC2IF T1IF OC1IF IC1IF INT0IF 0000
—INT2IF — INT1IF CNIF AC1IF MI2C1IF SI2C1IF 0000
—PSEMIF— 0000
—U1EIF— 0000
0000
AC4IF AC3IF AC2IF PWM4IF PWM3IF 0000
ADCP6IF ADCP3IF ADCP2IF 0000
ADIE U1TXIE U1RXIE SPI1IE SPI1EIE T3IE T2IE OC2IE IC2IE T1IE OC1IE IC1IE INT0IE 0000
—INT2IE — INT1IE CNIE AC1IE MI2C1IE SI2C1IE 0000
—PSEMIE— 0000
—U1EIE— 0000
0000
AC4IE AC3IE AC2IE PWM4IE PWM3IE 0000
—ADCP6IE — ADCP3IE ADCP2IE 0000
—T1IP<2:0> —OC1IP<2:0> — IC1IP<2:0> —INT0IP<2:0>4444
—T2IP<2:0> —OC2IP<2:0> — IC2IP<2:0> -— 4440
U1RXIP<2:0> SPI1IP<2:0> SPI1EIP<2:0> T3IP<2:0> 4444
-— -— ADIP<2:0> U1TXIP<2:0> 0044
CNIP<2:0> —AC1IP<2:0> — MI2C1IP<2:0> SI2C1IP<2:0> 4444
—INT1IP<2:0>0004
INT2IP<2:0> 0040
—PSEMIP<2:0>—
U1EIP<2:0> 0040
PWM2IP<2:0> PWM1IP<2:0> 4400
PWM4IP<2:0> PWM3IP<2:0> 0044
—AC2IP<2:0> — 4000
AC4IP<2:0> AC3IP<2:0> 0044
ADCP1IP<2:0> ADCP0IP<2:0> -— 4400
ADCP3IP<2:0> ADCP2IP<2:0> 0044
ADCP6IP<2:0> 0004
—ILR<3:0> — VECNUM<6:0> 0000
所有复 位时的
状态
— MATHERR ADDRERR STKERR OSCFAIL 0000
0040
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 43

3-10 dsPIC33FJ16GS504 器件的中断控制器寄存器映射

文件寄存器
名称
INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR
INTCON2 0082 ALTIVT DISI
IFS0 0084
IFS1 0086
IFS3 008A
IFS4 008C
IFS5 008E PWM2IF PWM1IF
IFS6 0090 ADCP1IF ADCP0IF
IFS7 0092
IEC0 0094
IEC1 0096
IEC3 009A
IEC4 009C
IEC5 009E PWM2IE PWM1IE
IEC6 00A0 ADCP1IE ADCP0IE
IEC7 00A2
IPC0 00A4
IPC1 00A6
IPC2 00A8
IPC3 00AA
IPC4 00AC
IPC5 00AE
IPC7 00B2
IPC14 00C0
IPC16 00C4
IPC23 00D2
IPC24 00D4
IPC25 00D6
IPC26 00D8
IPC27 00DA
IPC28 00DC
IPC29 00DE
INTTREG 00E0
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
INT2EP INT1EP INT0EP 0000
ADIF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF T2IF OC2IF IC2IF T1IF OC1IF IC1IF INT0IF 0000
—INT2IF — INT1IF CNIF AC1IF MI2C1IF SI2C1IF 0000
—PSEMIF— 0000
—U1EIF— 0000
0000
AC4IF AC3IF AC2IF PWM4IF PWM3IF 0000
ADCP6IF ADCP5IF ADCP4IF ADCP3IF ADCP2IF 0000
ADIE U1TXIE U1RXIE SPI1IE SPI1EIE T3IE T2IE OC2IE IC2IE T1IE OC1IE IC1IE INT0IE 0000
—INT2IE — INT1IE CNIE AC1IE MI2C1IE SI2C1IE 0000
—PSEMIE— 0000
—U1EIE— 0000
0000
AC4IE AC3IE AC2IE PWM4IE PWM3IE 0000
ADCP6IE ADCP5IE ADCP4IE ADCP3IE ADCP2IE 0000
—T1IP<2:0> —OC1IP<2:0> — IC1IP<2:0> —INT0IP<2:0>4444
—T2IP<2:0> —OC2IP<2:0> — IC2IP<2:0> 4440
U1RXIP<2:0> SPI1IP<2:0> SPI1EIP<2:0> T3IP<2:0> 4444
-— ADIP<2:0> U1TXIP<2:0> 0044
CNIP<2:0> —AC1IP<2:0> — MI2C1IP<2:0> SI2C1IP<2:0> 4444
—INT1IP<2:0>0004
INT2IP<2:0> 0040
—PSEMIP<2:0>—
U1EIP<2:0> 0040
PWM2IP<2:0> PWM1IP<2:0> 4400
PWM4IP<2:0> PWM3IP<2:0> 0044
—AC2IP<2:0> — 4000
AC4IP<2:0> AC3IP<2:0> 0440
ADCP1IP<2:0> ADCP0IP<2:0> 4400
ADCP5IP<2:0> ADCP4IP<2:0> ADCP3IP<2:0> ADCP2IP<2:0> 4444
ADCP6IP<2:0> 0004
—ILR<3:0> — VECNUM<6:0> 0000
— MATHERR ADDRERR STKERR OSCFAIL 0000
所有复 位时的
状态
0040
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
DS70318B_CN 44 初稿 2008 Microchip Technology Inc.

3-11 dsPIC33FJ06GS101 dsPIC33FJ06GSX02 的定时器寄存器映射

SFR 名称 SFR 地址
TMR1 0100
PR1
T1CON
TMR2
PR2
T2CON
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
0102
0104
0106
010C
0110
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Timer1
寄存器
周期寄存器
TON
TON
TSIDL
TSIDL
寄存器
Timer2
周期寄存器

3-12 dsPIC33FJ16GSX02 dsPIC33FJ16GSX04 的定时器寄存器映射

SFR 名称 SFR 地址
TMR1 0100
PR1
T1CON
TMR2
TMR3HLD
TMR3
PR2
PR3
T2CON
T3CON
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
0102
0104
0106
0108
010A
010C
010E
0110
0112
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Timer1
寄存器
周期寄存器
TON
TON
TON
TSIDL
TSIDL
TSIDL
Timer2
寄存器
保持寄存器 (仅适用于32位定时器操作)
Timer3
寄存器
Timer3
周期寄存器
周期寄存器
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
所有复 位时的
状态
xxxx
1
TGATE TCKPS<1:0>
2
TGATE TCKPS<1:0>
1
TGATE TCKPS<1:0>
2
3
TGATE TCKPS<1:0> T32
TGATE TCKPS<1:0>
TSYNC TCS
TSYNC TCS
TCS
TCS
TCS
FFFF
0000
xxxx
FFFF
0000
所有复 位时的
状态
xxxx
FFFF
0000
xxxx
xxxx
xxxx
FFFF
FFFF
0000
0000

3-13 dsPIC33FJ06GS202 的输入捕捉寄存器映射

SFR 名称 SFR 地址
IC1BUF 0140
IC1CON 0142
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ICSIDL
输入捕捉1寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
所有复 位时的
状态
xxxx
0000
2008 Microchip Technology Inc. 初稿 DS70318B_CN 45

3-14 dsPIC33FJ16GSX02 dsPIC33FJ16GSX04 的输入捕捉寄存器映射

SFR 名称 SFR 地址
IC1BUF 0140
IC1CON 0142
IC2BUF 0144
IC2CON 0146
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
输入捕捉1寄存器
ICSIDL
ICSIDL
输入捕捉2寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
所有复 位时的
状态
xxxx
0000
xxxx
0000
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-15 dsPIC33FJ06GS101 dsPIC33FJ06GSX02 的输出比较寄存器映射

SFR 名称 SFR 地址
OC1RS 0180
OC1R 0182
OC1CON 0184
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
OCSIDL
输出比较1辅助寄存器
输出比较1寄存器
OCFLT OCTSEL OCM<2:0>
所有复位 时的状态
xxxx
xxxx
0000

3-16 dsPIC33FJ16GSX02 dsPIC33FJ06GSX04 的输出比较寄存器映射

SFR 名称
OC1RS 0180
OC1R 0182
OC1CON 0184
OC2RS 0186
OC2R 0188
OC2CON 018A
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
OCSIDL
OCSIDL
输出比较1辅助寄存器
输出比较1寄存器
OCFLT OCTSEL OCM<2:0> 0000
输出比较2辅助寄存器
输出比较2寄存器
OCFLT OCTSEL OCM<2:0> 0000
所有复 位时的
状态
xxxx
xxxx
xxxx
xxxxx
DS70318B_CN 46 初稿 2008 Microchip Technology Inc.

3-17:高PWM 模块寄存器映射

文件寄存器名称地址
PTCON
PTCON2
PTPER
SEVTCMP
MDC
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
0400 PTEN PTSIDL SESTAT SEIEN EIPU SYNCPOL SYNCOEN SYNCEN SYNCSRC<1:0> SEVTPS<3:0> 0000
0402 —PCLKDIV<2:0>0000
0404 PTPER<15:0> FFF8
0406 SEVTCMP<15:3> 0000
040A MDC<15:0> 0000
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
偏移

3-18:高PWM 发生器 1 寄存器映射

文件寄存器名称地址
PWMCON1
IOCON1
FCLCON1
PDC1
PHASE1
DTR1
ALTDTR1
SDC1
SPHASE1
TRIG1
TRGCON1
STRIG1
PWMCAP1
LEBCON1
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
0420 FLTSTAT CLSTAT TRGSTAT FLTIEN CLIEN TRGIEN ITB MDCS DTC<1:0> CAM XPRES IUE 0000
0422 PENH PENL POLH POLL PMOD<1:0> OVRENH OVRENL OVRDAT<1:0> FLTDAT<1:0> CLDAT<1:0> SWAP OSYNC 0000
0424 IFLTMOD CLSRC<4:0> CLPOL CLMOD FLTSRC<4:0> FLTPOL FLTMOD<1:0> 0000
0426 PDC1<15:0> 0000
0428 PHASE1<15:0> 0000
042A DTR1<13:0> 0000
042C ALTDTR1<13:0> 0000
042E SDC1<15:0> 0000
0430 SPHASE1<15:0> 0000
0432 TRGCMP<15:3> 0000
0434 TRGDIV<3:0> —DTM—TRGSTRT<5:0>0000
0436 STRGCMP<15:3> 0000
0438 PWMCAP1<15:3> 0000
043A PHR PHF PLR PLF FLTLEBEN CLLEBEN LEB<9:3> 0000
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
偏移
所有复 位时的
状态
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 47

3-19:仅dsPIC33FJ06GS102/202 和 dsPIC33FJ16GSX02/X04 器件的高速 PWM 发生器 2 寄存器映射

文件寄存器名称地址
PWMCON2
IOCON2
FCLCON2
PDC2
PHASE2
DTR2
ALTDTR2
SDC2
SPHASE2
TRIG2
TRGCON2
STRIG2
PWMCAP2
LEBCON2
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
0440 FLTSTAT CLSTAT TRGSTAT FLTIEN CLIEN TRGIEN ITB MDCS DTC<1:0> CAM XPRES IUE 0000
0442 PENH PENL POLH POLL PMOD<1:0> OVRENH OVRENL OVRDAT<1:0> FLTDAT<1:0> CLDAT<1:0> SWAP OSYNC 0000
0444 IFLTMOD CLSRC<4:0> CLPOL CLMOD FLTSRC<4:0> FLTPOL FLTMOD<1:0> 0000
0446 PDC2<15:0> 0000
0448 PHASE2<15:0> 0000
044A DTR2<13:0> 0000
044C ALTDTR2<13:0> 0000
044E SDC2<15:0> 0000
0450 SPHASE2<15:0> 0000
0452 TRGCMP<15:3> 0000
0454 TRGDIV<3:0> —DTM—TRGSTRT<5:0>0000
0456 STRGCMP<15:3> 0000
0458 PWMCAP2<15:3> 0000
045A PHR PHF PLR PLF FLTLEBEN CLLEBEN LEB<9:3> 0000
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
偏移
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
DS70318B_CN 48 初稿 2008 Microchip Technology Inc.

3-20:仅dsPIC33FJ16GSX02/X04 器件的高速 PWM 发生器 3 寄存器映射

文件寄存器名称地址
PWMCON3
IOCON3
FCLCON3
PDC3
PHASE3
DTR3
ALTDTR3
SDC3
SPHASE3
TRIG3
TRGCON3
STRIG3
PWMCAP3
LEBCON3
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
0460 FLTSTAT CLSTAT TRGSTAT FLTIEN CLIEN TRGIEN ITB MDCS DTC<1:0> CAM XPRES IUE 0000
0462 PENH PENL POLH POLL PMOD<1:0> OVRENH OVRENL OVRDAT<1:0> FLTDAT<1:0> CLDAT<1:0> SWAP OSYNC 0000
0464 IFLTMOD CLSRC<4:0> CLPOL CLMOD FLTSRC<4:0> FLTPOL FLTMOD<1:0> 0000
0466 PDC3<15:0> 0000
0468 PHASE3<15:0> 0000
046C DTR3<13:0> 0000
046C ALTDTR3<13:0> 0000
046E SDC3<15:0> 0000
0470 SPHASE3<15:0> 0000
0472 TRGCMP<15:3> 0000
0474 TRGDIV<3:0> —DTM—TRGSTRT<5:0>0000
0476 STRGCMP<15:3> 0000
0478 PWMCAP3<15:3> 0000
047A PHR PHF PLR PLF FLTLEBEN CLLEBEN LEB<9:3> 0000
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
偏移
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 49

3-21:仅dsPIC33FJ06GS101 和 dsPIC33FJ16GS50X 器件的高速 PWM 发生器 4 寄存器映射

文件寄存器名称地址
PWMCON4
IOCON4
FCLCON4
PDC4
PHASE4
DTR4
ALTDTR4
SDC4
SPHASE4
TRIG4
TRGCON4
STRIG4
PWMCAP4
LEBCON4
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
0480 FLTSTAT CLSTAT TRGSTAT FLTIEN CLIEN TRGIEN ITB MDCS DTC<1:0> CAM XPRES IUE 0000
0482 PENH PENL POLH POLL PMOD<1:0> OVRENH OVRENL OVRDAT<1:0> FLTDAT<1:0> CLDAT<1:0> SWAP OSYNC 0000
0484 IFLTMOD CLSRC<4:0> CLPOL CLMOD FLTSRC<4:0> FLTPOL FLTMOD<1:0> 0000
0486 PDC4<15:0> 0000
0488 PHASE4<15:0> 0000
048A DTR4<13:0> 0000
048A ALTDTR4<13:0> 0000
048E SDC4<15:0> 0000
0490 SPHASE4<15:0> 0000
0492 TRGCMP<15:3> 0000
0494 TRGDIV<3:0> —DTM—TRGSTRT<5:0>0000
0496 STRGCMP<15:3> 0000
0498 PWMCAP4<15:3> 0000
049A PHR PHF PLR PLF FLTLEBEN CLLEBEN LEB<9:3> 0000
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
偏移
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-22 I2C1 寄存器映射

SFR 名称
I2C1RCV 0200
I2C1TRN 0202
I2C1BRG 0204
I2C1CON 0206 I2CEN I2CSIDL SCLREL IPMIEN A10M DISSLW SMEN GCEN STREN ACKDT ACKEN RCEN PEN RSEN SEN
I2C1STAT 0208 ACKSTAT TRSTAT BCL GCSTAT ADD10 IWCOL I2COV D_A P S R_W RBF TBF
I2C1ADD 020A
I2C1MSK 020C AMSK<9:0> 0000
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
接收寄存器
发送寄存器
波特率发生器寄存器
地址寄存器
所有复位 时的状态
0000
00FF
0000
1000
0000
0000
DS70318B_CN 50 初稿 2008 Microchip Technology Inc.

3-23 UART1 寄存器映射

SFR 名称
U1MODE 0220 UARTEN USIDL IREN RTSMD UEN1 UEN0 WAKE LPBACK ABAUD URXINV BRGH PDSEL<1:0> STSEL
U1STA 0222 UTXISEL1 UTXINV UTXISEL0 UTXBRK UTXEN UTXBF TRMT URXISEL<1:0> ADDEN RIDLE PERR FERR OERR URXDA
U1TXREG 0224
U1RXREG 0226
U1BRG 0228
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
地址
Bit 15Bit 14Bit 13Bit 12Bit 11Bit 10Bit 9Bit 8Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
UART
发送寄存器
UART
接收寄存器
波特率发生器预分频比
所有复 位时的
状态
0000
0110
xxxx
0000
0000

3-24 SPI1 寄存器映射

SFR 名称
SPI1STAT 0240 SPIEN SPISIDL —SPIROV— —SPITBFSPIRBF
SPI1CON1 0242 DISSCK DISSDO MODE16 SMP CKE SSEN CKP MSTEN SPRE<2:0> PPRE<1:0>
SPI1CON2 0244 FRMEN SPIFSD FRMPOL FRMDLY
SPI1BUF 0248
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
SPI1
发送和接收缓冲寄存器
所有复 位时的
0000
0000
0000
0000

3-25:仅dsPIC33FJ06GS101 器件的高速 10 ADC 寄存器映射

SFR
SFR 名称
ADCON 0300 ADON
ADPCFG 0302
ADSTAT 0306
ADBASE 0308 ADBASE<15:1>
ADCPC0 030A IRQEN1 PEND1 SWTRG1 TRGSRC1<4:0> IRQEN0 PEND0 SWTRG0 TRGSRC0<4:0> 0000
ADCPC1 030C IRQEN3 PEND3 SWTRG3 TRGSRC3<4:0>
ADCBUF0 0320
ADCBUF1 0322
ADCBUF2 0324
ADCBUF3 0326
ADCBUF6 032C
ADCBUF7 032E
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
ADSIDL SLOWCLK —GSWTRG— FORM EIE ORDER SEQSAMP ASYNCSAMP ADCS<2:0> 0000
PCFG7 PCFG6
ADC 数据缓冲区 0
ADC 数据缓冲区 1
ADC 数据缓冲区 2
ADC 数据缓冲区 3
ADC 数据缓冲区 6
ADC 数据缓冲区 7
PCFG3 PCFG2 PCFG1 PCFG0 0000
P3RDY P1RDY P0RDY 0000
所有复 位时的 状态
0000
0000
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
状态
2008 Microchip Technology Inc. 初稿 DS70318B_CN 51

3-26:仅dsPIC33FJ06GS102 器件的高速 10 位 ADC 寄存器映射

SFR
SFR 名称
ADCON 0300 ADON
ADPCFG 0302
ADSTAT 0306
ADBASE 0308 ADBASE<15:1>
ADCPC0 030A IRQEN1 PEND1 SWTRG1 TRGSRC1<4:0> IRQEN0 PEND0 SWTRG0 TRGSRC0<4:0> 0000
ADCPC1 030C
ADCBUF0 0320
ADCBUF1 0322
ADCBUF2 0324
ADCBUF3 0326
ADCBUF4 0328
ADCBUF5 032A
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
—ADSIDLSLOWCLK—GSWTRG—FORM
ADC 数据缓冲区 0 ADC 数据缓冲区 1 ADC 数据缓冲区 2 ADC 数据缓冲区 3 ADC 数据缓冲区 4 ADC 数据缓冲区 5
EIE
ORDER SEQSAMP ASYNCSAMP ADCS<2:0> 0003
PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 0000
P2RDY P1RDY P0RDY 0000
IRQEN2 PEND2 SWTRG2 TRGSRC2<4:0> 0000
所有复 位时的 状态
0000
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-27:仅dsPIC33FJ06GS202 器件的高速 10 位 ADC 寄存器映射

SFR
SFR 名称
ADCON 0300 ADON
ADPCFG 0302
ADSTAT 0306
ADBASE 0308 ADBASE<15:1>
ADCPC0 030A IRQEN1 PEND1 SWTRG1 TRGSRC1<4:0> IRQEN0 PEND0 SWTRG0 TRGSRC0<4:0> 0000
ADCPC1 030C
ADCPC3 0310
ADCBUF0 0320
ADCBUF1 0322
ADCBUF2 0324
ADCBUF3 0326
ADCBUF4 0328
ADCBUF5 032A
ADCBUF12 0338
ADCBUF13 033A
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
—ADSIDLSLOWCLK—GSWTRG—FORM
ADC 数据缓冲区 0 ADC 数据缓冲区 1 ADC 数据缓冲区 2 ADC 数据缓冲区 3 ADC 数据缓冲区 4
ADC 数据缓冲区 5 ADC 数据缓冲区 12 ADC 数据缓冲区 13
EIE
ORDER SEQSAMP ASYNCSAMP ADCS<2:0> 0003
PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 0000
P6RDY
IRQEN2 PEND2 SWTRG2 TRGSRC2<4:0> 0000
IRQEN6 PEND6 SWTRG6 TRGSRC6<4:0> 0000
P2RDY P1RDY P0RDY 0000
所有复 位时的 状态
0000
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
DS70318B_CN 52 初稿 2008 Microchip Technology Inc.

3-28:仅dsPIC33FJ16GS402/404 器件的高速 10 位 ADC 寄存器映射

SFR
SFR 名称
ADCON 0300 ADON
ADPCFG 0302
ADSTAT 0306
ADBASE 0308 ADBASE<15:1>
ADCPC0 030A IRQEN1 PEND1 SWTRG1 TRGSRC1<4:0> IRQEN0 PEND0 SWTRG0 TRGSRC0<4:0> 0000
ADCPC1 030C IRQEN3 PEND3 SWTRG3 TRGSRC3<4:0> IRQEN2 PEND2 SWTRG2 TRGSRC2<4:0> 0000
ADCBUF0 0320
ADCBUF1 0322
ADCBUF2 0324
ADCBUF3 0326
ADCBUF4 0328
ADCBUF5 032A
ADCBUF6 032C
ADCBUF7 032E
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
—ADSIDLSLOWCLK—GSWTRG—FORM
ADC 数据缓冲区 0
ADC 数据缓冲区 1
ADC 数据缓冲区 2
ADC 数据缓冲区 3
ADC 数据缓冲区 4
ADC 数据缓冲区 5
ADC 数据缓冲区 6
ADC 数据缓冲区 7
EIE
ORDER SEQSAMP ASYNCSAMP ADCS<2:0> 0003
PCFG7 PCFG6 PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 0000
P3RDY P2RDY P1RDY P0RDY 0000
所有复 位时的 状态
0000
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 53

3-29:仅dsPIC33FJ16GS502 器件的高速 10 位 ADC 寄存器映射

SFR
SFR 名称
ADCON 0300 ADON
ADPCFG 0302
ADSTAT 0306
ADBASE 0308 ADBASE<15:1>
ADCPC0 030A IRQEN1 PEND1 SWTRG1 TRGSRC1<4:0> IRQEN0 PEND0 SWTRG0 TRGSRC0<4:0> 0000
ADCPC1 030C IRQEN3 PEND3 SWTRG3 TRGSRC3<4:0> IRQEN2 PEND2 SWTRG2 TRGSRC2<4:0> 0000
ADCPC3 0310
ADCBUF0 0320
ADCBUF1 0322
ADCBUF2 0324
ADCBUF3 0326
ADCBUF4 0328
ADCBUF5 032A
ADCBUF6 032C
ADCBUF7 032E
ADCBUF12 0338
ADCBUF13 033A
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
ADSIDL SLOWCLK —GSWTRG—FORM
ADC 数据缓冲区 0 ADC 数据缓冲区 1 ADC 数据缓冲区 2 ADC 数据缓冲区 3 ADC 数据缓冲区 4 ADC 数据缓冲区 5 ADC 数据缓冲区 6
ADC 数据缓冲区 7 ADC 数据缓冲区 12 ADC 数据缓冲区 13
EIE
ORDER SEQSAMP ASYNCSAMP ADCS<2:0> 0003
PCFG7 PCFG6 PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 0000
P6RDY
IRQEN6 PEND6 SWTRG6 TRGSRC6<4:0> 0000
P3RDY P2RDY P1RDY P0RDY 0000
所有复 位时的 状态
0000
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
DS70318B_CN 54 初稿 2008 Microchip Technology Inc.

3-30:仅dsPIC33FJ16GS504 器件的高速 10 位 ADC 寄存器映射

SFR
SFR 名称
ADCON 0300 ADON
ADPCFG 0302
ADSTAT 0306
ADBASE 0308 ADBASE<15:1>
ADCPC0 030A IRQEN1 PEND1 SWTRG1 TRGSRC1<4:0> IRQEN0 PEND0 SWTRG0 TRGSRC0<4:0> 0000
ADCPC1 030C IRQEN3 PEND3 SWTRG3 TRGSRC3<4:0> IRQEN2 PEND2 SWTRG2 TRGSRC2<4:0> 0000
ADCPC2 030E IRQEN5 PEND5 SWTRG5 TRGSRC5<4:0> IRQEN4 PEND4 SWTRG4 TRGSRC4<4:0> 0000
ADCPC3 0310
ADCBUF0 0320
ADCBUF1 0322
ADCBUF2 0324
ADCBUF3 0326
ADCBUF4 0328
ADCBUF5 032A
ADCBUF6 032C
ADCBUF7 032E
ADCBUF8 0330
ADCBUF9 0332
ADCBUF10 0334
ADCBUF11 0336
ADCBUF12 0338
ADCBUF13 033A
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
—ADSIDLSLOWCLK—GSWTRG— FORM EIE ORDER SEQSAMP ASYNCSAMP ADCS<2:0> 0003
PCFG11 PCFG10 PCFG9 PCFG8 PCFG7 PCFG6 PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 0000
P6RDY P5RDY P4RDY P3RDY P2RDY P1RDY P0RDY 0000
IRQEN6 PEND6 SWTRG6 TRGSRC6<4:0> 0000
ADC 数据缓冲区 0
ADC 数据缓冲区 1
ADC 数据缓冲区 2
ADC 数据缓冲区 3
ADC 数据缓冲区 4
ADC 数据缓冲区 5
ADC 数据缓冲区 6
ADC 数据缓冲区 7
ADC 数据缓冲区 8
ADC 数据缓冲区 9
ADC 数据缓冲区 10
ADC 数据缓冲区 11
ADC 数据缓冲区 12
ADC 数据缓冲区 13
所有复 位时的 状态
0000
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 55

3-31:仅dsPIC33FJ06GS202 器件的模拟比较器控制寄存器映射

文件寄存器
名称
CMPCON1 0540 CMPON
CMPDAC1 0542
CMPCON2 0544 CMPON
CMPDAC2 0546
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
—CMPSIDL— DACOE INSEL<1:0> EXTREF CMPSTAT CMPPOL RANGE 0000
—CMREF<9:0>0000
—CMPSIDL— DACOE INSEL<1:0> EXTREF CMPSTAT CMPPOL RANGE 0000
—CMREF<9:0>0000
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-32:仅dsPIC33FJ16GS502/504 器件的模拟比较器控制寄存器映射

文件寄存器
名称
CMPCON1 0540 CMPON
CMPDAC1 0542
CMPCON2 0544 CMPON
CMPDAC2 0546
CMPCON3 0548 CMPON
CMPDAC3 054A
CMPCON4 054C CMPON
CMPDAC4 054E
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- —CMREF<9:0>0000
- —CMREF<9:0>0000
- —CMREF<9:0>0000
—CMREF<9:0>0000
—CMPSIDL— DACOE INSEL<1:0> EXTREF CMPSTAT CMPPOL RANGE 0000
—CMPSIDL— DACOE INSEL<1:0> EXTREF CMPSTAT CMPPOL RANGE 0000
—CMPSIDL— DACOE INSEL<1:0> EXTREF CMPSTAT CMPPOL RANGE 0000
—CMPSIDL— DACOE INSEL<1:0> EXTREF CMPSTAT CMPPOL RANGE 0000
所有复 位时的
状态
DS70318B_CN 56 初稿 2008 Microchip Technology Inc.

3-33 外设引脚选择输入寄存器映射

SFR
SFR 名称
RPINR0 0680
RPINR1 0682
RPINR2 0684
RPINR3 0686
RPINR7 068E
RPINR11 0696
RPINR18 06A4
RPINR20 06A8
RPINR21 06AA
RPINR29 06BA
RPINR30 06BC
RPINR31 06BE
RPINR32 06C0
RPINR33 06C2
RPINR34 06C4
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
INT1R<5:0>
T1CKR<5:0>
T3CKR<5:0>
IC2R<5:0>
U1CTSR<5:0>
SCK1R<5:0>
FLT1R<5:0>
FLT3R<5:0>
FLT5R<5:0>
FLT7R<5:0>
SYNCI1R<5:0>
INT2R<5:0>
T2CKR<5:0>
IC1R<5:0>
OCFAR<5:0>
U1RXR<5:0>
SDI1R<5:0>
SS1R<5:0>
FLT2R<5:0>
FLT4R<5:0>
FLT6R<5:0>
FLT8R<5:0>
SYNCI2R<5:0>
所有复 位时的
状态
3F00
003F
0000
3F3F
3F3F
3F3F
003F
3F3F
0000
3F00
3F3F
3F3F
3F3F
3F3F
3F3F

3-34 dsPIC33FJ06GS101 器件的外设引脚选择输出寄存器映射

文件寄存
器名称
RPOR0 06D0 RP1R<5:0> —RP0R<5:0>0000
RPOR1 06D2
RPOR2 06D4
RPOR3 06D6
RPOR16 06F0
RPOR17 06F2
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
RP3R<5:0> —RP2R<5:0>0000
RP5R<5:0> —RP4R<5:0>0000
RP7R<5:0> —RP6R<5:0>0000
RP33<5:0> RP32<5:0> 0000
RP35<5:0> RP34<5:0> 0000
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
2008 Microchip Technology Inc. 初稿 DS70318B_CN 57

3-35 dsPIC33FJ06GS102dsPIC33FJ06GS202dsPIC33FJ16GS402 dsPIC33FJ16GS502 器件的外设引脚选择输出寄存器映射

文件寄存器
名称
RPOR0 06D0 RP1R<5:0> RP0R<5:0> 0000
RPOR1 06D2
RPOR2 06D4
RPOR3 06D6
RPOR4 06D8
RPOR5 06DA
RPOR6 06DC
RPOR7 06DE
RPOR16 06F0
RPOR17 06F2
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
RP3R<5:0> —RP2R<5:0>0000
RP5R<5:0> —RP4R<5:0>0000
RP7R<5:0> —RP6R<5:0>0000
RP9R<5:0> —RP8R<5:0>0000
—RP11R<5:0>— RP10R<5:0> 0000
RP13R<5:0> RP12R<5:0> 0000
RP15R<5:0> RP14R<5:0> 0000
RP33<5:0> RP32<5:0> 0000
RP35<5:0> RP34<5:0> 0000
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-36 dsPIC33FJ16GS404 dsPIC33FJ16GS504 器件的外设引脚选择输出寄存器映射

文件寄存器
名称
RPOR0 06D0 RP1R<5:0> RP0R<5:0> 0000
RPOR1 06D2
RPOR2 06D4
RPOR3 06D6
RPOR4 06D8
RPOR5 06DA
RPOR6 06DC
RPOR7 06DE
RPOR8 06E0
RPOR9 06E2
RPOR10 06E4
RPOR11 06E6
RPOR12 06E8
RPOR13 06EA
RPOR14 06EC
RPOR16 06F0
RPOR17 06F2
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
RP3R<5:0> RP2R<5:0> 0000
RP5R<5:0> RP4R<5:0> 0000
RP7R<5:0> RP6R<5:0> 0000
RP9R<5:0> RP8R<5:0> 0000
—RP11R<5:0>— —RP10R<5:0>0000
RP13R<5:0> —RP12R<5:0>0000
RP15R<5:0> —RP14R<5:0>0000
RP17R<5:0> —RP16R<5:0>0000
RP19R<5:0> —RP18R<5:0>0000
RP21R<5:0> —RP20R<5:0>0000
RP23R<5:0> —RP22R<5:0>0000
RP25R<5:0> —RP24R<5:0>0000
RP27R<5:0> —RP26R<5:0>0000
RP29R<5:0> —RP28R<5:0>0000
RP33<5:0> RP32<5:0> 0000
RP35<5:0> RP34<5:0> 0000
所有复 位时的
状态
DS70318B_CN 58 初稿 2008 Microchip Technology Inc.

3-37 PORTA 寄存器映射

SFR
SFR 名称
TRISA 02C0
PORTA 02C2
LATA 02C4
ODCA 02C6
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
ODCA4 ODCA3 ODCA2 ODCA1 ODCA0 0000
TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 001F
RA4 RA3 RA2 RA1 RA0 xxxx
LATA4 LATA3 LATA2 LATA1 LATA0 0000
所有复位 时的状态

3-38 dsPIC33FJ06GS101 器件的 PORTB 寄存器映射

SFR
SFR 名称
TRISB 02C8
PORTB 02CA
LATB 02CC
ODCB 02CE
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
ODCB7 ODCB6 ODCB5 ODCB4 ODCB3 ODCB2 ODCB1 ODCB0 0000
TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 00FF
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx
LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0 0000
所有复位 时的状态
3-39 dsPIC33FJ06GS102dsPIC33FJ06GS202dsPIC33FJ16GS402dsPIC33FJ16GS404dsPIC33FJ16GS502
dsPIC33FJ16GS504 器件的 PORTB 寄存器映射
SFR
TRISB 02C8 TRISB15 TRISB14 TRISB13 TRISB12 TRISB11 TRISB10 TRISB9 TRISB8 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 FFFF
PORTB 02CA RB15 RB14 RB13 RB12 RB11 RB10 RB9 RB8 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx
LAT B 0 2CC LAT B1 5 L ATB 14 L ATB1 3 L ATB1 2 L ATB11 LAT B10 L ATB9 LAT B8 LATB 7 LAT B6 L ATB5 L ATB4 LATB 3 L ATB2 L ATB1 LAT B0 0000
ODCB 02CE ODCB15 ODCB14 ODCB13 ODCB12 ODCB11 ODCB10 ODCB9 ODCB8 ODCB7 ODCB6 ODCB5 ODCB4 ODCB3 ODCB2 ODCB1 ODCB0 0000
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-40 dsPIC33FJ16GS404 dsPIC33FJ16GS504 器件的 PORTC 寄存器映射

SFR
SFR 名称
TRISC 02D0
PORTC 02D2
LATC 02D4
ODCC 02D6
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
ODCC13 ODCC12 ODCC11 ODCC10 ODCC9 ODCC8 ODCC7 ODCC6 ODCC5 ODCC4 ODCC3 ODCC2 ODCC1 ODCC0 0000
TRISC13 TRISC12 TRISC11 TRISC10 TRISC9 TRISC8 TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC0 3FFF
RC13 RC12 RC11 RC10 RC9 RC8 RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx
LATC13 LATC12 LATC11 LATC10 LATC9 LATC8 LATC7 LATC6 LATC5 LATC4 LATC3 LATC2 LATC1 LATC0 0000
所有复 位时的
状态
2008 Microchip Technology Inc. 初稿 DS70318B_CN 59

3-41 系统控制寄存器映射

SFR 名称
RCON 0740 TRAPR IOPUWR
OSCCON 0742 COSC<2:0> NOSC<2:0> CLKLOCK IOLOCK LOCK —CF — —OSWEN0300
CLKDIV 0744 ROI DOZE<2:0> DOZEN FRCDIV<2:0> PLLPOST<1:0> PLLPRE<4:0> 3040
PLLFBD 0746
REFOCON 074E ROON
OSCTUN 0748
ACLKCON 0750 ENAPLL APLLCK SELACLK
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以 16 进制表示。 注 1RCON 寄存器的复位值取决于复位类型。
SFR
地址
2OSCCON 寄存器的复位值取决于 FOSC 配置位和复位类型。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
CM VREGS EXTR SWR SWDTEN WDTO SLEEP IDLE BOR POR xxxx
PLLDIV<8:0> 0030
ROSIDL ROSEL RODIV<3:0> 0000
TUN<5:0> 0000
APSTSCLR<2:0> ASRCSEL FRCSEL 0000
所有复 位时的
状态
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
(1)
(2)

3-42 NVM 寄存器映射

文件寄存器
名称
NVMCON 0760 WR WREN WRERR —ERASE— —NVMOP<3:0>
NVMKEY 0766
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。 1: 复位值仅表示 POR 时的状态值。其他复位状态时的值取决于复位时存储器写或者擦除操作的状态。
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
NVMKEY<7:0>
所有复位 时的状态
(1)
0000
0000

3-43:仅dsPIC33FJ06GS101 dsPIC33FJ06GS102 器件的 PMD 寄存器映射

SFR
SFR 名称
PMD1 0770
PMD2 0772
PMD3 0774
PMD4 0776
PMD6 077A
PMD7 077C
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
地址
T3MD T2MD T1MD PWMMD I2C1MD —U1MD —SPI1MD — —ADCMD0000
—IC2MDIC1MD— —OC2MDOC1MD0000
CMPMD 0000
—REFOMD— 0000
PWM4MD PWM3MD PWM2MD PWM1MD 0000
CMP4MD CMP3MD CMP2MD CMP1MD 0000
所有复 位时的
状态
DS70318B_CN 60 初稿 2008 Microchip Technology Inc.

3-44:仅dsPIC33FJ06GS202 器件的 PMD 寄存器映射

SFR
Name
PMD1 0770
PMD2 0772
PMD3 0774
PMD4 0776
PMD6 077A
PMD7 077C
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Addr
T2MD T1MD PWMMD I2C1MD —U1MD —SPI1MD — —ADCMD0000
—IC1MD— —OC1MD0000
CMPMD 0000
—REFOMD— 0000
PWM2MD PWM1MD 0000
CMP2MD CMP1MD 0000

3-45:仅dsPIC33FJ16GS402 dsPIC33FJ16GS404 器件的 PMD 寄存器映射

SFR
Name
PMD1 0770
PMD2 0772
PMD3 0774
PMD4 0776
PMD6 077A
PMD7 077C
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Addr
T3MD T2MD T1MD PWMMD I2C1MD —U1MD —SPI1MD — —ADCMD0000
—IC2MDIC1MD— —OC2MDOC1MD0000
0000
—REFOMD— 0000
PWM3MD PWM2MD PWM1MD 0000
0000
All
Resets
All
Resets
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-46:仅dsPIC33FJ16GS502 dsPIC33FJ16GS504 器件的 PMD 寄存器映射

SFR
Name
PMD1 0770
PMD2 0772
PMD3 0774
PMD4 0776
PMD6 077A
PMD7 077C
图注: x = 复位时的未知值, — = 未实现,读为 0。复位值以十六进制表示。
SFR
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Addr
T3MD T2MD T1MD PWMMD I2C1MD —U1MD —SPI1MD — —ADCMD0000
—IC2MDIC1MD— —OC2MDOC1MD0000
CMPMD 0000
—REFOMD— 0000
PWM4MD PWM3MD PWM2MD PWM1MD 0000
CMP4MD CMP3MD CMP2MD CMP1MD 0000
All
Resets
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
3.2.6 软件堆栈
除了用作工作寄存器外, dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器件中的 W15 寄存器也可用 作软件堆栈指针。堆栈指针总是指向第一个可用的空 字,并且从低地址向高地址方向增长。它在弹出堆栈之 前递减,而在压入堆栈之后递增,如图 3-6 所示。对于 执行任何 CALL 指令期间的 PC 压栈,在压入堆栈之前, PCMSb要进行零扩展,从而确保MSb始终是清零的。
注: 在异常处理期间,在将 PC 压入堆栈之前,
要先将 PC MSb SRL 寄存器组合在一 起。
堆栈指针限制寄存器 (SPLIM)与堆栈指针相关联,它 设置堆栈地址上边界的值。复位时 SPLIM 不被初始化。 与堆栈指针的情况一样, SPLIM<0> 被强制为 0,因为 所有的堆栈操作必须是字对齐的。
每当使用 W15 作为源指针或目标指针生成 EA 时,生成 的有效地址会与 SPLIM 中的值进行比较。如果堆栈指针
W15)的内容与 SPLIM 寄存器的内容相等,则会执行
压栈操作而不产生堆栈错误陷阱。但在随后的压栈操作 时将会产生堆栈错误陷阱。例如,当堆栈增长超过 RAM 中地址 0x2000 时,如果要想产生堆栈错误陷阱,则需 要用值 0x1FFE 来初始化 SPLIM
类似地,当堆栈指针地址小于 0x0800 时,就会产生堆 栈指针下溢 (堆栈错误)陷阱。这可防止堆栈进入特殊 功能寄存器 (SFR)空间。
在对 SPLIM 寄存器进行写操作之后,不应紧跟着使用 W15 进行间接读操作的指令。

3-6 CALL 堆栈帧

0x0000
堆栈向
000000000
高地址增长
PC<15:0>
PC<22:16>
< 空字 >
015
W15CALL 之前)
W15CALL 之后)
POP : [--W15] PUSH : [W15++]
3.2.7 数据 RAM 保护功能
dsPIC33F 产品系列支持数据 RAM 保护功能,允许使用 引导和安全代码段安全性来保护 RAM 段。 BS 的安全 RAM 段(Secure RAM Segment for BS,BSRAM)使 能时,只能从引导段闪存代码进行访问。 RAM 的安全 RAM 段(Secure RAM Segment for RAM, SSRAM)
使能时,只能从安全段闪存代码进行访问。请参见表3-1 中对 BSRAM SSRAM SFR 的概括。

3.3 指令寻址模式

3-47 给出了基本的寻址模式,这些寻址模式经过优化 可以支持各指令的具体功能。MAC 类指令中提供的寻址 模式与其他指令类型中的寻址模式有所不同。
3.3.1 文件寄存器指令
大多数文件寄存器指令使用一个 13 位地址字段 (f)来 直接寻址数据存储器中的前 8192 字节 (near 数据空 间)。大多数文件寄存器指令使用工作寄存器 W0W0 在这些指令中表示为 WREG。目标寄存器通常是同一个 文件寄存器或 WREG MUL 指令除外,它把结果写入 寄存器或寄存器对)。使用 MOV 指令能够获得更大的灵 活性,且可以访问整个数据空间。
3.3.2 MCU 指令
三操作数 MCU 指令的形式是:
操作数 3 = 操作数 1< 功能 > 操作数 2
其中,操作数 1 始终是称为 Wb 的工作寄存器(即,寻 址模式只能是寄存器直接寻址)。操作数 2 可以是一个 W 寄存器,取自数据存储器或一个 5 位立即数。结果可 以被保存在 W 寄存器或数据存储单元中。MCU 指令支 持以下寻址模式:
寄存器直接寻址
寄存器间接寻址
执行后修改的寄存器间接寻址
执行前修改的寄存器间接寻址
• 5 位或 10 位立即数寻址
注: 并非所有指令都支持上述所有的寻址模
式。各条指令可能支持这些寻址模式中的
某些模式。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 61
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-47 支持的基本寻址模式

寻址模式 说明
文件寄存器直接寻址 明确指定文件寄存器的地址。 寄存器直接寻址 直接访问寄存器的内容。 寄存器间接寻址 Wn 的内容形成有效地址 (EA)。 执行后修改的寄存器间接寻址 Wn 的内容形成 EA。然后用一个常量值来修改 (递增或递减) Wn。 执行前修改的寄存器间接寻址 先用一个有符号常量值修改 (递增或递减) Wn,再由此时的 Wn 内容形成
EA
带寄存器偏移量的寄存器间接寻址
(寄存器变址寻址)
带立即数偏移量的寄存器间接寻址 Wn 和立即数的和形成 EA
Wn Wb 的和形成 EA
3.3.3 传送指令和累加器指令
与其他指令相比,传送指令和 DSP 累加器类指令提供 了更为灵活的寻址模式。除了大多数 MCU 指令支持的 寻址模式以外,传送和累加器指令还支持带寄存器偏移 量的寄存器间接寻址模式,这也称为寄存器变址寻址模 式。
注: 对于 MOV 指令,指令中指定的寻址模式对
于源和目标 EA,可以是不同的。然而, 4Wb (寄存器偏移量)字段为源和目标 EA 所共用 (但通常只由其中之一使用)。
概括地说,传送和累加器指令支持以下寻址模式:
寄存器直接寻址
寄存器间接寻址
执行后修改的寄存器间接寻址
执行前修改的寄存器间接寻址
带寄存器偏移量的寄存器间接寻址 (变址寻址)
带立即数偏移量的寄存器间接寻址
• 8 位立即数寻址
• 16 位立即数寻址
注: 并非所有指令都支持上述所有的寻址模
式。各条指令可能支持这些寻址模式中的 某些模式。
3.3.4 MAC 指令
双源操作数 DSP 指令(CLREDEDACMACMPYMPY.NMOVSAC 和 MSC),也称为 MAC 指令,它们使用 一组简化的寻址模式,允许用户应用程序通过寄存器间 接寻址表高效地对数据指针进行操作。
双源操作数预取寄存器必须是集合 {W8, W9, W10,
W11} 的成员。对于数据读取操作,W8 和 W9 始终用于 X RAGU,而 W10 和 W11 始终用于 Y AGU。从而,产
生的有效地址(无论是在修改之前还是之后),对 于 W8W9 必须是 X 数据空间中的有效地址,对于 W10 W11 则必须是 Y 数据空间中的有效地址。
注: 带寄存器偏移量的寄存器间接寻址模式仅
可用于 W9 (在 X 空间中)和 W11 (在 Y 空间中)。
概括地说, MAC 类指令支持以下寻址模式:
寄存器间接寻址
执行后修改 (修改量为 2)的寄存器间接寻址
执行后修改 (修改量为 4)的寄存器间接寻址
执行后修改 (修改量为 6)的寄存器间接寻址
带寄存器偏移量的寄存器间接寻址 (变址寻址)
3.3.5 其他指令
除上述寻址模式外,一些指令使用各种长度的立即数常 量。例如,BRA (转移)指令使用 16 位有符号立即数常 量来直接指定转移的目标,而 DISI 指令则使用一个 14 位无符号立即数字段。在一些指令中,例如 ADD Acc, 操作数的来源或操作结果已经暗含在操作码中。某些操 作,例如 NOP,没有任何操作数。
DS70318B_CN 62 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3.4 模寻址

模寻址模式是一种使用硬件来自动支持循环数据缓冲区 的方法。目的是在执行紧密循环代码时(这在许多 DSP 算法中很典型),不需要用软件来执行数据地址边界检 查。
可以在数据空间或程序空间中进行模寻址 (因为这两种 空间的数据指针机制本质上是相同的)。X(也提供指向 程序空间的指针)和 Y 数据空间中都可支持一个循环缓 冲区。模寻址可以对任何 W 寄存器指针进行操作。然而, 最好不要将 W14 W15 用于模寻址,因为这两个寄存 器分别用作堆栈帧指针和堆栈指针。
总的来说,任何特定的循环缓冲区只能配置为单向工 作,因为根据缓冲区的方向,对缓冲区起始地址(对于 递增缓冲区)或结束地址(对于递减缓冲区)有某些限 制。
使用限制的唯一例外是那些长度为 2 的幂的缓冲区。这 些缓冲区满足起始和结束地址判据,它们可以双向工作
(即在低地址边界和高地址边界上都将进行地址边界检
查)。
3.4.1 起始地址和结束地址
模寻址机制要求指定起始和结束地址,并将它们装入 16 位模缓冲区地址寄存器:XMODSRT、 XMODEND、 YMODSRT YMODEND (见表 3-1)。
注: Y 空间模寻址的 EA 计算使用字长度的数据
(每个 EA LSb 始终清零)。
循环缓冲区的长度没有直接指定。它由相应的起始和结 束地址之差决定。循环缓冲区的最大长度为 32K
64 KB)。
3.4.2 W 地址寄存器选择
模寻址和位反转寻址控制寄存器 MODCON<15:0> 包含 使能标志以及指定 W 地址寄存器的 W 寄存器字段。
XWM YWM 字段选择将对哪些寄存器进行模寻址:
如果 XWM = 15,则禁止 XRAGUX WAGU
寻址。
如果 YWM = 15,则禁止 Y AGU 模寻址。
要进行模寻址的 X 地址空间指针 W 寄存器(XWM)由 MODCON<3:0> 确定 (见表 3-1)。 当 XWM 被设置为 除 15 之外的任何值且 XMODEN 位(MODCON<15>) 置 1 时, X 数据空间的模寻址被使能。
要进行模寻址的 Y 地址空间指针 W 寄存器(YWM)由 MODCON<7:4> 确定。当 YWM 被设置为除 15 之外的 任何值且 YMODEN 位(MODCON<14>)置 1 时, Y 数据空间的模寻址被使能。

3-7 模寻址操作示例

字节
地址
0x1100
0x1163
起始地址 = 0x1100 结束地址 = 0x1163 长度 = 0x0032
MOV #0x1100, W0 MOV W0, XMODSRT ;set modulo start address MOV #0x1163, W0 MOV W0, MODEND ;set modulo end address MOV #0x8001, W0 MOV W0, MODCON ;enable W1, X AGU for modulo
MOV #0x0000, W0 ;W0 holds buffer fill value
MOV #0x1110, W1 ;point W1 to buffer
DO AGAIN, #0x31 ;fill the 50 buffer locations MOV W0, [W1++] ;fill the next location AGAIN: INC W0, W0 ;increment the fill value
2008 Microchip Technology Inc. 初稿 DS70318B_CN 63
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
3.4.3 模寻址的应用
模寻址可以应用于与任何 W 寄存器相关的有效地址
EA)计算中。地址边界检查功能检查:
递增缓冲器的上边界地址
递减缓冲器的下边界地址
重要的是要意识到,地址边界检查功能不仅会检查地址 是否正好在边界地址上,而且会检查地址是否大于上边 界地址 (对于递增缓冲区)、是否小于下边界地址 (对 于递减缓冲区)。因此,地址变化可能会越过边界,但 仍然可以正确调整。
注: 只有在使用执行前修改或执行后修改寻址
模式来计算有效地址时,模修正有效地址 才被写回寄存器。如果使用了地址偏移量
(例如,[W7 + W2]),会进行模地址修正,
但寄存器的内容保持不变。

3.5 位反转寻址

位反转寻址模式用来简化基为 2 FFT 算法的数据重新 排序。它为 X AGU 所支持,仅限于数据写入。
地址修改量可以是常数或寄存器的内容,可视为将其位 顺序反转。源地址和目标地址仍然是正常的顺序。于是, 唯一需要反转的操作数就是地址修改量。
3.5.1 位反转寻址的实现
当满足下列条件时,使能位反转寻址模式:
• MODCON 寄存器中 BWM 位(W 寄存器选择) 的值是除 15 以外的任何值 (不能使用位反转寻址 访问堆栈)
• XBREV 寄存器中的 BREN 位置 1
使用的寻址模式是预递增或后递增的寄存器间接寻
址模式
如果位反转缓冲区的长度为 M = 2 区起始地址的最后 N 位必须为零。
XB<14:0> 是位反转地址修改量或 “中心点”,通常是 一个常数。对于 FFT 计算,其值等于 FFT 数据缓冲区 长度的一半。
注: 所有位反转 EA 的计算都使用字长度数据
(每个 EA LSb 始终清零)。为了产生兼
容(字节)地址,要相应地调整 XB 的值。
使能位反转寻址时,仅对预递增或后递增的寄存器间接 寻址、且仅对字长度数据写入,才会进行位反转寻址。 对于任何其他寻址模式或对于字节长度数据,不会进行 位反转寻址,而是生成正常的地址。在进行位反转寻址 时, W 地址指针将始终加上地址修改量 (XB),与寄 存器间接寻址模式相关的偏移量将被忽略。此外,由于 要求是字长度数据,EA 的 LSb 被忽略(且始终清零)。
注: 不应同时使能模寻址和位反转寻址。如果
应用程序试图这么做的话,对于 X WAGU, 位反转寻址将优先 (如果位反转寻址有效 的话),X WAGU 模寻址将被禁止。然而, 在 X RAGU 中,模寻址继续起作用。
如果通过将 BREN 位(XBREV<15>)置 1 使能了位反 转寻址,那么,在写 XBREV 寄存器之后,不应立即进 行要使用被指定为位反转指针的 W 寄存器的间接读操 作。
N
字节,则数据缓冲
DS70318B_CN 64 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-8 位反转地址示例

b15 b14 b13 b12
b11 b10 b9 b8
b7 b6 b5 b4
正常顺序的地址
b3 b2 b1 0
围绕二进制值的中心
左右交换位位置
b15 b14 b13 b12
b11 b10 b9 b8
b7 b6 b5 b1
中心点
b2 b3 b4
位反转地址
0
对于 16 字位反转缓冲区,XB = 0x0008

3-48 位反转地址序列 (16 项)

正常地址 位反转地址
A3 A2 A1 A0
0000 0 0000 0
0001 1 1000 8
0010 2 0100 4
0011 3 1100 12
0100 4 0010 2
0101 5 1010 10
0110 6 0110 6
0111 7 1110 14
1000 8 0001 1
1001 9 1001 9
1010 10 0101 5
1011 11 1101 13
1100 12 0011 3
1101 13 1011 11
1110 14 0111 7
1111 15 1111 15
十进制
A3 A2 A1 A0
十进制
2008 Microchip Technology Inc. 初稿 DS70318B_CN 65
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3.6 程序存储空间与数据存储空间的接口

dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的 架构采用 24 位宽的程序空间和 16 位宽的数据空间。该 架构也是一种改进型哈佛结构,这意味着数据也能存放 在程序空间内。要成功使用这种数据,在访问数据时必 须确保这两种存储空间中的信息是对齐的。
除了正常执行外, dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的架构还提供了两种可在操 作过程中访问程序空间的方法:
使用表指令访问程序空间中任意位置的各个字节或 字
将程序空间的一部分重映射到数据空间 (程序空 间可视性)
表指令允许应用程序读写小块程序存储区。这一功能使 得这种方法对于访问需要定期更新的数据表来说非常理 想。此功能也允许访问一个程序字的所有字节。重映射 方法允许应用程序访问一大块数据,但只限于读操作, 它非常适合于在一个大的静态数据表中进行查找。采用 这种方法应用程序只能访问程序字的低位字。
3.6.1 对程序空间进行寻址
由于数据空间和程序空间的地址范围分别为 16 位和 24 位宽,因此需要一个从 16 位数据寄存器创建 23 位或 24 位程序地址的方法。方法取决于所采用的接口方式。
对于表操作,使用 8 位的表页寄存器 (TBLPAG)定义 程序空间内一个 32K 字的区域。这与 16 EA 组合形 成一个完整的 24 位程序空间地址。在这种地址形式下, TBLPAG的最高位用来决定操作是发生在用户存储区中
TBLPAG<7> = 0)还是配置存储区中 (TBLPAG<7>
= 1)。
对于重映射操作,使用 8 位的程序空间可视性页寄存器
PSVPAG)定义程序空间中的 16K 字页。当 EA 的最
高位为 1 时, PSVPAG 与 EA 的低 15 位组合形成一个 23 位的程序空间地址。与表操作不同,重映射操作被严 格限制在用户存储区中。
3-49 和图3-9 显示了如何为表操作和重映射访问来从 数据 EA 生成程序 EA。本文中, P<23:0> 指程序空间 字,而 D<15:0> 指数据空间字。

3-49 程序空间地址构成

访问类型
指令访问
(代码执行)
TBLRD/TBLWT
(读 / 写字节或字)
程序空间可视性
(块重映射 / 读)
1: 在这种情况下,数据 EA<15> 始终为 1,但并不用它来计算程序空间地址。地址的 bit 15
PSVPAG<0>
用户
用户
配置
用户
访问 空间
<23> <22:16> <15> <14:1> <0>
0 PC<22:1> 0
0xx xxxx xxxx xxxx xxxx xxx0
TBLPAG<7:0>
0xxx xxxx xxxx xxxx xxxx xxxx
TBLPAG<7:0>
1xxx xxxx xxxx xxxx xxxx xxxx
0 PSVPAG<7:0>
0 xxxx xxxx xxx xxxx xxxx xxxx
程序空间地址
数据 EA<15:0>
数据 EA<15:0>
数据 EA<14:0>
(1)
DS70318B_CN 66 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

3-9 访问程序空间内数据的地址生成方式

程序计数器
表操作
程序空间可视性
(重映射)
(1)
(2)
(1)
0
1/0
0
用户 / 配置
空间选择
TBLPAG
8
选择
PSVPAG
8
23
24
1
23
EA
16
EA
15
0 程序计数器
1/0
0
字节选择
1: 程序空间地址的最低位 (LSb)始终为 0,从而确保程序空间和数据空间中的数据是字对齐的。
2: 表操作不需要字对齐。允许对配置存储空间执行表读操作。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 67
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
3.6.2 使用表指令访问程序存储器中的数据
TBLRDL TBLWTL 指令提供了直接读或写程序空间内 任何地址的低位字的方法,无需通过数据空间。 TBLRDH TBLWTH 指令是可以将一个程序空间字的高 8 位作为数据读写的唯一方法。
对于每个连续的 24 位程序字,PC 的递增量为 2。这 使 得程序存储器地址能够直接映射到数据空间地址。于 是,程序存储器可以看作是两个 16 位宽的字地址空间, 它们并排放置,具有相同的地址范围。TBLRDL
TBLWTL 访问存放低位数据字的空间,而 TBLRDH TBLWTH 则访问存有高位数据字节的空间。
提供了两条表指令来向 / 从程序空间传送字节或字(16 位)长度的数据。两条表指令都可以采用字节或字操作 的形式。
TBLRDL (表读低位字):
- 在字模式下,该指令将程序空间地址的低位字
P<15:0>)映射到数据地址 (D<15:0>
中。

3-10 使用表指令访问程序存储器

TBLPAG
02
23 15 0
0x000000
0x020000
0x030000
程序空间
- 在字节模式下,低位程序字的高字节或低字节 被映射到数据地址的低字节中。当字节选择位 为 1 时映射高字节;当字节选择位为 0 时映 射低字节。
TBLRDH (表读高位字):
- 在字模式下,该指令将程序地址的整个高位字
P<23:16>)映射到数据地址中。注意
D<15:8> (“虚拟字节”)总是为 0
- 在字节模式下,该指令将程序字的高字节或低 字节映射到数据地址的 D<7:0> 中,就如同
TBLRDL 指令。当选择高位 “虚拟”字节
(字节选择位 = 1)时,数据将始终为 0
同样地,两条表指令 TBLWTH TBLWTL 用于向程序空 间地址写入各字节或字。第 4.0 节“闪存程序存储器” 对这两条指令的详细操作进行了说明。
对于所有的表操作,要访问程序存储空间的哪个区域是 由表页寄存器(TBLPAG)决定的。TBLPAG 可寻址器 件的整个程序存储空间,包括用户应用程序空间和配置 空间。当 TBLPAG<7> = 0 时,表页位于用户存储空间 中。当 TBLPAG<7> = 1 时,表页位于配置存储空间中。
081623
00000000
00000000
00000000
00000000
0x800000
“虚拟”字节
TBLRDH.B Wn<0> = 0)
TBLRDL.B
TBLRDL.B
TBLRDL.W
表操作的地址是由 TBLPAG 寄存器定义的页中的数据 EA 决定的。 只给出了读操作的过程;也可以对用户存储区执行写操作。
Wn<0> = 1) Wn<0> = 0)
DS70318B_CN 68 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
3.6.3 使用程序空间可视性读程序存储器中 的数据
可选择将数据空间的高 32 KB 映射到程序空间中的任何 16K 字页中。这提供了通过数据空间对存储的常量数据 的透明访问,而无需使用特殊指令 (如 TBLRDL/H)。
如果数据空间 EA 的最高有效位为 1,并且程序空间可 视性使能 (通过将内核控制寄存器中的 PSV
CORCON<2>)置 1)时,就能通过数据空间访问程
序空间。由程序空间可视性页寄存器(PSVPAG)确定 要被映射到数据空间中的程序存储空间的位置。这一 8 位的寄存器定义程序空间中 256 个可能的16K 字页中的 任何一个。事实上,PSVPAG 作为程序存储地址的高 8 位,而 EA 15 位则作为地址的低位。对于每个程序存 储字,PC 都将递增 2,数据空间地址的低 15 位将直接 映射到相应程序空间地址的低 15 位。
对该区域进行数据读取的指令,需要一个额外的指令周 期,因为这类指令需要对程序存储器进行两次数据取操 作。
尽管大于或等于8000h 的每个数据空间地址直接映射到 对应的程序存储器地址 (见图 3-11),但只使用 24 位 程序字的低 16 位来存放数据。所有用来存放数据的程

3-11 程序空间可视性操作

CORCON<2> = 1 EA<15> = 1 时:
序存储单元的高 8 位都应被编程设置为 1111 1111 0000 0000,强制为一条 NOP 指令,从而避免了可能 意外执行这一区域内代码的情况。
注: 在表读 / 写期间,暂时禁止 PSV 访问。
对于使用 PSV 而又在 REPEAT 循环外执行的操作,MOVMOV.D 指令除了规定的执行时间之外,还需要一个额 外的指令周期。所有其他指令都需要在规定的执行时间 之外额外增加两个指令周期。
对于使用 PSV 而又在 REPEAT 循环内执行的操作,下 列情况,除了规定的指令执行时间之外,还需要两个额 外的指令周期:
在第一次迭代中执行的指令
在最后一次迭代中执行的指令
由于中断而退出循环之前执行的指令
中断得到处理后再次进入循环时执行的指令
REPEAT 循环的所有其他各次迭代,都允许使用 PSV 访 问数据的指令在一个周期内执行。
PSVPAG
02
PSVPAG 指定的 页中的数据被映射到 数据存储空间的高半 地址区……
程序空间
23 15 0
0x000000
0x010000
0x018000
0x800000
数据空间
PSV 区域
0x0000
0x8000
0xFFFF
数据 EA<14:0>
……EA 的低 15 位指定 PSV 区域内的确切地 址。这与实际程序空间 地址的低 15 位是完全 对应的。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 69
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
注:
DS70318B_CN 70 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

4.0 闪存程序存储器

注: 本数据手册总结了 dsPIC33FJ06GS101/
X02 dsPIC33FJ16GSX02/X04 系列器件
的特性。但是不应把本手册当作无所不包 的参考手册来使用。如需了解本数据手册 的补充信息,请参考 “dsPIC33F Family
Reference Manual”的“ Section 5. Flash Programming”(DS70191),该文档可
Microchip 网站(www.microchip.com) 下载。
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器 件包含用于存储和执行应用代码的内部闪存程序存储 器。在整个 VDD 范围内,正常操作期间,存储器都是可 读写、可擦除的。
可采用两种方式对闪存程序存储器进行编程:
在线串行编程 (ICSP™)功能
运行时自编程 (Run-Time Self-Programming
RTSP
ICSP 允许在最终的应用电路中对 dsPIC33FJ06GS101/ X02 dsPIC33FJ16GSX02/X04 器件进行串行编程。
编程首先需要两根线作为编程时钟线和编程数据线(以 下备用编程引脚对之一:PGC1/PGD1PGC2/PGD2PGC3/PGD3),还需要三根线作为电源线(V
DD)、
接地线 (VSS)和主复位线 (MCLR)。这允许用户在 生产电路板时使用未编程器件,而在产品交付之前才对 数字信号控制器进行编程,从而可以使用最新版本的固 件或者定制固件进行编程。
使用 TBLRD (表 读)和 TBLWT (表写)指令来实现 RTSP。使 用 RTSP,用户应用程序写程序存储数据时, 可以一次将 64 条指令 (192 字节)的块 (或 “行”) 或单个程序存储字写入程序存储器,也可以一次擦除 512 条指令 (1536 字节)的块 (或 “页”)。

4.1 表指令和闪存编程

闪存的编程都是用表读和表写指令实现的,与使用的编 程方法无关。这些指令允许器件在正常工作模式下从数 据存储器直接读写程序存储空间。程序存储器中 24 位 目标地址由 TBLPAG寄存器的 bit<7:0> 和表指令中指定 W 寄存器中的有效地址 (EA)组成,如图 4-1 所示。
TBLRDL TBLWTL 指令用来读写程序存储器的 bit<15:0>TBLRDL 和 TBLWTL 能以字或字节模式访问 程序存储器。
TBLRDH TBLWTH 指令用来读或写程序存储器的 bit<23:16>TBLRDH TBLWTH 同样能以字或字节模 式访问程序存储器。

4-1 表寄存器的寻址

使用 程序计数器
使用 表指令
用户/配置 空间选择
0
1/0
TBLPAG
8
寄存器
24
程序计数器
工作寄存器
24位EA
16
0
EA
字节 选择
2008 Microchip Technology Inc. 初稿 DS70318B_CN 71
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

4.2 RTSP 工作原理

dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的 闪存程序存储器阵列是由 64 条指令或 192 字节的行组成 的。 RTSP 允许用户应用程序一次擦除由 8 行(512 条 指令)组成的程序存储器页,一次编程一行或一个字。表 23-12 给出了典型的擦除和编程次数。8 行擦除页和单行 写入行都是边界对齐的,从程序存储器起始地址开始, 分别到 1536 字节边界和 192 字节边界。
程序存储器实现了保持缓冲区,它能缓冲 64 条指令的 编程数据。在实际编程操作前,必须将待写数据顺序装 入缓冲区。要装入的指令字必须总是来自一组 64 个指 令字的边界。
RTSP 编程的基本步骤是先建立一个表指针,然后执行 一系列 TBLWT 指令来装载缓冲区。通过设置 NVMCON 寄存器中的控制位来执行编程。装载总共需要 64 TBLWTL TBLWTH 指令。
由于只写缓冲区,所以所有的表写操作都是单字写操作
2 个指令周期)。编程每一行需要一个编程周期。

4.3 控制寄存器

有两个 SFR 用于读写闪存程序存储器:NVMCON
NVMKEY
NVMCON 寄存器 (寄存器 4-1)控制要擦除哪些块、
要编程的存储器类型以及编程周期的启动。
NVMKEY 是一个只写寄存器,用于写保护。要启动编程 或擦除序列,用户应用程序必须按顺序将 0x55 0xAA 写入 NVMKEY 寄存器。更多详细信息,请参见第 4.4
“编程操作”。

4.4 编程操作

RTSP 模式下,编程或擦除内部闪存需要执行完整的 编程序列。编程操作的持续时间通常为 4ms,在此期间 处理器暂停等待操作完成。将 WR 位(NVMCON<15>) 置 1 启动编程或擦除操作,当操作完成时 WR 位被自动 清零。
DS70318B_CN 72 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

寄存器 4-1 NVMCON:闪存控制寄存器

R/SO-0
(1)
WR WREN WRERR
bit 15 bit 8
R/W-0
(1)
R/W-0
(1)
U-0 U-0 U-0 U-0 U-0
U-0 R/W-0
(1)
U-0 U-0 R/W-0
ERASE —NVMOP<3:0>
(1)
R/W-0
(1)
R/W-0
(2)
(1)
R/W-0
(1)
bit 7 bit 0
图注:
SO = 只可置 1 位
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
bit 15
WR:写控制位
1 = 启动闪存编程或擦除操作。该操作是自定时的,一旦操作完成该位即由硬件清零。 0 = 编程或擦除操作完成,处于停止状态
bit 14
WREN:写使能位
1 = 使能闪存编程 / 擦除操作 0 = 禁止闪存编程 / 擦除操作
bit 13
WRERR:写序列错误标志位
1 = 试图执行不合法的编程或擦除序列,或者发生终止 (将 WR 位置 1 时自动置 1 该位) 0 = 编程或擦除操作正常完成
bit 12-7
bit 6
未实现:读为 0 ERASE:擦除 / 编程使能位
1 = 在下一条 WR 命令时执行 NVMOP<3:0> 指定的擦除操作 0 = 在下一条 WR 命令时执行 NVMOP<3:0> 指定的编程操作
bit 5-4
bit 3-0
未实现:读为 0
NVMOP<3:0>NVM 操作选择位
(2)
如果 ERASE = 1 1111 = 存储器批量擦除操作 1101 = 擦除通用段 0011 = 无操作 0010 = 存储器页擦除操作 0001 = 无操作 0000 = 擦除单个配置寄存器字节
ERASE = 0:
如果
1111 = 无操作 1101 = 无操作 0011 = 存储器字编程操作 0010 = 无操作 0001 = 存储器行编程操作 0000 = 编程单个配置寄存器字节
1: 这些位只能在 POR 时被复位。
2NVMOP<3:0> 的所有其他组合均未实现。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 73
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

寄存器 4-2 NVMKEY:非易失性存储器密钥寄存器

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
bit 15 bit 8
W-0 W-0 W-0 W-0 W-0 W-0 W-0 W-0
NVMKEY<7:0>
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
bit 15-8
bit 7-0
未实现:读为 0 NVMKEY<7:0>:密钥寄存器位 (只写)
SO = 只可置 1 位
DS70318B_CN 74 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
4.4.1 闪存程序存储器的编程算法
一次可以编程闪存程序存储器的一行。要实现该操作, 需要擦除包含该行在内的一个 8 行大小的页。一般过程 如下:
1. 读取程序存储器的 8 行内容 (512 条指令),并
存储在数据 RAM 中。
2. 用所需的新数据更新 RAM 中的程序数据。
3. 擦除程序存储器块 (见例 4-1):
a) NVMOP 位(NVMCON<3:0>)设置为
0010”,配置为块擦除操作。将 ERASENVMCON<6>)和 WRENNVMCON<14>)位置 1
b) 将要被擦除的页的起始地址写入TBLPAG
W 寄存器。 c) 0x55 写入 NVMKEY d) 0xAA 写入 NVMKEY e) WR 位(NVMCON<15>)置 1。擦除周
期开始,在擦除周期中 CPU 会暂停。当擦除
完成时, WR 位被自动清零。

4-1 擦除程序存储器页

; Set up NVMCON for block erase operation
MOV #0x4042, W0 ; MOV W0, NVMCON ; Initialize NVMCON
; Init pointer to row to be ERASED
MOV #tblpage(PROG_ADDR), W0 ; MOV W0, TBLPAG ; Initialize PM Page Boundary SFR MOV #tbloffset(PROG_ADDR), W0 ; Initialize in-page EA[15:0] pointer TBLWTL W0, [W0] ; Set base address of erase block DISI #5 ; Block all interrupts with priority <7
MOV #0x55, W0 MOV W0, NVMKEY ; Write the 55 key MOV #0xAA, W1 ; MOV W1, NVMKEY ; Write the AA key BSET NVMCON, #WR ; Start the erase sequence NOP ; Insert two NOPs after the erase NOP ; command is asserted
4. 将数据 RAM 中的前 64 条指令写入程序存储器缓 冲区 (见例 4-2)。
5. 将程序块写入闪存程序存储器: a) NVMOP 位设置为 “0001”,配置为行
编程操作。将 ERASE 位清零,将 WREN 位 置 1
b) 0x55 写入 NVMKEY c) 0xAA 写入 NVMKEY d) WR 位置 1。编程周期开始,在写周期中
CPU 会暂停。当对闪存程序存储器的写操作 完成时, WR 位被自动清零。
6. 通过将 TBLPAG 中的值递增 1,使用数据 RAM 块中下一组 64 条指令重复步骤 4 5,直到所有 512 条指令被写回到闪存程序存储器。
为防止意外操作,必须向 NVMKEY 写入写启动序列, 用于允许执行擦除或编程操作。在执行编程命令后,用 户应用程序必须等待一段编程时间,直至编程完成。紧 跟编程启动序列后面的两条指令应为 NOP,如例 4-3 所 示。
; for next 5 instructions
2008 Microchip Technology Inc. 初稿 DS70318B_CN 75
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

4-2 装载写缓冲区

; Set up NVMCON for row programming operations
MOV #0x4001, W0 ;
MOV W0, NVMCON ; Initialize NVMCON ; Set up a pointer to the first program memory location to be written ; program memory selected, and writes enabled
; Perform the TBLWT instructions to write the latches ; 0th_program_word
; 1st_program_word
; 2nd_program_word
; 63rd_program_word
MOV #0x0000, W0 ;
MOV W0, TBLPAG ; Initialize PM Page Boundary SFR
MOV #0x6000, W0 ; An example program memory address
MOV #LOW_WORD_0, W2 ;
MOV #HIGH_BYTE_0, W3 ;
TBLWTL W2, [W0] ; Write PM low word into program latch
TBLWTH W3, [W0++] ; Write PM high byte into program latch
MOV #LOW_WORD_1, W2 ;
MOV #HIGH_BYTE_1, W3 ;
TBLWTL W2, [W0] ; Write PM low word into program latch
TBLWTH W3, [W0++] ; Write PM high byte into program latch
MOV #LOW_WORD_2, W2 ;
MOV #HIGH_BYTE_2, W3 ;
TBLWTL W2, [W0] ; Write PM low word into program latch
TBLWTH W3, [W0++] ; Write PM high byte into program latch
MOV #LOW_WORD_31, W2 ;
MOV #HIGH_BYTE_31, W3 ;
TBLWTL W2, [W0] ; Write PM low word into program latch
TBLWTH W3, [W0++] ; Write PM high byte into program latch

4-3 启动编程序列

DISI #5 ; Block all interrupts with priority <7
MOV #0x55, W0
MOV W0, NVMKEY ; Write the 55 key
MOV #0xAA, W1 ;
MOV W1, NVMKEY ; Write the AA key
BSET NVMCON, #WR ; Start the erase sequence
NOP ; Insert two NOPs after the
NOP ; erase command is asserted
; for next 5 instructions
DS70318B_CN 76 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

5.0 复位

注: 本数据手册总结了
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 系列器件的特
性。但是不应把本手册当作无所不包的参 考手册来使用。如需了解本数据手册的补 充信息,请参考“dsPIC33F Family
Reference Manual”的 “Section 8. Reset”(DS70192),该文档可从
Microchip 网站 (www.microchip.com)下 载。
复位模块结合了所有复位源并控制器件的主复位信号
SYSRST。下面列出了器件的复位源:
• POR:上电复位
• BOR:欠压复位
• MCLR
• SWR:软件 RESET 指令
• WDTO:看门狗定时器复位
• CM:配置不匹配复位
• TRAPR:陷阱冲突复位
• IOPUWR:非法条件器件复位
复位模块的简化框图如图 5-1 所示。
:主复位引脚复位
- 非法操作码复位
- 未初始化的 W 寄存器复位
- 安全性复位
任何有效的复位源都将使 SYSRST
信号有效。在系统复 位时,某些与 CPU 和外设相关的寄存器被强制为已知 的复位状态,而有一些寄存器不受影响。
注: 如需了解寄存器复位状态的信息,请参见
本数据手册中特定的外设章节或第 2.0
CPU”。
所有类型的器件复位都会将RCON寄存器中相应的状态 位置 1,以表明复位类型 (见寄存器 5-1)。
POR 将清零 RCON 寄存器中除 POR 位(RCON<0>) 之外的所有位, POR 位在 POR 时置 1。用户应用程序 可在代码执行过程中的任何时间置 1 或清零任意位。 RCON 寄存器中的位仅用作状态位。用软件将某个复位 状态位置 1 不会导致器件发生复位。
RCON寄存器还包含与看门狗定时器和器件节能状态相 关的其他位。本手册的其他章节中将讨论这些位的功 能。
注: RCON 寄存器中的状态位应该在被读取后
清零,这样在器件复位后的下一个 RCON 寄存器值才有意义。

5-1 复位系统框图

RESET 指令
MCLR
WDT
模块
休眠或空闲
内部
DD
V
稳压器
陷阱冲突
非法操作码
未初始化的 W 寄存器
配置不匹配
毛刺滤波器
VDD 上升
检测
BOR
SYSRST
POR
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第77
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
寄存器 5-1 RCON:复位控制寄存器
(1)
R/W-0 R/W-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0
TRAPR IOPUWR
—CMVREGS
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-1
EXTR SWR SWDTEN
(2)
WDTO SLEEP IDLE BOR POR
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
bit 15
TRAPR:陷阱复位标志位
1 = 发生了陷阱冲突复位 0 = 未发生陷阱冲突复位
bit 14
IOPUWR:非法操作码或未初始化的 W 寄存器访问复位标志位
1 = 检测到非法操作码、非法地址模式或将未初始化的 W 寄存器用作地址指针从而导致复位 0 = 未发生非法操作码或未初始化的 W 寄存器复位
bit 13-10
bit 9
未实现:读为 0 CM:配置不匹配标志位
1 = 发生了配置不匹配复位 0 = 未发生配置不匹配复位
bit 8
VREGS:休眠模式下稳压器待机位
1 = 在休眠模式下稳压器继续工作 0 = 在休眠模式下稳压器进入待机模式
bit 7
EXTR:外部复位引脚 (MCLR
)位
1 = 发生主复位 (引脚)复位 0 = 未发生主复位 (引脚)复位
bit 6
SWR:软件复位 (指令)标志位
1 = 执行了 RESET 指令 0 = 未执行 RESET 指令
bit 5
SWDTEN:软件使能 / 禁止 WDT
(2)
1 = 使能 WDT 0 = 禁止 WDT
bit 4
WDTO:看门狗定时器超时标志位
1 = 发生了 WDT 超时 0 = 未发生 WDT 超时
bit 3
SLEEP:从休眠模式唤醒标志位
1 = 器件处于休眠模式 0 = 器件未处于休眠模式
bit 2
IDLE:从空闲模式唤醒标志位
1 = 器件处于空闲模式 0 = 器件未处于空闲模式
1: 所有复位状态位都可以用软件置 1 或清零。用软件将这些位中的某一位置 1 不会导致器件复位。
2: 如果 FWDTEN 配置位为 1 (未编程),则 WDT 始终使能,而与 SWDTEN 位的设置无关。
DS70318B_CN 78 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
寄存器 5-1 RCON:复位控制寄存器
bit 1
bit 0
1: 所有复位状态位都可以用软件置 1 或清零。用软件将这些位中的某一位置 1 不会导致器件复位。
2: 如果 FWDTEN 配置位为 1 (未编程),则 WDT 始终使能,而与 SWDTEN 位的设置无关。
BOR:欠压复位标志位
1 = 发生了欠压复位 0 = 未发生欠压复位
POR:上电复位标志位
1 = 发生了上电复位 0 = 未发生上电复位
(1)
(续)
2008 Microchip Technology Inc. 初稿 DS70318B_CN 79
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

5.1 系统复位

dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 系 列器件有两种复位类型:
冷复位
热复位
上电复位 (POR)或欠压复位 (BOR)的结果是引起 冷复位。在冷复位时,FOSC 器件配置寄存器的FNOSC 配置位选择器件时钟源。
所有其他复位源 (包括 RESET 指令)都引发热复位。 在热复位时,器件继续依靠当前时钟源运行,这个时钟 源由振荡器控制寄存器的当前振荡器选择 COSC<2:0>
OSCCON<14:12>)位来指示。
器件将保持在复位状态,直到系统电源稳定在适当的电 平并且振荡器时钟准备就绪。其时序在下文详述,如图
5-2 所示。
1. POR 复位:当电源开启时, POR 电路将器件保 持在复位状态。 POR 电路保持有效直到 V
DD
2. BOR 复位:片内稳压器有一个 BOR 电路,它将
器件保持在复位状态,直到 VDD 超过 VBOR 阈值 并且 TBOR 延时已经结束。TBOR 延时确保了稳压 器的输出稳定。
3. PWRT 定时器:可编程上电延时定时器在 BOR 之后继续将处理器保持在复位状态一段特定时间
PWRT)。 TPWRT 延时确保系统电源稳定在适
T
当电平供全速工作。 T
PWRT 延时结束后,
SYSRST 变为无效,从而使能选定的振荡器开始
产生时钟。
4. 振荡器延时:表 5-1 给出了各种可选择时钟源从 起振到时钟就绪之前的总延时。更多信息,请参 见第 7.0 节 “振荡器配置”。
5. 当振荡器时钟就绪时,处理器从地址 0x000000 开始执行。用户应用程序可以在复位地址中写入
GOTO 指令,将程序重定向到相应的启动程序。
6. 如果使能了故障保护时钟监视器 (Fail-Safe Clock Mnitor, FSCM) ,则当系统时钟就绪且
FSCM 延时结束时,它开始监视系统时钟。
T
VPOR 阈值并且 TPOR 延时已经结束。

5-1 振荡器延时

振荡器模式
FRCFRCDIV16
振荡器
起振延时
(1)
OSCD
T
FRCDIVN
FRCPLL TOSCD
XT TOSCD
HS TOSCD
(1)
(1)
(1)
EC ————
XTPLL T
HSPLL TOSCD
OSCD
(1)
(1)
ECPLL TLOCK
LPRC TOSCD
(1)
1TOSCD = 振荡器起振延时 (对于 FRC 最大值为 1.1 µs,对于 LPRC 最大值为 70 µs)。晶振起振时间随晶
体特性和负载电容等变化。
OST = 振荡器起振定时器延时 (1024 个振荡器时钟周期)。例如, 10 MHz 晶振的 TOST = 102.4 µs,
2T
32 kHz 晶振的 T
3: 如果 PLL 使能, T
OST =32ms
LOCK = PLL 锁定时间 (标称值为 1.5 ms)。
振荡器
起振定时器
PLL 锁定时间
——TOSCD
—TLOCK
(2)
TOST
(2)
TOST
(2)
TOST
(2)
TOST
(3)
TOSCD + TLOCK
—TOSCD + TOST
—TOSCD + TOST
(3)
TLOCK
(3)
TLOCK
(3)
——TOSCD
总延时
(1)
(1,3)
(1,2)
(1,2)
TOSCD + TOST +
TOSCD + TOST +
LOCK
T
TLOCK
TLOCK
(1,2,3)
(1,2,3)
(3)
(1)
DS70318B_CN 80 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

5-2 系统复位时序

VPOR
DD
V
TPOR
POR 复位
1
VBOR
Vbor
TBOR
BOR 复位
SYSRST
振荡器时钟
FSCM
器件状态
2
3
TPWRT
复位
时间
OSCD TOST
T
4
TLOCK
6
T
FSCM
5
运行
1POR 复位:当电源开启时,POR 电路将器件保持在复位状态。POR 电路保持有效直到 VDD 超过 VPOR 阈值并且
T
POR 延时已经结束。
2BOR 复位:片内稳压器有一个 BOR 电路,它将器件保持在复位状态,直到 V
已经结束。 T
BOR 延时确保了稳压器的输出稳定。
3PWRT 定时器:可编程上电延时定时器在 BOR 之后继续将处理器保持在复位状态一段特定时间 (T
T
PWRT 延时确保了系统电源稳定在适当电平供全速工作。 TPWRT 延时结束后, SYSRST 变为无效,从而使能选
DD 超过 VBOR 阈值并且 TBOR 延时
PWRT)。
定的振荡器开始生成时钟周期。
4: 振荡器延时:表 5-1 给出了各种可选择的时钟源从起振到时钟就绪的总延时。更多信息,请参见第 7.0 节 “振荡
器配置”。
5: 当振荡器时钟就绪时,处理器从地址 0x000000 开始执行。用户应用程序可以在复位地址中写入 GOTO 指令,将
程序执行重定向到相应的启动程序。
6: 如果使能了故障保护时钟监视器 (FSCM),则当系统时钟就绪且 T
FSCM 延时结束时,它开始监视系统时钟。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第81
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

5-2 振荡器延时

符号 参数
POR
V
TPOR
V
BOR
BOR
T
TPWRT
TFSCM
POR 阈值 1.8V 标称值 POR 延时时间 30 µs 最大值 BOR 阈值 2.5V 标称值 BOR 延时时间 100 µs 最大值
可编程上电延时 0-128 ms 标称值 故障保护时钟监视器延时 900 µs 最大值
注: 当器件退出复位状态 (开始正常工作)
时,器件工作参数 (电压、频率和温度 等)必须在其工作范围内,否则器件可能 无法正常工作。用户应用程序必须确保从 最开始上电到SYSRST
变成无效之间的延 时足够长,以使所有工作参数都符合规 范。

5.2 上电复位 (POR

上电复位 (POR)电路确保器件在上电时复位。 POR 电路保持有效直到 VDD 超过 VPOR 阈值并且 TPOR 延时 已经结束。T
器件供电电压的特性必须符合规定的起始电压和上升率 要求以产生 POR。详细信息,请参见第 23.0 节 “电气 特性”。
复位控制寄存器中的 POR 状态位 POR RCON<0>) 置 1,表示发生上电复位。
POR 延时确保了器件内部偏置电路的稳定。

5.2.1 欠压复位 (BOR)和上电延时定 时器 (PWRT

片上稳压器有一个欠压复位 (BOR)电路,当 VDD
DD < VBOR)器件无法正常工作时将复位器件。
低(V BOR 电路使器件保持在复位状态,直到 V
阈值且 TBOR 延时已结束。TBOR 延时确保了稳压器的输 出稳定。
复位控制寄存器中的 BOR 状态位 BOR RCON<1>) 置 1,表示发生欠压复位。
BOR 之后器件不会全速工作,因为全速工作需要 V 上升至可接受的电平。PWRT提供上电延时(TPWRT), 确保释放SYSRST之前系统电源已稳定在供全速工作的 适当电平上。
上电延时定时器的延时 (T
PWRT)由 POR 配置寄存器
中的上电复位定时器值选择位 FPWRT<2:0>
FPOR<2:0>)来编程设定,它提供了 8 种设置 (从
0ms 128 ms)。更多详细信息,请参见第 20.0
“特殊功能”。
5-3 给出了典型的欠压情形。复位延时 (T
PWRT)在每次 VDD 上升到超过 VBOR 跳变点时开始。
T
DD 超过 VBOR
DD
BOR +
DS70318B_CN 82 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

5-3 欠压情形

VDD
SYSRST
VDD
VBOR
TBOR + TPWRT
SYSRST
VDD PWRT 超时前骤降
VDD
SYSRST

5.3 外部复位 (EXTR

通过将 MCLR 引脚驱动为低电平产生外部复位。MCLR 引脚是附带毛刺滤波器的施密特触发器输入。宽度大于 最小脉冲宽度的复位脉冲会产生复位。最小脉冲宽度规 范请参见第 23.0 节“电气特性”。复位控制(RCON) 寄存器中的外部复位(MCLR 表示发生 MCLR 复位。
)引脚 (EXTR)位置 1,
5.3.0.1 外部监控电路
许多系统具有外部监控电路,这种监控电路可产生复位 信号将系统中的多个器件复位。可将此外部复位信号直 接连接到 MCLR 件。
引脚,使系统的其他部分复位时复位器
5.3.0.2 内部监控电路
当使用内部电源监控电路复位器件时,外部复位引脚
MCLR
下, MCLR
MCLR)没有内部上拉,所以不能处于未连接状态。
)应直连或通过电阻连接到 VDD。在这种情况
引脚不用于产生复位。外部复位引脚

5.4 软件 RESET 指令 (SWR

每当执行 RESET 指令时,器件都将产生 SYSRST,将 器件置于特殊的复位状态。此种复位状态不会重新初始 化时钟。执行 RESET 指令前使用的时钟源仍然继续使 用。SYSRST 向量。
在下一个指令周期释放,并且开始取复位
BOR + TPWRT
T
TBOR + TPWRT
复位控制寄存器中的软件复位(SWR)(指令)标志位
RCON<6>)置 1,表示发生软件复位。
VBOR
VBOR

5.5 看门狗超时复位 (WDTR

只要发生看门狗超时,器件都将异步产生 SYSRST 信 号。时钟源保持不变。在休眠或空闲模式下, WDT 超 时将唤醒处理器,但不会复位处理器。
复位控制寄存器中的看门狗定时器超时(WDTO)标 志
RCON<4>)位置 1,表示发生看门狗复位。关于看门
狗复位的更多信息,请参见第 20.4 节 “看门狗定时器
WDT)”。

5.6 陷阱冲突复位

如果正在处理某个高优先级的陷阱时,发生了低优先级 的硬陷阱,则将发生硬陷阱冲突复位。硬陷阱包括优先 级为 13 15 的异常。地址错误 (优先级 13)和振荡 器错误 (优先级 14)陷阱都属于此类。
复位控制寄存器中的陷阱复位(TRAPR)标 志
RCON<15>)位置 1,表示发生陷阱冲突复位。关于
陷阱冲突复位的更多信息,请参见第 6.0 节 “中断控制 器”。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 83
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

5.7 配置不匹配复位

为保持外设引脚选择控制寄存器的完整性,使用硬件影 子寄存器不断监视它们。如果任何寄存器发生了异常改 变 (例如 ESD 或其他外部事件引起的干扰),将会发 生配置不匹配复位。
复位控制寄存器中的配置不匹配(CM)标 志
RCON<9>)置 1,表示发生配置不匹配复位。关于配
置不匹配复位的更多信息,请参见第 9.0节“I/O 端口”。
注: 配置不匹配复位特性和相关的复位标志并
非在所有的器件上都可用。

5.8 非法条件器件复位

如下原因会发生非法条件器件复位:
非法操作码复位
未初始化的 W 寄存器复位
安全性复位
复位控制寄存器中的非法操作码或未初始化的W寄存器 访问复位 (IOPUWR)标志 (RCON<14>)置 1,表 示发生非法条件器件复位。
5.8.0.1 非法操作码复位
如果器件试图执行从程序存储器中取出的非法操作码 值,将会产生器件复位。
非法操作码复位功能可以阻止器件执行用于存储常量数 据的程序存储器段。要利用非法操作码复位,只能使用 每个程序存储器段的低 16 位存储数据值。高 8 位应该 被编程为非法操作码值 3Fh
5.8.0.2 未初始化的 W 寄存器复位
任何试图使用未初始化的 W 寄存器作为地址指针的操 作,都将复位器件。所有复位过程中都将清零 W 寄存器 阵列 (W15 除外),并在写入前将 W 寄存器阵列视作 未初始化状态。
5.8.0.3 安全性复位
如果程序流变化(Program Flow ChangePFC)或 向 量流变化(Vector Flow ChangeVFC)的目标是受保 护段 (引导和安全段)中的受限地址,该操作将导致安 全性复位。
当调用、跳转、计算跳转、返回、从子程序返回或者其 他形式的转移指令导致程序计数器被重载时,将发生 PFC
当中断或者陷阱向量导致程序计数器重载时发生 VFC
关于安全性复位的更多信息,请参见第 20.8 节 “代码 保护和 CodeGuard™安全”。

5.9 使用 RCON 状态位

任何器件复位后,用户应用程序都可以读取复位控制
RCON)寄存器以判断复位原因。
注: RCON 寄存器中的状态位应该在被读取后
清零,这样在器件复位后的下一个 RCON 寄存器值才有意义。
5-3 提供了复位标志位操作的总结。

5-3 复位标志位操作

标志位
TRAPR RCON<15> 陷阱冲突事件 POR BOR IOPWR RCON<14> 非法操作码、访问了未初始化的 W 寄存器或
安全性复位
CM RCON<9> 配置不匹配 POR BOR
EXTR RCON<7> MCLR SWR RCON<6> RESET 指令 POR BOR WDTO RCON<4> WDT 超时 PWRSAV 指令、 CLRWDT 指令、 POR
SLEEP RCON<3> PWRSAV #SLEEP 指令 POR BOR IDLE RCON<2> PWRSAV #IDLE 指令 POR BOR BOR RCON<1> POR BOR POR RCON<0>
注: 所有复位标志位均可由用户软件置 1 或清零。
复位
POR
1 原因
清零原因
POR BOR
POR
BOR
DS70318B_CN 84 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

6.0 中断控制器

注: 本数据手册总结了
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 系列器件的特
性。但是不应把本手册当作无所不包的参 考手册来使用。如需了解本数据手册的补 充信息,请参考“dsPIC33F Family
Reference Manual”的 “Section 41. Interrupts (Part IV)”( DS70300),该文
档可从 Microchip 网站
www.microchip.com)下载。
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的 中断控制器将诸多外设中断请求信号缩减为一个送往
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04CPU 的中断请求。它具有以下
特性:
多达 8 个处理器异常和软件陷阱
• 7 个可由用户选择的优先级
多达 118 个向量的中断向量表 (Interrupt Vector TableIVT
每个中断或异常源对应一个唯一的向量
在指定的用户优先级内具有固定的优先级
用于支持调试功能的备用中断向量表 (Alternate Interrupt Vector Table, AIVT)
固定的中断进入和返回延时
6.1.1 备用中断向量表
备用中断向量表 (AIVT)位于 IVT 之后,如图 6-1 所 示。由 ALTIVT 控制位(INTCON2<15>)控制对 AIVT 的访问。如果 ALTIVT 位置 1,则所有的中断和异常处 理都将使用备用向量,而非默认向量。备用向量与默认 向量的组织方式相同。
AIVT 通过提供一种不需要重新编程中断向量就可以在 应用程序和支持环境之间切换的方法,来支持调试功 能。此特性也支持运行时在应用程序之间切换以便评估 各种不同的软件算法。如果不需要 AIVT,则应该用 IVT 中同样的地址编程 AIVT

6.2 复位过程

器件复位不是真正的异常,因为复位过程中并不涉及到 中断控制器。作为对复位的响应, dsPIC33FJ06GS101/X02dsPIC33FJ16GSX02/X04 器 件清零其寄存器,同时强制 PC 为零。然后数字信号控制 器从地址 0x000000 处开始执行程序。在复位地址中写入 一条 GOTO 指令,可以将程序执行重定向到相应的启动程 序。
注: 应该使用包含 RESET 指令的默认中断处理
程序的入口地址编程 IVT AIVT 中所有未 实现或未使用的向量存储单元。

6.1 中断向量表

6-1 所示为中断向量表(IVT)。IVT 位于程序存储器 中,起始存储单元地址是 000004hIVT 包含 126 个向 量,由 8 个不可屏蔽陷阱向量和多达 118 个中断源组 成。一般来说,每个中断源都有自己的中断向量。每个 中断向量都包含一个 24 位宽的地址。每个中断向量存 储单元中设置的值是其相关的中断服务程序 (ISR)的 起始地址。
中断向量根据它们的自然优先级区分优先次序。也就是 说每个中断向量的优先级与其在向量表中的位置有关。 一般而言,较低地址的中断向量具有较高的自然优先 级。例如,与向量 0 相关的中断比任何其他向量地址的 中断具有更高的自然优先级。
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器 件实现了多达 35 个唯一中断和 4 个不可屏蔽陷阱中断。 表 6-1 对此作了总结。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 85
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

6-1 dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 的中断向量表

自然顺序优先级降序排列
复位——GOTO 指令 复位——GOTO 地址
保留
振荡器故障陷阱向量
地址错误陷阱向量 堆栈错误陷阱向量 数学错误陷阱向量
保留 保留
保留 中断向量 0 中断向量 1
~ ~ ~
中断向量 52 中断向量 53 中断向量 54
~ ~ ~
中断向量 11 6 中断向量 11 7
保留
保留
保留
振荡器故障陷阱向量
地址错误陷阱向量 堆栈错误陷阱向量 数学错误陷阱向量
保留
保留
保留 中断向量 0 中断向量 1
~ ~ ~
中断向量 52 中断向量 53 中断向量 54
~ ~ ~
中断向量 11 6 中断向量 11 7 代码起始单元
0x000000 0x000002 0x000004
0x000014
0x00007C 0x00007E 0x000080
0x0000FC 0x0000FE 0x000100 0x000102
0x000114
0x00017C 0x00017E 0x000180
0x0001FE 0x000200
中断向量表(IVT
备用中断向量表(AIVT
(1)
(1)
1: 请参见表 6-1 了解所实现的中断向量列表。
DS70318B_CN 86 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
6-1 中断向量
向量编号
8 0 0x000014 0x000114
9 1 0x000016 0x000116
10 2 0x000018 0x000118
11 3 0x00001A 0x00011A 12 4 0x00001C 0x00011C 13 5 0x00001E 0x00011E
14 6 0x000020 0x000120 15 7 0x000022 0x000122 16 8 0x000024 0x000124
17 9 0x000026 0x000126 18 10 0x000028 0x000128 19 11 0x00002A 0x00012A
20 12 0x00002C 0x00012C 21 13 0x00002E 0x00012E 22 14 0x000030 0x000130
23 15 0x000032 0x000132 24 16 0x000034 0x000134 25 17 0x000036 0x000136
26 18 0x000038 0x000138 27 19 0x00003A 0x00013A 28 20 0x00003C 0x00013C
29 21 0x00003E 0x00013E 30 22 0x000040 0x000140 31 23 0x000042 0x000142
32 24 0x000044 0x000144 33 25 0x000046 0x000146 34 26 0x000048 0x000148
35 27 0x00004A 0x00014A 36 28 0x00004C 0x00014C 37 29 0x00004E 0x00014E
38-64 30-56
65 57 0x000086 0x000186
66-72 58-64
73 65 0x000096 0x000196
74-101 66-93
102 94 0x0000D0 0x0001D0
103 95 0x0000D2 0x0001D2 104 96 0x0000D4 0x0001D4 105 97 0x0000D6 0x0001D6
106 98 0x0000D8 0x0001D8 107 99 0x0000DA 0x0001DA
108 100 0x0000DC 0x0001DC 109 101 0x0000DE 0x0001DE 110 102 0x0000E0 0x0001E0
111 103 0x0000E2 0x00001E2
中断请求
IQR
IVT 地址 AIVT 地址 中断源
最高自然顺序优先级
INT0 —— 外部中断 0 IC2——输入捕捉 1 OC1 —— 输出比较 1 T1 —— Timer1
保留
IC2 —— 输入捕捉 2 OC2 —— 输出比较 2 T2 —— Timer2 T3 —— Timer3 SPI1E —— SPI1 错误 SPI1 —— SPI1 传输完成 U1RX —— UART1 接收器 U1TX —— UART1 发送器 ADC —— ADC 组转换完成
保留 保留
SI2C1 —— I MI2C1 —— I CMP1 —— 模拟比较器 1 中断 CN —— 输入电平变化通知中断 INT1 —— 外部中断 1
保留 保留 保留 保留 保留 保留 保留 保留 INT2 —— 外部中断 2 保留 PSEM —— PWM 特殊事件匹配 保留 U1E —— UART1 错误中断 保留
PWM 1 —— PWM1 中断 PWM 2 —— PWM2 中断 PWM 3 —— PWM3 中断 PWM 4 —— PWM4 中断
保留 保留 保留 保留 保留
CMP2 —— 模拟比较器 2
2
C1 从事件
2
C1 主事件
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第87
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
6-1 中断向量 (续)
向量编号
112 104 0x0000E4 0x0001E4 113 105 0x0000E6 0x0001E6 114 106 0x0000E8 0x0001E8
115 107 0x0000EA 0x0001EA 116 108 0x0000EC 0x0001EC 117 109 0x0000EE 0x0001EE
118 110 0x0000F0 0x0001F0
119 111 0x0000F2 0x0001F2 120 112 0x0000F4 0x0001F4
121 113 0x0000F6 0x0001F6 122 114 0x0000F8 0x0001F8 123 115 0x0000FA 0x0001FA
124 116 0x0000FC 0x0001FC 125 117 0x0000FE 0x0001FE
中断请求 (IQR
IVT 地址 AIVT 地址 中断源
CMP3 —— 模拟比较器 3 CMP4 —— 模拟比较器 4
保留 保留 保留 保留
ADC 输入对 0 转换完成 ADC 输入对 1 转换完成 ADC 输入对 2 转换完成 ADC 输入对 3 转换完成 ADC 输入对 4 转换完成 ADC 输入对 5 转换完成 ADC 输入对 6 转换完成
保留
最低自然顺序优先级
DS70318B_CN 88 初稿 2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

6.3 中断控制和状态寄存器

dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04 器 件实现了 27 个用于中断控制器的寄存器:
• INTCON1
• INTCON2
• IFSx
• IECx
• IPCx
• INTTREG
6.3.1 INTCON1 INTCON2
INTCON1 INTCON2 控制全局中断。 INTCON1
含中断嵌套禁止 (NSTDIS)位以及处理器陷阱源的控 制和状态标志。 INTCON2 寄存器控制外部中断请求信 号行为以及备用中断向量表的使用。
6.3.2 IFSx
IFSx 寄存器维护所有中断请求标志。每个中断源都有
一个状态位,由各自的外设或外部信号置 1,而由软件 清零。
6.3.3 IECx
IECx寄存器维护所有中断允许位。这些控制位用于单独
允许外设或外部信号中断。
6.3.5 INTTREG
INTTREG 寄存器包含相关的中断向量编号和新的 CPU
中断优先级,分别锁存在 INTTREG 寄存器中的向量编 号(VECNUM<6:0>)和中断优先级(ILR<3:0>)位域 中。新的中断优先级是等待处理中断的优先级。
中断源按表 6-1 中的顺序分配给 IFSxIECx 和 IPCx 寄 存器。例如,INT0(外部中断 0)表示为向量编号为 8 自然顺序优先级为 0 的外部中断。所以 INT0IF 位位于 IFS0<0>INT0IE 位位于 IEC0<0>INT0IP 位在 IPC0 的第一个位置 (IPC0<2:0>)中。
6.3.6 状态 / 控制寄存器
尽管两个 CPU 控制寄存器不是中断控制硬件的特定组 成部分,但它们仍包含控制中断功能的位。
• CPU状态寄存器SR包含IPL<2:0>位( SR<7:5>)。 这些位表示当前的 CPU 中断优先级。用户可以通 过写 IPL 位来更改当前 CPU 优先级。
• CORCON 寄存器包含 IPL3 位,这个位与 IPL<2:0> 位一起表示当前 CPU 优先级。IPL3 是只读位,所 以用户软件无法屏蔽陷阱事件。
在下面各页中的寄存器 6-1 到寄存器 6-35 描述了所有的 中断寄存器。
6.3.4 IPCx
IPCx寄存器用于设置每个中断源的中断优先级。可以将 每个用户中断源分配为 8 个优先级之一。
2008 Microchip Technology Inc. 初稿 DS70318B_CN 第89
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
寄存器 6-1 SRCPU 状态寄存器
(1)
R-0 R-0 R/C-0 R/C-0 R-0 R/C-0 R -0 R/W-0
OA OB SA SB OAB SAB DA DC
bit 15 bit 8
R/W-0
IPL2
(3)
(2)
R/W-0
IPL1
(2)
(3)
R/W-0
IPL0
(2)
(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 7-5
IPL<2:0>CPU 中断优先级状态位
(2)
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
1: 如需了解完整的寄存器详细信息,请参见寄存器 2-1
2IPL<2:0> 位与 IPL<3> 位(CORCON<3>)组合形成 CPU 中断优先级。如果 IPL<3> = 1,那么括号中的
值表示 IPL。当 IPL<3> = 1 时,禁止用户中断。
3: 当 NSTDIS INTCON1<15> = 1 时, IPL<2:0> 状态位是只读的。
寄存器 6-2 CORCON:内核控制寄存器
(1)
U-0 U-0 U-0 U-0 R/W-0 R-0 R-0 R-0
US EDT 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 3
IPL3CPU 中断优先级状态位 3
(2)
1 = CPU 中断优先级大于 7 0 = CPU 中断优先级等于或小于 7
1: 如需了解完整的寄存器详细信息,请参见寄存器 2-2
2IPL3 位与 IPL<2:0> 位(SR<7:5>)组合形成 CPU 的中断优先级。
DS70318B_CN 90 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
寄存器 6-3 INTCON1:中断控制寄存器 1
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE
bit 15 bit 8
R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0
SFTACERR DIV0ERR MATHERR ADDRERR STKERR OSCFAIL
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
bit 15
bit 14
bit 13
bit 12
bit 11
bit 10
bit 9
bit 8
bit 7
bit 6
bit 5
bit 4
bit 3
NSTDIS中断嵌套禁止位
1 = 禁止中断嵌套 0 = 使能中断嵌套
OVAERR累加器 A 溢出陷阱标志位
1 = 陷阱是由累加器 A 溢出引起 0 = 陷阱不是由累加器 A 溢出引起
OVBERR累加器 B 溢出陷阱标志位
1 = 陷阱是由累加器 B 溢出引起 0 = 陷阱不是由累加器 B 溢出引起
COVAERR累加器 A 灾难性溢出陷阱标志位
1 = 陷阱是由累加器 A 灾难性溢出引起 0 = 陷阱不是由累加器 A 灾难性溢出引起
COVBERR累加器 B 灾难性溢出陷阱标志位
1 = 陷阱是由累加器 B 灾难性溢出引起 0 = 陷阱不是由累加器 B 灾难性溢出引起
OVATE累加器 A 溢出陷阱允许位
1 = 允许累加器 A 溢出陷阱 0 = 禁止累加器 A 溢出陷阱
OVBTE累加器 B 溢出陷阱允许位
1 = 允许累加器 B 溢出陷阱 0 = 禁止累加器 B 溢出陷阱
COVTE灾难性溢出陷阱允许位
1 = 允许累加器 A B 的灾难性溢出陷阱 0 = 禁止累加器 A B 的灾难性溢出陷阱
SFTACERR累加器移位错误状态位
1 = 数学错误陷阱是由非法的累加器移位引起的 0 = 数学错误陷阱不是由非法的累加器移位引起的
DIV0ERR算术错误状态位
1 = 数学错误陷阱是由被零除引起的 0 = 数学错误陷阱不是由被零除引起的
未实现:读为 0
MATHERR算术错误状态位
1 = 发生了数学错误陷阱 0 = 未发生数学错误陷阱
ADDRERR地址错误陷阱状态位
1 = 发生了地址错误陷阱 0 = 未发生地址错误陷阱
2008 Microchip Technology Inc. 初稿 DS70318B_CN 91
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
寄存器 6-3 INTCON1:中断控制寄存器 1 (续)
bit 2
bit 1
bit 0
STKERR:堆栈错误陷阱状态位
1 = 发生了堆栈错误陷阱 0 = 未发生堆栈错误陷阱
OSCFAIL:振荡器故障陷阱状态位
1 = 发生了振荡器故障陷阱 0 = 未发生振荡器故障陷阱
未实现:读为 0
DS70318B_CN 92 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

寄存器 6-4 INTCON2:中断控制寄存器 2

R/W-0 R-0 U-0 U-0 U-0 U-0 U-0 U-0
ALTIVT DISI
bit 15 bit 8
U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0
INT2EP INT1EP INT0EP
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
bit 15
bit 14
bit 13-3
bit 2
bit 1
bit 0
ALTIVT备用中断向量表使能位
1 = 使用备用向量表 0 = 使用标准 (默认)向量表
DISI DISI 指令状态位 1 = DISI 指令执行中
0 = 未执行 DISI 指令 未实现:读为 0
INT2EP外部中断 2 边沿检测极性选择位
1 = 下降沿中断 0 = 上升沿中断
INT1EP:外部中断 1 边沿检测极性选择位
1 = 下降沿中断 0 = 上升沿中断
INT0EP外部中断 0 边沿检测极性选择位
1 = 下降沿中断 0 = 上升沿中断
2008 Microchip Technology Inc. 初稿 DS70318B_CN 93
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
寄存器 6-5 IFS0:中断标志状态寄存器 0
U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
ADIF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF
bit 15 bit 8
R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
T2IF
(1,2)
OC2IF
(1,2)
IC2IF —T1IFOC1IFIC1IF
(1)
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
(1,2)
INT0IF
bit 15-14
bit 13
bit 12
bit 11
bit 10
bit 9
bit 8
bit 7
bit 6
bit 5
bit 4
bit 3
未实现:读为 0 ADIFADC 组转换完成中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
U1TXIFUART1 发送器中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
U1RXIFUART1 接收器中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
SPI1IFSPI1 事件中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
SPI1EIFSPI1 错误中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
T3IFTimer3 中断标志状态位
(1,2)
1 = 产生了中断请求 0 = 未产生中断请求
T2IFTimer2 中断标志状态位
(1,2)
1 = 产生了中断请求 0 = 未产生中断请求
OC2IF:输出比较通道 2 中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
IC2IF:输入捕捉通道 2 中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
未实现:读为 0
T1IFTimer1 中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
(1,2)
1dsPIC33FJ06GS101/102 器件未实现此位。
2dsPIC33FJ06GS202 器件未实现这些位。
DS70318B_CN 94 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04
寄存器 6-5 IFS0:中断标志状态寄存器 0 (续)
bit 2
bit 1
bit 0
1dsPIC33FJ06GS101/102 器件未实现此位。
2dsPIC33FJ06GS202 器件未实现这些位。
OC1IF:输出比较通道 1 中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
IC1IF:输入捕捉通道 1 中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
INT0IF:外部中断 0 标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
(1)
2008 Microchip Technology Inc. 初稿 DS70318B_CN 95
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

寄存器 6-6 IFS1:中断标志状态寄存器 1

U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0
—INT2IF—
bit 15 bit 8
U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
INT1IF CNIF AC1IF
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
(1)
MI2C1IF SI2C1IF
bit 15-14
bit 13
bit 12-5
bit 4
bit 3
bit 2
bit 1
bit 0
1dsPIC33FJ16GS402/404 dsPIC33FJ06GS101/102 器件未实现此位。
未实现:读为 0 INT2IF:外部中断 2 标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
未实现:读为 0
INT1IF:外部中断 1 标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
CNIF:输入电平变化通知中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
AC1IF:模拟比较器 1 中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
MI2C1IFI2C1 主事件中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
SI2C1IFI2C1 从事件中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
(1)
DS70318B_CN 96 初稿  2008 Microchip Technology Inc.
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

寄存器 6-7 IFS3:中断标志状态寄存器 3

U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 U-0
PSEMIF
bit 15 bit 8
U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
bit 15-10
bit 9
bit 8-0
未实现:读为 0 PSEMIFPWM 特殊事件匹配中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
未实现:读为 0

寄存器 6-8 IFS4:中断标志状态寄存器 4

U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
bit 15 bit 8
U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 U-0
—U1EIF—
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
bit 15-2
bit 1
bit 0
未实现:读为 0 U1EIFUART1 错误中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
未实现:读为 0
2008 Microchip Technology Inc. 初稿 DS70318B_CN 97
dsPIC33FJ06GS101/X02 dsPIC33FJ16GSX02/X04

寄存器 6-9 IFS5:中断标志状态寄存器 5

R/W-0 R/W-0 U-0 U-0 U-0 U-0 U-0 U-0
PWM2IF
bit 15 bit 8
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 10 = 清零 x = 未知
(1)
U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
PWM1IF
bit 15
bit 14
bit 13-0
1dsPIC33FJ06GS101/102 器件未实现此位。
PWM2IFPWM2 中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
PWM1IFPWM1 中断标志状态位
1 = 产生了中断请求 0 = 未产生中断请求
未实现:读为 0
(1)
DS70318B_CN 98 初稿  2008 Microchip Technology Inc.
Loading...