2003 Microchip Technology Inc. Advance Information DS70083B
dsPI C30F Data Sheet
General Purpose and Sensor Families
High Performance
Digital Signal Controllers
M
DS70083B-page ii Advance Information 2003 Microchip Technology Inc.
Information contained in this publication regarding device
applications and the like is intended through suggestion only
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
No representation or warranty is given and no liability is
assumed by Microchip Technology Incorporated with respect
to the accuracy or use of such information, or infringement of
patents or other intellectual property rights arising from such
use or otherwise. Use of Microchip’s products as critical
components in life support systems is not authorized except
with express written approval by Microchip. No licenses are
conveyed, implicitly or otherwise, under any intellectual
property rights.
Trademarks
The Microchip name and logo, the Microchip logo, dsPIC,
KEELOQ, MPLAB, PIC, PICmicro, PICSTART, PRO MATE and
PowerSmart are registered trademarks of Microchip
Technology Incorporated in the U.S.A. and other countries.
FilterLab, microID, MXDEV, MXLAB, PICMASTER, SEEVAL
and The Embedded Control Solutions Company are
registered trademarks of Microchip Technology Incorporated
in the U.S.A.
Accuron, Application Maestro, dsPICDEM, dsPICDEM.net,
ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-
Circuit Serial Programming, ICSP, ICEPIC, microPort,
Migratable Memory, MPASM, MPLIB, MPLINK, MPSIM,
PICC, PICkit, PICDEM, PICDEM.net, PowerCal, PowerInfo,
PowerMate, PowerTool, rfLAB, rfPIC, Select Mode,
SmartSensor, SmartShunt, SmartTel and Total Endurance are
trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
Serialized Quick Turn Programming (SQTP) is a service mark
of Microchip Technology Incorporated in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
© 2003, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
Printed on recycled paper.
Note the following details of the code protection feature on Microchip devices:
Microchip products meet the specification contained in their particular Microchip Data Sheet.
Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip's Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
Microchip is willing to work with the customer who is concerned about the integrity of their code.
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Microchip received QS-9000 quality system
certification for its worldwide headquarters,
design and wafer fabrication facilities in
Chandler and Tempe, Arizona in July 1999
and Mountain View, California in March 2002.
The Company’s quality system processes and
procedures are QS-9000 compliant for its
PICmicro® 8-bit MCUs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals,
non-volatile memory and analog products. In
addition, Microchip’s quality system for the
design and manufacture of development
systems is ISO 9001 certified.
2003 Microchip Technology Inc. Advance Information DS70083B-page 1
MdsPIC30F
High Performance Modified RISC CPU:
Modified Harvard architecture
C compiler optimized instruction set architecture
84 base instructions
24-bit wide instructions, 16-bit wide data path
Linear program memory addressing up to 4M
instruction words
Linear data memory addressing up to 64 Kbytes
Up to 144 Kbytes on-chip FLASH program space
Up to 48K instruction words
Up to 8 Kbytes of on-chip data RAM
Up to 4 Kbytes of non-volatile data EEPROM
16 x 16-bit working register array
Three Address Generation Units that enable:
- Dual data fetch
- Accumulator write back for DSP operations
Flexible Addressing modes supporting:
- Indirect, Modulo and Bit-Reversed modes
Two 40-bit wide accumulators with optional
saturation logic
17-bit x 17-bit single cycle hardware fractional/
integer multiplier
Single cycle Multiply-Accumulate (MAC)
operation
40-stage Barrel Shifter
Up to 30 MIPs operation:
- DC to 40 MHz external clock input
- 4 MHz - 10 MHz oscillator input with
PLL active (4x, 8x, 16x)
Up to 41 interrupt sources:
- 8 user selectable priority levels
Vector table with up to 62 vectors:
- 54 interrupt vectors
- 8 processor exceptions and software traps
Peripheral Features:
High current sink/source I/O pins: 25 mA/25 mA
Up to 5 external interrupt sources
•Timer module with programmable prescaler:
- Up to five 16-bit timers/counters; optionally
pair up 16-bit timers into 32-bit timer modules
16-bit Capture input functions
16-bit Compare/PWM output functions:
- Dual Compare mode available
Data Converter Interface (DCI) supports common
audio Codec protocols, including I2S and AC’97
•3-wire SPI
TM modules (supports 4 Frame modes)
•I
2CTM module supports Multi-Master/Slave mode
and 7-bit/10-bit addressing
Addressable UART modules supporting:
- Interrupt on address bit
- Wake-up on START bit
- 4 characters deep TX and RX FIFO buffers
CAN bus modules
Analog Features:
12-bit Analog-to-Digital Converter (A/D) with:
- 100 Ksps conversion rate
- Up to 16 input channels
- Conversion available during SLEEP and
IDLE
Programmable Low Voltage Detection (PLVD)
Programmable Brown-out Detection and RESET
generation
dsPIC30F Enhanced FLASH 16-Bit Digital Signal Controllers
Sensor and General Purpose Famil y
dsPIC30F
DS70083B-page 2 Advance Information 2003 Microchip Technology Inc.
Special Microcontroller Features:
Enhanced FLASH program memory:
- 10,000 erase/write cycle (typical) for
industrial temperature range
Data EEPROM memory:
- 100,000 erase/write cycle (typical) for
industrial temperature range
Self-reprogrammable under software control
Power-on Reset (POR), Power-up Timer (PWRT)
and Oscillator Start-up Timer (OST)
Flexible Watchdog Timer (WDT) with on-chip low
power RC oscillator for reliable operation
Fail-Safe Clock Monitor operation:
- Detects clock failure and switches to on-chip
low power RC oscillator
Programmable code protection
In-Circuit Serial Programming™ (ICSP™) via
3 pins and power/ground
Selectable Power Management modes:
- SLEEP, IDLE and Alternate Clock modes
CMOS Technology:
Low power, high speed FLASH technology
Wide operating voltage range (2.5V to 5.5V)
Industrial and Extended temperature ranges
Low power consumption
2003 Microchip Technology Inc. Advance Information DS70083B-page 3
dsPIC30F
dsPIC30F Sensor Processor Family
Pin Diagrams
Device Pins Program Memory SRAM
Bytes
EEPROM
Bytes
Timer
16-bit
Input
Cap
Output Comp/
Std PWM
A/D 12-bit
100 Ksps
UART
SPITM
I2CTM
Bytes Instructions
dsPIC30F2011 18 12K 4K 1024 0 3 2 2 8 ch 1 1 1
dsPIC30F3012 18 24K 8K 2048 1024 3 2 2 8 ch 1 1 1
dsPIC30F2012 28 12K 4K 1024 0 3 2 2 10 ch 1 1 1
dsPIC30F3013 28 24K 8K 2048 1024 3 2 2 10 ch 2 1 1
dsPIC30F2011
EMUD2/AN7/IC2/OC2/RB7
MCLR
AVDD
AVSS
PGD/EMUD/AN0/VREF+/CN2/RB0
Vss
PGC/EMUC/AN1/VREF-/CN3/RB1 AN3/CN5/RB3
EMUC2/IC1/OC1/RD8
EMUC1/SOSCO/T1CK/U1RX/CN0/RC14
VDD
EMUC3/AN6/SCK1/INT0/OCFA/RB6
EMUD1/SOSCI/T2CK/U1TX/CN1/RC13
OSC2/CLKO/RC15
OSC1/CLKI
AN5/U1ARX/SDI1/SDA/CN7/RB5
EMUD3/AN4/U1ATX/SDO1/SCL/CN6/RB4
1
2
3
4
5
6
7
8
9
18
17
16
15
14
13
12
11
10 AN2/SS1/LVDIN/CN4/RB2
18-Pin SOIC and PDIP
dsPIC30F3012
MCLR
VSS
VDD
PGD/EMUD/AN0/VREF+/CN2/RB0
PGC/EMUC/AN1/VREF-/CN3/RB1
AVDD
AVSS
AN2/SS1/LVDIN/CN4/RB2
IC2/INT2/RD9 IC1/INT1/RD8
EMUC1/SOSCO/T1CK/U1ARX/CN0/RC14
EMUD1/SOSCI/T2CK/U1ATX/CN1/RC13 VSSOSC2/CLKO/RC15
OSC1/CLKI VDD
EMUC3/SCK1/INT0/RF6
U1RX/SDI1/SDA/RF2
EMUD3/U1TX/SDO1/SCL/RF3
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
AN6/OCFA/RB6
AN7/RB7
EMUC2/AN8/OC1/RB8
EMUD2/AN9/OC2/RB9
RF4
RF5
28-Pin SDIP
dsPIC30F2012
Note: Pinout subject to change.
MCLR
VSS
VDD
PGD/EMUD/AN0/VREF+/CN2/RB0
PGC/EMUC/AN1/VREF-/CN3/RB1
AVDD
AVSS
AN2/SS1/LVDIN/CN4/RB2
IC2/INT2/RD9 IC1/INT1/RD8
EMUC1/SOSCO/T1CK/U1ARX/CN0/RC14
EMUD1/SOSCI/T2CK/U1ATX/CN1/RC13 VSS
OSC2/CLKO/RC15
OSC1/CLKI VDD
EMUC3/SCK1/INT0/RF6
U1RX/SDI1/SDA/RF2
EMUD3/U1TX/SDO1/SCL/RF3
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
AN6/OCFA/RB6
AN7/RB7
EMUC2/AN8/OC1/RB8
EMUD2/AN9/OC2/RB9
U2RX/RF4
U2TX/RF5
28-Pin SDIP
dsPIC30F3013
dsPIC30F
DS70083B-page 4 Advance Information 2003 Microchip Technology Inc.
dsPIC30F General Purpose Controller Family
Pin Diagrams
Device Pins
Program Memory SRAM
Bytes
EEPROM
Bytes
Timer
16-bit
Input
Cap
Output
Comp/Std
PWM
Codec
Interface
A/D 12-bit
100 Ksps
UART
SPITM
I2CTM
CAN
Bytes Instructions
dsPIC30F3014 40/44 24K 8K 2048 1024 3 2 2 13 ch 2 1 1 -
dsPIC30F4013 40/44 48K 16K 2048 1024 5 4 4 AC’97, I2S 13 ch 2 1 1 1
dsPIC30F5011 64 66K 22K 4096 1024 5 8 8 AC’97, I2S 16 ch 2 2 1 2
dsPIC30F6011 64 132K 44K 6144 2048 5 8 8 16 ch 2 2 1 2
dsPIC30F6012 64 144K 48K 8192 4096 5 8 8 AC’97, I2S 16 ch 2 2 1 2
dsPIC30F5013 80 66K 22K 4096 1024 5 8 8 AC’97, I2S 16 ch 2 2 1 2
dsPIC30F6013 80 132K 44K 6144 2048 5 8 8 16 ch 2 2 1 2
dsPIC30F6014 80 144K 48K 8192 4096 5 8 8 AC’97, I2S 16 ch 2 2 1 2
AN7/RB7
AN6/OCFA/RB6
C1RX/RF0
C1TX/RF1
IC1/INT1/RD8
OC3/RD2
AN8/RB8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
dsPIC30F4013
MCLR
V
DD
V
SS
PGD/EMUD/AN0/V
REF
+/CN2/RB0
PGC/EMUC/AN1/V
REF
-/CN3/RB1
AN2/SS1/LVDIN/CN4/RB2
OC4/RD3
EMUC1/SOSCO/T1CK/U1ARX/CN0/RC14
EMUD1/SOSCI/T2CK/U1ATX/CN1/RC13
OSC2/CLKO/RC15
OSC1/CLKI
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
AN3/CN5/RB3
AV
DD
AV
SS
IC2/INT2/RD9
V
SS
V
DD
EMUC3/SCK1/EMUC3/RF6
U1RX/SDI1/SDA/RF2
EMUD3/U1TX/SDO1/SCL/RF3
V
SS
V
DD
U2RX/RF4
U2TX/RF5
AN12/COFS/RB12
AN10/CSDI/RB10
AN11/CSDO/RB11
AN9/CSCK/RB9
OC1//EMUC2/RD0
OC2/EMUD2/RD1
INT0/RA11
40-Pin PDIP
AN7/RB7
AN6/OCFA/RB6
RF0
RF1
IC1/INT1/RD8
RD2
AN8/RB8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
dsPIC30F3014
MCLR
V
DD
V
SS
PGD/EMUD/AN0/V
REF
+/CN2/RB0
PGC/EMUC/AN1/V
REF
-/CN3/RB1
AN2/SS1/LVDIN/CN4/RB2
RD3
EMUC1/SOSCO/T1CK/U1ARX/CN0/RC14
EMUD1/SOSCI/T2CK/U1ATX/CN1/RC13
OSC2/CLKO/RC15
OSC1/CLKI
AN5/CN7/RB5
AN4/CN6/RB4
AN3/CN5/RB3
AV
DD
AV
SS
IC2/INT2/RD9
V
SS
V
DD
EMUC3/SCK1/EMUC3/RF6
U1RX/SDI1/SDA/RF2
EMUD3/U1TX/SDO1/SCL/RF3
V
SS
V
DD
U2RX/RF4
U2TX/RF5
AN12/RB12
AN10/RB10
AN11/RB11
AN9/RB9
OC1//EMUC2/RD0
OC2/EMUD2/RD1
INT0/RA11
40-Pin PDIP
Note: Pinout subject to change.
2003 Microchip Technology Inc. Advance Information DS70083B-page 5
dsPIC30F
Pin Diagrams (Continued)
10
11
2
3
4
5
6
1
18
19
20
21
22
12
13
14
15
38
8
7
44
43
42
41
40
39
16
17
29
30
31
32
33
23
24
25
26
27
28
36
34
35
9
37
EMUD3/U1TX/SDO1/SCL/RF3
EMUC3/SCK1/RF6
IC1/INT1/RD8
RD2
VDD
EMUC1/SOSCO/T1CK/U1ARX/CN0/RC14
NC
VSS
RD3
IC2/INT2/RD9
INT0/RA11
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/VREF-/CN3/RB1
PGD/EMUD/AN0/VREF+/CN2/RB0
MCLR
NC
AVDD
AVSS
AN9/RB9
AN10/RB10
AN11/RB11
AN12/RB12
EMUC2/OC1/RD0
EMUD2/OC2/RD1
VDD
VSS
NC
RF0
RF1
U2RX/RF4
U2TX/RF5
U1RX/SDI1/SDA/RF2
AN4/CN6/RB4
AN5/CN7/RB5
AN6/OCFA/RB6
AN7/RB7
AN8/RB8
NC
VDD
VSS
OSC1/CLKI
OSC2/CLKO/RC15
EMUD1/SOSCI/T2CK/U1ATX/CN1/RC13
dsPIC30F3014
44-Pin TQFP
Note: Pinout subject to change.
dsPIC30F
DS70083B-page 6 Advance Information 2003 Microchip Technology Inc.
Pin Diagrams (Continued)
10
11
2
3
4
5
6
1
18
19
20
21
22
12
13
14
15
38
8
7
44
43
42
41
40
39
16
17
29
30
31
32
33
23
24
25
26
27
28
36
34
35
9
37
EMUD3/U1TX/SDO1/SCL/RF3
EMUC3/SCK1/RF6
IC1/INT1/RD8
OC3/RD2
VDD
EMUC1/SOSCO/T1CK/U1ARX/CN0/RC14
NC
VSS
OC4/RD3
IC2/INT2/RD9
INT0/RA11
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/VREF-/CN3/RB1
PGD/EMUD/AN0/VREF+/CN2/RB0
MCLR
NC
AVDD
AVSS
AN9/CSCK/RB9
AN10/CSDI/RB10
AN11/CSDO/RB11
AN12/COFS/RB12
EMUC2/OC1/RD0
EMUD2/OC2/RD1
VDD
VSS
NC
C1RX/RF0
C1TX/RF1
U2RX/RF4
U2TX/RF5
U1RX/SDI1/SDA/RF2
AN4/IC7/CN6/RB4
AN5/IC8/CN7/RB5
AN6/OCFA/RB6
AN7/RB7
AN8/RB8
NC
VDD
VSS
OSC1/CLKI
OSC2/CLKO/RC15
EMUD1/SOSCI/T2CK/U1ATX/CN1/RC13
44-Pin TQFP
dsPIC30F4013
Note: Pinout subject to change.
2003 Microchip Technology Inc. Advance Information DS70083B-page 7
dsPIC30F
Pin Diagrams (Continued)
1
2
3
4
5
6
7
8
9
10
11
12
13 36
35
34
33
32
31
30
29
28
27
26
64
63
62
61
60
59
58
57
56
14
15
16
17
18
19
20
21
22
23
24
25
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/T4CK/CN1/RC13
EMUC2/OC1/RD0
IC4/INT4/RD11
IC2/INT2/RD9
IC1/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKI
VDD
SCL/RG2
EMUC3/SCK1/INT0/RF6
U1RX/SDI1/RF2
EMUD3/U1TX/SDO1/RF3
COFS/RG15
T2CK/RC1
T3CK/RC2
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
VSS
VDD
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/VREF-/CN3/RB1
PGD/EMUD/AN0/VREF+/CN2/RB0
OC8/CN16/RD7
CSDO/RG13
CSDI/RG12
CSCK/RG14
VSS
C2TX/RG1
C1TX/RF1
C2RX/RG0
EMUD2/OC2/RD1
OC3/RD2
AN6/OCFA/RB6
AN7/RB7
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
U2TX/CN18/RF5
U2RX/CN17/RF4
SDA/RG3
43
42
41
40
39
38
37
44
48
47
46
50
49
51
54
53
52
55
45
SS2/CN11/RG9
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
IC3/INT3/RD10
VDD
C1RX/RF0
OC4/RD3
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
64-Pin TQFP
dsPIC30F5011
dsPIC30F6012
Note: Pinout subject to change.
dsPIC30F
DS70083B-page 8 Advance Information 2003 Microchip Technology Inc.
Pin Diagrams (Continued)
1
2
3
4
5
6
7
8
9
10
11
12
13 36
35
34
33
32
31
30
29
28
27
26
64
63
62
61
60
59
58
57
56
14
15
16
17
18
19
20
21
22
23
24
25
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/T4CK/CN1/RC13
EMUC2/OC1/RD0
IC4/INT4/RD11
IC2/INT2/RD9
IC1/INT1/RD8
VSS
OSC2/CLKO/RC15
OSC1/CLKI
VDD
SCL/RG2
EMUC3/SCK1/INT0/RF6
U1RX/SDI1/RF2
EMUD3/U1TX/SDO1/RF3
RG15
T2CK/RC1
T3CK/RC2
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
VSS
VDD
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/VREF-/CN3/RB1
PGD/EMUD/AN0/VREF+/CN2/RB0
OC8/CN16/RD7
RG13
RG12
RG14
VSS
C2TX/RG1
C1TX/RF1
C2RX/RG0
EMUD2/OC2/RD1
OC3/RD2
AN6/OCFA/RB6
AN7/RB7
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VSS
VDD
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
U2TX/CN18/RF5
U2RX/CN17/RF4
SDA/RG3
43
42
41
40
39
38
37
44
48
47
46
50
49
51
54
53
52
55
45
SS2/CN11/RG9
AN5/IC8/CN7/RB5
AN4/IC7/CN6/RB4
IC3/INT3/RD10
VDD
C1RX/RF0
OC4/RD3
OC7/CN15/RD6
OC6/IC6/CN14/RD5
OC5/IC5/CN13/RD4
64-Pin TQFP
dsPIC30F6011
Note: Pinout subject to change.
2003 Microchip Technology Inc. Advance Information DS70083B-page 9
dsPIC30F
Pin Diagrams (Continued)
72
74
73
71
70
69
68
67
66
65
64
63
62
61
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
50
49
48
47
46
45
44
21
41
40
39
38
37
36
35
34
23
24
25
26
27
28
29
30
31
32
33
dsPIC30F5013
17
18
19
75
1
57
56
55
54
53
52
51
60
59
58
43
42
76
78
77
79
22 80
IC5/RD12
OC4/RD3
OC3/RD2
EMUD2/OC2/RD1
CSCK/RG14
RA7/CN23
RA6/CN22
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
CSDO/RG13
CSDI/RG12
OC8/CN16/RD7
OC6/CN14/RD5
EMUC2/OC1/RD0
IC4/RD11
IC2/RD9
IC1/RD8
INT4/RA15
IC3/RD10
INT3/RA14
VSS
OSC1/CLKI
VDD
SCL/RG2
U1RX/RF2
U1TX/RF3
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/CN1/RC13
VREF+/RA10
VREF-/RA9
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VDD
U2RX/CN17/RF4
IC8/CN21/RD15
U2TX/CN18/RF5
AN6/OCFA/RB6
AN7/RB7
T3CK/RC2
T4CK/RC3
T5CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
AN4/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/CN3/RB1
PGD/EMUD/AN0/CN2/RB0
VSS
VDD
COFS/RG15
T2CK/RC1
INT2/RA13
INT1/RA12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VDD
VSS
OC5/CN13/RD4
IC6/CN19/RD13
SDA/RG3
SDI1/RF7
EMUD3/SDO1/RF8
AN5/CN7/RB5
VSS
OSC2/CLKO/RC15
OC7/CN15/RD6
EMUC3/SCK1/INT0/RF6
IC7/CN20/RD14
80-Pin TQFP
dsPIC30F6014
Note: Pinout subject to change.
dsPIC30F
DS70083B-page 10 Advance Information 2003 Microchip Technology Inc.
Pin Diagrams (Continued)
72
74
73
71
70
69
68
67
66
65
64
63
62
61
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
50
49
48
47
46
45
44
21
41
40
39
38
37
36
35
34
23
24
25
26
27
28
29
30
31
32
33
17
18
19
75
1
57
56
55
54
53
52
51
60
59
58
43
42
76
78
77
79
22 80
IC5/RD12
OC4/RD3
OC3/RD2
EMUD2/OC2/RD1
RG14
RA7/CN23
RA6/CN22
C2RX/RG0
C2TX/RG1
C1TX/RF1
C1RX/RF0
RG13
RG12
OC8/CN16/RD7
OC6/CN14/RD5
EMUC2/OC1/RD0
IC4/RD11
IC2/RD9
IC1/RD8
INT4/RA15
IC3/RD10
INT3/RA14
VSS
OSC1/CLKI
VDD
SCL/RG2
U1RX/RF2
U1TX/RF3
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/CN1/RC13
VREF+/RA10
VREF-/RA9
AVDD
AVSS
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
VDD
U2RX/CN17/RF4
IC8/CN21/RD15
U2TX/CN18/RF5
AN6/OCFA/RB6
AN7/RB7
T3CK/RC2
T4CK/RC3
T5CK/RC4
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
MCLR
SS2/CN11/RG9
AN4/CN6/RB4
AN3/CN5/RB3
AN2/SS1/LVDIN/CN4/RB2
PGC/EMUC/AN1/CN3/RB1
PGD/EMUD/AN0/CN2/RB0
VSS
VDD
RG15
T2CK/RC1
INT2/RA13
INT1/RA12
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
VDD
VSS
OC5/CN13/RD4
IC6/CN19/RD13
SDA/RG3
SDI1/RF7
EMUD3/SDO1/RF8
AN5/CN7/RB5
VSS
OSC2/CLKO/RC15
OC7/CN15/RD6
EMUC3/SCK1/INT0/RF6
IC7/CN20/RD14
80-Pin TQFP
dsPIC30F6013
Note: Pinout subject to change.
2003 Microchip Technology Inc. Advance Information DS70083B-page 11
dsPIC30F
Table of Contents
1.0 Device Overview ........................................................................................................................................................................ 13
2.0 Core Architecture Overview ....................................................................................................................................................... 17
3.0 Memory Organization................................................................................................................................................................. 31
4.0 Address Generator Units............................................................................................................................................................ 43
5.0 Exception Processing................................................................................................................................................................. 51
6.0 FLASH Program Memory........................................................................................................................................................... 59
7.0 Data EEPROM Memory ............................................................................................................................................................. 65
8.0 I/O Ports ..................................................................................................................................................................................... 71
9.0 Timer1 Module ........................................................................................................................................................................... 77
10.0 Timer2/3 Module ........................................................................................................................................................................ 81
11.0 Timer4/5 Module ........................................................................................................................................................................ 87
12.0 Input Capture Module................................................................................................................................................................. 91
13.0 Output Compare Module............................................................................................................................................................ 95
14.0 SPI Module................................................................................................................................................................................. 99
15.0 I2C Module ............................................................................................................................................................................... 103
16.0 Universal Asynchronous Receiver Transmitter (UART) Module .............................................................................................. 111
17.0 CAN Module............................................................................................................................................................................. 119
18.0 Data Converter Interface (DCI) Module.................................................................................................................................... 131
19.0 12-bit Analog-to-Digital Converter (A/D) Module...................................................................................................................... 141
20.0 System Integration ................................................................................................................................................................... 149
21.0 Instruction Set Summary.......................................................................................................................................................... 163
22.0 Development Support............................................................................................................................................................... 173
23.0 Electrical Characteristics.......................................................................................................................................................... 179
24.0 DC and AC Characteristics Graphs and Tables....................................................................................................................... 181
25.0 Packaging Information.............................................................................................................................................................. 183
Index .................................................................................................................................................................................................. 193
On-Line Support................................................................................................................................................................................. 199
Systems Information and Upgrade Hot Line ...................................................................................................................................... 199
Reader Response .............................................................................................................................................................................. 200
Product Identification System ............................................................................................................................................................ 201
TO OUR VALUED CUSTOMERS
It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip
products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and
enhanced as new volumes and updates are introduced.
If you have any questions or comments regarding this publication, please contact the Marketing Communications Department via
E-mail at docerrors@mail.microchip.com or fax the Reader Response Form in the back of this data sheet to (480) 792-4150.
We welcome your feedback.
Most Current Data Sheet
To obtain the most up-to-date version of this data sheet, please register at our Worldwide Web site at:
http://www.microchip.com
You can determine the version of a data sheet by examining its literature number found on the bottom outside corner of any page.
The last character of the literature number is the version number, (e.g., DS30000A is version A of document DS30000).
Errata
An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for current
devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the revision
of silicon and revision of document to which it applies.
To determine if an errata sheet exists for a particular device, please check with one of the following:
Microchip’s Worldwide Web site; http://www.microchip.com
Your local Microchip sales office (see last page)
The Microchip Corporate Literature Center; U.S. FAX: (480) 792-7277
When contacting a sales office or the literature center, please specify which device, revision of silicon and data sheet (include
literature number) you are using.
Customer Notification System
Register on our web site at www.microchip.com/cn to receive the most current information on all of our products.
dsPIC30F
DS70083B-page 12 Advance Information 2003 Microchip Technology Inc.
NOTES:
2003 Microchip Technology Inc. Advance Information DS70083B-page 13
dsPIC30F
1.0 DEVICE OVERVIEW
This document contains device family specific
information for the dsPIC30F family of Digital Signal
Controller (DSC) devices. The dsPIC30F devices
contain extensive Digital Signal Processor (DSP)
functionality within a high performance 16-bit
microcontroller (MCU) architecture.
Figure 1-1 shows a sample device block diagram.
Note: The device(s) depicted in this block
diagram are representative of the
corresponding device family. Other
devices of the same family may vary in
terms of number of pins and multiplexing
of pin functions. Typically, smaller devices
in the family contain a subset of the
peripherals present in the device(s) shown
in this diagram.
dsPIC30F
DS70083B-page 14 Advance Information 2003 Microchip Technology Inc.
FIGURE 1-1: dsPIC30F5013/6013/6014 BLOCK DIAGRAM
AN8/RB8
AN9/RB9
AN10/RB10
AN11/RB11
Power-up
Timer
Oscillator
Start-up Timer
POR/BOR
Reset
Watchdog
Timer
Instruction
Decode &
Control
OSC1/CLKI
MCLR
V
DD
, V
SS
AN4/CN6/RB4
AN12/RB12
AN13/RB13
AN14/RB14
AN15/OCFB/CN12/RB15
Low Voltage
Detect
UART1,
INT4/RA15
INT3/RA14
V
REF
+/RA10
V
REF
-/RA9
CAN2
Timing
Generation
CAN1,
AN5/CN7/RB5
16
PCH PCL
16
Program Counter
ALU<16>
16
24
24
24
24
X Data Bus
IR
I
2
C
DCI
AN6/OCFA/RB6
AN7/RB7
PCU
12-bit ADC
Timers
SCK2/CN8/RG6
SDI2/CN9/RG7
SDO2/CN10/RG8
SS2/CN11/RG9
U2TX/CN18/RF5
EMUC3/SCK1/INT0/RF6
SDI1/RF7
EMUD3/SDO1/RF8
Input
Capture
Module
Output
Compare
Module
EMUC1/SOSCO/T1CK/CN0/RC14
EMUD1/SOSCI/CN1/RC13
T4CK/RC3
T2CK/RC1
PORTB
C1RX/RF0
C1TX/RF1
U1RX/RF2
U1TX/RF3
C2RX/RG0
C2TX/RG1
SCL/RG2
SDA/RG3
PORTG
PORTD
16
16 16
16 x 16
W Reg Array
Divide
Unit
Engine
DSP
Decode
ROM Latch
16
Y Data Bus
Effective Address
X RAGU
X WAGU
Y AGU
PGD/EMUD/AN0/CN2/RB0
PGC/EMUC/AN1/CN3/RB1
AN2/SS1/LVDIN/CN4/RB2
AN3/CN5/RB3
OSC2/CLKO/RC15
U2RX/CN17/RF4
AV
DD
, AV
SS
UART2
SPI2
16
16
16
16
16 PORTA
PORTC
PORTF
16
16
16
16
8
Interrupt
Controller
PSV & Table
Data Access
Control Block
Stack
Control
Logic
Loop
Control
Logic
Data LatchData Latch
Y Data
(4 Kbytes)
RAM X Data
(4 Kbytes)
RAM
Address
Latch
Address
Latch
Control Signals
to Various Blocks
EMUC2/OC1/RD0
EMUD2/OC2/RD1
OC3/RD2
OC4/RD3
OC5/CN13/RD4
OC6/CN14/RD5
OC7/CN15/RD6
OC8/CN16/RD7
IC1/RD8
IC2/RD9
IC3/RD10
IC4/RD11
IC5/RD12
IC6/CN19/RD13
IC7/CN20/RD14
IC8/CN21/RD15
16
CSDI/RG12
CSDO/RG13
CSCK/RG14
COFS/RG15
T3CK/RC2
SPI1,
INT1/RA12
INT2/RA13
RA7/CN23
RA6/CN22
T5CK/RC4
Address Latch
Program Memory
(144 Kbytes)
Data Latch
Data EEPROM
(4 Kbytes)
2003 Microchip Technology Inc. Advance Information DS70083B-page 15
dsPIC30F
Table 1-1 provides a brief description of device I/O
pinouts and the functions that may be multiplexed to a
port pin. Multiple functions may exist on one port pin.
When multiplexing occurs, the peripheral module’s
functional requirements may force an override of the
data direction of the port pin.
TABLE 1-1: PINOUT I/O DESCRIPTIONS
Pin Name Pin
Type
Buffer
Type Description
AN0 - AN15 I Analog Analog input channels.
AN0 and AN1 are also used for device programming data and
clock inputs, respectively.
AVDD P P Positive supply for analog module.
AVSS P P Ground reference for analog module.
CLKI
CLKO
I
O
ST/CMOS
External clock source input. Always associated with OSC1 pin
function.
Oscillator crystal output. Connects to crystal or resonator in
Crystal Oscillator mode. Optionally functions as CLKO in RC
and EC modes. Always associated with OSC2 pin
function.
CN0 - CN23 I ST Input change notification inputs.
Can be software programmed for internal weak pull-ups on all
inputs.
COFS
CSCK
CSDI
CSDO
I/O
I/O
I
O
ST
ST
ST
Data Converter Interface frame synchronization pin.
Data Converter Interface serial clock input/output pin.
Data Converter Interface serial data input pin.
Data Converter Interface serial data output pin.
C1RX
C1TX
C2RX
C2TX
I
O
I
O
ST
ST
CAN1 bus receive pin.
CAN1 bus transmit pin.
CAN2 bus receive pin.
CAN2 bus transmit pin
EMUD
EMUC
EMUD1
EMUC1
EMUD2
EMUC2
EMUD3
EMUC3
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
ST
ST
ST
ST
ST
ST
ST
ST
ICD Primary Communication Channel data input/output pin.
ICD Primary Communication Channel clock input/output pin.
ICD Secondary Communication Channel data
input/output pin.
ICD Secondary Communication Channel clock input/output pin.
ICD Tertiary Communication Channel data input/output pin.
ICD Tertiary Communication Channel clock input/output pin.
ICD Quaternary Communication Channel data
input/output pin.
ICD Quaternary Communication Channel clock input/output pin.
IC1 - IC8 I ST Capture inputs 1 through 8.
INT0
INT1
INT2
INT3
INT4
I
I
I
I
I
ST
ST
ST
ST
ST
External interrupt 0.
External interrupt 1.
External interrupt 2.
External interrupt 3.
External interrupt 4.
LVDIN I Analog Low Voltage Detect Reference Voltage input pin.
MCLR I/P ST Master Clear (Reset) input or programming voltage input. This
pin is an active low RESET to the device.
Legend: CMOS = CMOS compatible input or output Analog = Analog input
ST = Schmitt Trigger input with CMOS levels O = Output
I = Input P = Power
dsPIC30F
DS70083B-page 16 Advance Information 2003 Microchip Technology Inc.
OCFA
OCFB
OC1 - OC8
I
I
O
ST
ST
Compare Fault A input (for Compare channels 1, 2, 3 and 4).
Compare Fault B input (for Compare channels 5, 6, 7 and 8).
Compare outputs 1 through 8.
OSC1
OSC2
I
I/O
ST/CMOS
Oscillator crystal input. ST buffer when configured in RC mode;
CMOS otherwise.
Oscillator crystal output. Connects to crystal or resonator in
Crystal Oscillator mode. Optionally functions as CLKO in RC
and EC modes.
PGD
PGC
I/O
I
ST
ST
In-Circuit Serial Programming data input/output pin.
In-Circuit Serial Programming clock input pin.
RA6 - RA7
RA9 - RA10
RA12 - RA15
I/O
I/O
I/O
ST
ST
ST
PORTA is a bidirectional I/O port.
RB0 - RB15 I/O ST PORTB is a bidirectional I/O port.
RC1 - RC4
RC13 - RC15
I/O
I/O
ST
ST
PORTC is a bidirectional I/O port.
RD0 - RD15 I/O ST PORTD is a bidirectional I/O port.
RF0 - RF8 I/O ST PORTF is a bidirectional I/O port.
RG0 - RG3
RG6 - RG9
RG12 - RG15
I/O
I/O
I/O
ST
ST
ST
PORTG is a bidirectional I/O port.
SCK1
SDI1
SDO1
SS1
SCK2
SDI2
SDO2
SS2
I/O
I
O
I
I/O
I
O
I
ST
ST
ST
ST
ST
ST
Synchronous serial clock input/output for SPI1.
SPI1 Data In.
SPI1 Data Out.
SPI1 Slave Synchronization.
Synchronous serial clock input/output for SPI2.
SPI2 Data In.
SPI2 Data Out.
SPI2 Slave Synchronization.
SCL
SDA
I/O
I/O
ST
ST
Synchronous serial clock input/output for I2C.
Synchronous serial data input/output for I2C.
SOSCO
SOSCI
O
I
ST/CMOS
32 kHz low power oscillator crystal output.
32 kHz low power oscillator crystal input. ST buffer when config-
ured in RC mode; CMOS otherwise.
T1CK
T2CK
T3CK
T4CK
T5CK
I
I
I
I
I
ST
ST
ST
ST
ST
Timer1 external clock input.
Timer2 external clock input.
Timer3 external clock input.
Timer4 external clock input.
Timer5 external clock input.
U1RX
U1TX
U1ARX
U1ATX
U2RX
U2TX
I
O
I
O
I
O
ST
ST
ST
UART1 Receive.
UART1 Transmit.
UART1 Alternate Receive.
UART1 Alternate Transmit.
UART2 Receive.
UART2 Transmit.
VDD P Positive supply for logic and I/O pins.
VSS P Ground reference for logic and I/O pins.
VREF+ I Analog Analog Voltage Reference (High) input.
VREF- I Analog Analog Voltage Reference (Low) input.
TABLE 1-1: PINOUT I/O DESCRIPTIONS (CONTINUED)
Pin Name Pin
Type
Buffer
Type Description
Legend: CMOS = CMOS compatible input or output Analog = Analog input
ST = Schmitt Trigger input with CMOS levels O = Output
I = Input P = Power
2003 Microchip Technology Inc. Advance Information DS70083B-page 17
dsPIC30F
2.0 CORE ARCHITECTURE
OVERVIEW
2.1 Core Overview
The core has a 24-bit instruction word. The Program
Counter (PC) is 23-bits wide with the Least Significant
(LS) bit always clear (refer to Section 3.1), and the
Most Significant (MS) bit is ignored during normal pro-
gram execution, except for certain specialized instruc-
tions. Thus, the PC can address up to 4M instruction
words of user program space. An instruction pre-fetch
mechanism is used to help maintain throughput. Pro-
gram loop constructs, free from loop count manage-
ment overhead, are supported using the DO and
REPEAT instructions, both of which are interruptible at
any point.
The working register array consists of 16 x 16-bit regis-
ters, each of which can act as data, address or offset
registers. One working register (W15) operates as a
software stack pointer for interrupts and calls.
The data space is 64 Kbytes (32K words) and is split
into two blocks, referred to as X and Y data memory.
Each block has its own independent Address Genera-
tion Unit (AGU). Most instructions operate solely
through the X memory, AGU, which provides the
appearance of a single unified data space. The
Multiply-Accumulate (MAC) class of dual source DSP
instructions operate through both the X and Y AGUs,
splitting the data address space into two parts (see
Section 3.2). The X and Y data space boundary is
device specific and cannot be altered by the user. Each
data word consists of 2 bytes, and most instructions
can address data either as words or bytes.
There are two methods of accessing data stored in
program memory:
The upper 32 Kbytes of data space memory can
be mapped into the lower half (user space) of pro-
gram space at any 16K program word boundary,
defined by the 8-bit Program Space Visibility Page
(PSVPAG) register. This lets any instruction
access program space as if it were data space,
with a limitation that the access requires an addi-
tional cycle. Moreover, only the lower 16 bits of
each instruction word can be accessed using this
method.
Linear indirect access of 32K word pages within
program space is also possible using any working
register, via table read and write instructions.
Table read and write instructions can be used to
access all 24 bits of an instruction word.
Overhead-free circular buffers (modulo addressing) are
supported in both X and Y address spaces. This is pri-
marily intended to remove the loop overhead for DSP
algorithms.
The X AGU also supports bit-reversed addressing on
destination effective addresses to greatly simplify input
or output data reordering for radix-2 FFT algorithms.
Refer to Section 4.0 for details on modulo and
bit-reversed addressing.
The core supports Inherent (no operand), Relative,
Literal, Memory Direct, Register Direct, Register
Indirect, Register Offset and Literal Offset Addressing
modes. Instructions are associated with predefined
Addressing modes, depending upon their functional
requirements.
For most instructions, the core is capable of executing
a data (or program data) memory read, a working reg-
ister (data) read, a data memory write and a program
(instruction) memory read per instruction cycle. As a
result, 3-operand instructions are supported, allowing
C = A+B operations to be executed in a single cycle.
A DSP engine has been included to significantly
enhance the core arithmetic capability and throughput.
It features a high speed 17-bit by 17-bit multiplier, a
40-bit ALU, two 40-bit saturating accumulators and a
40-bit bidirectional barrel shifter. Data in the accumula-
tor or any working register can be shifted up to 15 bits
right, or 16 bits left in a single cycle. The DSP instruc-
tions operate seamlessly with all other instructions and
have been designed for optimal real-time performance.
The MAC class of instructions can concurrently fetch
two data operands from memory while multiplying two
W registers. To enable this concurrent fetching of data
operands, the data space has been split for these
instructions and linear for all others. This has been
achieved in a transparent and flexible manner, by ded-
icating certain working registers to each address space
for the MAC class of instructions.
The core does not support a multi-stage instruction
pipeline. However, a single stage instruction pre-fetch
mechanism is used, which accesses and partially
decodes instructions a cycle ahead of execution, in
order to maximize available execution time. Most
instructions execute in a single cycle with certain
exceptions, as outlined in Section 2.3.
The core features a vectored exception processing
structure for traps and interrupts, with 62 independent
vectors. The exceptions consist of up to 8 traps (of
which 4 are reserved) and 54 interrupts. Each interrupt
is prioritized based on a user assigned priority between
1 and 7 (1 being the lowest priority and 7 being the
highest), in conjunction with a predetermined ‘natural
order’. Traps have fixed priorities ranging from 8 to 15.
dsPIC30F
DS70083B-page 18 Advance Information 2003 Microchip Technology Inc.
2.2 Programmers Model
The programmer’s model is shown in Figure 2-1 and
consists of 16 x 16-bit working registers (W0 through
W15), 2 x 40-bit accumulators (AccA and AccB),
STATUS register (SR), Data Table Page register
(TBLPAG), Program Space Visibility Page register
(PSVPAG), DO and REPEAT registers (DOSTART,
DOEND, DCOUNT and RCOUNT), and Program
Counter (PC). The working registers can act as data,
address or offset registers. All registers are memory
mapped. W0 acts as the W register for file register
addressing.
Some of these registers have a shadow register asso-
ciated with each of them, as shown in Figure 2-1. The
shadow register is used as a temporary holding register
and can transfer its contents to or from its host register
upon the occurrence of an event. None of the shadow
registers are accessible directly. The following rules
apply for transfer of registers into and out of shadows.
PUSH.S and POP.S
W0, W1, W2, W3, SR (DC, N, OV, Z and C bits
only) are transferred.
DO instruction
DOSTART, DOEND, DCOUNT shadows are
pushed on loop start, and popped on loop end.
When a byte operation is performed on a working reg-
ister, only the Least Significant Byte of the target regis-
ter is affected. However, a benefit of memory mapped
working registers is that both the Least and Most Sig-
nificant Bytes can be manipulated through byte wide
data memory space accesses.
2.2.1 SOFTWARE STACK POINTER/
FRAME POINTER
The dsPIC® devices contain a software stack. W15 is
the dedicated software Stack Pointer (SP), and will be
automatically modified by exception processing and
subroutine calls and returns. However, W15 can be ref-
erenced by any instruction in the same manner as all
other W registers. This simplifies the reading, writing
and manipulation of the stack pointer (e.g., creating
stack frames).
W15 is initialized to 0x0800 during a RESET. The user
may reprogram the SP during initialization to any
location within data space.
W14 has been dedicated as a stack frame pointer as
defined by the LNK and ULNK instructions. However,
W14 can be referenced by any instruction in the same
manner as all other W registers.
2.2.2 STATUS REGISTER
The dsPIC core has a 16-bit STATUS register (SR), the
LS Byte of which is referred to as the SR Low byte
(SRL) and the MS Byte as the SR High byte (SRH).
See Figure 2-1 for SR layout.
SRL contains all the MCU ALU operation status flags
(including the Z bit), as well as the CPU Interrupt Prior-
ity Level status bits, IPL<2:0>, and the Repeat Active
status bit, RA. During exception processing, SRL is
concatenated with the MS Byte of the PC to form a
complete word value which is then stacked.
The upper byte of the STATUS register contains the
DSP Adder/Subtracter status bits, the DO Loop Active
bit (DA) and the Digit Carry (DC) status bit.
Most SR bits are read/write. Exceptions are:
1. The DA bit: DA is read and clear only because
accidentally setting it could cause erroneous
operation.
2. The RA bit: RA is a read only bit because acci-
dentally setting it could cause erroneous opera-
tion. RA is only set on entry into a REPEAT loop,
and cannot be directly cleared by software.
3. The OV, OA, OB and OAB bits: These bits are
read only and can only be set by the DSP engine
overflow logic.
4. The SA, SB and SAB bits: These are read and
clear only and can only be set by the DSP
engine saturation logic. Once set, these flags
remain set until cleared by the user, irrespective
of the results from any subsequent DSP
operations.
2.2.2.1 Z Status Bit
Instructions that use a carry/borrow input (ADDC,
CPB, SUBB and SUBBR) will only be able to clear Z (for
a non-zero result) and can never set it. A multi-
precision sequence of instructions, starting with an
instruction with no carry/borrow input, will thus auto-
matically logically AND the successive results of the
zero test. All results must be zero for the Z flag to
remain set by the end of the sequence.
All other instructions can set as well as clear the Z bit.
2.2.3 PROGRAM COUNTER
The program counter is 23-bits wide; bit 0 is always
clear. Therefore, the PC can address up to 4M
instruction words.
Note: In order to protect against misaligned
stack accesses, W15<0> is always clear.
Note 1: Clearing the SAB bit will also clear both
the SA and SB bits.
2: When the memory mapped STATUS reg-
ister (SR) is the destination address for
an operation which affects any of the SR
bits, data writes are disabled to all bits.
2003 Microchip Technology Inc. Advance Information DS70083B-page 19
dsPIC30F
FIGURE 2-1: PROGRAMMER’S MODEL
TABPAG
PC22 PC0
7 0
D0D15
Program Counter
Data Table Page Address
Status Register
Working Registers
DSP Operand
Registers
W1
W2
W3
W4
W5
W6
W7
W8
W9
W10
W11
W12/DSP Offset
W13/DSP Write Back
W14/Frame Pointer
W15/Stack Pointer
DSP Address
Registers
AD39 AD0AD31
DSP
Accumulators
AccA
AccB
PSVPAG
7 0
Program Space Visibility Page Address
Z
0
OA OB SA SB
RCOUNT
15 0
REPEAT Loop Counter
DCOUNT
15 0
DO Loop Counter
DOSTART
22 0
DO Loop Start Address
IPL2 IPL1
SPLIM Stack Pointer Limit Register
AD15
SRL
PUSH.S Shadow
DO Shadow
OAB SAB
15 0
Core Configuration Register
Legend
CORCON
DA DC RA N
TBLPAG
PSVPAG
IPL0 OV
W0/WREG
SRH
DO Loop End Address
DOEND
22
C
dsPIC30F
DS70083B-page 20 Advance Information 2003 Microchip Technology Inc.
2.3 Instruction Flow
There are 8 types of instruction flows:
1. Normal one-word, one-cycle instructions: these
instructions take one effective cycle to execute
as shown in Figure 2-2.
FIGURE 2-2: INSTRUCTION PIPELINE FLOW: 1-WORD, 1-CYCLE
2. One-word, two-cycle (or three-cycle) instruc-
tions that are flow control instructions: these
instructions include the relative branches, rela-
tive call, skips and returns. When an instruction
changes the PC (other than to increment it), the
pipelined fetch is discarded. This causes the
instruction to take two effective cycles to exe-
cute as shown in Figure 2-3. Some instructions
that change program flow require 3 cycles, such
as the RETURN, RETFIE and RETLW instruc-
tions, and instructions that skip over 2-word
instructions.
FIGURE 2-3: INSTRUCTION PIPELINE FLOW: 1-WORD, 2-CYCLE
TCY0TCY1TCY2TCY3TCY4TCY5
1. MOV.b #0x55,W0 Fetch 1 Execute 1
2. MOV.b #0x35,W1 Fetch 2 Execute 2
3. ADD.b W0,W1,W2 Fetch 3 Execute 3
TCY0TCY1TCY2TCY3TCY4TCY5
1. MOV #0x55,W0 Fetch 1 Execute 1
2. BTSC W1,#3 Fetch 2 Execute 2
Skip Taken
3. ADD W0,W1,W2 Fetch 3 Flush
4. BRA SUB_1 Fetch 4 Execute 4
5. SUB W0,W1,W3 Fetch 5 Flush
6. Instruction @ address SUB_1 Fetch SUB_1
2003 Microchip Technology Inc. Advance Information DS70083B-page 21
dsPIC30F
3. One-word, two-cycle instructions that are not
flow control instructions: the only instructions of
this type are the MOV.D (load and store double-
word) instructions, as shown in Figure 2-4.
FIGURE 2-4: INSTRUCTION PIPELINE FLOW: 1-WORD, 2-CYCLE MOV.D OPERATIONS
4. Table read/write instructions: these instructions
will suspend the fetching to insert a read or write
cycle to the program memory. The instruction
fetched while executing the table operation is
saved for 1 cycle and executed in the cycle
immediately after the table operation as shown
in Figure 2-5.
FIGURE 2-5: INSTRUCTION PIPELINE FLOW: 1-WORD, 2-CYCLE TABLE OPERATIONS
5. Two-word instructions for CALL and GOTO: in
these instructions, the fetch after the instruction
provides the remainder of the jump or call desti-
nation address. These instructions require 2
cycles to execute, 1 cycle to fetch the 2 instruc-
tion words (enabled by a high speed path on the
second fetch), and 1 cycle to flush the pipeline
as shown in Figure 2-6.
FIGURE 2-6: INSTRUCTION PIPELINE FLOW: 2-WORD, 2-CYCLE GOTO, CALL
TCY0TCY1TCY2TCY3TCY4TCY5
1. MOV W0,0x1234 Fetch 1 Execute 1
2. MOV.D [W0++],W1 Fetch 2 Execute 2
R/W Cycle 1
3. MOV W1,0x00AA Fetch 3 Execute 2
R/W Cycle2
3a. Stall Stall Execute 3
4. MOV 0x0CC, W0 Fetch 4 Execute 4
TCY0TCY1TCY2TCY3TCY4TCY5
1. MOV #0x1234,W0 Fetch 1 Execute 1
2. TBLRDL [W0++],W1 Fetch 2 Execute 2
3. MOV #0x00AA,W1 Fetch 3 Execute 2
Read Cycle
3a. Table Operation Bus Read Execute 3
4. MOV #0x0CC,W0 Fetch 4 Execute 4
TCY0TCY1TCY2TCY3TCY4TCY5
1. MOV #0x1234,W0 Fetch 1 Execute 1
2. GOTO LABEL Fetch 2L Update PC
2a. Second Word Fetch 2H NOP
3. Instruction @ address LABEL Fetch
LABEL
Execute
LABEL
4. BSET W1, #BIT3 Fetch 4 Execute 4