dsPIC33FJXXXGPX06/X08/X10
数据手册
高性能 16 位
数字信号控制器
2007 Microchip Technology Inc. DS70286A_CN
请注意以下有关 Microchip 器件代码保护功能的要点:
• Microchip 的产品均达到 Microchip 数据手册中所述的技术指标。
• Microchip 确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。
• 目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的
操作规范来使用 Microchip 产品的。这样做的人极可能侵犯了知识产权。
• Microchip 愿与那些注重代码完整性的客户合作。
• Microchip 或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是 “牢不可破”的。
代码保护功能处于持续发展中。 Microchip 承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视
为违反了 《数字器件千年版权法案 (Digital Millennium Copyright Act )》。如果这种行为导致他人在未经授权的情况下,能访问您的
软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。
提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含
的英文部分,因为其中提供了有关 Microchip 产品性能和使用
情况的有用信息。Microchip Technology Inc. 及其分公司和相
关公司、各级主管与员工及事务代理机构对译文中可能存在的
任何差错不承担任何责任。建议参考 Microchip Technology
Inc. 的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便
利,它们可能由更新之信息所替代。确保应用符合技术规范,
是您自身应负的责任。Microchip 对这些信息不作任何明示或
暗示、书面或口头、法定或其他形式的声明或担保,包括但不
限于针对其使用情况、质量、性能、适销性或特定用途的适用
性的声明或担保。 Microchip 对因这些信息及使用这些信息而
引起的后果不承担任何责任。如果将 Microchip 器件用于生命
维持和 / 或生命安全应用,一切风险由买方自负。买方同意在
由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障
Microchip 免于承担法律责任,并加以赔偿。在 Microchip 知识
产权保护下,不得暗中或以其他方式转让任何许可证。
商标
Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron、
dsPIC、 K
EEL OQ、 K EEL OQ 徽标、 microID、MPLAB、 PIC、
PICmicro、 PICSTART、 PRO MATE、 rfPIC 和 SmartShunt
均为 Microchip Technology Inc. 在美国和其他国家或地区的注
册商标。
AmpLab、 FilterLab、 Linear Active Thermistor、 Migratable
Memory、 MXDEV、 MXLAB、 SEEVAL、 SmartSensor 和
The Embedded Control Solutions Company 均为 Microchip
Technology Inc. 在美国的注册商标。
Analog-for-the-Digital Age、 Application Maestro、
CodeGuard、 dsPICDEM、 dsPICDEM.net、 dsPICworks、
dsSPEAK、 ECAN、 ECONOMONITOR、 FanSense、
FlexROM、 fuzzyLAB、 In-Circuit Serial Programming、
ICSP、 ICEPIC、 Mindi、 MiWi、 MPASM、 MPLAB Certified
徽标、 MPLIB、 MPLINK 、 PICkit 、 PICDEM 、 PICDEM.net 、
PICLAB、 PICtail、 PowerCal、 PowerInfo、 PowerMate、
PowerTool、 REAL ICE、 rfLAB、 Select Mode、 Smart
Serial、 SmartTel、 Total Endurance、 UNI/O、 WiperLock 和
ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地
区的商标。
SQTP 是 Microchip Technology Inc. 在美国的服务标记。
在此提及的所有其他商标均为各持有公司所有。
© 2007, Microchip Technology Inc. 版权所有。
Microchip
Gresham
印度的设计中心均通过了
MCU与dsPIC® DSC、KEE LOQ
设、非易失性存储器和模拟产品方面的质量体系流程均符合
16949:2002
系也已通过了
位于美国亚利桑那州
的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和
。此外 ,
Microchip
ISO 9001:2000
Chandler和Tem p e
ISO/TS-16949:2002
®
跳码器件、串行
在开发系统的设计和生产方面的质量体
认证。
与位于俄勒冈州
认证。公司在
EEPROM
®
PIC
、单片机外
ISO/TS-
DS70286A_CN 第 ii 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
高性能 16 位数字信号控制器
工作范围:
• DC – 40 MIPS (3.0-3.6V、 -40°C 至 +85°C 时为
40 MIPS)
• 工业级温度范围 ( -40°C 至 +85°C)
高性能 DSC CPU :
• 改进型哈佛架构
•C编译器优化的指令集
•16位宽数据总线
•24位宽指令
• 可寻址最大 4M 指令字的线性程序存储空间
• 可寻址最大 64 KB 的线性数据存储空间
•83条基本指令:多为单字 / 单周期指令
•16个 16 位通用寄存器
• 两个 40 位累加器:
- 带舍入和饱和选择
• 灵活和强大的寻址模式:
- 间接寻址、模寻址和位反转寻址
• 软件堆栈
• 16 x 16 位小数 / 整数乘法运算
• 32/16 位和 16/16 位除法运算
• 单周期乘-累加运算:
-DSP运算的累加器回写操作
- 双数据取操作
• 可将最多 40 位数据左移或右移最多 16 位
直接存储器访问 (DMA ):
•8通道硬件 DMA
•2 KB双端口 DMA 缓冲区 (DMA RAM),用于存
储通过 DMA 传输的数据:
- 允许在 CPU 执行代码期间在 RAM 和外设间
传输数据 (不额外占用周期)
• 大多数外设支持 DMA
中断控制器:
• 中断响应延时为 5 个周期
•118个中断向量
• 最多 63 个中断源
• 最多 5 个外部中断
•7个可编程优先级
•5个处理器异常
数字 I/O :
• 最多 85 个可编程数字 I/O 引脚
• 最多 24 个引脚上具有唤醒 / 电平变化中断功能
• 输出引脚可驱动 3.0V 至 3.6V 的电压
• 所有数字输入引脚可承受 5V 的电压
• 所有 I/O 引脚的最大拉 / 灌电流为 4 mA
片上闪存和 SRAM :
• 闪存程序存储器,最大 256 KB
• 数据 SRAM,最大 30 KB (包括 2 KB 的 DMA
RAM)
系统管理:
• 灵活的时钟选择:
- 外部振荡器、晶振、谐振器和内部 RC 振荡器
- 全集成 PLL
- 极低抖动 PLL
• 上电延时定时器
• 振荡器起振定时器 / 稳定器
• 自带 RC 振荡器的看门狗定时器
• 故障保护时钟监视器
• 多个复位源
功耗管理:
• 片上 2.5V 稳压器
• 实时时钟源切换
• 可快速唤醒的空闲、休眠和打盹模式
定时器 / 捕捉 / 比较 /PWM :
• 定时器 / 计数器,最多 9 个 16 位定时器:
- 最多可以配对作为 4 个 32 位定时器使用
-1个定时器可依靠外部 32.768 kHz 振荡器作
为实时时钟使用
- 可编程预分频器
• 输入捕捉 (最多 8 路通道):
- 上升沿捕捉、下降沿捕捉或上升 / 下降沿捕捉
-16位捕捉输入功能
- 每路捕捉通道都带有 4 字深度的 FIFO 缓冲区
• 输出比较 (最多 8 路通道):
-1个或 2 个 16 位比较模式
-16位无毛刺 PWM 模式
2007 Microchip Technology Inc. DS70286A_CN 第 1 页
dsPIC33FJXXXGPX06/X08/X10
通信模块:
•3线 SPI (最多 2 个模块):
- 帧支持简单编解码器的 I/O 接口
- 支持 8 位和 16 位数据
- 支持所有串行时钟格式和采样模式
2
•I
C™ (最多 2 个模块):
- 完全支持多主机从模式
-7位和 10 位寻址
- 总线冲突检测和仲裁
- 集成信号调理
- 从地址掩码
•UART(最多 2 个模块):
- 检测到地址位时产生中断
- 出现 UART 错误时产生中断
- 检测到启动位时将器件从休眠模式唤醒
-4字符深度的发送和接收 FIFO 缓冲区
-LIN总线支持
- 硬件 IrDA
- 高速波特率模式
- 使用 CTS 和 RTS 的硬件流控制
• 数据转换器接口 ( Data Converter Interface,
DCI)模块:
- 编解码器接口
- 支持 I
- 最多 16 位数据字,每帧最多 16 字
-4字深度的发送和接收缓冲区
• 增强型 CAN ( ECAN™ 模块) 2.0B active 版本
(最多 2 个模块):
- 最多 8 个发送缓冲区和 32 个接收缓冲区
-16个接收过滤器和 3 个屏蔽寄存器
- 用于诊断和总线监视的环回模式、监听模式和
监听所有报文模式
- 收到 CAN 报文时唤醒器件
- 自动处理远程发送请求
- 使用 DMA 的 FIFO 模式
- DeviceNet™ 寻址支持
®
编解码
2
S 和 AC’97 协议
模数转换器 ( Analog-to-Digital
Converters, ADC):
• 一个器件中最多 2 个 ADC 模块
•10位 1.1 Msps 或 12 位 500 Ksps 转换:
-2、 4 或 8 路同时采样
- 最多 32 路带自动扫描功能的输入通道
- 可手动启动转换或与 4 个触发源中的一个同步
- 休眠模式下仍可进行转换
- 积分非线性误差最大为 ±1 LSb
- 微分非线性误差最大为 ±1 LSb
CMOS 闪存技术:
• 低功耗高速闪存技术
• 全静态设计
•3.3V(±10%)工作电压
• 工业级温度
• 低功耗
封装:
•100引脚 TQFP (14x14x1 mm 和 12x12x1 mm)
•80引脚 TQFP (12x12x1 mm)
•64引脚 TQFP (10x10x1 mm)
注: 关于每个器件的具体外设特性,请参见相
应的器件数据表。
DS70286A_CN 第 2 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
dsPIC33F 产品系列
下表列出了每个系列的器件名称、引脚数、存储容量和
可用的外设,表后还附有它们的引脚图。
dsPIC33F 系列器件具有一种子系列,即通用系列,它
是各种 16 位 MCU 嵌入式应用的理想选择。
其中带有编解码器接口的器件非常适合语音和音频处理
应用。
dsPIC33F 通用系列器件
闪存程序
器件
dsPIC33FJ64GP206 64 64 8 9 8 8 1
dsPIC33FJ64GP306 64 64 16 9 8 8 1
dsPIC33FJ64GP310 100 64 16 9 8 8 1
dsPIC33FJ64GP706 64 64 16 9 8 8 1
dsPIC33FJ64GP708 80 64 16 9 8 8 1
dsPIC33FJ64GP710 100 64 16 9 8 8 1
dsPIC33FJ128GP206 64 128 8 9 8 8 1
dsPIC33FJ128GP306 64 128 16 9 8 8 1
dsPIC33FJ128GP310 100 128 16 9 8 8 1
dsPIC33FJ128GP706 64 128 16 9 8 8 1
dsPIC33FJ128GP708 80 128 16 9 8 8 1
dsPIC33FJ128GP710 100 128 16 9 8 8 1
dsPIC33FJ256GP506 64 256 16 9 8 8 1
dsPIC33FJ256GP510 100 256 16 9 8 8 1
dsPIC33FJ256GP710 100 256 30 9 8 8 1
注 1: RAM 中包括 2 KB 的 DMA RAM 。
2: 最大 I/O 引脚数包括与外设功能复用的引脚。
引脚
数
存储器
(KB )
RAM
( KB)
(1)
输出比较
输入捕捉
16 位定时器
标准 PWM
接口
编解码器
ADC
1 个 ADC,
18 路通道
1 个 ADC,
18 路通道
1 个 ADC,
32 路通道
2 个 ADC,
18 路通道
2 个 ADC,
24 路通道
2 个 ADC,
32 路通道
1 个 ADC,
18 路通道
1 个 ADC,
18 路通道
1 个 ADC,
32 路通道
2 个 ADC,
18 路通道
2 个 ADC,
24 路通道
2 个 ADC,
32 路通道
1 个 ADC,
18 路通道
1 个 ADC,
32 路通道
2 个 ADC,
32 路通道
(2)
C™
SPI
2
CAN
UART
221 05 3 P T
222 05 3 P T
222 08 5P F , P T
222 25 3 P T
222 26 9 P T
222 28 5P F , P T
221 05 3 P T
222 05 3 P T
222 08 5P F , P T
222 25 3 P T
222 26 9 P T
222 28 5P F , P T
222 15 3 P T
222 18 5P F , P T
222 28 5P F , P T
I
增强型
封装
最大 I/O 引脚数
2007 Microchip Technology Inc. DS70286A_CN 第 3 页
dsPIC33FJXXXGPX06/X08/X10
引脚图
64 引脚 TQFP
DDCORE
CSDO/RG13
CSDI/RG12
CSCK/RG14
RG1
RF1
RG0
OC8/CN16/RD7
V
VDD
RF0
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC2/RD1
OC3/RD2
OC4/RD3
OC5/IC5/CN13/RD4
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SDO2/CN10/RG8
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN2/SS1
PGC3/EMUC3/AN1/V
PGD3/EMUD3/AN0/V
COFS/RG15
SCK2/CN8/RG6
SDI2/CN9/RG7
MCLR
/CN11/RG9
SS2
AN3/CN5/RB3
REF-/CN3/RB1
REF+/CN2/RB0
VSS
VDD
/CN4/RB2
646362616059585756
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ64GP206
dsPIC33FJ128GP206
171819202122232425
DD
AVSS
AV
U2CTS/AN8/RB8
PGD1/EMUD1/AN7/RB7
PGC1/EMUC1/AN6/OCFA/RB6
AN9/RB9
545352
55
27
26
SS
V
VDD
TDO/AN11/RB11
TMS/AN10/RB10
TCK/AN12/RB12
504951
48
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
47
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
46
OC1/RD0
IC4/INT4/RD11
45
44
IC3/INT3/RD10
IC2/U1CTS
43
42
IC1/INT1/RD8
41
V
SS
40
OSC2/CLKO/RC15
39
OSC1/CLKIN/RC12
38
V
DD
37
SCL1/RG2
36
SDA1/RG3
35
U1RTS
34
U1RX/SDI1/RF2
33
U1TX/SDO1/RF3
32
31
30
29
28
/AN14/RB14
TDI/AN13/RB13
U2TX/CN18/RF5
U2RX/ CN17/RF4
U2RTS
AN15/OCFB/CN12/RB15
/INT2/RD9
/SCK1/INT0/RF6
DS70286A_CN 第 4 页 2007 Microchip Technology Inc.
引脚图 (续)
64 引脚 TQFP
dsPIC33FJXXXGPX06/X08/X10
DDCORE
CSDO/RG13
CSDI/RG12
CSCK/RG14
RG1
RF1
RG0
OC8/CN16/RD7
V
VDD
RF0
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
OC2/RD1
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SDO2/CN10/RG8
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN2/SS1
PGC3/EMUC3/AN1/V
PGD3/EMUD3/AN0/V
COFS/RG15
SCK2/CN8/RG6
SDI2/CN9/RG7
MCLR
/CN11/RG9
SS2
AN3/CN5/RB3
REF-/CN3/RB1
REF+/CN2/RB0
VSS
VDD
/CN4/RB2
646362616059585756
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ64GP306
dsPIC33FJ128GP306
171819202122232425
DD
AVSS
AV
PGD1/EMUD1/AN7/RB7
PGC1/EMUC1/AN6/OCFA/RB6
545352
55
27
26
SS
V
VDD
AN9/RB9
TDO/AN11/RB11
TMS/AN10/RB10
U2CTS/AN8/RB8
TCK/AN12/RB12
504951
48
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
47
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
46
OC1/RD0
IC4/INT4/RD11
45
44
IC3/INT3/RD10
IC2/U1CTS
43
42
IC1/INT1/RD8
41
V
SS
40
OSC2/CLKO/RC15
39
OSC1/CLKIN/RC12
38
V
DD
37
SCL1/RG2
36
SDA1/RG3
35
U1RTS
34
U1RX/SDI1/RF2
33
U1TX/SDO1/RF3
32
31
30
29
28
/AN14/RB14
TDI/AN13/RB13
U2RTS
U2TX/SCL2/CN18/RF5
U2RX/ SDA2/CN17/RF4
AN15/OCFB/CN12/RB15
/INT2/RD9
/SCK1/INT0/RF6
2007 Microchip Technology Inc. DS70286A_CN 第 5 页
dsPIC33FJXXXGPX06/X08/X10
引脚图 (续)
64 引脚 TQFP
DDCORE
CSDO/RG13
CSDI/RG12
CSCK/RG14
RG1
C1TX/RF1
RG0
OC8/CN16/RD7
V
VDD
C1RX/RF0
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
OC4/RD3
OC3/RD2
OC2/RD1
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SDO2/CN10/RG8
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN2/SS1
PGC3/EMUC3/AN1/V
PGD3/EMUD3/AN0/V
COFS/RG15
SCK2/CN8/RG6
SDI2/CN9/RG7
MCLR
/CN11/RG9
SS2
AN3/CN5/RB3
REF-/CN3/RB1
REF+/CN2/RB0
VSS
VDD
/CN4/RB2
646362616059585756
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ256GP506
171819202122232425
DD
AVSS
AV
U2CTS/AN8/RB8
PGD1/EMUD1/AN7/RB7
PGC1/EMUC1/AN6/OCFA/RB6
545352
55
27
26
SS
V
VDD
AN9/RB9
TDO/AN11/RB11
TMS/AN10/RB10
TCK/AN12/RB12
504951
48
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
47
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
46
OC1/RD0
IC4/INT4/RD11
45
44
IC3/INT3/RD10
IC2/U1CTS
43
42
IC1/INT1/RD8
41
V
SS
40
OSC2/CLKO/RC15
39
OSC1/CLKIN/RC12
38
V
DD
37
SCL1/RG2
36
SDA1/RG3
35
U1RTS
34
U1RX/SDI1/RF2
33
U1TX/SDO1/RF3
32
31
30
29
28
/AN14/RB14
TDI/AN13/RB13
U2RTS
U2TX/SCL2/CN18/RF5
U2RX/ SDA2/CN17/RF4
AN15/OCFB/CN12/RB15
/INT2/RD9
/SCK1/INT0/RF6
DS70286A_CN 第 6 页 2007 Microchip Technology Inc.
引脚图 (续)
64 引脚 TQFP
dsPIC33FJXXXGPX06/X08/X10
DDCORE
CSDO/RG13
CSDI/RG12
CSCK/RG14
C2TX/RG1
C1TX/RF1
C2RX/RG0
OC8/CN16/RD7
V
VDD
C1RX/RF0
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC2/RD1
OC3/RD2
OC4/RD3
OC5/IC5/CN13/RD4
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
SDO2/CN10/RG8
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN2/SS1
PGC3/EMUC3/AN1/V
PGD3/EMUD3/AN0/V
COFS/RG15
SCK2/CN8/RG6
SDI2/CN9/RG7
MCLR
/CN11/RG9
SS2
AN3/CN5/RB3
REF-/CN3/RB1
REF+/CN2/RB0
VSS
VDD
/CN4/RB2
646362616059585756
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dsPIC33FJ64GP706
dsPIC33FJ128GP706
171819202122232425
DD
AVSS
AV
U2CTS/AN8/RB8
PGD1/EMUD1/AN7/RB7
PGC1/EMUC1/AN6/OCFA/RB6
AN9/RB9
545352
55
27
26
SS
V
VDD
TDO/AN11/RB11
TMS/AN10/RB10
TCK/AN12/RB12
504951
48
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
47
PGD2/EMUD2/SOSCI/T4CK/CN1/RC13
46
OC1/RD0
IC4/INT4/RD11
45
44
IC3/INT3/RD10
IC2/U1CTS
43
42
IC1/INT1/RD8
41
V
SS
40
OSC2/CLKO/RC15
39
OSC1/CLKIN/RC12
38
V
DD
37
SCL1/RG2
36
SDA1/RG3
35
U1RTS
34
U1RX/SDI1/RF2
33
U1TX/SDO1/RF3
32
31
30
29
28
/AN14/RB14
TDI/AN13/RB13
U2RTS
U2TX/SCL2/CN18/RF5
U2RX/ SDA2/CN17/RF4
AN15/OCFB/CN12/RB15
/INT2/RD9
/SCK1/INT0/RF6
2007 Microchip Technology Inc. DS70286A_CN 第 7 页
dsPIC33FJXXXGPX06/X08/X10
引脚图 (续)
80 引脚 TQFP
COFS/RG15
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
V
V
TMS/AN20/INT1/RA12
TDO/AN21/INT2/RA13
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
AN2/SS1
/CN4/RB2
PGC3/EMUC3/AN1/CN3/RB1
PGD3/EMUD3/AN0/CN2/RB0
CSCK/RG14
AN23/CN23/RA7
AN22/CN22/RA6
C2RX/RG0
CSDO/RG13
CSDI/RG12
792280
1
2
3
4
5
6
7
8
9
10
11
SS
DD
12
13
14
15
16
17
18
19
20
21
2324252627282930313233
C2TX/RG1
75
767877
dsPIC33FJ64GP708
dsPIC33FJ128GP708
DDVDDCORE
C1TX/RF1
C1RX/RF0
727473
OC8/CN16/RD7
V
7170696867666564636261
OC7/CN15/RD6
34
IC5/RD12
OC4/RD3
OC3/RD2
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
37
36
35
OC2/RD1
PGC2/EMUC2/SOSCO/T1CK/ CN0/RC14
60
PGD2/EMUD2/SOSCI/CN1/RC13
59
OC1/RD0
58
IC4/RD11
57
IC3/RD10
56
IC2/RD9
55
IC1/RD8
54
SDA2/INT4/RA3
53
SCL2/INT3/RA2
52
SS
V
51
50
OSC2/CLKO/RC15
OSC1/CLKIN/RC12
49
DD
V
48
SCL1/RG2
47
SDA1/RG3
46
SCK1/INT0/RF6
45
SDI1/RF7
44
SDO1/RF8
43
U1RX/RF2
42
U1TX/RF3
41
40
39
38
SS
DD
AV
AV
-/RA9
+/RA10
REF
V
REF
V
PGD1/EMUD1/AN7/RB7
PGC1/EMUC1/AN6/OCFA/RB6
AN9/RB9
U2CTS/AN8/RB8
AN10/RB10
SS
DD
V
V
AN11/RB11
TCK/AN12/RB12
/AN14/RB14
TDI/AN13/RB13
U2RTS
AN15/OCFB/CN12/RB15
/CN21/RD15
U2TX/CN18/RF5
U2RX/CN17/RF4
IC7/U1CTS/CN20/RD14
IC8/U1RTS
DS70286A_CN 第 8 页 2007 Microchip Technology Inc.
引脚图 (续)
100 引脚 TQFP
COFS/RG15
AN29/RE5
AN30/RE6
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
PGC3/EMUC3/AN1/CN3/RB1
PGD3/EMUD3/AN0/CN2/RB0
AN31/RE7
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
SS2/CN11/RG9
TMS/RA0
AN20/INT1/RA12
AN21/INT2/RA13
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
AN2/SS1
/CN4/RB2
V
MCLR
V
V
DD
SS
DD
dsPIC33FJXXXGPX06/X08/X10
DDCORE
AN23/CN23/RA7
AN26/RE2
CSDO/RG13
CSDI/RG12
AN28/RE4
AN27/RE3
99
100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CSCK/RG14
95
969897
AN22/CN22/RA6
AN25/RE1
AN24/RE0
RG0
9294939190898887868584838281807978
dsPIC33FJ64GP310
dsPIC33FJ128GP310
DD
RF0
V
RG1
RF1
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
V
OC8/CN16/RD7
OC7/CN15/RD6
OC2/RD1
76
77
V
SS
75
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
74
PGD2/EMUD2/SOSCI/CN1/ RC13
73
OC1/RD0
72
IC4/RD11
71
IC3/RD10
70
IC2/RD9
69
IC1/RD8
68
INT4/RA15
67
INT3/RA14
66
V
SS
65
OSC2/CLKO/RC15
64
OSC1/CLKIN/RC12
63
V
DD
62
TDO/RA5
61
TDI/RA4
60
SDA2/RA3
59
SCL2/RA2
58
SCL1/RG2
57
SDA1/RG3
56
SCK1/INT0/RF6
55
SDI1/RF7
54
SDO1/RF8
53
U1RX/RF2
52
U1TX/RF3
51
26
2829303132333435363738
27
SS
DD
AV
AV
-/RA9
+/RA10
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
REF
V
AN8/RB8
REF
V
AN9/RB9
41
40
39
SS
DD
V
V
/RF13
TCK/RA1
AN11/RB11
AN10/RB10
AN12/RB12
U2RTS
U2CTS/RF12
45
44
43
42
AN13/RB13
AN14/RB14
4647484950
SS
DD
V
V
AN15/OCFB/CN12/RB15
/CN20/RD14
/CN21/RD15
U2TX/CN18/RF5
U2RX/CN17/RF4
IC8/U1RTS
IC7/U1CTS
2007 Microchip Technology Inc. DS70286A_CN 第 9 页
dsPIC33FJXXXGPX06/X08/X10
引脚图 (续)
100 引脚 TQFP
DDCORE
COFS/RG15
V
AN29/RE5
AN30/RE6
AN31/RE7
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
AN20/INT1/RA12
AN21/INT2/RA13
AN2/SS1
PGC3/EMUC3/AN1/CN3/RB1
PGD3/EMUD3/AN0/CN2/RB0
V
V
TMS/RA0
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
/CN4/RB2
DD
SS
DD
RG1
DD
C1RX/RF0
C1TX/RF1
V
AN23/CN23/RA7
AN26/RE2
CSDO/RG13
CSDI/RG12
AN28/RE4
AN27/RE3
99
100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CSCK/RG14
95
969897
AN22/CN22/RA6
AN25/RE1
AN24/RE0
RG0
929493
91908988878685848382818079
dsPIC33FJ256GP510
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
V
OC8/CN16/RD7
OC7/CN15/RD6
IC5/RD12
OC4/RD3
78
OC3/RD2
77
OC2/RD1
76
75
V
SS
74
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
73
PGD2/EMUD2/SOSCI/CN1/RC13
OC1/RD0
72
IC4/RD11
71
IC3/RD10
70
IC2/RD9
69
IC1/RD8
68
INT4/RA15
67
66
INT3/RA14
V
SS
65
OSC2/CLKO/RC15
64
OSC1/CLKIN/RC12
63
V
DD
62
TDO/RA5
61
TDI/RA4
60
SDA2/RA3
59
SCL2/RA2
58
SCL1/RG2
57
SDA1/RG3
56
SCK1/INT0/RF6
55
SDI1/RF7
54
SDO1/RF8
53
U1RX/RF2
52
51
U1TX/RF3
26
2829303132333435363738
27
SS
DD
AV
AV
-/RA9
+/RA10
PGC1/EMUC1/AN6/OCFA/RB6
PGD1/EMUD1/AN7/RB7
REF
V
REF
V
AN8/RB8
AN9/RB9
41
40
39
SS
DD
V
V
/RF13
TCK/RA1
AN11/RB11
AN10/RB10
AN12/RB12
U2RTS
U2CTS/RF12
45
44
43
42
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
4647484950
SS
DD
V
V
/CN20/RD14
/CN21/RD15
IC8/U1RTS
IC7/U1CTS
U2TX/CN18/RF5
U2RX/CN17/RF4
DS70286A_CN 第 10 页 2007 Microchip Technology Inc.
引脚图 (续)
100 引脚 TQFP
COFS/RG15
AN29/RE5
AN30/RE6
AN16/T2CK/T7CK/RC1
AN17/T3CK/T6CK/RC2
AN18/T4CK/T9CK/RC3
AN19/T5CK/T8CK/RC4
PGC3/EMUC3/AN1/CN3/RB1
PGD3/EMUD3/AN0/CN2/RB0
AN31/RE7
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
SS2/CN11/RG9
TMS/RA0
AN20/INT1/RA12
AN21/INT2/RA13
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
AN2/SS1
/CN4/R B2
V
MCLR
V
V
DD
SS
DD
dsPIC33FJXXXGPX06/X08/X10
DDCORE
AN23/CN23/RA7
AN26/RE2
CSDO/RG13
CSDI/RG12
AN28/RE4
AN27/RE3
99
100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CSCK/RG14
95
969897
AN22/CN22/RA6
AN25/RE1
AN24/RE0
C2RX/RG0
9294939190898887868584838281807978
dsPIC33FJ64GP710
dsPIC33FJ128GP710
dsPIC33FJ256GP710
DD
C1RX/RF0
V
C2TX/RG1
C1TX/RF1
OC6/CN14/RD5
OC5/CN13/RD4
IC6/CN19/RD13
IC5/RD12
OC4/RD3
OC3/RD2
V
OC8/CN16/RD7
OC7/CN15/RD6
OC2/RD1
76
77
75
V
SS
74
PGC2/EMUC2/SOSCO/T1CK/CN0/RC14
PGD2/EMUD2/SOSCI/CN1/RC13
73
OC1/RD0
72
71
IC4/RD11
IC3/RD10
70
IC2/RD9
69
68
IC1/RD8
INT4/RA15
67
66
INT3/RA14
V
SS
65
OSC2/CLKO/RC15
64
OSC1/CLKIN/RC12
63
DD
V
62
TDO/RA5
61
TDI/RA4
60
SDA2/RA3
59
SCL2/RA2
58
SCL1/RG2
57
SDA1/RG3
56
SCK1/INT0/RF6
55
SDI1/RF7
54
SDO1/RF8
53
U1RX/RF2
52
51
U1TX/RF3
26
2829303132333435363738
27
SS
DD
AV
AV
-/RA9
+/RA10
REF
V
PGD1/EMUD1/AN7/RB7
PGC1/EMUC1/AN6/OCFA/RB6
AN8/RB8
REF
V
AN9/RB9
AN10/RB10
41
40
39
SS
DD
V
V
/RF13
TCK/RA1
AN11/RB11
AN12/RB12
U2RTS
U2CTS/RF12
42
AN13/RB13
43
AN14/RB14
44
45
4647484950
SS
DD
V
V
AN15/OCFB/CN12/RB15
/CN20/RD14
/CN21/RD15
U2TX/CN18/RF5
U2RX/CN17/RF4
IC8/U1RTS
IC7/U1CTS
2007 Microchip Technology Inc. DS70286A_CN 第 11 页
dsPIC33FJXXXGPX06/X08/X10
目录
dsPIC33F 产品系列 ................................................................................................................................................................................ 3
1.0 器件概述 ..................................................................................................................................................................................... 13
2.0 CPU............................................................................................................................................................................................ 17
3.0 存储器构成 ................................................................................................................................................................................. 29
4.0 闪存程序存储器 .......................................................................................................................................................................... 67
5.0
复位 .......................................................................................................................................................................................... 73
6.0 中断控制器 ................................................................................................................................................................................. 79
7.0 直接存储器访问 ( DMA) ......................................................................................................................................................... 125
8.0 振荡器配置 ............................................................................................................................................................................... 135
9.0 节能特性 ................................................................................................................................................................................... 143
10.0 I/O 端口 ..................................................................................................................................................................................... 145
11.0 Timer1 ...................................................................................................................................................................................... 147
12.0 Timer2/3、 Timer4/5、 Timer6/7 和 Timer8/9 ......................................................................................................................... 149
13.0 输入捕捉 ................................................................................................................................................................................... 155
14.0 输出比较 ................................................................................................................................................................................... 157
15.0 串行外设接口 ( SPI)............................................................................................................................................................... 161
2
C ............................................................................................................................................................................................ 169
16.0 I
17.0 通用异步收发器 ( UART) ....................................................................................................................................................... 179
18.0 增强型 CAN ( ECAN™)模块 ................................................................................................................................................. 187
19.0 数据转换器接口 ( DCI)模块 ................................................................................................................................................... 217
20.0 10 位 /12 位模数转换器 ( ADC).............................................................................................................................................. 231
21.0 特殊功能 ................................................................................................................................................................................... 245
22.0 指令集汇总 ............................................................................................................................................................................... 253
23.0 开发支持 ................................................................................................................................................................................... 261
24.0 电气特性 ................................................................................................................................................................................... 265
25.0 封装信息 ................................................................................................................................................................................... 305
附录 A :“PS”(原型样片)器件和最终产品器件之间的差异......................................................................................................... 311
附录 B : 版本历史............................................................................................................................................................................. 312
索引 ................................................................................................................................................................................................... 313
Microchip 网站.................................................................................................................................................................................... 319
变更通知客户服务 .............................................................................................................................................................................. 319
客户支持............................................................................................................................................................................................. 319
读者反馈表 ......................................................................................................................................................................................... 320
产品标识体系...................................................................................................................................................................................... 321
致客户
我们旨在提供最佳文档供客户正确使用 Microchip 产品。为此,我们将不断改进出版物的内容和质量,使之更好地满足您的要求。
出版物的质量将随新文档及更新版本的推出而得到提升。
如果您对本出版物有任何问题和建议,请通过电子邮件联系我公司 TRC 经理,电子邮件地址为 CTRC@microchip.com ,或将本
数据手册后附的 《读者反馈表》传真到 86-21-5407 5066 。我们期待您的反馈。
最新数据手册
欲获得本数据手册的最新版本,请查询我公司的网站:
http://www.microchip.com
查看数据手册中任意一页下边角处的文献编号即可确定其版本。文献编号中数字串后的字母是版本号,例如:DS30000A是DS30000
的 A 版本。
勘误表
现有器件可能带有一份勘误表,描述了实际运行与数据手册中记载内容之间存在的细微差异以及建议的变通方法。一旦我们了解到
器件 / 文档存在某些差异时,就会发布勘误表。勘误表上将注明其所适用的硅片版本和文件版本。
欲了解某一器件是否存在勘误表,请通过以下方式之一查询:
• Microchip 网站 http://www.microchip.com
• 当地 Microchip 销售办事处 (见最后一页)
在联络销售办事处时,请说明您所使用的器件型号、硅片版本和数据手册版本 (包括文献编号)。
客户通知系统
欲及时获知 Microchip 产品的最新信息,请到我公司网站 www.microchip.com 上注册。
DS70286A_CN 第 12 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
1.0 器件概述
注: 本数据手册总结了
dsPIC33FJXXXGPX06/X08/X10 器件的功
能。但是不应把本手册当作无所不包的参
考手册来使用。如需了解本数据手册的补
充信息,请参见 《dsPIC33F 系列参考手
册》 。请参 见 Microchip 网站
(www.microchip.com)了解最新的
《dsPIC33F 系列参考手册》章节。
本文档涉及以下器件的具体信息:
• dsPIC33FJ64GP206
• dsPIC33FJ64GP306
• dsPIC33FJ64GP310
• dsPIC33FJ64GP706
• dsPIC33FJ64GP708
• dsPIC33FJ64GP710
• dsPIC33FJ128GP206
• dsPIC33FJ128GP306
• dsPIC33FJ128GP310
• dsPIC33FJ128GP706
• dsPIC33FJ128GP708
• dsPIC33FJ128GP710
• dsPIC33FJ256GP506
• dsPIC33FJ256GP510
• dsPIC33FJ256GP710
dsPIC33FJXXXGPX06/X08/X10 通用系列器件包括具
有多种引脚数 (64 、 80 和 100 )、不同程序存储容量
(64 KB 、128 KB 和 256 KB)和不同 RAM 容量(8 KB 、
16 KB 和 30 KB )的器件。
这使此系列器件适合于多种高性能数字信号控制应用。
器件的引脚与 PIC24H 系列器件的引脚兼容,并且还与
dsPIC30F 系列器件高度兼容。这样便于根据应用对特定
功能、计算资源和系统成本要求等方面的需求,在不同
系列器件之间移植。
dsPIC33FJXXXGPX06/X08/X10 系列器件采用强大的
16 位架构,此架构将数字信号处理器 ( Digital Signal
Processor, DSP)的计算能力与单片机 ( MCU)的控
制特性无缝地集成在一起。这种集成的功能对于需要高
速、重复计算和控制的应用非常理想。
DSP 引擎、两个 40 位累加器、支持除法运算的硬件、
桶形移位寄存器、 17 x 17 位乘法器、大的 16 位工作寄
存器阵列和多种数据寻址模式,共同为
dsPIC33FJXXXGPX06/X08/X10 中央处理单元(Central
Processing Unit, CPU)提供广泛的数学处理能力。灵
活而确定的中断处理与功能强大的外设相结合,使得
dsPIC33FJXXXGPX06/X08/X10 器件非常适合控制应
用。此外,直接存储器访问(DMA )允许数据在多个外
设和专用 DMA RAM 之间进行无 CPU 开销的传输。可
靠的现场可编程闪存程序存储器确保能对使用
dsPIC33FJXXXGPX06/X08/X10 器件的应用进行扩展。
图 1-1 给出了 dsPIC33FJXXXGPX06/X08/X10 系列器
件中内核和外设模块的一般框图。表 1-1 列出了引脚图
中显示的各引脚的功能。
2007 Microchip Technology Inc. DS70286A_CN 第 13 页
dsPIC33FJXXXGPX06/X08/X10
图 1-1: dsPIC33FJXXXGPX06/X08/X10 一般框图
PSV
和表
数据访问
控制模块
Y 数据总线
23
地址锁存器
程序存储器
数据锁存器
OSC2/CLKO
OSC1/CLKI
中断
控制器
23
时序
发生
FRC/LPRC
振荡器
高精度
带隙
参考
稳压器
23
至各模块的
控制信号
8
PCU
堆栈
控制
逻辑
地址总线
24
指令
译码和
控制
上电延时
起振定时器
PCH PCL
程序计数器
定时器
振荡器
上电
复位
看门狗
定时器
欠压
复位
16
循环
控制
逻辑
X 数据总线
16
数据锁存器
X RAM
地址
锁存器
ROM
指令寄存器
引擎
DSP
除法支持
16
数据锁存器
Y RAM
地址
锁存器
16
地址发生器单元
锁存器
16
16
EA
多路开关
16
立即数数据
16 x 16
W
寄存器阵列
16
16位ALU
DMA
RAM
DMA
控制器
16
16
16
16
PORTA
PORTB
PORTC
PORTD
PORTE
PORTF
PORTG
VDDCORE /VCAP
DD 和 V SS
V
定时器
1-9
IC1-8
MCLR
输出比较 /
PWM1-8
CN1-23
DCI
SPI1,2
ADC1,2
I2C1,2
ECAN1,2
UART1,2
注: 并非在所有器件的引脚配置中都实现了全部的引脚或功能。请参见引脚图了解每个器件上的特定引脚和功能的信息。
DS70286A_CN 第 14 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 1-1 : 引脚说明
引脚名称
AN0-AN31 I Analog
AV
DD PP
AVSS PP
CLKI
CLKO
CN0-CN23 I ST
COFS
CSCK
CSDI
CSDO
C1RX
C1TX
C2RX
C2TX
PGD1/EMUD1
PGC1/EMUC1
PGD2/EMUD2
PGC2/EMUC2
PGD3/EMUD3
PGC3/EMUC3
IC1-IC8 I ST
MCLR
OCFA
OCFB
OC1-OC8
OSC1
OSC2
RA0-RA7
RA9-RA10
RA12-RA15
RB0-RB15 I/O ST
RC1-RC4
RC12-RC15
RD0-RD15 I/O ST
RE0-RE7 I/O ST
RF0-RF8
RF12-RF13
RG0-RG3
RG6-RG9
RG12-RG15
SCK1
SDI1
SDO1
SS1
SCK2
SDI2
SDO2
SS2
图注: CMOS = CMOS 兼容输入或输出; Analog = 模拟输入
引脚
类型
I
O
I/O
I/O
I
O
I
O
I
O
I/O
I
I/O
I
I/O
I
I/P ST
I
I
O
I
I/O
I/O
I/O
I/O
I/O
I/O
I/O ST
I/O
I/O
I/O
I/O
I
O
I/O
I/O
I
O
I/O
ST = CMOS 电平的施密特触发器输入; O = 输出; I = 输入; P = 电源
缓冲器
类型
ST/CMOS
—
ST
ST
ST
—
ST
—
ST
—
ST
ST
ST
ST
ST
ST
ST
ST
—
ST/CMOS
—
ST
ST
ST
ST
ST
ST
ST
ST
ST
ST
—
ST
ST
ST
—
ST
模拟输入通道。
模拟模块的正电源。
模拟模块的参考地。
外部时钟源输入。总是与 OSC1 引脚功能相关联。
晶振输出。在晶振模式下,连接到晶体或谐振器。也可选择在 RC 和 EC 模式下用作
CLKO 。总是与 OSC2 引脚功能相关联。
输入电平变化通知输入。
可将所有输入软件编程为内部弱上拉。
数据转换器接口帧同步引脚。
数据转换器接口串行时钟输入 / 输出引脚。
数据转换器接口串行数据输入引脚。
数据转换器接口串行数据输出引脚。
ECAN1 总线接收引脚。
ECAN1 总线发送引脚。
ECAN2 总线接收引脚。
ECAN2 总线发送引脚。
编程 / 调试通信通道 1 使用的数据 I/O 引脚。
编程 / 调试通信通道 1 使用的时钟输入引脚。
编程 / 调试通信通道 2 使用的数据 I/O 引脚。
编程 / 调试通信通道 2 使用的时钟输入引脚。
编程 / 调试通信通道 3 使用的数据 I/O 引脚。
编程 / 调试通信通道 3 使用的时钟输入引脚。
捕捉输入 1 至 8。
主复位输入。此引脚为低电平有效的器件复位输入端。
比较故障 A 输入 (对于比较通道 1 、 2 、 3 和 4 )。
比较故障 B 输入 (对于比较通道 5 、 6 、 7 和 8 )。
比较输出 1 至 8。
晶振输入。配置为 RC 模式时为 ST 缓冲器输入;否则为 CMOS 输入。
晶振输出。在晶振模式下,连接到晶体或谐振器。也可选择在 RC 和 EC 模式下用作
CLKO。
PORTA 是双向 I/O 端口。
PORTB 是双向 I/O 端口。
PORTC 是双向 I/O 端口。
PORTD 是双向 I/O 端口。
PORTE 是双向 I/O 端口。
PORTF 是双向 I/O 端口。
PORTG 是双向 I/O 端口。
SPI1 的同步串行时钟输入 / 输出。
SPI1 数据输入。
SPI1 数据输出。
SPI1 从同步或帧脉冲 I/O。
SPI2 的同步串行时钟输入 / 输出。
SPI2 数据输入。
SPI2 数据输出。
SPI2 从同步或帧脉冲 I/O。
说明
2007 Microchip Technology Inc. DS70286A_CN 第 15 页
dsPIC33FJXXXGPX06/X08/X10
表 1-1 : 引脚说明 (续)
引脚名称
SCL1
SDA1
SCL2
SDA2
SOSCI
SOSCO
TMS
TCK
TDI
TDO
T1CK
T2CK
T3CK
T4CK
T5CK
T6CK
T7CK
T8CK
T9CK
U1CTS
U1RTS
U1RX
U1TX
U2CTS
U2RTS
U2RX
U2TX
V
DD P—
VDDCORE P—
SS P—
V
VREF + I Analog
REF- I Analog
V
图注: CMOS = CMOS 兼容输入或输出; Analog = 模拟输入
引脚
类型
I/O
I/O
I/O
I/O
I
O
I
I
I
O
I
I
I
I
I
I
I
I
I
I
O
I
O
I
O
I
O
ST = CMOS 电平的施密特触发器输入; O = 输出; I = 输入; P = 电源
缓冲器
类型
ST
ST
ST
ST
ST/CMOS
—
ST
ST
ST
—
ST
ST
ST
ST
ST
ST
ST
ST
ST
ST
—
ST
—
ST
—
ST
—
说明
I2C1 的同步串行时钟输入 / 输出。
I2C1 的同步串行数据输入 / 输出。
I2C2 的同步串行时钟输入 / 输出。
I2C2 的同步串行数据输入 / 输出。
32.768 kHz 低功耗晶振输入;否则为 CMOS 输入。
32.768 kHz 低功耗晶振输出。
JTAG 测试模式选择引脚。
JTAG 测试时钟输入引脚。
JTAG 测试数据输入引脚。
JTAG 测试数据输出引脚。
Timer1 外部时钟输入。
Timer2 外部时钟输入。
Timer3 外部时钟输入。
Timer4 外部时钟输入。
Timer5 外部时钟输入。
Timer6 外部时钟输入。
Timer7 外部时钟输入。
Timer8 外部时钟输入。
Timer9 外部时钟输入。
UART1 允许发送。
UART1 请求发送。
UART1 接收。
UART1 发送。
UART2 允许发送。
UART2 请求发送。
UART2 接收。
UART2 发送。
外设逻辑和 I/O 引脚的正电源。
CPU 逻辑滤波电容连接。
逻辑和 I/O 引脚的参考地。
模拟参考电压 (高电压)输入。
模拟参考电压 (低电压)输入。
DS70286A_CN 第 16 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
2.0 CPU
注: 本数据手册总结了
dsPIC33FJXXXGPX06/X08/X10 器件的功
能。但是不应把本手册当作无所不包的参
考手册来使用。如需了解本数据手册的补
充信息,请参见 《dsPIC33F 系列参考手
。
请参见 Microchip 网站
册》
(www.microchip.com)了解最新的
《dsPIC33F 系列参考手册》章节。
dsPIC33FJXXXGPX06/X08/X10 CPU 模块采用 16 位
(数据)的改进型哈佛架构,具有增强指令集,其中包
括对 DSP 的强大支持。 CPU 具有 24 位指令字,指令
字带有长度可变的操作码字段。程序计数器 (Program
Counter , PC )为 23 位宽,可以寻址最大 4M x 24 位
的用户程序存储空间。实际实现的程序存储容量因器件
而异。单周期指令预取机制可帮助维持吞吐量并使指令
的执行具有预测性。除了改变程序流的指令、双字传送
(MOV.D )指令和表指令以外,所有指令都在单个周期
内执行。使用 DO 和 REPEAT 指令支持无开销的程序循
环结构,这两条指令在任何时间都可以被中断。
dsPIC33FJXXXGPX06/X08/X10 器件在编程模型中有
16 个 16 位工作寄存器。每个工作寄存器都可以充当数
据、地址或地址偏移量寄存器。第 16 个工作寄存器
(W15 )作为软件堆栈指针(Sta ck Pointer , SP ),用
于中断和调用。
dsPIC33FJXXXGPX06/X08/X10指令集具有两类指令 :
MCU 类指令和 DSP 类指令。这两类指令无缝地集成到
单个 CPU 中。指令集包含多种寻址模式,指令的设计
可使 C 编译器的效率达到最优。对于大多数指令,
dsPIC33FJXXXGPX06/X08/X10 能够在每个指令周期
内执行一次数据 (或程序数据)存储器读取、一次工作
寄存器 (数据)读取、一次数据存储器写入以及一次程
序 (指令)存储器读取操作。因此,支持 3 操作数指
令,允许在单个周期内执行 A + B = C 这样的操作。
图
2-1
给出了
dsPIC33FJXXXGPX06/X08/X10
2.1 数据寻址概述
数据空间可以作为 32K 字或 64 KB 寻址,并被分成两
块,称为 X 和 Y 数据存储区。每个存储块有各自独立的
地址发生单元 (Address Generation Unit, AGU )。
MCU 类指令只通过 X 存储空间 AGU 进行操作,可将整
个存储器映射作为一个线性数据空间访问。某些 DSP 指
令通过 X 和 Y 的 AGU 进行操作以支持双操作数读操作,
CPU
的框图。图
的编程模型。
2-2
给出了
这样会将数据地址空间分成两个部分。X 和 Y 数据空间
的边界视具体器件而定。
X 和 Y 地址空间都支持无开销循环缓冲区 (模寻址模
式)。模寻址省去了 DSP 算法的软件边界检查开销。此
外,X AGU 的循环寻址可以用于任何 MCU 类指令。X
AGU 还支持位反转寻址,大幅简化了基 2 FFT 算法对
输入或输出数据的重新排序。
可以选择将数据存储空间映射的高 32 KB 映射到由 8 位
程序空间可视性页 (Program Space Visibility Page,
PSVPAG )寄存器定义的任何 16K 程序字边界内的程序
空间内。程序空间到数据空间的映射功能让任何指令都
能象访问数据空间一样访问程序空间。数据空间还包括
2 KB 的 DMA RAM ,它主要用于 DMA 数据传输,但也
可用作通用 RAM 。
2.2 DSP 引擎概述
DSP 引擎具有一个高速 17 位 x 17 位乘法器、一个 40
位 ALU 、两个 40 位饱和累加器和一个 40 位双向桶形移
位寄存器。该桶形移位寄存器能在单个周期内将一个 40
位的值右移或左移最多 16 位。DSP 指令可以无缝地与
所有其他指令一起操作,且设计为能获得最佳实时性
能。MAC 指令和其他相关指令可以在同一个周期内,同
时完成从存储器中取两个数据操作数,将两个 W 寄存器
相乘并累加,且可选择使结果饱和。这要求 RAM 数据
存储空间对于这些指令拆分为两块,但对于所有其他指
令保持线性。数据空间分块是通过将某些工作寄存器专
用于每个地址空间,以透明和灵活的方式实现的。
2.3 MCU 的特性
dsPIC33FJXXXGPX06/X08/X10 具有一个由 MCU ALU
和 DSP 引擎共用的 17 位 x 17 位单周期乘法器。此乘法
器可以进行有符号、无符号和混合符号的乘法运算。使
用 17 位 x 17 位乘法器进行 16 位 x 16 位乘法运算不仅允
许您执行混合符号的乘法运算,而且对于 (-1.0) x (-1.0)
这样的特殊运算也可以得到准确结果。
dsPIC33FJXXXGPX06/X08/X10 支持小数和整数的
16/16 位和 32/16 位除法运算。所有的除法指令都是迭
代操作。它们必须在一个 REPEAT 循环内执行,总执行
时间为 19 个指令周期。在这 19 个周期的任一周期内可
以中断除法运算而不会丢失数据。
一个 40 位的桶形移位寄存器用于在单个周期内将数据
左移或右移 16 位。 MCU 和 DSP 指令都可以使用该桶
形移位寄存器。
2007 Microchip Technology Inc. DS70286A_CN 第 17 页
dsPIC33FJXXXGPX06/X08/X10
图 2-1: dsPIC33FJXXXGPX06/X08/X10 CPU 内核框图
PSV 和表
数据访问
控制模块
Y 数据总线
23
23
地址锁存器
程序存储器
数据锁存器
中断
控制器
X 数据总线
8
23
PCU
堆栈
控制
逻辑
地址总线
24
指令
译码和
控制
至各模块的
控制信号
程序计数器
16
PCH PCL
循环
控制
逻辑
16
DSP 引擎
除法支持
16
数据锁存器
X RAM
地址
锁存器
16
地址发生器单元
ROM 锁存器
指令寄存器
数据锁存器
16
Y RAM
地址
锁存器
16
EA 多路开关
16
立即数数据
16 x 16
W 寄存器阵列
16
16
控制器
DMA
RAM
DMA
16
16
16 位 ALU
16
至外设模块
DS70286A_CN 第 18 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
图 2-2: dsPIC33FJXXXGPX06/X08/X10 编程模型
W0/WREG
W1
W2
W3
W4
DSP 操作数
寄存器
DSP 地址
寄存器
W5
W6
W7
W8
W9
W10
W11
W12/DSP 偏移量
W13/DSP 回写
W14/ 帧指针
W15/ 堆栈指针
D0 D15
PUSH.S 影子寄存器
DO 影子寄存器
图注
工作寄存器
DSP
累加器
PC22
7
7
22
22
TBLPAG
PSVPAG
AD39 AD0 AD31
ACCA
ACCB
0
数据表页地址
0
DOSTART
程序空间可视性页地址
15
15
DOEND
SPLIM 堆栈指针限制寄存器
AD15
PC0
程序计数器
0
0
RCOUNT
DCOUNT
REPEAT 循环计数器
0
DO 循环计数器
0
DO 循环起始地址
DO 循环结束地址
15
CORCON
OA OB SA SB
2007 Microchip Technology Inc. DS70286A_CN 第 19 页
OAB SAB
SRH
DA DC
IPL2 IPL1
RA
IPL0 OV
SRL
0
内核配置寄存器
N
C
Z
状态寄存器
dsPIC33FJXXXGPX06/X08/X10
2.4 CPU 控制寄存器
CPU 控制寄存器包括:
• SR : CPU 状态寄存器
• CORCON :内核控制寄存器
寄存器 2-1 : SR :CPU 状态寄存器
R-0 R-0 R/C-0 R/C-0 R-0 R/C-0 R -0 R/W-0
OA OB SA
(1)
bit 15 bit 8
SB
(1)
OAB SAB DA DC
R/W-0
(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 = 累加器 A 或 B 饱和或在过去某时已经饱和
0 = 累加器 A 和 B 都未饱和
注: 此位可被读取或清零 (但不能置 1)。清零此位的同时将清零 SA 和 SB。
bit 9
DA : DO 循环活动位
1 = 正在进行 DO 循环
0 = 不在进行 DO 循环
注 1: 此位可被读取或清零 (但不能置 1 )。
2: IPL<2:0> 位与 IPL<3> 位(CORCON<3>)组合形成 CPU 中断优先级。如果 IPL<3> = 1,那么括号中的
值表示 IPL 。当 IPL<3> = 1 时,禁止用户中断。
3 : 当 NSTDIS ( INTCON1<15>) = 1 时, IPL<2:0> 状态位是只读的。
DS70286A_CN 第 20 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 2-1: SR: CPU 状态寄存器 (续)
bit 8
bit 7-5
bit 4
bit 3
bit 2
bit 1
bit 0
DC : MCU ALU 半进位 / 借位
1 = 结果的第 4 个低位 (对于字节大小的数据)或第 8 个低位 (对于字大小的数据)发生了进位
0 = 结果的第 4 个低位 (对于字节大小的数据)或第 8 个低位 (对于字大小的数据)未发生进位
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 循环
N: MCU ALU 负标志位
1 = 结果为负
0 = 结果为非负 (零或正值)
OV : MCU ALU 溢出标志位
此位用于有符号的算术运算(二进制补码)。它表示量值上的溢出,这种溢出将导致符号位改变状态。
1 = 有符号算术运算中发生溢出 (本次运算)
0 = 未发生溢出
Z: MCU ALU 全零标志位
1 = 影响 Z 位的任何运算在过去某时已将该位置 1
0 = 影响 Z 位的最近一次运算已将该位清零 (即运算结果非零)
C: MCU ALU 进位 / 借位
1 = 结果的最高位发生了进位
0 = 结果的最高位未发生进位
标志位
(2)
标志位
注 1 : 此位可被读取或清零 (但不能置 1 )。
2 : IPL<2:0> 位与 IPL<3> 位(CORCON<3>)组合形成 CPU 中断优先级。如果 IPL<3> = 1,那么括号中的
值表示 IPL 。当 IPL<3> = 1 时,禁止用户中断。
3 : 当 NSTDIS ( INTCON1<15> ) = 1 时, IPL<2:0> 状态位是只读的。
2007 Microchip Technology Inc. DS70286A_CN 第 21 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 2-2: CORCON:内核控制寄存器
U-0 U-0 U-0 R/W-0 R/W-0 R-0 R-0 R-0
— — —U S E D T
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
bit 7 bit 0
图注:
R = 可读位 W = 可写位 -n = POR 时的值 1 = 置 1
0 = 清零 x = 未知 U = 未实现位,读为 0
bit 15-13 未实现:读为 0
bit 12
bit 11
bit 10-8
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
US : DSP 乘法无符号 / 有符号控制位
1 = DSP 引擎执行无符号乘法运算
0 = DSP 引擎执行有符号乘法运算
EDT : DO 循环提前终止控制位
1 = 在当前循环迭代结束时终止执行 DO 循环
0 = 无影响
DL<2:0> :DO 循环嵌套层级状态位
111 = 正在进行 7 层 DO 循环嵌套
•
•
•
001 = 正在进行 1 层 DO 循环嵌套
000 = 正在进行 0 层 DO 循环嵌套
SATA: AccA 饱和使能位
1 = 使能累加器 A 饱和
0 = 禁止累加器 A 饱和
SATB: AccB 饱和使能位
1 = 使能累加器 B 饱和
0 = 禁止累加器 B 饱和
SATDW: DSP 引擎的数据空间写饱和使能位
1 = 使能数据空间写饱和
0 = 禁止数据空间写饱和
ACCSAT: 累加器饱和模式选择位
1 = 9.31 饱和 (超饱和)
0 = 1.31 饱和 (正常饱和)
IPL3: CPU 中断优先级状态位 3
1 = CPU 中断优先级大于 7
0 = CPU 中断优先级等于或小于 7
PSV: 数据空间中程序空间可视性使能位
1 = 程序空间在数据空间中可视
0 = 程序空间在数据空间中不可视
RND: 舍入模式选择位
1 = 使能有偏 (常规)舍入
0 = 使能无偏 (收敛)舍入
IF: 整数或小数乘法器模式选择位
1 = 使能 DSP 乘法运算的整数模式
0 = 使能 DSP 乘法运算的小数模式
C = 只可清零位
(1)
(2)
(1)
(2)
DL<2:0>
PSV RND IF
注 1: 此位将总是读为 0 。
2: IPL3 位与 IPL<2:0> 位(SR<7:5>)组合形成 CPU 中断优先级。
DS70286A_CN 第 22 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
2.5 算术逻辑单元 ( ALU)
dsPIC33FJXXXGPX06/X08/X10 ALU 为 16 位宽,并能
进行加法、减法、移位和逻辑运算。除非特别指明,算
术运算一般采用二进制补码。根据不同的运算,ALU 可
能会影响 SR 寄存器中的进位标志位 (C )、全零标志
位(Z)、负标志位 (N )、溢出标志位 (OV )和半进
位标志位 (DC )的值。在减法运算中, C 和 DC 状态
位分别作为借位
根据所使用的指令模式,ALU 可执行 8 位或 16 位运算。
根据指令的寻址模式, ALU 运算的数据可以来自 W 寄
存器阵列或数据存储器。同样,ALU 的输出数据可被写
入 W 寄存器阵列或数据存储单元。
关于每条指令所影响的 SR 位的信息,请参见
《dsPIC30F/33F 程序员参考手册》(DS70157B_CN )。
dsPIC33FJXXXGPX06/X08/X10 CPU 融入了对乘法和
除法的硬件支持。它带有专门的硬件乘法器以及支持 16
位除数除法的硬件。
2.5.1 乘法器
通过使用 DSP 引擎的高速 17 位 x 17 位乘法器,ALU 支
持各种无符号、有符号或混合符号的 MCU 乘法运算:
1. 16 位 x 16 位有符号
2. 16 位 x 16 位无符号
3. 16 位有符号 x 5 位 (立即数)无符号
4. 16 位无符号 x 16 位无符号
5. 16 位无符号 x 5 位 (立即数)无符号
6. 16 位无符号 x 16 位有符号
7. 8 位无符号 x 8 位无符号
2.5.2 除法器
除法模块支持具有以下数据长度的 32 位 /16 位和 16 位
/16 位有符号和无符号整数除法运算:
1. 32 位有符号 /16 位有符号除法
2. 32 位无符号 /16 位无符号除法
3. 16 位有符号 /16 位有符号除法
4. 16 位无符号 /16 位无符号除法
所有除法指令的商都被放在 W0 中,余数放在 W1 中。
16 位有符号和无符号 DIV 指令可为 16 位除数指定任一
W 寄存器( Wn), 为 32 位被除数指定任意两个连续的
W 寄存器( W(m + 1):Wm)。除法运算中处理除数的每
一位需要一个周期,因此 32 位 /16 位和 16 位 /16 位指
令的执行周期数相同。
位和半借位位。
2.6 DSP 引擎
DSP 引擎由一个高速 17 位 x 17 位乘法器、一个桶形移
位寄存器和一个 40 位加法器 / 减法器 (两个目标累加
器、舍入逻辑和饱和逻辑)组成。
dsPIC33FJXXXGPX06/X08/X10 采用单周期指令流架
构;因此 DSP 引擎的工作不能与 MCU 指令流同时进
行。但是,某些 MCU ALU 和 DSP 引擎资源可由同一条
指令 (如 ED 和 EDAC )同时使用。
DSP 引擎还可以执行固有的不需要其他数据的累加器 累加器操作。这些指令是 ADD 、 SUB 和 NEG 。
通过 CPU 内核控制寄存器 (CORCON )中的各个位,
可以对 DSP 引擎的操作进行多种选择,这些选择如下:
1. 小数或整数 DSP 乘法 ( IF)。
2. 有符号或无符号 DSP 乘法 ( US)。
3. 常规或收敛舍入 ( RND)。
4. AccA 自动饱和使能 / 禁止 ( SATA)。
5. AccB 自动饱和使能 / 禁止 ( SATB)。
6. 对于写数据存储器,自动饱和使能 /禁止(SATDW)。
7. 累加器饱和模式选择 ( ACCSAT)。
表 2-1 给出了 DSP 指令的汇总。 DSP 引擎的框图如图
2-3 所示。
表 2-1 : DSP 指令汇总
指令 代数运算 ACC 回写
CLR A = 0
ED A = (x – y)
EDAC A = A + (x – y)
MAC A = A + (x * y)
MAC A = A + x
MOVSAC
MPY A = x * y
MPY A = x
MPY.N A = – x * y
MSC A = A – x * y
A 中内容将不发
生改变
2
2
2
2
有
无
无
有
无
有
无
无
无
有
2007 Microchip Technology Inc. DS70286A_CN 第 23 页
dsPIC33FJXXXGPX06/X08/X10
图 2-3: DSP 引擎框图
40
进位 / 借位输出
进位 / 借位输入
40 位累加器 A
40 位累加器 B
饱和
加法器
取补
40
40
符号扩展
40
桶形
移位
寄存器
40
16
40
舍入
逻辑
饱
16
和
X 数据总线
Y 数据总线
33
17 位
乘法器 / 定标器
16
至 / 来自 W 阵列
16
32
32
补零
16
DS70286A_CN 第 24 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
2.6.1 乘法器
17 位 x 17 位乘法器可以进行有符号或无符号运算,其
输出经过定标器进行换算后可支持 1.31 小数( Q31)或
32 位整数结果。无符号操作数经过零扩展后,送入乘法
器输入值的第 17 位。有符号操作数经过符号扩展后,送
入乘法器输入值的第 17 位。17 位 x 17 位乘法器 / 定标
器的输出是 33 位值,它将被符号扩展为 40 位。整型数
据的固有表示形式为有符号的二进制补码值,其中 MSb
定义为符号位。一般来说,N 位二进制补码整数的范围
N-1
N-1
到 2
为 -2
(0x8000 )到 32767 (0x7FFF ),包括 0 在内。对于
32 位整数,数据范围为 -2,147,483,648(0x8000 0000 )
到 2,147,483,647 (0x7FFF FFFF )。
当乘法器配置为小数乘法时,数据表示为二进制补码小
数,其中 MSb 定义为符号位,小数点暗含在符号位之
后(QX 格式)。暗含小数点的 N 位二进制补码小数的
范围为 -1.0 到(1 – 2
范围为 -1.0 (0x8000 )到 0.999969482 (0x7FFF ),
包括 0 在内,其精度为 3.01518x10
16 x 16 乘法运算将产生 1.31 乘积,其精度为 4.65661
-10
x 10
。
同一个乘法器还用来支持 MCU 乘法指令,包括整数的
16 位有符号、无符号和混合符号乘法。
MUL 指令可以使用字节或字长度的操作数。字节操作数
将产生 16 位结果,而字操作数将产生 32 位结果,结果
存放在 W 寄存器阵列的指定寄存器中。
– 1。对于 16 位整数,数据范围为 -32768
1-N
)。对 于 16 位小数, Q15 数据
-5
。在小数模式下,
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 个支持饱和和溢出的位,它们是:
1. OA:
AccA 溢出到警戒位
2. OB:
AccB 溢出到警戒位
3. SA:
AccA 已饱和 ( bit 31 溢出并饱和)
输入为低
或
AccA 溢出到警戒位并饱和( bit 39 溢出并饱和)
4. SB:
AccB 已饱和 ( bit 31 溢出并饱和)
或
AccB 溢出到警戒位并饱和( bit 39 溢出并饱和)
5. OAB:
OA 和 OB 的逻辑或 ( OR)
6. SAB:
SA 和 SB 的逻辑或 ( OR)
每次数据通过加法器 / 减法器,就会修改 OA 和 OB 位。
置 1 时,它们表明最近的操作已溢出到累加器警戒位
(bit 32 到 bit 39 )。如果 OA 和 OB 位置 1 而且 INTCON1
寄存器中相应的溢出陷阱标志允许位 (OVATE 和
OVBTE )置 1 的话,还可以选择用 OA 和 OB 位产生算
术警告陷阱 (见第 6.0 节 “中断控制器”)。这使得用
户能够立即采取措施,例如,校正系统增益。
2007 Microchip Technology Inc. DS70286A_CN 第 25 页
dsPIC33FJXXXGPX06/X08/X10
每次数据通过加法器 / 减法器,就会修改 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 位。这样,只需检查状态寄存器中的一
个位,程序员就能判断是否有累加器溢出;检查状态寄
存器中的另一个位,就可以判断是否有累加器饱和。对
于通常要使用两个累加器的复数运算而言,这很有用。
器件支持三种饱和和溢出模式:
1. bit 39 溢出和饱和:
当发生 bit 39 溢出和饱和时,饱和逻辑将最大的
正 9.31 值(0x7FFFFFFFFF)或最小的负 9.31
值( 0x8000000000 )装入目标累加器。SA 或 SB
位置 1 并保持直到被用户清零。这称为 “超饱
和”,为错误数据或不可预期的算法问题(例如,
增益计算)提供了保护机制。
2. bit 31 溢出和饱和:
当发生 bit 31 溢出和饱和时,饱和逻辑将最大的
正 1.31 值(0x007FFFFFFF)或最小的负 1.31
值(0x0080000000)装入目标累加器。 SA 或
SB 位置 1 并保持直到被用户清零。当这种饱和
模式生效时,不使用警戒位 (因此 OA 、 OB 或
OAB 位不会被置 1)。
3. bit 39 灾难性溢出:
加法器的 bit 39 溢出状态位用来将 SA 或 SB 位
置 1 ;这两位置 1 后,将保持状态直到被用户清
零。不进行饱和操作,允许累加器溢出(破坏其
符号位)。如果 INTCON1 寄存器中的COVTE 位
置 1 ,灾难性溢出会导致一个陷阱异常。
2.6.2.2 累加器 “回写”
MAC 类指令(MPY 、MPY.N、ED 和 EDAC 除外)可以选
择将累加器高位字 (bit 16 到 bit 31)的舍入形式写入
数据存储空间,前提是当前指令不对该累加器进行操
作。通过 X 总线寻址组合的 X 和 Y 地址空间,执行回写
操作。支持以下寻址模式:
1. W13 ,寄存器直接寻址:
非操作目标的累加器的舍入内容以1.15 小数形式
写入 W13 。
2. [W13]+=2 ,执行后递增的寄存器间接寻址:
非操作目标的累加器的舍入内容以1.15 小数形式
写入 W13 指向的地址。然后 W13 递增 2 (对于
字写入)。
2.6.2.3 舍入逻辑
舍入逻辑是一个组合模块,在累加器写(存储)过程中
执行常规的(有偏)或收敛的(无偏)舍入功能。舍入
模式由 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 )进行检测。如果它为 1 ,
ACCxH 递增 1 。如果它为 0 , ACCxH 不变。假设 bit 16
本身是随机的,这样的机制将消除任何可能累加的舍入
偏差。
通过 X 总线, SAC 和 SAC.R 指令将目标累加器内容的
截取 (SAC )或舍入 (SAC.R )形式存入数据存储空间
(这受数据饱和的影响,请参见第 2.6.2.4 节 “数据空
间写饱和”)。对于 MAC 类指令,累加器回写操作将以
同样的方式进行,通过 X 总线寻址组合的 MCU (X 和
Y)数据空间。对于此类指令,数据始终要进行舍入。
DS70286A_CN 第 26 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
2.6.2.4 数据空间写饱和
除了加法器 / 减法器饱和,对数据空间进行写操作也会
饱和,但不会影响源累加器的内容。数据空间写饱和逻
辑块接受来自舍入逻辑块的一个 16 位的 1.15 小数值作
为输入,还接受来自源 (累加器)和 16 位舍入加法器
的溢出状态。这些输入经过组合用来选择适当的 1.15 小
数值作为输出,写入数据存储空间中。
如果 CORCON 寄存器中的 SATDW 位置 1 ,将检测(经
过舍入或截取后的)数据是否溢出,并进行相应的调
整。如果输入数据大于 0x007FFF ,则写入数据存储器
中的数据被强制为最大的正 1.15 值, 0x7FFF 。如果输
入数据小于0xFF8000 ,则写入存储器中的数据被强制为
最小的负 1.15 值,0x8000。源累加器的最高位(bit 39 )
用来决定被检测的操作数的符号。
如果 CORCON 寄存器中的 SATDW 位没有置 1 ,则输
入数据都将通过,在任何情况下都不会被修改。
2.6.3 桶形移位寄存器
桶形移位寄存器在单个周期内可将数据算术或逻辑右移
或左移最多 16 位。源操作数可以是两个 DSP 累加器中
的任何一个或 X 总线(支持寄存器或存储器中数据的多
位移位)。
移位寄存器需要一个有符号二进制值,用来确定移位操
作的幅度 (位数)和方向。正值将操作数右移。负值则
将操作数左移。值为 0 则不改变操作数。
桶形移位寄存器为 40 位宽,于是,它为 DSP 移位操作
提供了 40 位的结果,而为 MCU 移位操作提供 16 位的
结果。来自 X 总线的数据在桶形移位寄存器中的存放方
式是:右移则数据存放在 bit 16 到 bit 31 ,左移则存放
在 bit 0 到 bit 15 。
2007 Microchip Technology Inc. DS70286A_CN 第 27 页
dsPIC33FJXXXGPX06/X08/X10
注:
DS70286A_CN 第 28 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
3.0 存储器构成
注: 本数据手册总结了
dsPIC33FJXXXGPX06/X08/X10 器件的功
能。但是不应把本手册当作无所不包的参
考手册来使用。如需了解本数据手册的补
充信息,请参见 《dsPIC33F 系列参考手
册》 。请参见 Microchip 网站
(www.microchip.com)了解最新的
《dsPIC33F 系列参考手册》章节。
dsPIC33FJXXXGPX06/X08/X10 架构具有独立的程序
和数据存储空间以及总线。这一架构同时还允许在代码
执行过程中从数据空间直接访问程序存储器。
3.1 程序地址空间
dsPIC33FJXXXGPX06/X08/X10 器件的程序地址存储
空间可存储 4M 个指令字。可通过由程序执行过程中 23
位程序计数器 (PC )和第 3.6 节 “程序存储空间与数
据存储空间的接口”中所述的表操作或数据空间重映射
得到的 24 位值寻址这一空间。
用户只能访问程序存储空间的低半地址部分(地址范围
为 0x000000 至 0x7FFFFF )。使用 TBLRD/TBLWT 指
令时,情况有所不同,这两条指令采用 TBLPAG<7> 以
允许访问配置存储空间中的配置位和器件 ID 。图 3-1 给
出了 dsPIC33FJXXXGPX06/X08/X10 器件的存储器使
用情况。
2007 Microchip Technology Inc. DS70286A_CN 第 29 页
dsPIC33FJXXXGPX06/X08/X10
图 3-1: dsPIC33FJXXXGPX06/X08/X10 器件的程序存储器
dsPIC33FJ64GPXXX dsPIC33FJ128GPXXX dsPIC33FJ256GPXXX
指令
GOTO
复位地址
中断向量表
保留
备用向量表
用户闪存
程序存储空间
(44K 指令字)
未实现
(读为 0)
备用向量表
用户存储空间
GOTO 指令
复位地址
中断向量表
保留
备用向量表
用户闪存
程序存储空间
(22K 指令字)
未实现
(读为 0)
GOTO
指令
复位地址
中断向量表
保留
用户闪存
程序存储空间
(88K 指令字)
未实现
(读为 0)
0x000000
0x000002
0X000004
0x0000FE
0x000100
0X000104
0X0001FE
0X000200
0x00ABFE
0x00AC00
0X0157FE
0X015800
0X02ABFE
0X02AC00
0X7FFFFE
0x800000
配置存储空间
保留
器件配置
寄存器
保留
DEVID (2)
保留
器件配置
寄存器
保留
DEVID (2)
保留
器件配置
寄存器
保留
DEVID (2)
0xF7FFFE
0xF80000
0xF80017
0xF80010
0xFEFFFE
0xFF0000
0xFFFFFE
DS70286A_CN 第 30 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
3.1.1 程序存储器构成
程序存储空间由可字寻址的块构成。虽然它被视为24 位
宽,但将程序存储器的每个地址视作一个低位字和一个
高位字的组合更加合理,其中高位字的高字节部分没有
实现。低位字的地址始终为偶数,而高位字的地址为奇
数(图3-2 )。
程序存储器地址始终在低位字处按字对齐,并且在代码
执行过程中地址将递增或递减 2 。这种寻址模式与数据
存储空间寻址兼容,且为访问程序存储空间中的数据提
供了可能。
图 3-2 : 程序存储器构成
msw
地址 ( lsw 地址)
0x000001
0x000003
0x000005
0x000007
00000000
00000000
00000000
00000000
最高有效字
23
3.1.2 中断和陷阱向量
所有 dsPIC33FJXXXGPX06/X08/X10 器件中从
0x00000 到 0x000200 之间的地址空间都是保留的,用
来存储硬编码的程序执行向量。提供了一个硬件复位向
量将代码执行从器件复位时 PC 的默认值重新定位到代
码实际起始处。用户可在地址 0x000000 处编写一条
GOTO 指令以将代码的实际起始地址设置为 0x000002。
dsPIC33FJXXXGPX06/X08/X10 器件也具有两个中断
向量表,地址分别为从 0x000004 到 0x0000FF 和
0x000100 到 0x0001FF。这两个向量表允许使用不同的
中断服务程序(Interrupt Service Routines,ISR)处 理
每个器件中断源。关于中断向量表更详细的讨论,请参
见第 6.1 节 “中断向量表”。
最低有效字
PC 地址
0 8 16
0x000000
0x000002
0x000004
0x000006
程序存储器
“虚拟”字节
(读为 0 )
指令宽度
2007 Microchip Technology Inc. DS70286A_CN 第 31 页
dsPIC33FJXXXGPX06/X08/X10
3.2 数据地址空间
dsPIC33FJXXXGPX06/X08/X10 CPU 具有独立的 16 位
宽数据存储空间。使用独立的地址发生单元(AGU )对
数据空间执行读写操作。图 3-3 到图 3-5 给出了带有不
同 RAM 大小的器件的数据存储器映射情况。
数据存储空间中的所有有效地址 (Effective Addresse ,
EA )均为 16 位宽,并且指向数据空间内的字节。这种
构成方式使得数据空间的地址范围为 64 KB 或 32K 字。
数据存储空间的低半地址部分 (即当 EA<15> = 0 时)
用作实现的存储单元,而高半地址部分 (EA<15> = 1)
则保留为程序空间可视性 (Program Space Visibility,
PSV )区域 (见第 3.6.3 节 “使用程序空间可视性读程
序存储器中的数据”)。
dsPIC33FJXXXGPX06/X08/X10 器件共实现了最大
30 KB 的数据存储空间。如果 EA 指向了该区域以外的
存储单元,则将返回一个全零的字或字节。
3.2.1 数据空间宽度
数据存储空间组织为可字节寻址的 16 位宽的块。在数
据存储器和寄存器中的数据是以16 位字为单位对齐的,
但所有数据空间 EA 都将解析为字节。每个字的低字节
(Least Significant Byte,LSB )部分具有偶地址,而高
字节 (Most Significant Byte , MSB )部分则具有奇地
址。
3.2.2 数据存储器构成和对齐方式
为维持与 PIC
空间的使用效率, dsPIC33FJXXXGPX06/X08/X10 指
令集同时支持字和字节操作。字节访问会在内部对按字
对齐的存储空间的所有有效地址进行计算调整。例如,
对于执行后修改寄存器间接寻址模式 [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 Registers,
SFR)占用。 dsPIC33FJXXXGPX06/X08/X10 内核和外
设模块使用这些寄存器来控制器件的工作。
SFR 分布在受其控制的模块中,通常一个模块会使用一
组 SFR 。大部分 SFR 空间包含未用的存储单元,它们
读为 0 。表 3-1 到表 3-32 给出了所有实现的 SFR 及其
地址的完整列表。
注: 不同器件的实际外设功能集和中断也各不
相同。关于特定器件的信息,请参见相应
器件的数据表和引脚图。
3.2.4 NEAR 数据空间
在 0x0000 和 0x1FFF 之间的 8 KB 的区域被称为 Near
数据空间。可以使用所有存储器直接寻址指令中的 13 位
绝对地址字段直接寻址这一空间中的存储单元。此外,
还可以使用 MOV 指令寻址整个数据空间,支持使用 16
位地址字段的存储器直接寻址模式或使用工作寄存器作
为地址指针的间接寻址模式。
DS70286A_CN 第 32 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
图 3-3:带 有 8 KB RAM 的 dsPIC33FJXXXGPX06/X08/X10 器件的数据存储器映射
2 KB
SFR 空间
8 KB
SRAM 空间
MSb
地址
0x0001
0x07FF
0x0801
0x17FF
0x1801
0x1FFF
0x2001
0x27FF 0x27FE
0x8001
16 位
LSb MSb
SFR 空间
X 数据 RAM(X)
Y 数据 RAM(Y)
DMA RAM
LSb
地址
0x0000
0x07FE
0x0800
0x17FE
0x1800
0x1FFE
0x2000
0x2800 0x2801
0x8000
8 KB
Near
数据
空间
可选择映射到
程序存储器
0xFFFF
X 数据
未实现( X)
0xFFFE
2007 Microchip Technology Inc. DS70286A_CN 第 33 页
dsPIC33FJXXXGPX06/X08/X10
图 3-4:带 有 16 KB RAM 的 dsPIC33FJXXXGPX06/X08/X10 器件的数据存储器映射
2 KB
SFR 空间
16 KB
SRAM 空间
MSb
地址
0x0001
0x07FF
0x0801
0x1FFF
0x27FF
0x2801
0x3FFF
0x4001
0x47FF 0x47FE
0x8001
16 位
SFR 空间
X 数据 RAM(X)
Y 数据 RAM(Y)
DMA RAM
LSb MSb
LSb
地址
0x0000
0x07FE
0x0800
0x1FFE
0x27FE
0x2800
0x3FFE
0x4000
0x4800 0x4801
0x8000
8 KB
Near
数据
空间
可选择映射到
程序存储器
0xFFFF
X 数据
未实现( X)
0xFFFE
DS70286A_CN 第 34 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
图 3-5:带 有 30 KB RAM 的 dsPIC33FJXXXGPX06/X08/X10 器件的数据存储器映射
2 KB
SFR 空间
30 KB
SRAM 空间
MSb
地址
0x0001
0x07FF
0x0801
0x47FF
0x4801
0x77FF
0x7800
0x7FFF
0x8001
16 位
SFR 空间
X 数据 RAM(X)
Y 数据 RAM(Y)
DMA RAM
LSb
地址
LSb MSb
0x0000
0x07FE
0x0800
0x47FE
0x4800
0x77FE
0x7800
0x7FFE
0x8000
8 KB
Near
数据
空间
可选择映射到
程序存储器
0xFFFF
X 数据
未实现( X)
0xFFFE
2007 Microchip Technology Inc. DS70286A_CN 第 35 页
dsPIC33FJXXXGPX06/X08/X10
3.2.5 X 和 Y 数据空间
内核有两个数据空间 X 和 Y 。这些数据空间可以看作是
独立的 (对于一些 DSP 指令),或者看作是统一的线
性地址范围 (对于 MCU 指令)。使用两个地址发生单
元(AGU)和独立的数据总线来访问这两个数据空间。
此特性允许某些指令同时从 RAM 中取两个字,因此提
高了某些DSP 算法的执行效率,如有限冲激响应(Finite
Impulse Response ,FIR )滤波算法和快速傅立叶变换
(Fast Fourier Transform, FFT)。
X 数据空间可用于所有指令,并且支持所有寻址模式。
X 数据空间的读数据总线和写数据总线是独立的。所有
将数据空间视为组合的 X 和 Y 地址空间的指令均将 X 读
数据总线作为读数据路径。X 读数据总线也可为双操作
数 DSP 指令 (MAC 类)的 X 数据预取路径。
MAC 类指令( CLR、ED、EDAC、MAC、MOVSAC、 MPY、
MPY.N和 MSC)将同时使用X 数据空间和 Y 数据空间,从
而提供两条可同时对数据进行读操作的路径。
X 和 Y 数据空间都支持所有指令的模寻址,但要受到寻
址模式的限制。位反转寻址模式只是在写 X 数据空间时
才支持。
所有数据存储器写操作 (包括 DSP 指令中的数据存储
器写操作)均把数据空间视为组合的 X 和 Y 地址空间。
X 和 Y 数据空间的分界取决于具体的器件,且不能由用
户编程。
所有有效地址均为16 位宽并且指向数据空间内的字节。
因此,数据空间地址范围为 64 KB 或 32K 字,尽管不同
器件上实际实现的存储单元有所不同。
3.2.6 DMA RAM
每个 dsPIC33FJXXXGPX06/X08/X10 器件包含 2 KB 的
双端口 DMA RAM ,位于 Y 数据空间的末端。DMA RAM
空间是Y 数据 RAM 的一部分,其中的存储单元可被CPU
和 DMA 控制器模块同时访问。 DMA 控制器使用 DMA
RAM 存储使用 DMA 传输到各个外设的数据,以及使用
DMA 从各个外设传输进来的数据。 DMA 控制器可以在
不占用 CPU 周期的情况下访问 DMA RAM 。
当 CPU 和 DMA 控制器尝试同时写同一个 DMA RAM 单
元时,硬件确保 CPU 具有优先访问权。因此, DMA
RAM 提供了传输 DMA 数据的可靠方式,而无须暂停
CPU。
注: 在不需要使用 DMA 功能的应用中, DMA
RAM 可作为通用数据存储区使用。
DS70286A_CN 第 36 页 2007 Microchip Technology Inc.
2007 Microchip Technology Inc. DS70286A_CN 第 37 页
表 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
PCL 002E
PCH 0030
TBLPAG 0032
PSVPAG 0034
RCOUNT 0036
DCOUNT 0038 DCOUNT<15:0> xxxx
DOSTARTL 003A DOSTARTL<15:1> 0x x x x
DOSTARTH 003C
DOENDL 003E DOENDL<15:1> 0x x x x
DOENDH 0040
SR 0042 OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C
CORCON 0044
MODCON 0046 XMODEN YMODEN — — BWM<3:0> YWM<3:0> XWM<3:0> 0000
XMODSRT 0048 XS<15:1> 0x x x x
XMODEND 004A XE<15:1> 1x x x x
YMODSRT 004C YS<15:1> 0x x x x
YMODEND 004E YE<15:1> 1x x x x
XBREV 0050 BREN XB<14:0> xxxx
DISICNT 0052
BSRAM 0750
SSRAM 0752
图注: 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
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
工作寄存器
堆栈指针限制寄存器
— — — — — — — —
— — — — — — — —
— — — — — — — —
— — — — — — — — — — DOSTARTH<5:0> 00xx
— — — — — — — — — — DOENDH 00xx
— — —
— —
— — — — — — — — — — — — —
— — — — — — — — — — — — —
US EDT DL<2:0>
程序计数器低位字寄存器
Repeat
循环计数器寄存器
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
程序计数器高字节寄存器
表页地址指针寄存器
程序存储器可视性页地址指针寄存器
SATA SATB SATDW ACCSAT IPL3 PSV RND IF
禁止中断计数器寄存器
IW_BSR IR_BSR RL_BSR
IW_SSR IR_SSR RL_SSR
所有复位
时的状态
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0800
xxxx
0000
0000
0000
0000
xxxx
0000
0000
xxxx
0000
0000
dsPIC33FJXXXGPX06/X08/X10
DS70286A_CN 第 38 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 3-2: 电平变化通知寄存器映射
SFR
名称
CNEN1 0060 CN15IE CN14IE CN13IE CN12IE CN11IE CN10IE CN9IE CN8IE CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE
CNEN2 0062
CNPU1 0068 CN15PUE CN14PUE CN13PUE CN12PUE CN11PUE CN10PUE CN9PUE CN8PUE CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE
CNPU2 006A
图注: 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
— — — — — — — —
— — — — — — — —
CN23IE CN22IE CN21IE CN20IE CN19IE CN18IE CN17IE CN16IE
CN23PUE CN22PUE CN21PUE CN20PUE CN19PUE CN18PUE CN17PUE CN16PUE
所有复
位时的
状态
0000
0000
0000
0000
2007 Microchip Technology Inc. DS70286A_CN 第 39 页
表 3-3 : 中断控制器寄存器映射
SFR
SFR 名称
INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR DMACERR MATHERR ADDRERR STKERR OSCFAIL
INTCON2 0082 ALTIVT DISI
IFS0 0084
IFS1 0086 U2TXIF U2RXIF INT2IF T5IF T4IF OC4IF OC3IF DMA2IF IC8IF IC7IF AD2IF INT1IF CNIF
IFS2 0088 T6IF DMA4IF
IFS3 008A
IFS4 008C
IEC0 0094
IEC1 0096 U2TXIE U2RXIE INT2IE T5IE T4IE OC4IE OC3IE DMA2IE IC8IE IC7IE AD2IE INT1IE CNIE
IEC2 0098 T6IE DMA4IE
IEC3 009A
IEC4 009C
IPC0 00A4
IPC1 00A6
IPC2 00A8
IPC3 00AA
IPC4 00AC
IPC5 00AE
IPC6 00B0
IPC7 00B2
IPC8 00B4
IPC9 00B6
IPC10 00B8
IPC11 00BA
IPC12 00BC
IPC13 00BE
IPC14 00C0
IPC15 00C2
IPC16 00C4
IPC17 00C6
INTTREG 00E0
图注: 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
地址
— — — — — — — — — INT4EP INT3EP INT2EP INT1EP INT0EP 0000
— DMA1IF AD1IF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF T2IF OC2IF IC2IF DMA0IF T1IF OC1IF IC1IF INT0IF 0000
— MI2C1IF SI2C1IF 0000
OC8IF OC7IF OC6IF OC5IF IC6IF IC5IF IC4IF IC3IF DMA3IF C1IF C1RXIF SPI2IF SPI2EIF 0000
— DMA5IF DCIIF DCIEIF C2IF C2RXIF INT4IF INT3IF T9IF T8IF MI2C2IF SI2C2IF T7IF 0000
— — — — — — — — C2TXIF C1TXIF DMA7IF DMA6IF —U 2 E I FU 1 E I F 0000
— DMA1IE AD1IE U1TXIE U1RXIE SPI1IE SPI1EIE T3IE T2IE OC2IE IC2IE DMA0IE T1IE OC1IE IC1IE INT0IE 0000
— MI2C1IE SI2C1IE 0000
— OC8IE OC7IE OC6IE OC5IE IC6IE IC5IE IC4IE IC3IE DMA3IE C1IE C1RXIE SPI2IE SPI2EIE 0000
— DMA5IE DCIIE DCIEIE C2IE C2RXIE INT4IE INT3IE T9IE T8IE MI2C2IE SI2C2IE T7IE 0000
— — — — — — — — C2TXIE C1TXIE DMA7IE DMA6IE —U 2 E I EU 1 E I E 0000
— T1IP<2:0> —O C 1 I P < 2 : 0 > —I C 1 I P < 2 : 0 >— INT0IP<2:0> 4444
— T2IP<2:0> —O C 2 I P < 2 : 0 > —I C 2 I P < 2 : 0 >— DMA0IP<2:0> 4444
— U1RXIP<2:0> — SPI1IP<2:0> — SPI1EIP<2:0> — T3IP<2:0> 4444
— — — — — DMA1IP<2:0> — AD1IP<2:0> — U1TXIP<2:0> 4444
— CNIP<2:0> — — — — — MI2C1IP<2:0> — SI2C1IP<2:0> 4444
— IC8IP<2:0> —I C 7 I P < 2 : 0 > — AD2IP<2:0> — INT1IP<2:0> 4444
— T4IP<2:0> —O C 4 I P < 2 : 0 > —O C 3 I P < 2 : 0 >— DMA2IP<2:0> 4444
— U2TXIP<2:0> — U2RXIP<2:0> — INT2IP<2:0> — T5IP<2:0> 4444
— C1IP<2:0> — C1RXIP<2:0> — SPI2IP<2:0> — SPI2EIP<2:0> 4444
— IC5IP<2:0> —I C 4 I P < 2 : 0 > —I C 3 I P < 2 : 0 >— DMA3IP<2:0> 4444
— OC7IP<2:0> —O C 6 I P < 2 : 0 > —O C 5 I P < 2 : 0 >—I C 6 I P < 2 : 0 >4444
— T6IP<2:0> — DMA4IP<2:0> — — — — — OC8IP<2:0> 4444
— T8IP<2:0> — MI2C2IP<2:0> — SI2C2IP<2:0> — T7IP<2:0> 4444
— C2RXIP<2:0> — INT4IP<2:0> — INT3IP<2:0> — T9IP<2:0> 4444
— DCIEIP<2:0> — — — C2IP<2:0> 4444
— — — — — — DMA5IP<2:0> — DCIIP<2:0> 4444
— — — — — U2EIP<2:0> — U1EIP<2:0> — 4444
— C2TXIP<2:0> — C1TXIP<2:0> — DMA7IP<2:0> — DMA6IP<2:0> 4444
— — — — ILR<3:0> VECNUM<6:0> 0000
所有
复位时
的状态
— 0000
dsPIC33FJXXXGPX06/X08/X10
DS70286A_CN 第 40 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 3-4: 定时器寄存器映射
SFR
SFR 名称
TMR1 0100
PR1 0102
T1CON 0104 TON
TMR2 0106
TMR3HLD 0108
TMR3 010A
PR2 010C
PR3 010E
T2CON 0110 TON
T3CON 0112 TON
TMR4 0114
TMR5HLD 0116
TMR5 0118
PR4 011A
PR5 011C
T4CON 011E TON
T5CON 0120 TON
TMR6 0122
TMR7HLD 0124
TMR7 0126
PR6 0128
PR7 012A
T6CON 012C TON
T7CON 012E TON
TMR8 0130
TMR9HLD 0132
TMR9 0134
PR8 0136
PR9 0138
T8CON 013A TON
T9CON 013C TON
图注: 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
地址
—
TSIDL
—
TSIDL
—
TSIDL
—
TSIDL
—
TSIDL
—
TSIDL
—
TSIDL
—
TSIDL
—
TSIDL
— — — — — —
— — — — — —
— — — — — —
— — — — — —
— — — — — —
— — — — — —
— — — — — —
— — — — — —
— — — — — —
Tim er1
寄存器
周期寄存器
Tim er2
Timer 3
保持寄存器 (仅适用于32位定时器操作)
Tim er3
周期寄存器
周期寄存器
Tim er4
Timer 5
保持寄存器 (仅适用于32位定时器操作)
Tim er5
周期寄存器
周期寄存器
Tim er6
Timer 7
保持寄存器 (仅适用于32位定时器操作)
Tim er7
周期寄存器
周期寄存器
Tim er8
Timer 9
保持寄存器 (仅适用于32位定时器操作)
Tim er9
周期寄存器
周期寄存器
1
寄存器
寄存器
2
3
寄存器
寄存器
4
5
寄存器
寄存器
6
7
寄存器
寄存器
8
9
TGATE TCKPS<1:0>
TGATE TCKPS<1:0> T32
TGATE TCKPS<1:0>
TGATE TCKPS<1:0> T32
TGATE TCKPS<1:0>
TGATE TCKPS<1:0> T32
TGATE TCKPS<1:0>
TGATE TCKPS<1:0> T32
TGATE TCKPS<1:0>
—
— —
— —
— —
— —
TSYNC TCS
—
—
—
—
TCS
TCS
TCS
TCS
TCS
TCS
TCS
TCS
所有复
位时的
状态
xxxx
FFFF
—
0000
xxxx
xxxx
xxxx
FFFF
FFFF
—
0000
—
0000
xxxx
xxxx
xxxx
FFFF
FFFF
—
0000
—
0000
xxxx
xxxx
xxxx
FFFF
FFFF
—
0000
—
0000
xxxx
xxxx
xxxx
FFFF
FFFF
—
0000
—
0000
2007 Microchip Technology Inc. DS70286A_CN 第 41 页
表 3-5 : 输入捕捉寄存器映射
SFR 名称
IC1BUF 0140
IC1CON 0142
IC2BUF 0144
IC2CON 0146
IC3BUF 0148
IC3CON 014A
IC4BUF 014C
IC4CON 014E
IC5BUF 0150
IC5CON 0152
IC6BUF 0154
IC6CON 0156
IC7BUF 0158
IC7CON 015A
IC8BUF 015C
IC8CON 015E
图注: 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
— —
— —
— —
— —
— —
— —
— —
— —
ICSIDL
ICSIDL
ICSIDL
ICSIDL
ICSIDL
ICSIDL
ICSIDL
ICSIDL
— — — — —
— — — — —
— — — — —
— — — — —
— — — — —
— — — — —
— — — — —
— — — — —
输入捕捉1寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
输入捕捉2寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
输入捕捉3寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
输入捕捉4寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
输入捕捉5寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
输入捕捉6寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
输入捕捉7寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
输入捕捉8寄存器
ICTMR ICI<1:0> ICOV ICBNE ICM<2:0>
所有复位
时的状态
xxxx
0000
xxxx
0000
xxxx
0000
xxxx
0000
xxxx
0000
xxxx
0000
xxxx
0000
xxxx
0000
dsPIC33FJXXXGPX06/X08/X10
DS70286A_CN 第 42 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 3-6: 输出比较寄存器映射
SFR 名称
OC1RS 0180
OC1R 0182
OC1CON 0184
OC2RS 0186
OC2R 0188
OC2CON 018A
OC3RS 018C
OC3R 018E
OC3CON 0190
OC4RS 0192
OC4R 0194
OC4CON 0196
OC5RS 0198
OC5R 019A
OC5CON 019C
OC6RS 019E
OC6R 01A0
OC6CON 01A2
OC7RS 01A4
OC7R 01A6
OC7CON 01A8
OC8RS 01AA
OC8R 01AC
OC8CON 01AE
图注: 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
OCSIDL
OCSIDL
OCSIDL
OCSIDL
OCSIDL
OCSIDL
— — — — — — — —
— — — — — — — —
— — — — — — — —
— — — — — — — —
— — — — — — — —
— — — — — — — —
— — — — — — — —
— — — — — — — —
输出比较1辅助寄存器
输出比较1寄存器
OCFLT OCTSEL OCM<2:0>
输出比较2辅助寄存器
输出比较2寄存器
OCFLT OCTSEL OCM<2:0>
输出比较3辅助寄存器
输出比较3寄存器
OCFLT OCTSEL OCM<2:0>
输出比较4辅助寄存器
输出比较4寄存器
OCFLT OCTSEL OCM<2:0>
输出比较5辅助寄存器
输出比较5寄存器
OCFLT OCTSEL OCM<2:0>
输出比较6辅助寄存器
输出比较6寄存器
OCFLT OCTSEL OCM<2:0>
输出比较7辅助寄存器
输出比较7寄存器
OCFLT OCTSEL OCM<2:0>
输出比较8辅助寄存器
输出比较8寄存器
OCFLT OCTSEL OCM<2:0>
所有复位
时的状态
xxxx
xxxx
0000
xxxx
xxxx
0000
xxxx
xxxx
0000
xxxx
xxxx
0000
xxxx
xxxx
0000
xxxx
xxxx
0000
xxxx
xxxx
0000
xxxx
xxxx
0000
2007 Microchip Technology Inc. DS70286A_CN 第 43 页
表 3-7 : I2C1 寄存器映射
SFR 名称
I2C1RCV 0200
I2C1TRN 0202
I2C1BRG 0204
I2C1CON 0206 I2CEN
I2C1STAT 0208 ACKSTAT TRSTAT
I2C1ADD 020A
I2C1MSK 020C
图注: 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
— — — — — — — —
— — — — — — — —
— — — — — — —
—
I2CSIDL SCLREL IPMIEN A10M DISSLW SMEN GCEN STREN ACKDT ACKEN RCEN PEN RSEN SEN
— — —
— — — — — —
— — — — — —
接收寄存器
发送寄存器
波特率发生器寄存器
BCL GCSTAT ADD10 IWCOL I2COV D_A P S R_W RBF TBF
地址寄存器
地址掩码寄存器
所有复位
时的状态
0000
00FF
0000
1000
0000
0000
0000
表 3-8: I2C2 寄存器映射
SFR 名称
I2C2RCV 0210
I2C2TRN 0212
I2C2BRG 0214
I2C2CON 0216 I2CEN
I2C2STAT 0218 ACKSTAT TRSTAT
I2C2ADD 021A
I2C2MSK 021C
图注: 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
— — — — — — — —
— — — — — — — —
— — — — — — —
—
I2CSIDL SCLREL IPMIEN A10M DISSLW SMEN GCEN STREN ACKDT ACKEN RCEN PEN RSEN SEN
— — —
— — — — — —
— — — — — —
接收寄存器
发送寄存器
波特率发生器寄存器
BCL GCSTAT ADD10 IWCOL I2COV D_A P S R_W RBF TBF
地址寄存器
地址掩码寄存器
dsPIC33FJXXXGPX06/X08/X10
所有复位
时的状态
0000
00FF
0000
1000
0000
0000
0000
DS70286A_CN 第 44 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 3-9: UART1 寄存器映射
SFR 名称
U1MODE 0220 UARTEN
U1STA 0222 UTXISEL1 UTXINV UTXISEL0
U1TXREG 0224
U1RXREG 0226
U1BRG 0228
图注: 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
—
USIDL IREN RTSMD
—
UTXBRK UTXEN UTXBF TRMT URXISEL<1:0> ADDEN RIDLE PERR FERR OERR URXDA
— — — — — — —
— — — — — — —
—
UEN1 UEN0 WAKE LPBACK ABAUD URXINV BRGH PDSEL<1:0> STSEL
UART
发送寄存器
UART
接收寄存器
波特率发生器预分频器
所有复位
时的状态
0000
0110
xxxx
0000
0000
表 3-10: UART2 寄存器映射
SFR 名称
U2MODE 0230 UARTEN
U2STA 0232 UTXISEL1 UTXINV UTXISEL0
U2TXREG 0234
U2RXREG 0236
U2BRG 0238
图注: 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
—
— — — — — — —
— — — — — — —
USIDL IREN RTSMD
—
UTXBRK UTXEN UTXBF TRMT URXISEL<1:0> ADDEN RIDLE PERR FERR OERR URXDA
—
UEN1 UEN0 WAKE LPBACK ABAUD URXINV BRGH PDSEL<1:0> STSEL
UART
发送寄存器
UART
接收寄存器
波特率发生器预分频器
所有复位
时的状态
0000
0110
xxxx
0000
0000
表 3-11: SPI1 寄存器映射
SFR
SFR 名称
SPI1STAT 0240 SPIEN
SPI1CON1 0242
SPI1CON2 0244 FRMEN SPIFSD FRMPOL
SPI1BUF 0248
图注: 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
地址
—
— — —
SPISIDL
— — — — — —
DISSCK DISSDO MODE16 SMP CKE SSEN CKP MSTEN SPRE<2:0> PPRE<1:0>
— — — — — — — — — — —
发送和接收缓冲寄存器
SPI1
SPIROV
— — — —
SPITBF SPIRBF
FRMDLY
所有复位
时的状态
0000
0000
—
0000
0000
表 3-12: SPI2 寄存器映射
SFR
SFR 名称
SPI2STAT 0260 SPIEN
SPI2CON1 0262
SPI2CON2 0264 FRMEN SPIFSD FRMPOL
SPI2BUF 0268
图注: 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
地址
—
SPISIDL
— — —
— — — — — —
DISSCK DISSDO MODE16 SMP CKE SSEN CKP MSTEN SPRE<2:0> PPRE<1:0>
— — — — — — — — — — —
发送和接收缓冲寄存器
SPI2
SPIROV
— — — —
SPITBF SPIRBF
FRMDLY
—
所有复位
时的状态
0000
0000
0000
0000
2007 Microchip Technology Inc. DS70286A_CN 第 45 页
表 3-13 : ADC1 寄存器映射
寄存器名称 地址
ADC1BUF0 0300
AD1CON1 0320 ADON
AD1CON2 0322 VCFG<2:0>
AD1CON3 0324 ADRC
AD1CHS123 0326
AD1CHS0 0328 CH0NB
AD1PCFGH 032A PCFG31 PCFG30 PCFG29 PCFG28 PCFG27 PCFG26 PCFG25 PCFG24 PCFG23 PCFG22 PCFG21 PCFG20 PCFG19 PCFG18 PCFG17 PCFG16 0000
AD1PCFGL 032C PCFG15 PCFG14 PCFG13 PCFG12 PCFG11 PCFG10 PCFG9 PCFG8 PCFG7 PCFG6 PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 0000
AD1CSSH 032E CSS31 CSS30 CSS29 CSS28 CSS27 CSS26 CSS25 CSS24 CSS23 CSS22 CSS21 CSS20 CSS19 CSS18 CSS17 CSS16 0000
AD1CSSL 0330 CSS15 CSS14 CSS13 CSS12 CSS11 CSS10 CSS9 CSS8 CSS7 CSS6 CSS5 CSS4 CSS3 CSS2 CSS1 CSS0 0000
AD1CON4 0332
图注: 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
ADC 数据缓冲器 0
— ADSIDL ADDMABM — AD12B FORM<1:0> SSRC<2:0> — SIMSAM ASAM SAMP DONE 0000
— — CSCNA CHPS<1:0> BUFS — SMPI<3:0> BUFM ALTS 0000
— — SAMC<4:0> — — ADCS<5:0> 0000
— — — — — CH123NB<1:0> CH123SB — — — — — CH123NA<1:0> CH123SA 0000
— — CH0SB<4:0> CH0NA — — CH0SA<4:0> 0000
— — — — — — — — — — — — — DMABL<2:0> 0000
所有复
位时的
状态
xxxx
dsPIC33FJXXXGPX06/X08/X10
表 3-14 : ADC2 寄存器映射
寄存器名称 地址
ADC2BUF0 0340
AD2CON1 0360 ADON
AD2CON2 0362 VCFG<2:0>
AD2CON3 0364 ADRC
AD2CHS123 0366
AD2CHS0 0368 CH0NB
保留
AD2PCFGL 036C PCFG15 PCFG14 PCFG13 PCFG12 PCFG11 PCFG10 PCFG9 PCFG8 PCFG7 PCFG6 PCFG5 PCFG4 PCFG3 PCFG2 PCFG1 PCFG0 0000
保留
AD2CSSL 0370 CSS15 CSS14 CSS13 CSS12 CSS11 CSS10 CSS9 CSS8 CSS7 CSS6 CSS5 CSS4 CSS3 CSS2 CSS1 CSS0 0000
AD2CON4 0372
图注: x = 复位时的未知值, — = 未实现 (读为 0 )。复位值以十六进制显示。
036A
036E
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
ADC 数据缓冲器 0
— ADSIDL ADDMABM — AD12B FORM<1:0> SSRC<2:0> — SIMSAM ASAM SAMP DONE 0000
— — CSCNA CHPS<1:0> BUFS — SMPI<3:0> BUFM ALTS 0000
— — SAMC<4:0> — — ADCS<5:0> 0000
— — — — — CH123NB<1:0> CH123SB — — — — — CH123NA<1:0> CH123SA 0000
— — — CH0SB<3:0> CH0NA — — — CH0SA<3:0> 0000
— — — — — — — — — — — — — — — — 0000
— — — — — — — — — — — — — — — — 0000
— — — — — — — — — — — — — DMABL<2:0> 0000
所有复
位时的
状态
xxxx
DS70286A_CN 第 46 页 2007 Microchip Technology Inc.
表 3-15 : DMA 寄存器映射
寄存器名称 地址
DMA0CON 0380 CHEN SIZE DIR HALF NULLW
DMA0REQ 0382 FORCE
DMA0STA 0384 STA<15:0> 0000
DMA0STB 0386 STB<15:0> 0000
DMA0PAD 0388 PAD<15:0> 0000
DMA0CNT 038A
DMA1CON 038C CHEN SIZE DIR HALF NULLW
DMA1REQ 038E FORCE
DMA1STA 0390 STA<15:0> 0000
DMA1STB 0392 STB<15:0> 0000
DMA1PAD 0394 PAD<15:0> 0000
DMA1CNT 0396
DMA2CON 0398 CHEN SIZE DIR HALF NULLW
DMA2REQ 039A FORCE
DMA2STA 039C STA<15:0> 0000
DMA2STB 039E STB<15:0> 0000
DMA2PAD 03A0 PAD<15:0> 0000
DMA2CNT 03A2
DMA3CON 03A4 CHEN SIZE DIR HALF NULLW
DMA3REQ 03A6 FORCE
DMA3STA 03A8 STA<15:0> 0000
DMA3STB 03AA STB<15:0> 0000
DMA3PAD 03AC PAD<15:0> 0000
DMA3CNT 03AE
DMA4CON 03B0 CHEN SIZE DIR HALF NULLW
DMA4REQ 03B2 FORCE
DMA4STA 03B4 STA<15:0> 0000
DMA4STB 03B6 STB<15:0> 0000
DMA4PAD 03B8 PAD<15:0> 0000
DMA4CNT 03BA
DMA5CON 03BC CHEN SIZE DIR HALF NULLW
DMA5REQ 03BE FORCE
DMA5STA 03C0 STA<15:0> 0000
DMA5STB 03C2 STB<15:0> 0000
DMA5PAD 03C4 PAD<15:0> 0000
图注: — = 未实现 (读为 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
— — — — —A M O D E < 1 : 0 > — —M O D E < 1 : 0 >0000
— — — — — — — — IRQSEL<6:0> 0000
— — — — — — CNT<9:0> 0000
— — — — —A M O D E < 1 : 0 > — —M O D E < 1 : 0 >0000
— — — — — — — — IRQSEL<6:0> 0000
— — — — — — CNT<9:0> 0000
— — — — —A M O D E < 1 : 0 > — —M O D E < 1 : 0 >0000
— — — — — — — — IRQSEL<6:0> 0000
— — — — — — CNT<9:0> 0000
— — — — —A M O D E < 1 : 0 > — —M O D E < 1 : 0 >0000
— — — — — — — — IRQSEL<6:0> 0000
— — — — — — CNT<9:0> 0000
— — — — —A M O D E < 1 : 0 > — —M O D E < 1 : 0 >0000
— — — — — — — — IRQSEL<6:0> 0000
— — — — — — CNT<9:0> 0000
— — — — —A M O D E < 1 : 0 > — —M O D E < 1 : 0 >0000
— — — — — — — — IRQSEL<6:0> 0000
所有复
位时的
状态
dsPIC33FJXXXGPX06/X08/X10
2007 Microchip Technology Inc. DS70286A_CN 第 47 页
表 3-15 : DMA 寄存器映射 (续)
寄存器名称 地址
DMA5CNT 03C6 — — — — — — CNT<9:0> 0000
DMA6CON 03C8 CHEN SIZE DIR HALF NULLW
DMA6REQ 03CA FORCE
DMA6STA 03CC STA<15:0> 0000
DMA6STB 03CE STB<15:0> 0000
DMA6PAD 03D0 PAD<15:0> 0000
DMA6CNT 03D2
DMA7CON 03D4 CHEN SIZE DIR HALF NULLW
DMA7REQ 03D6 FORCE
DMA7STA 03D8 STA<15:0> 0000
DMA7STB 03DA STB<15:0> 0000
DMA7PAD 03DC PAD<15:0> 0000
DMA7CNT 03DE
DMACS0 03E0 PWCOL7 PWCOL6 PWCOL5 PWCOL4 PWCOL3 PWCOL2 PWCOL1 PWCOL0 XWCOL7 XWCOL6 XWCOL5 XWCOL4 XWCOL3 XWCOL2 XWCOL1 XWCOL0 0000
DMACS1 03E2
DSADR 03E4 DSADR<15:0> 0000
图注: — = 未实现 (读为 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
— — — — —A M O D E < 1 : 0 > — —M O D E < 1 : 0 >0000
— — — — — — — — IRQSEL<6:0> 0000
— — — — — — CNT<9:0> 0000
— — — — —A M O D E < 1 : 0 > — —M O D E < 1 : 0 >0000
— — — — — — — — IRQSEL<6:0> 0000
— — — — — — CNT<9:0> 0000
— — — — LSTCH<3:0> PPST7 PPST6 PPST5 PPST4 PPST3 PPST2 PPST1 PPST0 0000
所有复
位时的
状态
dsPIC33FJXXXGPX06/X08/X10
DS70286A_CN 第 48 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 3-16 :当C1CTRL1.WIN = 0 或 1 时的 ECAN1 寄存器映射
寄存器名称 地址
C1CTRL1 0400
C1CTRL2 0402
C1VEC 0404
C1FCTRL 0406 DMABS<2:0>
C1FIFO 0408
C1INTF 040A
C1INTE 040C
C1EC 040E TERRCNT<7:0> RERRCNT<7:0> 0000
C1CFG1 0410
C1CFG2 0412
C1FEN1 0414
C1FMSKSEL1 0418 F7MSK<1:0> F6MSK<1:0> F5MSK<1:0> F4MSK<1:0> F3MSK<1:0> F2MSK<1:0> F1MSK<1:0> F0MSK<1:0> 0000
C1FMSKSEL2 041A F15MSK<1:0> F14MSK<1:0> F13MSK<1:0> F12MSK<1:0> F11MSK<1:0> F10MSK<1:0> F9MSK<1:0> F8MSK<1:0> 0000
图注: — = 未实现 (读为 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
— — CSIDL ABAT CANCKS REQOP<2:0> OPMODE<2:0> — CANCAP — —W I N0480
— — — — — — — — — — — DNCNT<4:0> 0000
— — —F I L H I T < 4 : 0 > — ICODE<6:0> 0000
— — — — — — — —
— —F B P < 5 : 0 > — — FNRB<5:0> 0000
— — TXBO TXBP RXBP TXWAR RXWAR EWARN IVRIF WAKIF ERRIF — FIFOIF RBOVIF RBIF TBIF 0000
— — — — — — — — IVRIE WAKIE ERRIE — FIFOIE RBOVIE RBIE TBIE 0000
— — — — — — — — SJW<1:0> BRP<5:0> 0000
—W A K F I L— — — SEG2PH<2:0> SEG2PHTS SAM SEG1PH<2:0> PRSEG<2:0> 0000
FLTEN15 FLTEN14 FLTEN13 FLTEN12 FLTEN11 FLTEN10 FLTEN9 FLTEN8 FLTEN7 FLTEN6 FLTEN5 FLTEN4 FLTEN3 FLTEN2 FLTEN1 FLTEN0
FSA<4:0>
所有复
位时的
状态
0000
0000
表 3-17 :当C1CTRL1.WIN = 0 时的 ECAN1 寄存器映射
寄存器名称 地址
C1RXFUL1 0420 RXFUL15 RXFUL14 RXFUL13 RXFUL12 RXFUL11 RXFUL10 RXFUL9 RXFUL8 RXFUL7 RXFUL6 RXFUL5 RXFUL4 RXFUL3 RXFUL2 RXFUL1 RXFUL0 0000
C1RXF UL2 0422 RXFUL31 RXFUL30 RXFUL29 RXFUL28 RXFUL27 RXFUL26 RXFUL25 RXFUL24 RXFUL23 RXFUL22 RXFUL21 RXFUL20 RXFUL19 RXFUL18 RXFUL17 RXFUL16 0000
C1RXOVF1 0428 RXOVF15 RXOVF14 RXOVF13 RXOVF12 RXOVF11 RXOVF10 RXOVF9 RXOVF8 RXOVF7 RXOVF6 RXOVF5 RXOVF4 RXOVF3 RXOVF2 RXOVF1 RXOVF0 0000
C1RXOVF2 042A RXOVF31 RXOVF30 RXOVF29 RXOVF28 RXOVF27 RXOVF26 RXOVF25 RXOVF24 RXOVF23 RXOVF22 RXOVF21 RXOVF20 RXOVF19 RXOVF18 RXOVF17 RXOVF16 0000
C1TR01CON 0430
C1TR23CON 0432
C1TR45CON 0434
C1TR67CON 0436
C1RXD 0440
C1TXD 0442
图注: 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
0400-
041E
TXEN1 TXABT1 TXLARB1 TXERR1 TXREQ1 RTREN1 TX1PRI<1:0> TXEN0 TXABAT0 TXLARB0 TXERR0 TXREQ0 RTREN0 TX0PRI<1:0>
TXEN3 TXABT3 TXLARB3 TXERR3 TXREQ3 RTREN3 TX3PRI<1:0> TXEN2 TXABAT2 TXLARB2 TXERR2 TXREQ2 RTREN2 TX2PRI<1:0>
TXEN5 TXABT5 TXLARB5 TXERR5 TXREQ5 RTREN5 TX5PRI<1:0> TXEN4 TXABAT4 TXLARB4 TXERR4 TXREQ4 RTREN4 TX4PRI<1:0>
TXEN7 TXABT7 TXLARB7 TXERR7 TXREQ7 RTREN7 TX7PRI<1:0> TXEN6 TXABAT6 TXLARB6 TXERR6 TXREQ6 RTREN6 TX6PRI<1:0>
请参见当 WIN = x 时的定义
接收到的数据字
待发送的数据字
所有复
位时的
状态
0000
0000
0000
xxxx
xxxx
xxxx
2007 Microchip Technology Inc. DS70286A_CN 第 49 页
表 3-18 :当C1CTRL1.WIN = 1 时的 ECAN1 寄存器映射
寄存器名称 地址
0400-
C1BUFPNT1 0420 F3BP<3:0> F2BP<3:0> F1BP<3:0> F0BP<3:0> 0000
C1BUFPNT2 0422 F7BP<3:0> F6BP<3:0> F5BP<3:0> F4BP<3:0> 0000
C1BUFPNT3 0424 F11BP<3:0> F10BP<3:0> F9BP<3:0> F8BP<3:0> 0000
C1BUFPNT4 0426 F15BP<3:0> F14BP<3:0> F13BP<3:0> F12BP<3:0> 0000
C1RXM0SID 0430 SID<10:3> SID<2:0>
C1RXM0EID 0432 EID<15:8> EID<7:0> xxxx
C1RXM1SID 0434 SID<10:3> SID<2:0>
C1RXM1EID 0436 EID<15:8> EID<7:0> xxxx
C1RXM2SID 0438 SID<10:3> SID<2:0>
C1RXM2EID 043A EID<15:8> EID<7:0> xxxx
C1RXF0SID 0440 SID<10:3> SID<2:0>
C1RXF0EID 0442 EID<15:8> EID<7:0> xxxx
C1RXF1SID 0444 SID<10:3> SID<2:0>
C1RXF1EID 0446 EID<15:8> EID<7:0> xxxx
C1RXF2SID 0448 SID<10:3> SID<2:0>
C1RXF2EID 044A EID<15:8> EID<7:0> xxxx
C1RXF3SID 044C SID<10:3> SID<2:0>
C1RXF3EID 044E EID<15:8> EID<7:0> xxxx
C1RXF4SID 0450 SID<10:3> SID<2:0>
C1RXF4EID 0452 EID<15:8> EID<7:0> xxxx
C1RXF5SID 0454 SID<10:3> SID<2:0>
C1RXF5EID 0456 EID<15:8> EID<7:0> xxxx
C1RXF6SID 0458 SID<10:3> SID<2:0>
C1RXF6EID 045A EID<15:8> EID<7:0> xxxx
C1RXF7SID 045C SID<10:3> SID<2:0>
C1RXF7EID 045E EID<15:8> EID<7:0> xxxx
C1RXF8SID 0460 SID<10:3> SID<2:0>
C1RXF8EID 0462 EID<15:8> EID<7:0> xxxx
C1RXF9SID 0464 SID<10:3> SID<2:0>
C1RXF9EID 0466 EID<15:8> EID<7:0> xxxx
C1RXF10SID 0468 SID<10:3> SID<2:0>
C1RXF10EID 046A EID<15:8> EID<7:0> xxxx
图注: 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
041E
请参见当 WIN = x 时的定义
—M I D E—E I D < 1 7 : 1 6 >xxxx
—M I D E—E I D < 1 7 : 1 6 >xxxx
—M I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
所有复位
时的状态
dsPIC33FJXXXGPX06/X08/X10
DS70286A_CN 第 50 页 2007 Microchip Technology Inc.
表 3-18 :当C1CTRL1.WIN = 1 时的 ECAN1 寄存器映射 (续)
寄存器名称 地址
C1RXF11SID 046C SID<10:3> SID<2:0> —E X I D E—E I D < 1 7 : 1 6 >xxxx
C1RXF11EID 046E EID<15:8> EID<7:0> xxxx
C1RXF12SID 0470 SID<10:3> SID<2:0>
C1RXF12EID 0472 EID<15:8> EID<7:0> xxxx
C1RXF13SID 0474 SID<10:3> SID<2:0>
C1RXF13EID 0476 EID<15:8> EID<7:0> xxxx
C1RXF14SID 0478 SID<10:3> SID<2:0>
C1RXF14EID 047A EID<15:8> EID<7:0> xxxx
C1RXF15SID 047C SID<10:3> SID<2:0>
C1RXF15EID 047E EID<15:8> EID<7:0> xxxx
图注: 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
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
—E X I D E—E I D < 1 7 : 1 6 >xxxx
所有复位
时的状态
dsPIC33FJXXXGPX06/X08/X10
2007 Microchip Technology Inc. DS70286A_CN 第 51 页
表 3-19 :当C2CTRL1.WIN = 0 或 1 时的 ECAN2 寄存器映射
寄存器名称 地址
C2CTRL1 0500
C2CTRL2 0502
C2VEC 0504
C2FCTRL 0506 DMABS<2:0>
C2FIFO 0508
C2INTF 050A
C2INTE 050C
C2EC 050E TERRCNT<7:0> RERRCNT<7:0> 0000
C2CFG1 0510
C2CFG2 0512
C2FEN1 0514 FLTEN15 FLTEN14 FLTEN13 FLTEN12 FLTEN11 FLTEN10 FLTEN9 FLTEN8 FLTEN7 FLTEN6 FLTEN5 FLTEN4 FLTEN3 FLTEN2 FLTEN1 FLTEN0 0000
C2FMSKSEL1 0518 F7MSK<1:0> F6MSK<1:0> F5MSK<1:0> F4MSK<1:0> F3MSK<1:0> F2MSK<1:0> F1MSK<1:0> F0MSK<1:0> 0000
C2FMSKSEL2 051A F15MSK<1:0> F14MSK<1:0> F13MSK<1:0> F12MSK<1:0> F11MSK<1:0> F10MSK<1:0> F9MSK<1:0> F8MSK<1:0> 0000
图注: — = 未实现 (读为 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
— — CSIDL ABAT CANCKS REQOP<2:0> OPMODE<2:0> — CANCAP — —W I N0480
— — — — — — — — — — — DNCNT<4:0> 0000
— — —F I L H I T < 4 : 0 > —I C O D E < 6 : 0 >0000
— — — — — — — —
— —F B P < 5 : 0 > — — FNRB<5:0> 0000
— — TXBO TXBP RXBP TXWAR RXWAR EWARN IVRIF WAKIF ERRIF — FIFOIF RBOVIF RBIF TBIF 0000
— — — — — — — — IVRIE WAKIE ERRIE — FIFOIE RBOVIE RBIE TBIE 0000
— — — — — — — — SJW<1:0> BRP<5:0> 0000
— WAKFIL — — — SEG2PH<2:0> SEG2PHTS SAM SEG1PH<2:0> PRSEG<2:0> 0000
FSA<4:0>
所有复
位时的
状态
0000
dsPIC33FJXXXGPX06/X08/X10
表 3-20 :当C2CTRL1.WIN = 0 时的 ECAN2 寄存器映射
寄存器名称 地址
C2RXF UL1 0520 RXFUL15 RXFUL14 RXFUL13 RXFUL12 RXFUL11 RXFUL10 RXFUL9 RXFUL8 RXFUL7 RXFUL6 RXFUL5 RXFUL4 RXFUL3 RXFUL2 RXFUL1 RXFUL0 0000
C2RXF UL2 0522 RXFUL31 RXFUL30 RXFUL29 RXFUL28 RXFUL27 RXFUL26 RXFUL25 RXFUL24 RXFUL23 RXFUL22 RXFUL21 RXFUL20 RXFUL19 RXFUL18 RXFUL17 RXFUL16 0000
C2RXOVF1 0528 RXOVF15 RXOVF14 RXOVF13 RXOVF12 RXOVF11 RXOVF10 RXOVF09 RXOVF08 RXOVF7 RXOVF6 RXOVF5 RXOVF4 RXOVF3 RXOVF2 RXOVF1 RXOVF0 0000
C2RXOVF2 052A RXOVF31 RXOVF30 RXOVF29 RXOVF28 RXOVF27 RXOVF26 RXOVF25 RXOVF24 RXOVF23 RXOVF22 RXOVF21 RXOVF20 RXOVF19 RXOVF18 RXOVF17 RXOVF16 0000
C2TR01CON 0530 TXEN1 TX
C2TR23CON 0532 TXEN3 TX
C2TR45CON 0534 TXEN5 TX
C2TR67CON 0536 TXEN7 TX
C2RXD 0540
C2TXD 0542
图注: 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
0500051E
ABAT1TXLARB1TXERR1TXREQ1
ABAT3TXLARB3TXERR3TXREQ3
ABAT5TXLARB5TXERR5TXREQ5
ABAT7TXLARB7TXERR7TXREQ7
RTREN1 TX1PRI<1:0> TXEN0 TX
RTREN3 TX3PRI<1:0> TXEN2 TX
RTREN5 TX5PRI<1:0> TXEN4 TX
RTREN7 TX7PRI<1:0> TXEN6 TX
请参见当 WIN = x 时的定义
接收到的数据字
待发送的数据字
ABAT0TXLARB0TXERR0TXREQ0
ABAT2TXLARB2TXERR2TXREQ2
ABAT4TXLARB4TXERR4TXREQ4
ABAT6TXLARB6TXERR6TXREQ6
RTREN0 TX0PRI<1:0> 0000
RTREN2 TX2PRI<1:0> 0000
RTREN4 TX4PRI<1:0> 0000
RTREN6 TX6PRI<1:0> xxxx
所有复
位时的
状态
xxxx
xxxx
DS70286A_CN 第 52 页 2007 Microchip Technology Inc.
表 3-21 :当C2CTRL1.WIN = 1 时的 ECAN2 寄存器映射
寄存器名称 地址
C2BUF PNT1 0520 F3BP<3:0> F2BP<3:0> F1BP<3:0> F0BP<3:0> 0000
C2BUF PNT2 0522 F7BP<3:0> F6BP<3:0> F5BP<3:0> F4BP<3:0> 0000
C2BU FPN T3 0524 F11BP<3:0> F10BP<3:0> F9BP<3:0> F8BP<3:0> 0000
C2BU FPN T4 0526 F15BP<3:0> F14BP<3:0> F13BP<3:0> F12BP<3:0> 0000
C2RXM0SID 0530 SID<10:3> SID<2:0>
C2RXM0EID 0532 EID<15:8> EID<7:0> xxxx
C2RXM1SID 0534 SID<10:3> SID<2:0>
C2RXM1EID 0536 EID<15:8> EID<7:0> xxxx
C2RXM2SID 0538 SID<10:3> SID<2:0>
C2RXM2EID 053A EID<15:8> EID<7:0> xxxx
C2RXF0SID 0540 SID<10:3> SID<2:0>
C2RXF0EID 0542 EID<15:8> EID<7:0> xxxx
C2RXF1SID 0544 SID<10:3> SID<2:0>
C2RXF1EID 0546 EID<15:8> EID<7:0> xxxx
C2RXF2SID 0548 SID<10:3> SID<2:0>
C2RXF2EID 054A EID<15:8> EID<7:0> xxxx
C2RXF3SID 054C SID<10:3> SID<2:0>
C2RXF3EID 054E EID<15:8> EID<7:0> xxxx
C2RXF4SID 0550 SID<10:3> SID<2:0>
C2RXF4EID 0552 EID<15:8> EID<7:0> xxxx
C2RXF5SID 0554 SID<10:3> SID<2:0>
C2RXF5EID 0556 EID<15:8> EID<7:0> xxxx
C2RXF6SID 0558 SID<10:3> SID<2:0>
C2RXF6EID 055A EID<15:8> EID<7:0> xxxx
C2RXF7SID 055C SID<10:3 SID<2:0>
C2RXF7EID 055E EID<15:8> EID<7:0> xxxx
C2RXF8SID 0560 SID<10:3 SID<2:0>
C2RXF8EID 0562 EID<15:8> EID<7:0> xxxx
C2RXF9SID 0564 SID<10:3 SID<2:0>
C2RXF9EID 0566 EID<15:8> EID<7:0> xxxx
C2RXF10SID 0568 SID<10:3 SID<2:0>
图注: 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
0500
-
051E
请参见当 WIN = x 时的定义
—M I D E—E I D < 1 7 : 1 6 >xxxx
—M I D E—E I D < 1 7 : 1 6 >xxxx
—M I D E—E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
所有复
位时的
状态
dsPIC33FJXXXGPX06/X08/X10
2007 Microchip Technology Inc. DS70286A_CN 第 53 页
表 3-21 :当C2CTRL1.WIN = 1 时的 ECAN2 寄存器映射 (续)
寄存器名称 地址
C2RXF10EID 056A EID<15:8> EID<7:0> xxxx
C2RXF11SID 056C SID<10:3 SID<2:0>
C2RXF11EID 056E EID<15:8> EID<7:0> xxxx
C2RXF12SID 0570 SID<10:3 SID<2:0>
C2RXF12EID 0572 EID<15:8> EID<7:0> xxxx
C2RXF13SID 0574 SID<10:3
C2RXF13EID 0576 EID<15:8>
C2RXF14SID 0578 SID<10:3
C2RXF14EID 057A EID<15:8>
C2RXF15SID 057C SID<10:3
C2RXF15EID 057E EID<15:8> EID<7:0> xxxx
图注: 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
— EXIDE —E I D < 1 7 : 1 6 >xxxx
— EXIDE —E I D < 1 7 : 1 6 >xxxx
SID<2:0>
SID<2:0>
SID<2:0>
— EXIDE —E I D < 1 7 : 1 6 >
EID<7:0>
— EXIDE —E I D < 1 7 : 1 6 >
EID<7:0>
— EXIDE —E I D < 1 7 : 1 6 >
所有复
位时的
状态
xxxx
xxxx
xxxx
xxxx
xxxx
dsPIC33FJXXXGPX06/X08/X10
DS70286A_CN 第 54 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 3-22: DCI 寄存器映射
SFR 名称 地址
DCICON1 0280 DCIEN
DCICON2 0282
DCICON3 0284
DCISTAT 0286
TSCON 0288 TSE15 TSE14 TSE13 TSE12 TSE11 TSE10 TSE9 TSE8 TSE7 TSE6 TSE5 TSE4 TSE3 TSE2 TSE1 TSE0 0000 0000 0000 0000
RSCON 028C RSE15 RSE14 RSE13 RSE12 RSE11 RSE10 RSE9 RSE8 RSE7 RSE6 RSE5 RSE4 RSE3 RSE2 RSE1 RSE0 0000 0000 0000 0000
RXBUF0 0290
RXBUF1 0292
RXBUF2 0294
RXBUF3 0296
TXBUF0 0298
TXBUF1 029A
TXBUF2 029C
TXBUF3 029E
图注: — = 未实现 (读为 0)。
注 1 : 关于寄存器中各位的说明,请参见 《dsPIC33F 系列参考手册》。
表 3-23 : PORTA 寄存器映射
寄存器名称 地址
TRISA 02C0
PORTA 02C2
LATA 02C4
(2)
ODCA
图注: x = 复位时的未知值, — = 未实现 (读为 0)。 PinHigh 器件的复位值以十六进制显示。
注 1 : 实际的 I/O 端口引脚设置随器件变化。请参见相应的引脚图。
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
— DCISIDL — DLOOP CSCKD CSCKE COFSD UNFM CSDOM DJST — — — COFSM1 COFSM0 0000 0000 0000 0000
— — — — BLEN1 BLEN0 — COFSG<3:0> —W S < 3 : 0 >0000 0000 0000 0000
— — — —B C G < 1 1 : 0 >0000 0000 0000 0000
— — — — SLOT3 SLOT2 SLOT1 SLOT0 — — — — ROV RFUL TUNF TMPTY 0000 0000 0000 0000
接收缓冲器 #0 数据寄存器
接收缓冲器 #1 数据寄存器
接收缓冲器 #2 数据寄存器
接收缓冲器 #3 数据寄存器
发送缓冲器 #0 数据寄存器
发送缓冲器 #1 数据寄存器
发送缓冲器 #2 数据寄存器
发送缓冲器 #3 数据寄存器
(1)
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
TRISA15 TRISA14 TRISA13 TRISA12
RA15 RA14 RA13 RA12
LATA15 LATA14 LATA13 LATA12
06C0
ODCA15 ODCA14 ODCA13 ODCA12
—
TRISA10 TRISA9
—
—
— — — — — —
RA10 RA9
LATA10 LATA9
—
TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0
—
RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
—
LATA7 LATA6 LATA5 LATA4 LATA3 LATA2 LATA1 LATA0
ODCA5 ODCA4 ODCA3 ODCA2 ODCA1 ODCA0
复位状态
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0000
所有复
位时的
状态
D6C0
xxxx
xxxx
xxxx
表 3-24 : PORTB 寄存器映射
寄存器名称 地址
TRISB 02C6 TRISB15 TRISB14 TRISB13 TRISB12 TRISB11 TRISB10 TRISB9 TRISB8 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0
PORTB 02C8 RB15 RB14 RB13 RB12 RB11 RB10 RB9 RB8 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
LATB 02CA LATB15 LATB14 LATB13 LATB12 LATB11 LATB10 LATB9 LATB8 LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0
图注: x = 复位时的未知值, — = 未实现 (读为 0)。 PinHigh 器件的复位值以十六进制显示。
注 1 : 实际的 I/O 端口引脚设置随器件变化。请参见相应的引脚图。
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)
所有复位
时的状态
FFFF
xxxx
xxxx
2007 Microchip Technology Inc. DS70286A_CN 第 55 页
表 3-25 : PORTC 寄存器映射
寄存器名称 地址
TRISC 02CC TRISC15 TRISC14 TRISC13 TRISC12
PORTC 02CE RC15 RC14 RC13 RC12
LATC 02D0 LATC15 LATC14 LATC13 LATC12
图注: x = 复位时的未知值, — = 未实现 (读为 0)。 PinHigh 器件的复位值以十六进制显示。
注 1 : 实际的 I/O 端口引脚设置随器件变化。请参见相应的引脚图。
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)
— — — — — — —
— — — — — — —
— — — — — — —
TRISC4 TRISC3 TRISC2 TRISC1
RC4 RC3 RC2 RC1
LATC4 LATC3 LATC2 LATC1
所有复位
时的状态
—
—
—
F01E
xxxx
xxxx
表 3-26 : PORTD 寄存器映射
寄存器名称 地址
TRISD 02D2
PORTD 02D4
LATD 02D6
ODCD 06D2
图注: x = 复位时的未知值, — = 未实现 (读为 0)。 PinHigh 器件的复位值以十六进制显示。
注 1 : 实际的 I/O 端口引脚设置随器件变化。请参见相应的引脚图。
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
TRISD15 TRISD14 TRISD13 TRISD12
RD15 RD14 RD13 RD12
LATD15 LATD14 LATD13 LATD12
ODCD15 ODCD14 ODCD13 ODCD12 ODCD11 ODCD10 ODCD9 ODCD8 ODCD7 ODCD6 ODCD5 ODCD4 ODCD3 ODCD2 ODCD1 ODCD0
表 3-27 : PORTE 寄存器映射
寄存器名称 地址
TRISE 02D8
PORTE 02DA
LATE 02DC
图注: x = 复位时的未知值, — = 未实现 (读为 0)。 PinHigh 器件的复位值以十六进制显示。
注 1 : 实际的 I/O 端口引脚设置随器件变化。请参见相应的引脚图。
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-28 : PORTF 寄存器映射
寄存器名称 地址
TRISF 02DE
PORTF 02E0
LATF 02E2
ODCF 06DE
图注: x = 复位时的未知值, — = 未实现 (读为 0)。 PinHigh 器件的复位值以十六进制显示。
注 1 : 实际的 I/O 端口引脚设置随器件变化。请参见相应的引脚图。
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)
(1)
(1)
TRISF13 TRISF12
RF13 RF12
LATF13 LATF12
ODCF13 ODCF12
TRISD11 TRISD10 TRISD9 TRISD8 TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD0
RD11 RD10 RD9 RD8 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0
LATD11 LATD10 LATD9 LATD8 LATD7 LATD6 LATD5 LATD4 LATD3 LATD2 LATD1 LATD0
— — —
— — —
— — —
— — —
TRISE7
LATE7
TRISF8 TRISF7
RF8 RF7 RF6 RF5 RF4 RF3 RF2 RF1 RF0
LATF8 LATF7 LATF6 LATF5 LATF4 LATF3 LATF2 LATF1 LATF0
ODCF8 ODCF7 ODCF6 ODCF5 ODCF4 ODCF3 ODCF2 ODCF1 ODCF0
TRISE6 TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE0
RE7
RE6 RE5 RE4 RE3 RE2 RE1 RE0
LATE6 LATE5 LATE4 LATE3 LATE2 LATE1 LATE0
TRISF6 TRISF5 TRISF4 TRISF3 TRISF2 TRISF1 TRISF0
所有复位
时的状态
FFFF
xxxx
xxxx
xxxx
所有复位
时的状态
03FF
xxxx
xxxx
所有复位
时的状态
31FF
xxxx
xxxx
xxxx
dsPIC33FJXXXGPX06/X08/X10
DS70286A_CN 第 56 页 2007 Microchip Technology Inc.
表 3-29 : PORTG 寄存器映射
寄存器
名称
TRISG 02E4
PORTG 02E6
LATG 02E8
ODCG 06E4
图注: x = 复位时的未知值, — = 未实现 (读为 0)。 PinHigh 器件的复位值以十六进制显示。
注 1 : 实际的 I/O 端口引脚设置随器件变化。请参见相应的引脚图。
地址
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 B it 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
TRISG15 TRISG14 TRISG13 TRISG12
RG15 RG14 RG13 RG12
LATG15 LATG14 LATG13 LATG12
ODCG15 ODCG14 ODCG13 ODCG12
(1)
— —
— —
— —
— —
TRISG9 TRISG8 TRISG7 TRISG6
R G 9R G 8R G 7R G 6
LATG9 LATG8 LATG7 LATG6
ODCG9 ODCG8 ODCG7 ODCG6
— —
— —
— —
— —
TRISG3 TRISG2 TRISG1 TRISG0
R G 3R G 2R G 1R G 0
L A T G 3L A T G 2L A T G 1L A T G 0
ODCG3 ODCG2 ODCG1 ODCG0
所有复位
时的状态
F3CF
xxxx
xxxx
xxxx
dsPIC33FJXXXGPX06/X08/X10
表 3-30 : 系统控制寄存器映射
寄存器
名称
RCON 0740 TRAPR IOPUWR
OSCCON 0742 —C O S C < 2 : 0 >— NOSC<2:0> CLKLOCK —L O C K—C F— LPOSCEN OSWEN 0300
CLKDIV 0744 ROI DOZE<2:0> DOZEN FRCDIV<2:0> PLLPOST<1:0> — PLLPRE<4::0> 0040
PLLFBD 0746
OSCTUN 0748
图注: x = 复位时的未知值, — = 未实现 (读为 0)。复位值以十六进制显示。
注 1 : RCON 寄存器复位值取决于复位类型。
地址
2: OSCCON 寄存器复位值取决于 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
— — — — —
— — — — — — — PLLDIV<8:0> 0030
— — — — — — — — — — TUN<5:0> 0000
VREGS EXTR SWR SWDTEN WDTO SLEEP IDLE BOR POR
所有复位
时的状态
xxxx
(1)
(2)
表 3-31 : NVM 寄存器映射
寄存器名称 地址
NVMCON 0760 WR WREN WRERR
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>
ERASE
— —
NVMOP<3:0>
所有复
位时的
状态
0000
0000
(1)
表 3-32 : PMD 寄存器映射
寄存器名称 地址
PMD1 0770 T5MD T4MD T3MD T2MD T1MD QEIMD PWMMD DCIMD I2C1MD U2MD U1MD SPI2MD SPI1MD C2MD C1MD AD1MD 0000
PMD2 0772 IC8MD IC7MD IC6MD IC5MD IC4MD IC3MD IC2MD IC1MD OC8MD OC7MD OC6MD OC5MD OC4MD OC3MD OC2MD OC1MD 0000
PMD3 0774 T9MD T8MD T7MD T6MD
图注: 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
— — — — — — — — — —I 2 C 2 M DA D 2 M D0000
所有复位
时的状态
dsPIC33FJXXXGPX06/X08/X10
3.2.7 软件堆栈
除了用作工作寄存器外 ,
dsPIC33FJXXXGPX06/X08/X10 器件中的 W15 寄存器
也可用作软件堆栈指针。堆栈指针总是指向第一个可用
的空字,并且从低地址向高地址方向增长。它在弹出堆
栈之前递减,而在压入堆栈之后递增,如图 3-6 所示。
对于任何 CALL 指令时的 PC 压栈,在压入堆栈之前,
PC 的MSb 要进行零扩展,从而确保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>
< 空字 >
0 15
W15(CALL 前)
W15(CALL 后)
POP : [--W15]
PUSH : [W15++]
3.2.8 数据 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-33 给出了基本的寻址模式,这些寻址模式经过优化
可以支持各指令的具体功能。MAC 类指令中提供的寻址
模式与其他指令类型中的寻址模式略有不同。
3.3.1 文件寄存器指令
大多数文件寄存器指令使用一个 13 位地址字段 (f )来
直接寻址数据存储器中的前 8192 字节 (Near 数据空
间)。大多数文件寄存器指令使用工作寄存器 W0 ,W0
在这些指令中表示为 WREG 。目标寄存器通常是同一个
文件寄存器或 WREG (MUL 指令除外,它把结果写入
寄存器或寄存器对)。使用 MOV 指令能够获得更大的灵
活性,可以访问整个数据空间。
3.3.2 MCU 指令
三操作数 MCU 指令的形式是:
操作数 3 = 操作数 1< 功能 > 操作数 2
其中,操作数 1 始终是工作寄存器(即,寻址模式只能
是寄存器直接寻址),称为 Wb 。操作数 2 可以是一个
W 寄存器,取自数据存储器或一个 5 位立即数。结果可
以被保存在 W 寄存器或数据存储单元中。MCU 指令支
持以下寻址模式:
• 寄存器直接寻址
• 寄存器间接寻址
• 执行后修改的寄存器间接寻址
• 执行前修改的寄存器间接寻址
•5位或 10 位立即数寻址
注: 并非所有指令都支持上述所有的寻址模
式。各条指令可能支持这些寻址模式中的
某些模式。
2007 Microchip Technology Inc. DS70286A_CN 第 57 页
dsPIC33FJXXXGPX06/X08/X10
表 3-33 : 支持的基本寻址模式
寻址模式 说明
文件寄存器直接寻址 明确指定文件寄存器的地址。
寄存器直接寻址 直接访问寄存器的内容。
寄存器间接寻址 Wn 的内容形成 EA 。
执行后修改的寄存器间接寻址 Wn 的内容形成 EA 。然后用一个常量值来修改 Wn (递增或递减)。
执行前修改的寄存器间接寻址 先用一个有符号常量值修改 Wn (递增或递减),再由此时的 Wn 内容形成 EA 。
带寄存器偏移量的寄存器间接寻址 Wn 和 Wb 的和形成 EA 。
带立即数偏移量的寄存器间接寻址 Wn 和立即数的和形成 EA 。
3.3.3 传送指令和累加器指令
与其他指令相比,传送指令和 DSP 累加器类指令提供
了更为灵活的寻址模式。除了大多数 MCU 指令支持的
寻址模式以外,传送和累加器指令还支持带寄存器偏移
量的寄存器间接寻址模式,这也叫做寄存器变址寻址模
式。
注: 对于 MOV 指令,指令中指定的寻址模式对
于源寄存器和目标寄存器 EA ,可以是不同
的。然而,4 位 Wb (寄存器偏移量)字段
为源寄存器和目标寄存器所共用 (但通常
只由其中之一使用)。
概括地说,传送和累加器指令支持以下寻址模式:
• 寄存器直接寻址
• 寄存器间接寻址
• 执行后修改的寄存器间接寻址
• 执行前修改的寄存器间接寻址
• 带寄存器偏移量的寄存器间接寻址 (变址寻址)
• 带立即数偏移量的寄存器间接寻址
•8位立即数寻址
•16位立即数寻址
注: 并非所有指令都支持上述所有的寻址模
式。各条指令可能支持这些寻址模式中的
某些模式。
3.3.4 MAC 指令
双源操作数 DSP 指令(CLR 、ED 、EDAC 、MAC 、MPY 、
MPY.N 、MOVSAC和 MSC ),也称为 MAC 指令,它们使用
一组简化的寻址模式,允许用户通过寄存器间接寻址表
高效地对数据指针进行操作。
双源操作数预取寄存器必须是集合 {W8, W9, W10,
W11} 的成员。对于数据读取操作,W8 和 W9 始终用于
X RAGU,而 W10 和 W11 始终用于 Y AGU。从而,产
生的有效地址(无论是在修改之前还是之后),对于 W8
和 W9 必须是 X 数据空间中的有效地址,对于 W10 和
W11 则必须是 Y 数据空间中的有效地址。
注: 带寄存器偏移量的寄存器间接寻址模式仅
可用于 W9 (在 X 空间中)和 W11 (在 Y
空间中)。
概括地说, MAC 类指令支持以下寻址模式:
• 寄存器间接寻址
• 执行后修改 (修改量为 2)的寄存器间接寻址
• 执行后修改 (修改量为 4)的寄存器间接寻址
• 执行后修改 (修改量为 6)的寄存器间接寻址
• 带寄存器偏移量的寄存器间接寻址 (变址寻址)
3.3.5 其他指令
除了上述的各种寻址模式之外,一些指令使用各种长度
的立即数。例如, BRA (转移)指令使用 16 位有符号
立即数常量来直接指定转移的目标,而 DISI 指令则使
用一个 14 位无符号立即数字段。在一些指令中,例如
ADD Acc ,操作数的来源和运算结果已经暗含在操作码
中。某些操作,例如 NOP ,没有任何操作数。
3.4 模寻址
模寻址模式是一种使用硬件来自动支持循环数据缓冲区
的方法。目的是在执行紧密循环代码时(这在许多 DSP
算法中很典型),不需要用软件来执行数据地址边界检
查。
可以在数据空间或程序空间中进行模寻址 (因为这两种
空间的数据指针机制本质上是相同的)。每个 X (也提
供指向程序空间的指针)和 Y 数据空间中都可支持一个
循环缓冲区。模寻址可以对任何 W 寄存器指针进行操
DS70286A_CN 第 58 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
作。然而,最好不要将 W14 或 W15 用于模寻址,因为
这两个寄存器分别用作堆栈帧指针和堆栈指针。
总的来说,任何特定的循环缓冲区只能配置为单向工
作,因为根据缓冲区的方向,对缓冲区起始地址(对于
递增缓冲区)或结束地址(对于递减缓冲区)有某些限
制。
使用限制的唯一例外是那些长度为 2 的幂的缓冲区。这
些缓冲区满足起始和结束地址判据,它们可以双向工作
(即,在低地址边界和高地址边界上都将进行地址边界
检查)。
3.4.1 起始地址和结束地址
模寻址机制要求指定起始和结束地址,并将它们装入 16
位模缓冲区地址寄存器中:XMODSRT、 XMODEND、
YMODSRT 和 YMODEND (见表 3-1 )。
注: Y 空间模寻址的 EA 计算使用字长度的数据
(每个 EA 的 LSb 始终清零)。
图 3-7 : 模寻址操作示例
字节
地址
0x1100
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
循环缓冲区的长度没有直接指定。它由相应的起始和结
束地址之差决定。循环缓冲区的最大长度为 32K 字
(64 KB )。
3.4.2 W 地址寄存器选择
模寻址和位反转寻址控制寄存器 MODCON<15:0> 包含
使能标志以及指定 W 地址寄存器的 W 寄存器字段。
XWM 和 YWM 字段选择对哪些寄存器进行模寻址。如
果 XWM = 15 ,则禁止 XRAGU和 X 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 数据空间的模寻址被使能。
0x1163
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
起始地址 = 0x1100
结束地址 = 0x1163
长度 = 0x0032 字
2007 Microchip Technology Inc. DS70286A_CN 第 59 页
dsPIC33FJXXXGPX06/X08/X10
3.4.3 模寻址的应用
模寻址可以应用于任何与 W 寄存器相关的有效地址
(EA )计算中。重要的是要意识到,地址边界检查功能
不仅会检查地址是否正好在地址边界上,而且会检查地
址是否大于上边界地址 (对于递增缓冲区)、或小于下
边界地址 (对于递减缓冲区)。因此,地址变化可能会
越过边界,但仍然可以正确调整。
注: 只有在使用执行前修改或执行后修改寻址
模式来计算有效地址时,模修正有效地址
才被写回寄存器。如果使用了地址偏移量
(例如, [W7+W2] ),会进行模地址修正,
但寄存器的内容保持不变。
3.5 位反转寻址
位反转寻址模式用来简化基 2 FFT 算法的数据重新排
序。它为 X AGU 所支持,仅限于数据写入。
地址修改量可以是常数或寄存器的内容,可视为将其位
顺序反转。源地址和目标地址仍然是正常的顺序。于是,
唯一需要反转的操作数就是地址修改量。
3.5.1 位反转寻址的实现
当满足下列条件时,使能位反转寻址模式:
1. MODCON 寄存器中 BWM 位(W 寄存器选择)
的值是除 15 以外的任何值 (不能使用位反转寻
址访问堆栈)。
2. XBREV 寄存器中的 BREN 位置 1。
3. 使用的寻址模式是预递增或后递增的寄存器间接
寻址模式。
如果位反转缓冲区的长度为 M = 2
区起始地址的最后 “N ”位必须为零。
XB<14:0> 是位反转地址修改量或 “中心点”(pivot
point),通常是一个常数。对于 FFT 计算,其值等于
FFT 数据缓冲区长度的一半。
注: 所有位反转 EA 的计算都使用字数据 (每
个 EA 的 LSb 始终清零)。为了产生兼容
(字节)地址,要相应地调整 XB 的值。
使能位反转寻址时,仅对预递增或后递增的寄存器间接
寻址、且仅对字长度数据写入,才会进行位反转寻址。
对于任何其他寻址模式或对于字节长度数据,不会进行
位反转寻址,而是生成正常的地址。在进行位反转寻址
时,W 地址指针的增量将始终加上地址修改量(XB ),
与寄存器间接寻址模式相关的偏移量将被忽略。此外,
由于要求是字数据,EA 的 LSb 被忽略(且始终清零)。
注: 不应同时使能模寻址和位反转寻址。如果
用户试图这么做的话,对于 X WAGU ,位
反转寻址将优先, X WAGU 模寻址将被禁
止。然而,在 X RAGU 中,模寻址继续起
作用。
如果通过将 BREN 位(XBREV<15>)置 1 使能了位反
转寻址,那么,在写 XBREV 寄存器之后,不应立即进
行要使用被指定为位反转指针的 W 寄存器的间接读操
作。
N
字节,则数据缓冲
DS70286A_CN 第 60 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
图 3-8: 位反转地址示例
b15 b14 b13 b12
正常顺序的地址
b7 b6 b5 b4 b11 b10 b9 b8
b3 b2 b1 0
围绕二进制值的中心
左右交换位位置
b15 b14 b13 b12
b11 b10 b9 b8
b7 b6 b5 b1
b2 b3 b4
0
位反转地址
中心点
对于 16 字位反转缓冲区,XB = 0x0008
表 3-34 : 位反转地址序列 (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
十进制
2007 Microchip Technology Inc. DS70286A_CN 第 61 页
dsPIC33FJXXXGPX06/X08/X10
3.6 程序存储空间与数据存储空间的接口
dsPIC33FJXXXGPX06/X08/X10 架构采用 24 位宽的程
序空间和 16 位宽的数据空间。该架构也是一种改进型
哈佛结构,这意味着数据也能存放在程序空间内。要成
功使用该数据,在访问数据时必须确保这两种存储空间
中的信息是对齐的。
除了正常执行外, dsPIC33FJXXXGPX06/X08/X10 架
构还提供了两种可在操作过程中访问程序空间的方法:
• 使用表指令访问程序空间中任意位置的各个字节或字
• 将程序空间的一部分重新映射到数据空间 (程序
空间可视性)
表指令允许应用程序读写程序存储器的一小块区域。这
一功能对于访问需要随时更新的数据表来说非常理想。
也可通过表操作访问一个程序字的所有字节。重映射方
法允许应用程序访问一大块数据,但只限于读操作,它
非常适合于在一个大的静态数据表中进行查找。这一方
法只能访问程序字的低位字。
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-35 和图 3-9 显示了如何通过表操作和重映射访问来
从数据 EA 创建程序 EA 。这里,P<23:0> 指的是程序空
间字;而 D<15:0> 指的是数据空间字。
表 3-35 : 程序空间地址构成
访问类型 访问空间
指令访问
(代码执行)
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)
DS70286A_CN 第 62 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
图 3-9 : 访问程序空间内数据的地址生成方式
程序计数器
表操作
程序空间可视性
(重映射)
(1)
(2)
(1)
0
1/0
0
用户 / 配置
空间选择
TBLPAG
8 位
选择
PSVPAG
8 位
24 位
1
23 位
23 位
EA
16 位
EA
15 位
0程序计数器
1/0
0
字节选择
注 1 : 程序空间地址的最低位 (LSb )始终为 0 ,从而确保程序和数据空间中的数据是字对齐的。
2 : 不要求表操作是字对齐的。允许对配置存储空间执行表读操作。
2007 Microchip Technology Inc. DS70286A_CN 第 63 页
dsPIC33FJXXXGPX06/X08/X10
3.6.2 使用表指令访问程序存储器中的数据
TBLRDL 和 TBLWTL 指令提供了读或写程序空间内任何
地址的低位字的直接方法,无需通过数据空间。
TBLRDH 和 TBLWTH 指令是可以把一个程序空间字的高8
位作为数据读写的唯一方法。
对于每个连续的 24 位程序字,PC 的递增量为 2 。这 使
得程序存储器地址能够直接映射到数据空间地址。于
是,程序存储器可以看作是两个 16 位字宽的地址空间,
它们并排放置,具有相同的地址范围。TBLRDL 和
TBLWTL 访问存有数据低位字的空间,而 TBLRDH 和
TBLWTH 则访问存有最高数据字节的空间。
提供了两条表指令来对程序空间执行字节或字(16 位)
大小的数据读写。读和写都可以采用字节或字操作的形
式。
1. TBLRDL (表读低位字):在字模式下,该指令
将程序空间地址的低位字 (P<15:0> )映射到数
据地址 (D<15:0> )中。
在字节模式下,低位程序字的高字节或低字节被
映射到数据地址的低字节中。当字节选择位为 1
时映射高字节;当字节选择位为 0 时映射低字
节。
图 3-10 : 使用表指令访问程序存储器
TBLPAG
02
23 15 0
0x000000
0x020000
0x030000
程序空间
2. 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 时,表页位于配置存储空间中。
0 8 16 23
00000000
00000000
00000000
00000000
“虚拟”字节
TBLRDH.B(Wn<0> = 0)
TBLRDL.B(Wn<0> = 1)
TBLRDL.B(Wn<0> = 0)
TBLRDL.W
表操作的地址是由 TBLPAG 寄存器定义的页中的数据 EA 决定的。
只给出了读操作的过程;也可以对用户存储区执行写操作。
0x800000
DS70286A_CN 第 64 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
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 循环外执行的操作,MOV
和 MOV.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 位地址是对应
的。
2007 Microchip Technology Inc. DS70286A_CN 第 65 页
dsPIC33FJXXXGPX06/X08/X10
注:
DS70286A_CN 第 66 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
4.0 闪存程序存储器
注: 本数据手册总结了 dsPIC33FJXXXGPX06/
X08/X10 器件的功能。但是不应把本手册
当作无所不包的参考手册来使用。如需了
解本数据手册的补充信息,请参见
《dsPIC33F 系列参考册》。请参见
Microchip 网站 (www.microchip.com )了
解最新的 《dsPIC33F 系列参考手册》章
节。
dsPIC33FJXXXGPX06/X08/X10 器件包含用于存储和
执行应用代码的内部闪存程序存储器。在整个 V
内,正常操作期间,存储器都是可读写可擦除的。
可采用两种方式对闪存存储器进行编程:
1. 在线串行编程 ( In-Circuit Serial
Programming™, ICSP™)功能
2. 运行时自编程 ( Run-Time Self-Programming,
RTSP)
ICSP 允许在最终的应用电路中对
dsPIC33FJXXXGPX06/X08/X10 器件进行串行编程。
只需要使用 5 根线就可以完成编程,它们分别是编程时
钟线、编程数据线(以下备用编程引脚对之一:PGC1/
PGD1、 PGC2/PGD2 或 PGC3/PGD3)、电源线
DD)、接地线 (VSS )和主复位线 (MCLR)。这允
( V
DD 范围
许用户在生产电路板时使用未编程器件,仅在产品交付
之前才对数字信号控制器进行编程,从而可以使用最新
版本的固件或者定制固件进行编程。
使用 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
字节
选择
2007 Microchip Technology Inc. DS70286A_CN 第 67 页
dsPIC33FJXXXGPX06/X08/X10
4.2 RTSP 工作原理
dsPIC33FJXXXGPX06/X08/X10 闪存程序存储器阵列
是由 64 条指令或 192 字节的行组成的。 RTSP 允许用
户一次擦除由 8 行数据(512 条指令)组成的程序存储
器页,一次编程一行或一个字。表 24-12 ,直流特性:
程序存储器给出了典型的擦除和编程次数。 8 行擦除页
和单行写入行都是边界对齐的,从程序存储器起始地址
开始,分别到 1536 字节边界和 192 字节边界。
程序存储器实现了保持缓冲器,它能缓冲 64 条指令的
编程数据。在实际编程操作前,必须将待写数据顺序装
入缓冲器。装入的指令字必须始终来自一组 64 个指令
字的边界。
RTSP 编程的基本步骤是先建立一个表指针,然后执行
一系列 TBLWT 指令将数据装入缓冲器。编程是通过将
NVMCON 寄存器中的控制位置 1 执行的。指令的装入
总共需要 64 条 TBLWTL 和 TBLWTH 指令。
所有的表写操作都是单字写操作 (2 个指令周期),因
为只写缓冲器。编程每一行需要一个编程周期。
4.3 控制寄存器
有两个 SFR 用于读写程序闪存存储器:
• NVMCON :闪存存储器控制寄存器
• NVMKEY :非易失性存储器密钥寄存器
NVMCON 寄存器 (寄存器 4-1)控制要擦除的块、要
编程的存储器类型,以及编程周期的开始。
NVMKEY (寄存器 4-2 )是一个只写寄存器,用于写
保护。要启动编程或擦除序列,用户必须连续地将 55h
和 AAh 写入 NVMKEY 寄存器。更多详细信息,请参见
第 4.4 节 “编程操作”。
4.4 编程操作
在 RTSP 模式下,对内部闪存进行编程或擦除需要执行
完整的编程过程。编程操作的持续时间通常为 4ms,在
此期间处理器暂停等待操作完成。将 WR 位
(NVMCON<15> )置 1 启动操作,当操作完成时 WR
位会自动清零。
DS70286A_CN 第 68 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 4-1: NVMCON:闪存存储器控制寄存器
(1)
R/SO-0
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 — —N V M O P < 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 未实现:读为 0
bit 6
ERASE :擦除 / 编程使能位
1 = 在下一条 WR 命令时执行 NVMOP<3:0> 指定的擦除操作
0 = 在下一条 WR 命令时执行 NVMOP<3:0> 指定的编程操作
bit 5-4 未实现:读为 0
bit 3-0
NVMOP<3:0>: NVM 操作选择位
(2)
如果 ERASE = 1:
1111 = 存储器批量擦除操作
1110 = 保留
1101 = 擦除通用段
1100 = 擦除安全段
1011 = 保留
0011 = 无操作
0010 = 存储器页擦除操作
0001 = 无操作
0000 = 擦除单个配置寄存器字节
ERASE = 0:
如果
1111 = 无操作
1110 = 保留
1101 = 无操作
1100 = 无操作
1011 = 保留
0011 = 存储器字编程操作
0010 = 无操作
0001 = 存储器行编程操作
0000 = 编程单个配置寄存器字节
注 1: 这些位只能在 POR 时复位。
2: NVMOP<3:0> 的所有其他组合均未实现。
2007 Microchip Technology Inc. DS70286A_CN 第 69 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 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 未实现:读为 0
bit 7-0
NVMKEY<7:0>:密钥寄存器 (只写)位
SO = 只可置 1 位
DS70286A_CN 第 70 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
4.4.1 闪存程序存储器的编程算法
用户可以一次对闪存存储器的一行进行编程。要实现该
操作,首先需要擦除包含该行在内的一个 8 行大小的
页。一般过程如下:
1. 读取程序存储器的 8 行( 512 条指令),并存储
在数据 RAM 中。
2. 用所需的新数据更新 RAM 中的程序数据。
3. 擦除程序块 (见例 4-1):
a) 将 NVMOP 位(NVMCON<3:0>)设置为
0010 ,配置为块擦除操作。将 ERASE
(NVMCON<6> )和 WREN
(NVMCON<14> )位置 1 。
b) 将要被擦除的页的起始地址写入 TBLPAG和
W 寄存器。
c) 将 55h 写入 NVMKEY。
d) 将 AAh 写入 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) 将 55h 写入 NVMKEY。
c) 将 AAh 写入 NVMKEY。
d) 将 WR 位置 1。编程周期开始,在写周期中
CPU 会暂停。当闪存存储器写操作完成时,
WR 位会自动清零。
6. 将 TBLPAG 中的值递增 1,使用数据 RAM 中下一
个 64 条指令块重复步骤 4 和 5 ,直 到 所 有 512 条
指令被写回闪存存储器。
为防止意外操作,必须向 NVMKEY 写入启动序列从而
允许执行擦除或编程操作。在执行编程命令后,用户必
须等待一段编程时间,直至编程完成。紧跟编程启动序
列后面的两条指令应为 NOP ,如例 4-3 所示。
; for next 5 instructions
2007 Microchip Technology Inc. DS70286A_CN 第 71 页
dsPIC33FJXXXGPX06/X08/X10
例 4-2: 装载写缓冲器
; Set up NVMCON for row programming operations
; 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 #0x4001, W0 ;
MOV W0, NVMCON ; Initialize NVMCON
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,
TBLWTH W3,
•
•
•
MOV #LOW_WORD_31, W2 ;
MOV #HIGH_BYTE_31, W3 ;
TBLWTL W2,
TBLWTH W3,
[W0] ; Write PM low word into program latch
[W0++] ; Write PM high byte into program latch
[W0] ; Write PM low word into program latch
[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
DS70286A_CN 第 72 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
5.0 复位
注: 本数据手册总结了
dsPIC33FJXXXGPX06/X08/X10 器件的功
能。但是不应把本手册当作无所不包的参
考手册来使用。如需了解本数据手册的补
充信息,请参见 《dsPIC33F 系列参考手
册》 。请参 见 Microchip 网站
(www.microchip.com)了解最新的
《dsPIC33F 系列参考手册》章节。
复位模块结合了所有复位源并控制器件的主复位信号
SYSRST
•POR:上电复位
•BOR:欠压复位
•MCLR:主复位引脚复位
•SWR:RESET 指令
•WDT:看门狗定时器复位
• TRAPR:陷阱冲突复位
•IOPUWR:非法操作码和未初始化的 W 寄存器复位
图 5-1 给出了复位模块的简化框图。
任何有效的复位源都会使 SYSRST
CPU 和外设相关的寄存器均会被强制为已知的复位状
态。大多数寄存器都不受复位影响;它们的状态在 POR
时未知,而在所有其他复位时不变。
。下面列出了器件的复位源:
信号有效。很多与
注: 如需了解寄存器复位状态的信息,请参见
本手册中特定的外设或 CPU 章节。
任何类型的器件复位都会将RCON 寄存器中相应的状态
位置 1 ,以表明复位类型 (见寄存器 5-1 )。 POR 将清
零除 POR 位(RCON<0>)之外的所有位,POR 位在
POR 时置 1 。用户可在代码执行过程中的任何时间置 1
或清零任何位。RCON 位仅用作状态位。在软件中将特
定的复位状态位置 1 不会导致器件发生复位。
RCON 寄存器还有与看门狗定时器和器件节能状态相关
的其他位。本手册的其他章节中将讨论这些位的功能。
注: RCON 寄存器中的状态位应该在被读取后
清零,这样在器件复位后的下一个 RCON
寄存器值才有意义。
图 5-1 : 复位系统框图
RESET 指令
MCLR
WDT
模块
休眠或空闲
内部
VDD
稳压器
陷阱冲突
非法操作码
未初始化的 W 寄存器
毛刺滤波器
V DD 上升
检测
BOR
SYSRST
POR
2007 Microchip Technology Inc. DS70286A_CN 第 73 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 5-1: RCON:复位控制寄存器
R/W-0 R/W-0 U-0 U-0 U-0 U-0 U-0 R/W-0
TRAPR IOPUWR — — — — —V R E G S
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
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 15
bit 14
bit 13-9
bit 8
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
TRAPR : 陷阱复位标志位
1 = 发生了陷阱冲突复位
0 = 未发生陷阱冲突复位
IOPUWR: 非法操作码或未初始化的 W 寄存器访问复位标志位
1 = 检测到非法操作码、非法地址模式或将未初始化的 W 寄存器用作地址指针而导致复位
0 = 未发生非法操作码或未初始化的 W 寄存器复位
未实现:读为 0
VREGS: 休眠模式下稳压器待机位
1 = 在休眠模式下稳压器继续工作
0 = 在休眠模式下稳压器进入待机模式
EXTR:外部复位 (MCLR
1 = 发生了主复位 (引脚)复位
0 = 未发生主复位 (引脚)复位
SWR: 软件复位 (指令)标志位
1 = 执行了 RESET 指令
0 = 未执行 RESET 指令
SWDTEN:软件使能 / 禁止 WDT 位
1 = 使能 WDT
0 = 禁止 WDT
WDTO: 看门狗定时器超时标志位
1 = 发生了 WDT 超时
0 = 未发生 WDT 超时
SLEEP: 从休眠模式唤醒标志位
1 = 器件处于休眠模式
0 = 器件不处于休眠模式
IDLE: 从空闲模式唤醒标志位
1 = 器件处于空闲模式
0 = 器件不处于空闲模式
BOR: 欠压复位标志位
1 = 发生了欠压复位
0 = 未发生欠压复位
(2)
)引脚位
(1)
WDTO SLEEP IDLE BOR POR
(2)
注 1: 所有复位状态位都可以用软件置 1 或清零。用软件将这些位中的一位置 1 不会导致器件复位。
2: 如果 FWDTEN 配置位为 1 (未编程),则 WDT 始终使能,而与 SWDTEN 位的设置无关。
DS70286A_CN 第 74 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 5-1: RCON:复位控制寄存器
bit 0
注 1: 所有复位状态位都可以用软件置 1 或清零。用软件将这些位中的一位置 1 不会导致器件复位。
2: 如果 FWDTEN 配置位为 1 (未编程),则 WDT 始终使能,而与 SWDTEN 位的设置无关。
POR: 上电复位标志位
1 = 发生了上电复位
0 = 未发生上电复位
(1)
(续)
2007 Microchip Technology Inc. DS70286A_CN 第 75 页
dsPIC33FJXXXGPX06/X08/X10
表 5-1 : 复位标志位操作
标志位 置 1 所表示的事件 清零所表示的事件
TRAPR ( RCON<15>) 陷阱冲突事件
IOPUWR ( RCON<14>) 非法操作码或访问了未初始化的 W 寄
存器
EXTR ( RCON<7>) MCLR
SWR ( RCON<6>) RESET 指令
WDTO ( RCON<4>) WDT 超时 PWRSAV 指令和 POR
SLEEP ( RCON<3>) PWRSAV #SLEEP 指令
IDLE ( RCON<2>) PWRSAV #IDLE 指令
BOR ( RCON<1>)
POR ( RCON<0>)
注: 所有复位标志位均可由用户软件置 1 或清零。
复位
BOR —
POR —
POR
POR
POR
POR
POR
POR
5.1 复位时的时钟源选择
如果使能了时钟切换,器件复位时的系统时钟源选择如
表 5-2 中所示。如果禁止了时钟切换功能,则总是根据
振荡器配置位选择系统时钟源。更多详细信息,请参见
第 8.0 节 “振荡器配置” 。
表 5-2 : 不同复位类型的振荡器选择 (使
能时钟切换功能)
复位类型 确定时钟源的方式
POR
BOR
MCLR
WDTR
SWR
振荡器配置位
(FNOSC<2:0> )
COSC 控制位
(OSCCON<14:12> )
5.2 器件复位时间
表 5-3 总结了各种类型器件复位的复位时间。系统复位
信号 SYSRST
器件实际开始执行代码的时间还取决于系统振荡器延
时,它包括振荡器起振定时器 (OST )延时和 PLL 锁
定时间。OST 和 PLL 锁定时间与相应的 SYSRST
同时发生。
FSCM 延时决定在 SYSRST
视系统时钟源的时间。
在 POR 和 PWRT 延时结束后发出。
延时
信号发出到 FSCM 开始监
DS70286A_CN 第 76 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 5-3 : 各种器件复位的复位延时
复位类型 时钟源 SYSRST
POR EC, FRC, LPRC T
POR
延时
+ TSTARTUP + TRST ——1, 2, 3
系统时钟
延时
ECPLL, FRCPLL TPOR + TSTARTUP + TRST T LOCK T FSCM 1, 2, 3, 5, 6
XT, HS, SOSC TPOR + TSTARTUP + TRST TOST T FSCM 1, 2, 3, 4, 6
POR
XTPLL, HSPLL T
BOR EC, FRC, LPRC T
+ TSTARTUP + TRST TOST + T LOCK T FSCM 1, 2, 3, 4, 5, 6
STARTUP + T RST ——3
ECPLL, FRCPLL TSTARTUP + TRST T LOCK T FSCM 3, 5, 6
XT, HS, SOSC TSTARTUP + TRST T OST T FSCM 3, 4, 6
XTPLL, HSPLL T
MCLR
WDT
任何时钟
任何时钟
软件 任何时钟
非法操作码 任何时钟
未初始化的 W 寄存器任何时钟
陷阱冲突 任何时钟
注 1 : T
POR = 上电复位延时 (标称值为 10 µs )。
STARTUP + T RST T OST + T LOCK T FSCM 3, 4, 5, 6
RST ——3
T
TRST ——3
TRST ——3
RST ——3
T
TRST ——3
RST ——3
T
2 : TSTARTUP = 标称值为 20 µs 的条件 POR 延时 (如果使能片上稳压器)或标称值为 64 ms 的上电延时定时
器延时 (如果禁止稳压器)。只有在使能稳压器时,所有从掉电状态返回的情况 (包括从休眠模式唤醒),
都要应用 TSTARTUP 延时。
3 : T
RST = 内部状态复位时间 (标称值为 20 µs )。
4: TOST = 振荡器起振定时器延时。 10 位计数器计数 1024 个振荡器周期后,才将振荡器时钟释放给系统使用。
5: TLOCK = PLL 锁定时间 (标称值为 20 µs )。
6: T
FSCM = 故障保护时钟监视器延时 (标称值为 100 µs )。
FSCM
延时
注
5.2.1 POR 和长振荡器起振时间
振荡器起振电路及其相关的延时定时器与上电时发生的
器件复位延时无关。某些晶振电路 (尤其是低频晶振)
的起振时间会相对较长。因此,在 SYSRST 信号发出
后,可能会发生以下一种或多种情况:
• 振荡电路尚未起振。
• 振荡器起振定时器尚未超时 (如果使用了晶振)。
•PLL未实现锁定 (如果使用了 PLL)。
在有效时钟源供系统使用前,器件不会开始执行代码。
因此,如果必须确定复位延时,必须考虑到振荡器和
PLL 起振延时。
5.2.2 故障保护时钟监视器 ( FSCM)和器
件复位
如果使能了 FSCM ,它将在发出 SYSRST 信号时开始
监视系统时钟源。如果有效时钟源在此时不可用,器件
会自动切换至 FRC 振荡器,用户可以切换至陷阱服务
程序中要求的晶振。
5.2.2.1 晶振和 PLL 时钟源的 FSCM 延时
当系统时钟源由晶振和 / 或 PLL 提供时,在 POR 和
PWRT 延时后会自动插入一小段延时 T
结束前,FSCM 不会开始监视系统时钟源。FSCM 延时
的标称值为 500 µs,为振荡器和 / 或 PLL 稳定下来提供
了更多的时间。在大多数情况下,如果禁止了 PWRT ,
FSCM 延时会防止在器件复位时产生振荡器故障陷阱。
FSCM。在此延时
2007 Microchip Technology Inc. DS70286A_CN 第 77 页
dsPIC33FJXXXGPX06/X08/X10
5.3 特殊功能寄存器的复位状态
大多数与 CPU 和外设相关的特殊功能寄存器(SFR )会
在器件复位时复位为某个特定值。 SFR 是按其外设或
CPU 功能分组的,其复位值在本手册的相应章节中说
明。
除了两个寄存器外,所有其他 SFR 的复位值都与复位类
型无关。复位控制寄存器 RCON 的复位值取决于器件复
位的类型。振荡器控制寄存器 OSCCON 的复位值取决
于复位类型和FOSC 配置寄存器中对振荡器配置位设置
的值。
DS70286A_CN 第 78 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
6.0 中断控制器
注: 本数据手册总结了 dsPIC33FJXXXGPX06/
X08/X10 器件的功能。但是不应把本手册
当作无所不包的参考手册来使用。如需了
解本数据手册的补充信息,请参见
《dsPIC33F 系列参考手册》 。请参见
Microchip 网站 (www.microchip.com )了
解最新的 《dsPIC33F 系列参考手册》章
节。
dsPIC33FJXXXGPX06/X08/X10 中断控制器将诸多外
设中断请求信号缩减到一个到 dsPIC33FJXXXGPX06/
X08/X10 CPU 的中断请求。该控制器具有以下特性:
• 多达 8 个处理器异常和软件陷阱
•7个可由用户选择的优先级
• 具有多达 118 个向量的中断向量表 ( Interrupt
Vector Table, IVT)
• 每个中断或异常源对应一个唯一的向量
• 在所指定的用户优先级内具有固定的优先级
• 用于支持调试的备用中断向量表 ( Alternate
Interrupt Vector Table, AIVT)
• 固定的中断进入和返回延时
6.1 中断向量表
6.1.1 备用向量表
备用中断向量表 (AIVT )位于 IVT 之后,如图 6-1 所
示。ALTIVT 控制位(INTCON2<15>)控制对 AIVT 的
访问。如果 ALTIVT 位置 1 ,则所有的中断和异常处理
都将使用备用向量,而非默认向量。备用向量与默认向
量的组织方式相同。
AIVT 支持调试功能,它提供了一种不需要将中断向量再
编程就可以在应用程序和支持环境之间切换的方法。此
特性也支持运行时在不同应用程序之间切换以便评估各
种软件算法。如果不需要 AIVT ,则应该用 IVT 中使用
的地址设置 AIVT 。
6.2 复位过程
器件复位不是真正的异常,因为复位过程中并不涉及到
中断控制器。作为对复位的响应,
dsPIC33FJXXXGPX06/X08/X10 器件清零其寄存器,
同时强制 PC 为零。然后数字信号控制器从地址
0x000000 处开始执行程序。用户在复位地址处设定一
条 GOTO 指令,该指令会将程序重定向到相应的启动程
序。
注: 应该使用包含 RESET 指令的默认中断处理
程序的入口地址编程 IVT 和 AIVT 中所有未
实现或未使用的向量存储单元。
中断向量表如图 6-1 所示。 IVT 位于程序存储器中,起
始存储单元地址是 000004h 。IVT 包含 126 个向量,由
8 个不可屏蔽的陷阱向量和多达 11 8 个中断源组成。一
般来说,每个中断源都有自己的中断向量。每个中断向
量都包含一个 24 位宽的地址。每个中断向量存储单元
中设置的值是其相关的中断服务程序 (ISR )的起始地
址。
中断向量有一个自然优先级;也就是说每个中断向量的
优先级与其在向量表中的位置有关。如果其他方面都相
同,较低地址的中断向量具有较高的自然优先级。例
如,与向量 0 相关的中断比任何其他向量地址的中断具
有更高的自然优先级。
dsPIC33FJXXXGPX06/X08/X10 器件实现了多达 67 个
唯一中断和 5 个不可屏蔽的陷阱。表 6-1 和表 6-2 对此
做了总结。
2007 Microchip Technology Inc. DS70286A_CN 第 79 页
dsPIC33FJXXXGPX06/X08/X10
图 6-1 : dsPIC33FJXXXGPX06/X08/X10 中断向量表
复位——GOTO 指令 0x000000
自然优先级降序排列
复位——GOTO 地址 0x000002
保留
振荡器故障陷阱向量
地址错误陷阱向量
堆栈错误陷阱向量
数学错误陷阱向量
DMA 错误陷阱向量
保留
保留
中断向量 0
中断向量 1
~
~
~
中断向量 52
中断向量 53
中断向量 54
~
~
~
中断向量 11 6
中断向量 11 7
保留
保留
保留
振荡器故障陷阱向量
地址错误陷阱向量
堆栈错误陷阱向量
数学错误陷阱向量
DMA 错误陷阱向量
保留
保留
中断向量 0
中断向量 1
~
~
~
中断向量 52
中断向量 53
中断向量 54
~
~
~
中断向量 11 6
中断向量 11 7
代码起始单元
0x000004
0x000014
0x00007C
0x00007E
0x000080
0x0000FC
0x0000FE
0x000100
0x000102
0x000114
0x00017C
0x00017E
0x000180
0x0001FE
0x000200
中断向量表(IVT )
备用中断向量表(AIVT )
(1)
(1)
注 1 : 请参见表 6-1 了解所实现的中断向量列表。
DS70286A_CN 第 80 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
表 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 30 0x000050 0x000150
39 31 0x000052 0x000152
40 32 0x000054 0x000154
41 33 0x000056 0x000156
42 34 0x000058 0x000158
43 35 0x00005A 0x00015A
44 36 0x00005C 0x00015C
45 37 0x00005E 0x00015E
46 38 0x000060 0x000160
47 39 0x000062 0x000162
48 40 0x000064 0x000164
49 41 0x000066 0x000166
50 42 0x000068 0x000168
51 43 0x00006A 0x00016A
52 44 0x00006C 0x00016C
53 45 0x00006E 0x00016E
中断请求
(IRQ )编号
IVT 地址 AIVT 地址 中断源
INT0——外部中断 0
IC1——输入捕捉 1
OC1——输出比较 1
T1—— Timer1
DMA0—— DMA 通道 0
IC2——输入捕捉 2
OC2——输出比较 2
T2—— Timer2
T3—— Timer3
SPI1E—— SPI1 错误
SPI1—— SPI1 传输完成
U1RX—— UART1 接收器
U1TX—— UART1 发送器
ADC1—— ADC 1
DMA1—— DMA 通道 1
保留
SI2C1—— I2C1 从事件
MI2C1—— I2C1 主事件
保留
电平变化通知中断
INT1——外部中断 1
ADC2—— ADC 2
IC7——输入捕捉 7
IC8——输入捕捉 8
DMA2—— DMA 通道 2
OC3——输出比较 3
OC4——输出比较 4
T4—— Timer4
T5—— Timer5
INT2——外部中断 2
U2RX—— UART2 接收器
U2TX—— UART2 发送器
SPI2E—— SPI2 错误
SPI1—— SPI1 传输完成
C1RX—— ECAN1 接收数据就绪
C1—— ECAN1 事件
DMA3—— DMA 通道 3
IC3——输入捕捉 3
IC4——输入捕捉 4
IC5——输入捕捉 5
IC6——输入捕捉 6
OC5——输出比较 5
OC6——输出比较 6
OC7——输出比较 7
OC8——输出比较 8
保留
2007 Microchip Technology Inc. DS70286A_CN 第 81 页
dsPIC33FJXXXGPX06/X08/X10
表 6-1 : 中断向量 (续)
向量编号
54 46 0x000070 0x000170
55 47 0x000072 0x000172
56 48 0x000074 0x000174
57 49 0x000076 0x000176
58 50 0x000078 0x000178
59 51 0x00007A 0x00017A
60 52 0x00007C 0x00017C
61 53 0x00007E 0x00017E
62 54 0x000080 0x000180
63 55 0x000082 0x000182
64 56 0x000084 0x000184
65 57 0x000086 0x000186
66 58 0x000088 0x000188
67 59 0x00008A 0x00018A
68 60 0x00008C 0x00018C
69 61 0x00008E 0x00018E
70 62 0x000090 0x000190
71 63 0x000092 0x000192
72 64 0x000094 0x000194
73 65 0x000096 0x000196
74 66 0x000098 0x000198
75 67 0x00009A 0x00019A
76 68 0x00009C 0x00019C
77 69 0x00009E 0x00019E
78 70 0x0000A0 0x0001A0
79 71 0x0000A2 0x0001A2
80-125 72-117 0x0000A4-
中断请求
(IRQ )编号
IVT 地址 AIVT 地址 中断源
DMA4—— DMA 通道 4
T6—— Timer6
T7—— Timer7
SI2C2—— I2C2 从事件
MI2C2—— I2C2 主事件
T8—— Timer8
T9—— Timer9
INT3——外部中断 3
INT4——外部中断 4
C2RX—— ECAN2 接收数据就绪
C2—— ECAN2 事件
保留
保留
DCIE—— DCI 错误
DCID—— DCI 传输完成
DMA5—— DMA 通道 5
保留
保留
保留
U1E—— UART1 错误
U2E—— UART2 错误
保留
DMA6—— DMA 通道 6
DMA7—— DMA 通道 7
C1TX—— ECAN1 发送数据请求
C2TX—— ECAN2 发送数据请求
0x0000FE
0x0001A4-
0x0001FE
保留
表 6-2 : 陷阱向量
向量编号 IVT 地址 AIVT 地址 陷阱源
0 0x000004 0x000104
1 0x000006 0x000106
2 0x000008 0x000108
3 0x00000A 0x00010A
4 0x00000C 0x00010C
5 0x00000E 0x00010E
6 0x000010 0x000110
7 0x000012 0x000112
DS70286A_CN 第 82 页 2007 Microchip Technology Inc.
保留
振荡器故障
地址错误
堆栈错误
数学错误
DMA 错误陷阱
保留
保留
dsPIC33FJXXXGPX06/X08/X10
6.3 中断控制和状态寄存器
dsPIC33FJXXXGPX06/X08/X10 器件共有 30 个用于中
断控制器的寄存器:
• INTCON1
• INTCON2
•IFS0至 IFS4
•IEC0至 IEC4
•IPC0至 IPC17
•INTTREG
INTCON1 和 INTCON2 控制全局中断。INTCON1 中含
有中断嵌套禁止 (NSTDIS )位,以及处理器陷阱源的
控制和状态标志。 INTCON2 寄存器控制外部中断请求
信号行为以及备用中断向量表的使用。
IFS 寄存器包含所有中断请求标志。每个中断源都具有
一个状态位,该状态位由相应的外设或外部信号置 1,
通过软件进行清零。
IEC 寄存器包含所有中断允许位。这些控制位用于单独
允许外设或外部信号中断。
IPC 寄存器用于设置每个中断源的中断优先级。可以给
每个用户中断源分配 8 个优先级之一。
INTTREG 寄存器包含相关的中断向量编号和新的 CPU
中断优先级,分别锁存在 INTTREG 寄存器中的向量编
号(VECNUM<6:0> )和中断优先级 (ILR<3:0> )位域
中。新的中断优先级是等待处理中断的优先级。
中断源按表 6-1 中的顺序分配给 IFSx 、IECx 和 IPCx 寄
存器。例如, INT0 (外部中断 0 )表示向量编号为 8 ,
自然优先级为 0 的外部中断。所以 INT0IF 位在IFS0<0>
中,INT0IE 位在 IEC0<0> 中,INT0IP 位在 IPC0 的第
一个位位置 (IPC0<2:0> )中。
尽管两个 CPU 控制寄存器不是中断控制硬件的特定组
成部分,但它们仍包含控制中断功能的位。CPU 状态寄
存器 SR 包含 IPL<2:0> 位(SR<7:5> )。这些位表示当
前 CPU 中断优先级。用户可以通过写 IPL 位来更改当
前 CPU 优先级。
CORCON 寄存器包含 IPL3 位,这个位与 IPL<2:0> 位
一起表示当前 CPU 优先级。IPL3 是只读位,所以用户
软件无法屏蔽陷阱事件。
在下面各页中的寄存器 6-1 到寄存器 6-32 说明了所有的
中断寄存器。
2007 Microchip Technology Inc. DS70286A_CN 第 83 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-1: SR: CPU 状态寄存器
(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 中断优先级状态位
(1)
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:“ SR: CPU 状态寄存器”。
2: IPL<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 R/W-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
IPL3: CPU 中断优先级状态位 3
(2)
1 = CPU 中断优先级大于 7
0 = CPU 中断优先级等于或小于 7
注 1: 如需了解整个寄存器的详细信息,请参见寄存器 2-2:“ CORCON:内核控制寄存器”。
2: IPL3 位与 IPL<2:0> 位(SR<7:5>)组合形成 CPU 中断优先级。
DS70286A_CN 第 84 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 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 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0
SFTACERR DIV0ERR DMACERR 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
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 = 禁止陷阱
OVBTE: 累加器 B 溢出陷阱允许位
1 = 允许累加器 B 溢出陷阱
0 = 禁止陷阱
COVTE: 灾难性溢出陷阱允许位
1 = 允许累加器 A 或 B 的灾难性溢出陷阱
0 = 禁止陷阱
SFTACERR: 累加器移位错误状态位
1 = 数学错误陷阱由非法累加器移位引起
0 = 数学错误陷阱不是由非法累加器移位引起
DIV0ERR: 算术错误状态位
1 = 数学错误陷阱由被零除引起
0 = 数学错误陷阱不是由被零除引起
DMACERR: DMA 控制器错误状态位
1 = 发生了 DMA 控制器错误陷阱
0 = 未发生 DMA 控制器错误陷阱
MATHERR: 算术错误状态位
1 = 发生了数学错误陷阱
0 = 未发生数学错误陷阱
2007 Microchip Technology Inc. DS70286A_CN 第 85 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-3: INTCON1:中断控制寄存器 1 (续)
bit 3
bit 2
bit 1
bit 0
ADDRERR : 地址错误陷阱状态位
1 = 发生了地址错误陷阱
0 = 未发生地址错误陷阱
STKERR:堆栈错误陷阱状态位
1 = 发生了堆栈错误陷阱
0 = 未发生堆栈错误陷阱
OSCFAIL:振荡器故障陷阱状态位
1 = 发生了振荡器故障陷阱
0 = 未发生振荡器故障陷阱
未实现:读为 0
DS70286A_CN 第 86 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 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 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— — — INT4EP INT3EP INT2EP INT1EP INT0EP
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 15
bit 14
bit 13-5
bit 4
bit 3
bit 2
bit 1
bit 0
ALTIVT : 备用中断向量表使能位
1 = 使用备用向量表
0 = 使用标准 (默认)向量表
DISI : DISI 指令状态位
1 = 执行了 DISI 指令
0 = 没有执行 DISI 指令
未实现:读为 0
INT4EP: 外部中断 4 边沿检测极性选择位
1 = 下降沿中断
0 = 上升沿中断
INT3EP: 外部中断 3 边沿检测极性选择位
1 = 下降沿中断
0 = 上升沿中断
INT2EP: 外部中断 2 边沿检测极性选择位
1 = 下降沿中断
0 = 上升沿中断
INT1EP:外部中断 1 边沿检测极性选择位
1 = 下降沿中断
0 = 上升沿中断
INT0EP: 外部中断 0 边沿检测极性选择位
1 = 下降沿中断
0 = 上升沿中断
2007 Microchip Technology Inc. DS70286A_CN 第 87 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-5: IFS0:中断标志状态寄存器 0
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— DMA1IF AD1IF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
T2IF OC2IF IC2IF DMA01IF T1IF OC1IF IC1IF INT0IF
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 15 未实现:读为 0
bit 14
bit 13
bit 12
bit 11
bit 10
bit 9
bit 8
bit 7
bit 6
bit 5
bit 4
bit 3
DMA1IF :DMA 通道 1 数据传输完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
AD1IF: ADC1 转换完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
U1TXIF: UART1 发送器中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
U1RXIF:UART1 接收器中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
SPI1IF: SPI1 事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
SPI1EIF: SPI1 故障中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
T3IF: Timer3 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
T2IF: Timer2 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
OC2IF:输出比较通道 2 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
IC2IF:输入捕捉通道 2 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DMA0IF:DMA 通道 0 数据传输完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
T1IF: Timer1 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DS70286A_CN 第 88 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-5: IFS0:中断标志状态寄存器 0 (续)
bit 2
bit 1
bit 0
OC1IF :输出比较通道 1 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
IC1IF:输入捕捉通道 1 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
INT0IF:外部中断 0 标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
2007 Microchip Technology Inc. DS70286A_CN 第 89 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-6: IFS1:中断标志状态寄存器 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
U2TXIF U2RXIF INT2IF T5IF T4IF OC4IF OC3IF DMA21IF
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IC8IF IC7IF AD2IF INT1IF CNIF
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
— MI2C1IF SI2C1IF
bit 15
bit 14
bit 13
bit 12
bit 11
bit 10
bit 9
bit 8
bit 7
bit 6
bit 5
bit 4
U2TXIF : UART2 发送器中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
U2RXIF:UART2 接收器中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
INT2IF:外部中断 2 标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
T5IF: Timer5 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
T4IF: Timer4 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
OC4IF:输出比较通道 4 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
OC3IF:输出比较通道 3 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DMA2IF:DMA 通道 2 数据传输完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
IC8IF:输入捕捉通道 8 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
IC7IF:输入捕捉通道 7 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
AD2IF: ADC2 转换完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
INT1IF:外部中断 1 标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DS70286A_CN 第 90 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-6: IFS1:中断标志状态寄存器 1 (续)
bit 3
bit 2
bit 1
bit 0
CNIF:输入电平变化通知中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
未实现:读为 0
MI2C1IF: I2C1 主事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
SI2C1IF: I2C1 从事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
2007 Microchip Technology Inc. DS70286A_CN 第 91 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-7: IFS2:中断标志状态寄存器 2
R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
T6IF DMA4IF
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IC5IF IC4IF IC3IF DMA3IF C1IF C1RXIF SPI2IF SPI2EIF
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
— OC8IF OC7IF OC6IF OC5IF IC6IF
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
T6IF : Timer6 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DMA4IF:DMA 通道 4 数据传输完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
未实现:读为 0
OC8IF:输出比较通道 8 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
OC7IF:输出比较通道 7 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
OC6IF:输出比较通道 6 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
OC5IF:输出比较通道 5 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
IC6IF:输入捕捉通道 6 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
IC5IF:输入捕捉通道 5 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
IC4IF:输入捕捉通道 4 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
IC3IF:输入捕捉通道 3 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DMA3IF:DMA 通道 3 数据传输完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
C1IF: ECAN1 事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DS70286A_CN 第 92 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-7: IFS2:中断标志状态寄存器 2 (续)
bit 2
bit 1
bit 0
C1RXIF :ECAN1 接收数据就绪中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
SPI2IF: SPI2 事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
SPI2EIF: SPI2 错误中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
2007 Microchip Technology Inc. DS70286A_CN 第 93 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-8: IFS3:中断标志状态寄存器 3
U-0 U-0 R/W-0 R/W-0 R/W-0 U-0 U-0 R/W-0
— — DMA5IF DCIIF DCIEIF — —C 2 I F
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
C2RXIF INT4IF INT3IF T9IF T8IF MI2C2IF SI2C2IF T7IF
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 15-14 未实现:读为 0
bit 13
bit 12
bit 11
bit 10-9
bit 8
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
DMA5IF :DMA 通道 5 数据传输完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DCIIF: DCI 事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DCIEIF:DCI 错误中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
未实现:读为 0
C2IF: ECAN2 事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
C2RXIF:ECAN2 接收数据就绪中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
INT4IF:外部中断 4 标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
INT3IF:外部中断 3 标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
T9IF: Timer9 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
T8IF: Timer8 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
MI2C2IF: I2C2 主事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
SI2C2IF: I2C2 从事件中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
T7IF: Timer7 中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DS70286A_CN 第 94 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-9: IFS4:中断标志状态寄存器 4
U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — — — — — — —
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 U-0
C2TXIF C1TXIF DMA7IF DMA6IF
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 15-8 未实现:读为 0
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
C2TXIF : ECAN2 发送数据请求中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
C1TXIF: ECAN1 发送数据请求中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DMA7IF:DMA 通道 7 数据传输完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
DMA6IF:DMA 通道 6 数据传输完成中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
未实现:读为 0
U2EIF: UART2 错误中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
U1EIF: UART1 错误中断标志状态位
1 = 产生了中断请求
0 = 未产生中断请求
未实现:读为 0
—U 2 E I FU 1 E I F—
2007 Microchip Technology Inc. DS70286A_CN 第 95 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-10: IEC0:中断允许控制寄存器 0
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— DMA1IE AD1IE U1TXIE U1RXIE SPI1IE SPI1EIE T3IE
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
T2IE OC2IE IC2IE DMA0IE T1IE OC1IE IC1IE INT0IE
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
bit 15 未实现:读为 0
bit 14
bit 13
bit 12
bit 11
bit 10
bit 9
bit 8
bit 7
bit 6
bit 5
bit 4
bit 3
DMA1IE : DMA 通道 1 数据传输完成中断允许位
1 = 允许中断请求
0 = 禁止中断请求
AD1IE: ADC1 转换完成中断允许位
1 = 允许中断请求
0 = 禁止中断请求
U1TXIE:UART1 发送器中断允许位
1 = 允许中断请求
0 = 禁止中断请求
U1RXIE:UART1 接收器中断允许位
1 = 允许中断请求
0 = 禁止中断请求
SPI1IE: SPI1 事件中断允许位
1 = 允许中断请求
0 = 禁止中断请求
SPI1EIE: SPI1 错误中断允许位
1 = 允许中断请求
0 = 禁止中断请求
T3IE: Timer3 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
T2IE: Timer2 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
OC2IE:输出比较通道 2 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
IC2IE:输入捕捉通道 2 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
DMA0IE: DMA 通道 0 数据传输完成中断允许位
1 = 允许中断请求
0 = 禁止中断请求
T1IE: Timer1 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
DS70286A_CN 第 96 页 2007 Microchip Technology Inc.
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-10: IEC0:中断允许控制寄存器 0 (续)
bit 2
bit 1
bit 0
OC1IE :输出比较通道 1 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
IC1IE:输入捕捉通道 1 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
INT0IE:外部中断 0 允许位
1 = 允许中断请求
0 = 禁止中断请求
2007 Microchip Technology Inc. DS70286A_CN 第 97 页
dsPIC33FJXXXGPX06/X08/X10
寄存器 6-11: IEC1:中断允许控制寄存器 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
U2TXIE U2RXIE INT2IE T5IE T4IE OC4IE OC3IE DMA2IE
bit 15 bit 8
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IC8IE IC7IE AD2IE INT1IE CNIE
bit 7 bit 0
图注:
R = 可读位 W = 可写位 U = 未实现位,读为 0
-n = POR 时的值 1 = 置 10 = 清零 x = 未知
— MI2C1IE SI2C1IE
bit 15
bit 14
bit 13
bit 12
bit 11
bit 10
bit 9
bit 8
bit 7
bit 6
bit 5
bit 4
U2TXIE :UART2 发送器中断允许位
1 = 允许中断请求
0 = 禁止中断请求
U2RXIE:UART2 接收器中断允许位
1 = 允许中断请求
0 = 禁止中断请求
INT2IE:外部中断 2 允许位
1 = 允许中断请求
0 = 禁止中断请求
T5IE: Timer5 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
T4IE: Timer4 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
OC4IE:输出比较通道 4 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
OC3IE:输出比较通道 3 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
DMA2IE: DMA 通道 2 数据传输完成中断允许位
1 = 允许中断请求
0 = 禁止中断请求
IC8IE:输入捕捉通道 8 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
IC7IE:输入捕捉通道 7 中断允许位
1 = 允许中断请求
0 = 禁止中断请求
AD2IE: ADC2 转换完成中断允许位
1 = 允许中断请求
0 = 禁止中断请求
INT1IE:外部中断 1 允许位
1 = 允许中断请求
0 = 禁止中断请求
DS70286A_CN 第 98 页 2007 Microchip Technology Inc.