dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
dsPIC33EPXXX(GP/MC/MU)806/810/
814 and PIC24EPXXX(GP/GU)810/814
PRODUCT FAMILIES
The device names, pin counts, memory sizes and
peripheral availability of each device are listed in
Table 1. Their pinout diagrams appear on the following
pages.
TABLE 1:dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
CONTROLLER FAMILIES
Remappable Peripherals
(6)
SPI
ECAN™
External Interrupts
DMA Controller (Channels)
(2)
(3,4)
(1)
Device
dsPIC33EP256MU806 64
dsPIC33EP256MU810
dsPIC33EP256MU814 144
dsPIC33EP512GP806 64
dsPIC33EP512MC806 64
dsPIC33EP512MU810
dsPIC33EP512MU814 144
PIC24EP256GU810
PIC24EP256GU814144
PIC24EP512GP80664
PIC24EP512GU810
PIC24EP512GU814144
Note 1:Flash size is inclusive of 24 Kbytes of auxiliary Flash. Auxiliary Flash supports simultaneous code execution and self-erase/programming.
Refer to Section 5. “Flash Programming” (DS70609) in the “dsPIC33E/PIC24E Family Reference Manual”.
2:RAM size is inclusive of 4 Kbytes of DMA RAM (DPSRAM) for all devices.
3:Up to eight of these timers can be combined into four 32-bit timers.
4:Eight out of nine timers are remappable.
5:PWM faults and Sync signals are remappable.
6:Four out of five interrupts are remappable.
7:Comparator output is remappable.
8:The ADC2 module supports 10-bit mode only.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
TABLE 2:PIN NAMES: dsPIC33EP256MU810 AND dsPIC33EP512MU810
DEVICES
Pin
Number
A1AN28/PWM3L/PMD4/RP84/RE4E8RPI31/RA15
A2AN27/PWM2H/PMD3/RPI83/RE3E9RTCC/DMLN/RPI72/RD8
A3RP125/RG13E10ASDA1/DPLN/RPI73/RD9
A4AN24/PWM1L/PMD0/RP80/RE0E11RPI30/RA14
A5RP112/RG0F1MCLR
A6VCMPST2/RP97/RF1F2C2IN3-/SDO2/PMA3/RP120/RG8
A7V
A8No ConnectF4C1IN1-/SDI2/PMA4/RPI119/RG7
A9RPI76/RD12F5V
A10DPH/RP66/RD2F6No Connect
A11V
B1No ConnectF8V
B2RP127/RG15F9OSC1/RPI60/RC12
B3AN26/PWM2L/PMD2/RP82/RE2F10V
B4AN25/PWM1H/PMD1/RPI81/RE1F11OSC2/CLKO/RC15
B5AN23/RPI23/RA7G1AN20/RPI88/RE8
B6V
B7V
B8PMRD/RP69/RD5G4No Connect
B9PMBE/RP67/RD3G5V
B10VSSG6VSS
B11PGEC2/SOSCO/C3IN1-/T1CK/RPI62/RC14G7VSS
C1AN30/PWM4L/PMD6/RPI86/RE6G8No Connect
C2V
C3RPI124/RG12G10ASDA2/RPI19/RA3
C4RP126/RG14G11TDI/RPI20/RA4
C5AN22/RPI22/RA6H1AN5/C1IN1+/V
C6No ConnectH2AN4/C1IN2-/USBOEN/RPI36/RB4
C7C3IN1+/V
C8PMWR/RP68/RD4H4No Connect
C9No ConnectH5No Connect
C10PGED2/SOSCI/C3IN3-/RPI61/RC13H6V
C11PMCS1/RPI75/RD11H7No Connect
D1AN16/PWM5L/RPI49/RC1H8V
D2AN31/PWM4H/PMD7/RP87/RE7H9VUSB3V3
D3AN29/PWM3H/PMD5/RP85/RE5H10D+/RG2
D4No ConnectH11ASCL2/RPI18/RA2
D5No ConnectJ1AN3/C2IN1+/VPIO/RPI35/RB3
D6No ConnectJ2AN2/C2IN2-/VMIO/RPI34/RB2
D7C3IN2-/RP70/RD6J3PGED1/AN7/RCV/RPI39/RB7
D8RPI77/RD13J4AV
D9INT0/DMH/RP64/RD0J5AN11/PMA12/RPI43/RB11
D10No ConnectJ6TCK/RPI17/RA1
D11ASCL1/PMCS2/RPI74/RD10J7AN12/PMA11/RPI44/RB12
E1AN19/PWM6H/RPI52/RC4J8No Connect
E2AN18/PWM6L/RPI51/RC3J9No Connect
E3C1IN3-/SCK2/PMA5/RP118/RG6J10RP104/RF8
E4AN17/PWM5H/RPI50/RC2J11D-/RG3
E5No ConnectK1PGEC3/AN1/RPI33/RB1
E6RP113/RG1K2PGED3/AN0/RPI32/RB0
E7No ConnectK3V
Note 1:The RPn/RPIn pins can be used by any remappable peripheral with some limitation. See Section 11.4 “Peripheral Pin Select” for
DDF3C2IN1-/PMA2/RPI121/RG9
CPCON/RP65/RD1F7No Connect
CMPST1/RP96/RF0G2AN21/RPI89/RE9
CAPG3TMS/RPI16/RA0
DDG9TDO/RPI21/RA5
CMPST3/RP71/RD7H3No Connect
available peripherals and for information on limitations.
2:Every I/O port pin (RAx-RGx) can be used as change notification (CNAx-CNGx). See Section 11.0 “I/O Ports” for more information.
3:The availability of I
bits, ALTI2C1 and ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
(1,2)
Full Pin Name
2
C interfaces varies by device. Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
TABLE 2:PIN NAMES: dsPIC33EP256MU810 AND dsPIC33EP512MU810
DEVICES
Pin
Number
K4AN8/PMA6/RPI40/RB8L3AVSS
K5No ConnectL4AN9/PMA7//RPI41/RB9
K6RP108/RF12L5AN10/CV
K7AN14/PMA1/RPI46/RB14L6RP109/RF13
K8V
K9RP79/RD15L8AN15/PMA0/RPI47/RB15
K10USBID/RP99/RF3L9RPI78/RD14
K11RP98/RF2L10SDA2/PMA9/RP100/RF4
L1PGEC1/AN6/RPI38/RB6L11SCL2/PMA8/RP101/RF5
L2V
Note 1:The RPn/RPIn pins can be used by any remappable peripheral with some limitation. See Section 11.4 “Peripheral Pin Select” for
DDL7AN13/PMA10/RPI45/RB13
REF-/RA9
available peripherals and for information on limitations.
2:Every I/O port pin (RAx-RGx) can be used as change notification (CNAx-CNGx). See Section 11.0 “I/O Ports” for more information.
3:The availability of I
bits, ALTI2C1 and ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
(1,2)
(CONTINUED)
Full Pin Name
2
C interfaces varies by device. Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
TABLE 3:PIN NAMES: PIC24EP256GU810 AND PIC24EP512GU810
DEVICES
Pin
Number
A1AN28/PMD4/RP84/RE4E8RPI31/RA15
A2AN27/PMD3/RPI83/RE3E9RTCC/DMLN/RPI72/RD8
A3RP125/RG13E10ASDA1/DPLN/RPI73/RD9
A4AN24/PMD0/RP80/RE0E11RPI30/RA14
A5RP112/RG0F1MCLR
A6VCMPST2/RP97/RF1F2C2IN3-/SDO2/PMA3/RP120/RG8
A7V
A8No ConnectF4C1IN1-/SDI2/PMA4/RPI119/RG7
A9RPI76/RD12F5V
A10DPH/RP66/RD2F6No Connect
A11V
B1No ConnectF8V
B2RP127/RG15F9OSC1/RPI60/RC12
B3AN26/PMD2/RP82/RE2F10V
B4AN25/PMD1/RPI81/RE1F11OSC2/CLKO/RC15
B5AN23/RPI23/RA7G1AN20/RPI88/RE8
B6V
B7V
B8PMRD/RP69/RD5G4No Connect
B9PMBE/RP67/RD3G5V
B10VSSG6VSS
B11PGEC2/SOSCO/C3IN1-/T1CK/RPI62/RC14G7VSS
C1AN30/PMD6/RPI86/RE6G8No Connect
C2V
C3RPI124/RG12G10ASDA2/RPI19/RA3
C4RP126/RG14G11TDI/RPI20/RA4
C5AN22/RPI22/RA6H1AN5/C1IN1+/V
C6No ConnectH2AN4/C1IN2-/USBOEN/RPI36/RB4
C7C3IN1+/V
C8PMWR/RP68/RD4H4No Connect
C9No ConnectH5No Connect
C10PGED2/SOSCI/C3IN3-/RPI61/RC13H6V
C11PMCS1/RPI75/RD11H7No Connect
D1AN16/RPI49/RC1H8V
D2AN31/PMD7/RP87/RE7H9VUSB3V3
D3AN29/PMD5/RP85/RE5H10D+/RG2
D4No ConnectH11ASCL2/RPI18/RA2
D5No ConnectJ1AN3/C2IN1+/VPIO/RPI35/RB3
D6No ConnectJ2AN2/C2IN2-/VMIO/RPI34/RB2
D7C3IN2-/RP70/RD6J3PGED1/AN7/RCV/RPI39/RB7
D8RPI77/RD13J4AV
D9INT0/DMH/RP64/RD0J5AN11/PMA12/RPI43/RB11
D10No ConnectJ6TCK/RPI17/RA1
D11ASCL1/PMCS2/RPI74/RD10J7AN12/PMA11/RPI44/RB12
E1AN19/RPI52/RC4J8No Connect
E2AN18/RPI51/RC3J9No Connect
E3C1IN3-/SCK2/PMA5/RP118/RG6J10RP104/RF8
E4AN17/RPI50/RC2J11D-/RG3
E5No ConnectK1PGEC3/AN1/RPI33/RB1
E6RP113/RG1K2PGED3/AN0/RPI32/RB0
E7No ConnectK3V
Note 1:The RPn/RPIn pins can be used by any remappable peripheral with some limitation. See Section 11.4 “Peripheral Pin Select” for
DDF3C2IN1-/PMA2/RPI121/RG9
CPCON/RP65/RD1F7No Connect
CMPST1/RP96/RF0G2AN21/RPI89/RE9
CAPG3TMS/RPI16/RA0
DDG9TDO/RPI21/RA5
CMPST3/RP71/RD7H3No Connect
available peripherals and for information on limitations.
2:Every I/O port pin (RAx-RGx) can be used as change notification (CNAx-CNGx). See Section 11.0 “I/O Ports” for more information.
3:The availability of I
bits, ALTI2C1 and ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
(1,2)
Full Pin Name
2
C interfaces varies by device. Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
TABLE 3:PIN NAMES: PIC24EP256GU810 AND PIC24EP512GU810
DEVICES
Pin
Number
K4AN8/PMA6/RPI40/RB8L3AVSS
K5No ConnectL4AN9/PMA7/RPI41/RB9
K6RP108/RF12L5AN10/CV
K7AN14/PMA1/RPI46/RB14L6RP109/RF13
K8V
K9RP79/RD15L8AN15/PMA0/RPI47/RB15
K10USBID/RP99/RF3L9RPI78/RD14
K11RP98/RF2L10SDA2/PMA9/RP100/RF4
L1PGEC1/AN6/RPI38/RB6L11SCL2/PMA8/RP101/RF5
L2V
Note 1:The RPn/RPIn pins can be used by any remappable peripheral with some limitation. See Section 11.4 “Peripheral Pin Select” for
DDL7AN13/PMA10/RPI45/RB13
REF-/RA9
available peripherals and for information on limitations.
2:Every I/O port pin (RAx-RGx) can be used as change notification (CNAx-CNGx). See Section 11.0 “I/O Ports” for more information.
3:The availability of I
bits, ALTI2C1 and ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
(1,2)
(CONTINUED)
Full Pin Name
2
C interfaces varies by device. Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration
2.0Guidelines for Getting Started with 16-bit Digital Signal Controllers and Microcontrollers ......................................................... 31
5.0Flash Program Memory............................................................................................................................................................ 135
28.0 Parallel Master Port (PMP)....................................................................................................................................................... 463
29.0 Special Features ...................................................................................................................................................................... 473
30.0 Instruction Set Summary .......................................................................................................................................................... 481
31.0 Development Support............................................................................................................................................................... 491
33.0 DC and AC Device Characteristics Graphs.............................................................................................................................. 569
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
Referenced Sources
This device data sheet is based on the following
individual chapters of the “dsPIC33E/PIC24E FamilyReference Manual”. These documents should be
considered as the general reference for the operation
of a particular module or device feature.
Note:To access the documents listed below,
browse to the documentation section of
the dsPIC33EP512MU814 product page
on the Microchip web site
(www.microchip.com).
In the event you are not able to access
the product page using the link above,
enter this URL in your browser:
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
1.0DEVICE OVERVIEW
Note 1: This data sheet summarizes the features
of the dsPIC33EPXXX(GP/MC/MU)806/
810/814 and PIC24EPXXX(GP/GU)810/
814 families of devices. It is not intended
to be a comprehensive resource. To complement the information in this data
sheet, refer to the related section of the
“dsPIC33E/PIC24E Family ReferenceManual”, which is available from the
Microchip web site (www.microchip.com)
2: Some registers and associated bits
described in this section may not be
available on all devices. Refer to
Section 4.0 “Memory Organization” in
this data sheet for device-specific register
and bit information.
This document contains device-specific information for
the dsPIC33EPXXX(GP/MC/MU)806/810/814 and
PIC24EPXXX(GP/GU)810/814 Digital Signal Controller (DSC) and Microcontroller (MCU) devices. The
dsPIC33EPXXX(GP/MC/MU)806/810/814 devices
contain extensive Digital Signal Processor (DSP) functionality with a high-performance 16-bit MCU
architecture.
Figure 1-1 illustrates a general block diagram of the
core and peripheral modules in the
dsPIC33EPXXX(GP/MC/MU)806/810/814 and
PIC24EPXXX(GP/GU)810/814 families of devices.
Table 1-1 lists the functions of the various pins shown
Note 1: This pin is available on dsPIC33EPXXX(MC/MU)806/810/814 devices only.
DD must be connected at all times.
2: AV
3: These pins are input only on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
4: These pins are only available on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
5: The availability of I
Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration bits ALTI2C1 and
ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
6: Analog functionality is activated by enabling the USB module and is not controlled by the ANSEL register.
Typ e
I
Buffer
Type
CMOS
PPSDescription
ST/
NoNoExternal 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.
O
I/O
—
I
ST/
CMOS
—
Always associated with OSC2 pin function.
NoNoOscillator 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.
Note 1: This pin is available on dsPIC33EPXXX(MC/MU)806/810/814 devices only.
DD must be connected at all times.
2: AV
3: These pins are input only on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
4: These pins are only available on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
5: The availability of I
Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration bits ALTI2C1 and
ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
6: Analog functionality is activated by enabling the USB module and is not controlled by the ANSEL register.
Typ e
Buffer
Type
PPSDescription
I/OSTNo PORTK is a bidirectional I/O port.
I
ST
I
ST
I
ST
I
ST
I
ST
I
ST
I
ST
I
ST
I
ST
I
ST
O
I
ST
O
I
ST
O
I
ST
O
I
ST
O
I
ST
O
I
ST
O
I
ST
O
I/O
ST
I
ST
O
I/O
I/O
ST
ST
I
ST
O
I/O
I/O
ST
ST
I
ST
O
I/O
ST
2
C interfaces varies by device. Refer to the “Pin Diagrams” section for availability.
Note 1: This pin is available on dsPIC33EPXXX(MC/MU)806/810/814 devices only.
DD must be connected at all times.
2: AV
3: These pins are input only on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
4: These pins are only available on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
5: The availability of I
Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration bits ALTI2C1 and
ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
6: Analog functionality is activated by enabling the USB module and is not controlled by the ANSEL register.
Typ e
I/O
I
O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I
I
I
O
I
I
I
Buffer
Type
PPSDescription
ST
Yes
Synchronous serial clock input/output for SPI4.
ST
Yes
SPI4 data in.
—
Yes
SPI4 data out.
ST
Yes
SPI4 slave synchronization or frame pulse I/O.
ST
ST
ST
ST
ST
ST
ST
ST
ST
ST
ST
ST
ST
ST
—
No
Synchronous serial clock input/output for I2C1.
No
Synchronous serial data input/output for I2C1.
No
Alternate synchronous serial clock input/output for I2C1.
No
Alternate synchronous serial data input/output for I2C1.
No
Synchronous serial clock input/output for I2C2.
No
Synchronous serial data input/output for I2C2.
No
Alternate synchronous serial clock input/output for I2C2.
No
Alternate synchronous serial data input/output for I2C2.
No
JTAG Test mode select pin.
No
JTAG test clock input pin.
No
JTAG test data input pin.
No
JTAG test data output pin.
Yes
Quadrature Encoder Index1 Pulse input.
Yes
Quadrature Encoder Home1 Pulse input.
Yes
Quadrature Encoder Phase A input in QEI1 mode. Auxiliary Timer
External Clock input in Timer mode.
I
ST
Yes
Quadrature Encoder Phase A input in QEI1 mode. Auxiliary Timer
External Gate input in Timer mode.
O
—
Yes
Quadrature Encoder Compare Output 1.
I
ST
Yes
Quadrature Encoder Index2 Pulse input.
I
ST
Yes
Quadrature Encoder Home2 Pulse input.
I
ST
Yes
Quadrature Encoder Phase A input in QEI2 mode. Auxiliary Timer
External Clock input in Timer mode.
I
ST
Yes
Quadrature Encoder Phase B input in QEI2 mode. Auxiliary Timer
External Gate input in Timer mode.
O
I/O
I/O
O
O
O
—
Yes
Quadrature Encoder Compare Output 2.
ST
Yes
Data Converter Interface frame synchronization pin.
ST
Yes
Data Converter Interface serial clock input/output pin.
I
ST
Yes
Data Converter Interface serial data input pin.
—
Yes
Data Converter Interface serial data output pin.
I
ST—Yes
I
ST—Yes
2
C interfaces varies by device. Refer to the “Pin Diagrams” section for availability.
Note 1: This pin is available on dsPIC33EPXXX(MC/MU)806/810/814 devices only.
DD must be connected at all times.
2: AV
3: These pins are input only on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
4: These pins are only available on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
5: The availability of I
Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration bits ALTI2C1 and
ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
6: Analog functionality is activated by enabling the USB module and is not controlled by the ANSEL register.
Buffer
Typ e
Type
IOAnalog—No
IOAnalog—No
IOAnalog—No
I/O
TTL/ST
PPSDescription
Comparator 1 Inputs
Yes
Comparator 1 Output.
Comparator 2 Inputs.
Yes
Comparator 2 Output.
Comparator 3 Inputs.
Yes
Comparator 3 Output.
No
Parallel Master Port Address Bit 0 Input (Buffered Slave modes) and
Output (Master modes).
I/O
TTL/ST
No
Parallel Master Port Address Bit 1 Input (Buffered Slave modes) and
Note 1: This pin is available on dsPIC33EPXXX(MC/MU)806/810/814 devices only.
DD must be connected at all times.
2: AV
3: These pins are input only on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
4: These pins are only available on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
5: The availability of I
Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration bits ALTI2C1 and
ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
6: Analog functionality is activated by enabling the USB module and is not controlled by the ANSEL register.
Buffer
Typ e
I
Type
Analog
P
O
I/O
Analog
I/O
Analog
I
O
I
O
I
I
I
I/O
I/O
O
O
O
O
I
I/O
I
I/O
I
I/O
I
I/PSTNo
PPSDescription
No
USB Bus Power Monitor.
—
No
USB Internal Transceiver Supply. If the USB module is not being used,
this pin must be connected to V
—
ST
—
ST
—
ST
ST
ST
ST
ST
—
—
—
—
ST
ST
ST
ST
ST
ST
ST
USB Host and On-The-Go (OTG) Bus Power Control Output.
No
D+ pin of internal USB Transceiver.
No
D- pin of internal USB Transceiver.
No
USB OTG ID Detect.
No
USB Output Enabled Control (for external transceiver).
No
USB Boost Controller Overcurrent Detection.
No
USB Boost Controller PWM Signal.
No
USB External Comparator 1 Input.
No
USB External Comparator 2 Input.
No
USB External Comparator 3 Input.
No
USB Differential Minus Input/Output (external transceiver).
No
USB Differential Plus Input/Output (external transceiver).
No
D- External Pull-up Control Output.
No
D+ External Pull-up Control Output.
No
D- External Pull-down Control Output.
No
D+ External Pull-down Control Output.
No
USB Receive Input (from external transceiver).
No
No
Data I/O pin for programming/debugging communication channel 1.
No
Clock input pin for programming/debugging communication channel 1.
No
Data I/O pin for programming/debugging communication channel 2.
No
Clock input pin for programming/debugging communication channel 2.
No
Data I/O pin for programming/debugging communication channel 3.
No
Clock input pin for programming/debugging communication channel 3.
Master Clear (Reset) input. This pin is an active-low Reset to the
DD.
device.
2
C interfaces varies by device. Refer to the “Pin Diagrams” section for availability.
Note 1: This pin is available on dsPIC33EPXXX(MC/MU)806/810/814 devices only.
DD must be connected at all times.
2: AV
3: These pins are input only on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
4: These pins are only available on dsPIC33EPXXXMU8XX and PIC24EPXXXGU8XX devices.
5: The availability of I
Selection (SDAx/ SCLx or ASDAx/ASCLx) is made using the device Configuration bits ALTI2C1 and
ALTI2C2 (FPOR<5:4>). See Section 29.0 “Special Features” for more information.
6: Analog functionality is activated by enabling the USB module and is not controlled by the ANSEL register.
Typ e
Buffer
Type
PPSDescription
PPNo Positive supply for analog modules. This pin must be connected at all
times.
2
C interfaces varies by device. Refer to the “Pin Diagrams” section for availability.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
2.0GUIDELINES FOR GETTING
STARTED WITH 16-BIT
DIGITAL SIGNAL
CONTROLLERS AND
MICROCONTROLLERS
Note 1: This data sheet summarizes the features
of the
dsPIC33EPXXX(GP/MC/MU)806/810/81
4 and PIC24EPXXX(GP/GU)810/814
families of devices. It is not intended to be
a comprehensive reference source. To
complement the information in this data
sheet, refer to the related section of the
“dsPIC33E/PIC24E Family ReferenceManual”, which is available from the
Microchip web site (www.microchip.com)
2: Some registers and associated bits
described in this section may not be
available on all devices. Refer to
Section 4.0 “Memory Organization” in
this data sheet for device-specific register
and bit information.
2.1Basic Connection Requirements
Getting started with the 16-bit DSCs and microcontrollers
requires attention to a minimal set of device pin
connections before proceeding with development. The
following is a list of pin names, which must always be
connected:
DD and VSS pins (see Section 2.2
• All V
“Decoupling Capacitors”)
• All AVDD and AVSS pins (regardless if ADC module
is not used) (see Section 2.2 “Decoupling
Capacitors”)
CAP (see Section 2.3 “CPU Logic Filter
•V
Capacitor Connection (V
•MCLR
• PGECx/PGEDx pins used for In-Circuit Serial
• OSC1 and OSC2 pins when external oscillator
Additionally, the following pins may be required:
•V
•V
pin (see Section 2.4 “Master Clear (MCLR)
Pin”)
Programming™ (ICSP™) and debugging purposes
(see Section 2.5 “ICSP Pins”)
source is used (see Section 2.6 “External
Oscillator Pins”)
USB3V3 pin is used when utilizing the USB
module. If the USB module is not used, V
must be connected to V
REF+/VREF- pin is used when external voltage
reference for ADC module is implemented
Note:The AV
connected independent of the ADC
voltage reference source. The voltage
difference between AV
exceed 300 mV at any time during
operation or start-up.
DD and AVSS pins must be
CAP)”)
USB3V3
DD.
DD and VDD cannot
2.2Decoupling Capacitors
The use of decoupling capacitors on every pair of
power supply pins, such as V
AVDD and AVSS is required.
Consider the following criteria when using decoupling
capacitors:
• Value and type of capacitor: Recommendation of
0.1 µF (100 nF), 10-20V. This capacitor should be a
low-ESR and have resonance frequency in the
range of 20 MHz and higher. It is recommended to
use ceramic capacitors.
• Placement on the printed circuit board: The
decoupling capacitors should be placed as close to
the pins as possible. It is recommended to place the
capacitors on the same side of the board as the
device. If space is constricted, the capacitor can be
placed on another layer on the PCB using a via;
however, ensure that the trace length from the pin to
the capacitor is within one-quarter inch (6 mm) in
length.
• Handling high frequency noise: If the board is
experiencing high frequency noise, above tens of
MHz, add a second ceramic-type capacitor in parallel to the above described decoupling capacitor. The
value of the second capacitor can be in the range of
0.01 µF to 0.001 µF. Place this second capacitor
next to the primary decoupling capacitor. In
high-speed circuit designs, consider implementing a
decade pair of capacitances as close to the power
and ground pins as possible. For example, 0.1 µF in
parallel with 0.001 µF.
• Maximizing performance: On the board layout
from the power supply circuit, run the power and
return traces to the decoupling capacitors first, and
then to the device pins. This ensures that the decoupling capacitors are first in the power chain. Equally
important is to keep the trace length between the
capacitor and the power pins to a minimum, thereby
reducing PCB track inductance.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
dsPIC33EP/
VDD
VSS
VDD
VSS
VSS
VDD
AVDD
AVSS
VDD
VSS
0.1 µF
Ceramic
0.1 µF
Ceramic
0.1 µF
Ceramic
0.1 µF
Ceramic
C
R
V
DD
MCLR
0.1 µF
Ceramic
VCAP
L1
(2)
R1
10 µF
Tantalum
Note 1: If the USB module is not used, VUSB3V3 must be
connected to V
DD, as shown.
2: As an option, instead of a hard-wired connection, an
inductor (L1) can be substituted between V
DD and
AV
DD to improve ADC noise rejection. The inductor
impedance should be less than 1Ω and the inductor
capacity greater than 10 mA.
Where:
f
FCNV
2
--------------=
f
1
2π LC()
-----------------------=
L
1
2πfC()
---------------------
⎝⎠
⎛⎞
2
=
(i.e., ADC conversion rate/2)
V
USB3V3
(1)
PIC24EP
Note 1: R ≤ 10 kΩ is recommended. A suggested
starting value is 10 kΩ. Ensure that the MCLR
pin VIH and VIL specifications are met.
2: R1 ≤ 470Ω will limit any current flowing into
MCLR from the external capacitor C, in the
event of MCLR
pin breakdown, due to
Electrostatic Discharge (ESD) or Electrical
Overstress (EOS). Ensure that the MCLR
pin
V
IH and VIL specifications are met.
C
R1
(2)
R
(1)
VDD
MCLR
dsPIC33EP
JP
FIGURE 2-1:RECOMMENDED
MINIMUM CONNECTION
to ground. The type can be ceramic or tantalum. See
Section 32.0 “Electrical Characteristics” for
additional information.
The placement of this capacitor should be close to the
CAP. It is recommended that the trace length not
V
exceeds one-quarter inch (6 mm). See Section 29.2
“On-Chip Voltage Regulator” for details.
2.4Master Clear (MCLR) Pin
The MCLR pin provides two specific device
functions:
• Device Reset
• Device Programming and Debugging
During device programming and debugging, the
resistance and capacitance that can be added to the
pin must be considered. Device programmers and
debuggers drive the MCLR
specific voltage levels (VIH and VIL) and fast signal
transitions must not be adversely affected. Therefore,
specific values of R and C will need to be adjusted
based on the application and PCB requirements.
For example, as shown in Figure 2-2, it is
recommended that the capacitor C, be isolated from
the MCLR
pin during programming and debugging
operations.
Place the components as shown in Figure 2-2 within
one-quarter inch (6 mm) from the MCLR
pin. Consequently,
pin.
2.2.1 TANK CAPACITORS
On boards with power traces running longer than six
inches in length, it is suggested to use a tank capacitor
for integrated circuits including DSCs to supply a local
power source. The value of the tank capacitor should
be determined based on the trace resistance that connects the power supply source to the device, and the
maximum current drawn by the device in the application. In other words, select the tank capacitor so that it
meets the acceptable voltage sag at the device. Typical
values range from 4.7 µF to 47 µF.
2.3CPU Logic Filter Capacitor
A low-ESR (< 1 Ohms) capacitor is required on the
CAP pin, which is used to stabilize the voltage
V
regulator output voltage. The V
connected to VDD, and must have a capacitor greater
than 4.7 µF (10 µF is recommended), 16V connected
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
13
Main Oscillator
Guard Ring
Guard Trace
Secondary
Oscillator
14
15
16
17
18
19
20
2.5ICSP Pins
The PGECx and PGEDx pins are used for ICSP and
debugging purposes. It is recommended to keep the
trace length between the ICSP connector and the ICSP
pins on the device as short as possible. If the ICSP connector is expected to experience an ESD event, a
series resistor is recommended, with the value in the
range of a few tens of Ohms, not to exceed 100 Ohms.
Pull-up resistors, series diodes and capacitors on the
PGECx and PGEDx pins are not recommended as they
will interfere with the programmer/debugger communications to the device. If such discrete components are
an application requirement, they should be removed
from the circuit during programming and debugging.
Alternatively, refer to the AC/DC characteristics and
timing requirements information in the respective
device Flash programming specification for information
on capacitive loading limits and pin input voltage high
IH) and input low (VIL) requirements.
(V
Ensure that the “Communication Channel Select” (i.e.,
PGECx/PGEDx pins) programmed into the device
matches the physical connections for the ICSP to
®
MPLAB
ICE™.
For more information on MPLAB ICD 3 and MPLAB
REAL ICE connection requirements, refer to the
following documents that are available on the
Microchip web site.
• “Using MPLAB
• “MPLAB
• “MPLAB
• “Using MPLAB
PICkit™ 3, MPLAB ICD 3, or MPLAB REAL
®
®
®
ICD 3” (poster) DS51765
ICD 3 Design Advisory” DS51764
REAL ICE™ In-Circuit Emulator User’s
Guide” DS51616
®
REAL ICE™ In-Circuit Emulator”
(poster) DS51749
FIGURE 2-3:SUGGESTED PLACEMENT
OF THE OSCILLATOR
CIRCUIT
2.7Oscillator Value Conditions on
Device Start-up
If the PLL of the target device is enabled and
configured for the device start-up oscillator, the
maximum oscillator source frequency must be limited
to 3 MHz < F
start-up conditions. This means that if the external
oscillator frequency is outside this range, the
application must start-up in the FRC mode first. The
default PLL settings after a POR with an oscillator
frequency outside this range will violate the device
operating speed.
Once the device powers up, the application firmware
can initialize the PLL SFRs, CLKDIV and PLLDBF to a
suitable value, and then perform a clock switch to the
Oscillator + PLL clock source. Note that clock switching
must be enabled in the device Configuration Word.
IN < 5.5 MHz to comply with device PLL
2.6External Oscillator Pins
Many DSCs have options for at least two oscillators: a
high-frequency primary oscillator and a low-frequency
secondary oscillator. For details, see Section 9.0
“Oscillator Configuration” for details.
2.8Unused I/Os
Unused I/O pins should be configured as outputs and
driven to a logic-low state.
Alternatively, connect a 1k to 10k resistor between V
and unused pins and drive the output to logic low.
SS
The oscillator circuit should be placed on the same
side of the board as the device. Also, place the
oscillator circuit close to the respective oscillator pins,
not exceeding one-half inch (12 mm) distance
between them. The load capacitors should be placed
next to the oscillator itself, on the same side of the
board. Use a grounded copper pour around the
oscillator circuit to isolate them from surrounding
circuits. The grounded copper pour should be routed
directly to the MCU ground. Do not run any signal
traces or power traces inside the ground pour. Also, if
using a two-sided board, avoid any traces on the
other side of the board where the crystal is placed. A
suggested layout is shown in Figure 2-3.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
3.0CPU
Note 1: This data sheet summarizes the features
of the dsPIC33EPXXX(GP/MC/MU)806/
810/814 and PIC24EPXXX(GP/GU)810/
814 families of devices. It is not intended
to be a comprehensive reference source.
To complement the information in this
data sheet, refer to Section 2. “CPU”
(DS70359) in the “dsPIC33E/PIC24EFamily Reference Manual”, which is
available from the Microchip web site
(www.microchip.com).
2: Some registers and associated bits
described in this section may not be
available on all devices. Refer to
Section 4.0 “Memory Organization” in
this data sheet for device-specific register
and bit information.
The CPU has a 16-bit (data) modified Harvard architecture with an enhanced instruction set, including significant support for digital signal processing. The CPU has
a 24-bit instruction word, with a variable length opcode
field. The Program Counter (PC) is 24 bits wide and
addresses up to 4M x 24 bits of user program memory
space.
An instruction prefetch mechanism helps maintain
throughput and provides predictable execution. Most
instructions execute in a single-cycle effective execution rate, with the exception of instructions that change
the program flow, the double-word move (MOV.D)
instruction, PSV accesses, and the table instructions.
Overhead free program loop constructs are supported
using the DO and REPEAT instructions, both of which
are interruptible at any point.
3.1Registers
Devices have sixteen 16-bit Working registers in the
programmer’s model. Each of the Working registers
can act as a data, address or address offset register.
The 16th Working register (W15) operates as a software Stack Pointer for interrupts and calls. The working
registers, W0 through W3, and selected bits from the
STATUS register, have shadow registers for fast context saves and restores using a single POP.S or
PUSH.S instruction.
3.2Instruction Set
The dsPIC33EPXXXMU806/810/814 instruction set
has two classes of instructions: the MCU class of
instructions and the DSP class of instructions. The
PIC24EPXXX(GP/GU)810/814 instruction set has the
MCU class of instructions and does not support DSP
instructions. These two instruction classes are seamlessly integrated into the architecture and execute from
a single execution unit. The instruction set includes
many addressing modes and was designed for optimum C compiler efficiency.
3.3Data Space Addressing
The base data space can be addressed as 32K words
or 64 Kbytes and is split into two blocks, referred to as
X and Y data memory. Each memory block has its own
independent Address Generation Unit (AGU). The
MCU class of instructions operate solely through the X
memory AGU, which accesses the entire memory map
as one linear data space. On dsPIC33EPXXX(GP/MC/
MU)806/810/814 devices, certain DSP instructions
operate through the X and Y AGUs to support dual
operand reads, which splits the data address space
into two parts. The X and Y data space boundary is
device specific.
The upper 32 Kbytes of the data space memory map
can optionally be mapped into program space at any
16K program word boundary. The program-to-dataspace mapping feature, known as Program Space
Visibility (PSV), lets any instruction access program
space as if it were data space. Moreover, the Base
Data Space address is used in conjunction with a read
or write page register (DSRPAG or DSWPAG) to form
an Extended Data Space (EDS) address. The EDS can
be addressed as 8 Mwords or 16 Mbytes. Refer to
Section 3. “Data Memory” (DS70595) and Section 4.
“Program Memory” (DS70613) in the “dsPIC33E/
PIC24E Family Reference Manual” for more details on
EDS, PSV and table accesses.
On dsPIC33EPXXX(GP/MC/MU)806/810/814 devices,
overhead-free circular buffers (Modulo Addressing) are
supported in both X and Y address spaces. The
Modulo Addressing removes the software boundarychecking overhead for DSP algorithms. The X AGU
circular addressing can be used with any of the MCU
class of instructions. The X AGU also supports BitReverse Addressing to greatly simplify input or output
data reordering for radix-2 FFT algorithms.
PIC24EPXXX(GP/GU)810/814 devices do not support
Modulo and Bit-Reversed Addressing.
3.4Addressing Modes
The CPU supports these addressing modes:
• Inherent (no operand)
• Relative
•Literal
• Memory Direct
• Register Direct
• Register Indirect
Each instruction is associated with a predefined
Addressing mode group, depending upon its functional
requirements. As many as six Addressing modes are
supported for each instruction.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
3.5Programmer’s Model
The programmer’s model is shown in Figure 3-2. All
registers in the programmer’s model are memory
mapped and can be manipulated directly by
instructions. Table 3-1 lists a description of each
register.
In addition to the registers contained in the
programmer’s model, all devices in this family contain
control registers for interrupts, while the
dsPIC33EPXXX(GP/MC/MU)806/810/814 devices
contain control registers for Modulo and Bit-reversed
Addressing. These registers are described in
subsequent sections of this document.
All registers associated with the programmer’s model
are memory mapped, as shown in Table 4-1.
TABLE 3-1:PROGRAMMER’S MODEL REGISTER DESCRIPTIONS
Register(s) NameDescription
W0 through W15Working register array
ACCA, ACCB40-bit DSP Accumulators
PC23-bit Program Counter
SRALU and DSP Engine Status register
SPLIMStack Pointer Limit Value register
TBLPAGTable Memory Page Address register
DSRPAGExtended Data Space (EDS) Read Page register
DSWPAGExtended Data Space (EDS) Write Page register
RCOUNTREPEAT Loop Count register
DCOUNT
DOSTARTH
DOENDH
CORCONContains DSP Engine, DO Loop control and trap status bits
Note 1: This register is available on dsPIC33EPXXX(GP/MC/MU)806/810/814 devices only.
(1)
(1,2)
, DOSTARTL
(1)
, DOENDL
(1,2)
(1)
DO Loop Count register
DO Loop Start Address register (High and Low)
DO Loop End Address register (High and Low)
2: The DOSTARTH and DOSTARTL registers are read-only.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
3.6CPU Resources
Many useful resources related to the CPU are provided
on the main product page of the Microchip web site for
the devices listed in this data sheet. This product page,
which can be accessed using this link, contains the
latest updates and additional information.
Note:In the event you are not able to access the
product page using the link above, enter
this URL in your browser:
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
3.7CPU Control Registers
REGISTER 3-1:SR: CPU STATUS REGISTER
R/W-0R/W-0R/W-0R/W-0R/C-0R/C-0R -0R/W-0
(1)
OA
bit 15bit 8
OB
(1)
SA
(1,4)
SB
(1,4)
OAB
(1)
SAB
(1)
DA
(1)
DC
R/W-0
(2,3)
R/W-0
(2,3)
R/W-0
(2,3)
R-0R/W-0R/W-0R/W-0R/W-0
IPL<2:0>RANOVZC
bit 7bit 0
Legend:U = Unimplemented bit, read as ‘0’
R = Readable bitW = Writable bitC = Clearable bit
-n = Value at POR‘1’= Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 15OA: Accumulator A Overflow Status bit
(1)
1 = Accumulator A has overflowed
0 = Accumulator A has not overflowed
bit 14OB: Accumulator B Overflow Status bit
(1)
1 = Accumulator B has overflowed
0 = Accumulator B has not overflowed
bit 13SA: Accumulator A Saturation ‘Sticky’ Status bit
(1,4)
1 = Accumulator A is saturated or has been saturated at some time
0 = Accumulator A is not saturated
bit 12SB: Accumulator B Saturation ‘Sticky’ Status bit
(1,4)
1 = Accumulator B is saturated or has been saturated at some time
0 = Accumulator B is not saturated
bit 11OAB: OA || OB Combined Accumulator Overflow Status bit
(1)
1 = Accumulators A or B have overflowed
0 = Neither Accumulators A or B have overflowed
bit 10SAB: SA || SB Combined Accumulator ‘Sticky’ Status bit
(1)
1 = Accumulators A or B are saturated or have been saturated at some time
0 = Neither Accumulator A or B are saturated
bit 9DA: DO Loop Active bit
(1)
1 = DO loop in progress
0 = DO loop not in progress
bit 8DC: MCU ALU Half Carry/Borrow bit
1 = A carry-out from the 4th low order bit (for byte-sized data) or 8th low order bit (for word-sized data)
of the result occurred
0 = No carry-out from the 4th low order bit (for byte-sized data) or 8th low order bit (for word-sized
data) of the result occurred
Note 1: This bit is available on dsPIC33EPXXX(GP/MC/MU)806/810/814 devices only.
2: The IPL<2:0> bits are concatenated with the IPL<3> bit (CORCON<3>) to form the CPU Interrupt Priority
Level. The value in parentheses indicates the IPL, if IPL<3> = 1.
3: The IPL<2:0> Status bits are read only when NSTDIS = 1 (INTCON1<15>).
4: A data write to the SR register can modify the SA and SB bits by either a data write to SA and SB or by
clearing the SAB bit. To avoid a possible SA or SB bit write race condition, the SA and SB bits should not
be modified using bit operations.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
REGISTER 3-1:SR: CPU STATUS REGISTER (CONTINUED)
bit 7-5IPL<2:0>: CPU Interrupt Priority Level Status bits
111 = CPU Interrupt Priority Level is 7 (15, user interrupts disabled)
110 = CPU Interrupt Priority Level is 6 (14)
101 = CPU Interrupt Priority Level is 5 (13)
100 = CPU Interrupt Priority Level is 4 (12)
011 = CPU Interrupt Priority Level is 3 (11)
010 = CPU Interrupt Priority Level is 2 (10)
001 = CPU Interrupt Priority Level is 1 (9)
000 = CPU Interrupt Priority Level is 0 (8)
bit 4RA: REPEAT Loop Active bit
1 = REPEAT loop in progress
0 = REPEAT loop not in progress
bit 3N: MCU ALU Negative bit
1 = Result was negative
0 = Result was non-negative (zero or positive)
bit 2OV: MCU ALU Overflow bit
This bit is used for signed arithmetic (2’s complement). It indicates an overflow of the magnitude that
causes the sign bit to change state.
1 = Overflow occurred for signed arithmetic (in this arithmetic operation)
0 = No overflow occurred
bit 1Z: MCU ALU Zero bit
1 = An operation that affects the Z bit has set it at some time in the past
0 = The most recent operation that affects the Z bit has cleared it (i.e., a non-zero result)
bit 0C: MCU ALU Carry/Borrow
1 = A carry-out from the Most Significant bit of the result occurred
0 = No carry-out from the Most Significant bit of the result occurred
bit
(2)
Note 1: This bit is available on dsPIC33EPXXX(GP/MC/MU)806/810/814 devices only.
2: The IPL<2:0> bits are concatenated with the IPL<3> bit (CORCON<3>) to form the CPU Interrupt Priority
Level. The value in parentheses indicates the IPL, if IPL<3> = 1.
3: The IPL<2:0> Status bits are read only when NSTDIS = 1 (INTCON1<15>).
4: A data write to the SR register can modify the SA and SB bits by either a data write to SA and SB or by
clearing the SAB bit. To avoid a possible SA or SB bit write race condition, the SA and SB bits should not
be modified using bit operations.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
3.8Arithmetic Logic Unit (ALU)
The ALU is 16 bits wide and is capable of addition,
subtraction, bit shifts and logic operations. Unless
otherwise mentioned, arithmetic operations are two’s
complement in nature. Depending on the operation, the
ALU can affect the values of the Carry (C), Zero (Z),
Negative (N), Overflow (OV) and Digit Carry (DC)
Status bits in the SR register. The C and DC Status bits
operate as Borrow
for subtraction operations.
The ALU can perform 8-bit or 16-bit operations,
depending on the mode of the instruction that is used.
Data for the ALU operation can come from the W
register array or data memory, depending on the
addressing mode of the instruction. Likewise, output
data from the ALU can be written to the W register array
or a data memory location.
Refer to the “16-bit MCU and DSC Programmer’sReference Manual” (DS70157) for information on the
SR bits affected by each instruction.
The core CPU incorporates hardware support for both
multiplication and division. This includes a dedicated
hardware multiplier and support hardware for 16-bit
divisor division.
3.8.1MULTIPLIER
Using the high-speed 17-bit x 17-bit multiplier, the ALU
supports unsigned, signed, or mixed-sign operation in
several MCU multiplication modes:
• 16-bit x 16-bit signed
• 16-bit x 16-bit unsigned
• 16-bit signed x 5-bit (literal) unsigned
• 16-bit signed x 16-bit unsigned
• 16-bit unsigned x 5-bit (literal) unsigned
• 16-bit unsigned x 16-bit signed
• 8-bit unsigned x 8-bit unsigned
3.8.2DIVIDER
The divide block supports 32-bit/16-bit and 16-bit/16-bit
signed and unsigned integer divide operations with the
following data sizes:
1.32-bit signed/16-bit signed divide
2.32-bit unsigned/16-bit unsigned divide
3.16-bit signed/16-bit signed divide
4.16-bit unsigned/16-bit unsigned divide
The quotient for all divide instructions ends up in W0
and the remainder in W1. 16-bit signed and unsigned
DIV instructions can specify any W register for both
the 16-bit divisor (Wn) and any W register (aligned)
pair (W(m + 1):Wm) for the 32-bit dividend. The divide
algorithm takes one cycle per bit of divisor, so both
32-bit/16-bit and 16-bit/16-bit instructions take the
same number of cycles to execute.
The DSP engine consists of a high-speed 17-bit x
17-bit multiplier, a 40-bit barrel shifter and a 40-bit
adder/subtracter (with two target accumulators, round
and saturation logic).
The DSP engine can also perform inherent accumulator-to-accumulator operations that require no additional
data. These instructions are ADD, SUB and NEG.
The DSP engine has options selected through bits in
the CPU Core Control register (CORCON), as listed
below:
• Fractional or integer DSP multiply (IF)
• Signed, unsigned, or mixed-sign DSP multiply (US)
• Conventional or convergent rounding (RND)
• Automatic saturation on/off for ACCA (SATA)
• Automatic saturation on/off for ACCB (SATB)
• Automatic saturation on/off for writes to data
memory (SATDW)
• Accumulator Saturation mode selection (ACC-
SAT)
TABLE 3-2:DSP INSTRUCTIONS
SUMMARY
Instruction
CLRA = 0
EDA = (x – y)
EDACA = A + (x – y)
MACA = A + (x • y)Yes
MACA = A + x
MOVSACNo change in AYes
MPYA = x • yNo
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
0x000000
0x000002
0x7FFFFE
0xF80000
0xF80012
0xF80014
0xFEFFFE
0xFF0000
0xFF0002
0xF7FFFE
0x000004
0x7FFFFC
0x000200
0x0001FE
Configuration Memory Space
User Memory Space
Note 1: Memory areas are not shown to scale.
2: The reset location is controlled by the Reset Target Vector Select bit, RSTPRI (FICD<2>). See Section 29.0 “Special Features”
for more information.
Reset Address
(2)
Device Configuration
User Program
Flash Memory
(87552 instructions)
Registers
DEVID (2 Words)
Unimplemented
(Read ‘0’s)
GOTO Instruction
(2)
Reserved
Reserved
Interrupt Vector Table
dsPIC33EP256MU806/810/814 and
Reset Address
(2)
Device Configuration
User Program
Flash Memory
(175104 instructions)
Registers
DEVID (2 Words)
Unimplemented
(Read ‘0’s)
GOTO Instruction
(2)
Reserved
Reserved
Interrupt Vector Table
dsPIC33EP512(GP/MC/MU)806/810/814 and
0x055800
0x0557FE
0x02AC00
0x02ABFE
Reserved
Reserved
0xFFFFFE
0x7FFFFA
0x7FC000
Flash Memory
Auxiliary Program
PIC24EP256GU810/814
PIC24EP512(GP/GU)806/810/814
GOTO Instruction
(2)
Flash Memory
0x800000
Auxiliary Program
Reset Address
(2)
GOTO Instruction
(2)
Reset Address
(2)
ReservedReserved
Write LatchWrite Latch
0xF9FFFE
0xFA0000
0xFA00FE
0xFA0100
Vector
Auxiliary Interrupt
Vec to r
Auxiliary Interrupt
0x7FFFF8
0x7FBFFE
General Segment
Auxiliary Segment
4.0MEMORY ORGANIZATION
Note:This data sheet summarizes the features
of the dsPIC33EPXXX(GP/MC/MU)806/
810/814 and PIC24EPXXX(GP/GU)810/
814 families of devices. It is not intended
to be a comprehensive reference source.
To complement the information in this data
sheet, refer to Section 4. “Program
Memory” (DS70613) of the “dsPIC33E/
PIC24E Family Reference Manual”, which
is available from the Microchip web site
(www.microchip.com).
The device architecture features separate program and
data memory spaces and buses. This architecture also
allows the direct access of program memory from the
4.1Program Address Space
The device program address memory space is 4M
instructions. The space is addressable by a 24-bit
value derived either from the 23-bit PC during program
execution, or from table operation or data space
remapping as described in Section 4.8 “Interfacing
Program and Data Memory Spaces”.
User application access to the program memory space
is restricted to the lower half of the address range
(0x000000 to 0x7FFFFF). The exception is the use of
TBLRD/TBLWT operations, which use TBLPAG<7> to
permit access to the Configuration bits and Device ID
sections of the configuration memory space.
The device program memory map is shown in
Figure 4-1.
data space during code execution.
FIGURE 4-1:PROGRAM MEMORY MAP FOR dsPIC33EPXXX(GP/MC/MU)806/810/814 and
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
0816
PC Address
0x000000
0x000002
0x000004
0x000006
23
00000000
00000000
00000000
00000000
Program Memory
‘Phantom’ Byte
(read as ‘0’)
least significant word
most significant word
Instruction Width
0x000001
0x000003
0x000005
0x000007
msw
Address(lsw Address)
4.1.1PROGRAM MEMORY
ORGANIZATION
The program memory space is organized in wordaddressable blocks. Although it is treated as 24 bits
wide, it is more appropriate to think of each address of
the program memory as a lower and upper word, with
the upper byte of the upper word being unimplemented.
The lower word always has an even address, while the
upper word has an odd address (Figure 4-2).
Program memory addresses are always word-aligned
on the lower word, and addresses are incremented or
decremented by two during code execution. This
arrangement provides compatibility with data memory
space addressing and makes data in the program
memory space accessible.
4.1.2INTERRUPT AND TRAP VECTORS
All devices reserve the addresses between 0x00000
and 0x000200 for hard-coded program execution vectors. A hardware Reset vector is provided to redirect
code execution from the default value of the PC on
device Reset to the actual start of code. A GOTO
instruction is programmed by the user application at
address 0x000000 of the primary Flash memory or at
address 0x7FFFFC of the auxiliary Flash memory, with
the actual address for the start of code at address
0x000002 of the primary Flash memory or at address
0x7FFFFE of the auxiliary Flash memory. Reset Target
Vector Select bit (RSTPRI) in the FPOR Configuration
register controls whether primary or auxiliary Flash
Reset location is used.
A more detailed discussion of the interrupt vector
tables is provided in Section 7.1 “Interrupt Vector
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
4.2Data Address Space
The CPU has a separate 16-bit wide data memory
space. The data space is accessed using separate
Address Generation Units (AGUs) for read and write
operations. The data memory maps are shown in
Figure 4-3, Figure 4-4, Figure 4-5 and Figure 4-6.
All Effective Addresses (EAs) in the data memory space
are 16 bits wide and point to bytes within the data space.
This arrangement gives a base data space address
range of 64 Kbytes or 32K words.
The base data space address is used in conjunction with
a read or write page register (DSRPAG or DSWPAG) to
form an extended data space, which has a total address
range of 16 MBytes.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and
PIC24EPXXX(GP/GU)810/814 devices implement up
to 56 Kbytes of data memory. If an EA point to a location outside of this area, an all-zero word or byte is
returned.
4.2.1DATA SPACE WIDTH
The data memory space is organized in byte
addressable, 16-bit wide blocks. Data is aligned in data
memory and registers as 16-bit words, but all data
space EAs resolve to bytes. The Least Significant
Bytes (LSBs) of each word have even addresses, while
the Most Significant Bytes (MSBs) have odd
addresses.
4.2.2DATA MEMORY ORGANIZATION
AND ALIGNMENT
To maintain backward compatibility with PIC
devices and improve data space memory usage
efficiency, the device instruction set supports both word
and byte operations. As a consequence of byte
accessibility, all effective address calculations are
internally scaled to step through word-aligned memory.
For example, the core recognizes that Post-Modified
Register Indirect Addressing mode [Ws++] results in a
value of Ws + 1 for byte operations and Ws + 2 for word
operations.
A data byte read, reads the complete word that
contains the byte, using the LSb of any EA to determine
which byte to select. The selected byte is placed onto
the LSB of the data path. That is, data memory and
registers are organized as two parallel byte-wide
entities with shared (word) address decode but
separate write lines. Data byte writes only write to the
corresponding side of the array or register that matches
the byte address.
®
MCU
All word accesses must be aligned to an even address.
Misaligned word data fetches are not supported, so
care must be taken when mixing byte and word
operations, or translating from 8-bit MCU code. If a
misaligned read or write is attempted, an address error
trap is generated. If the error occurred on a read, the
instruction underway is completed. If the error occurred
on a write, the instruction is executed but the write does
not occur. In either case, a trap is then executed,
allowing the system and/or user application to examine
the machine state prior to execution of the address
Fault.
All byte loads into any W register are loaded into the
LSB. The MSB is not modified.
A Sign-Extend instruction (SE) is provided to allow user
applications to translate 8-bit signed data to 16-bit
signed values. Alternatively, for 16-bit unsigned data,
user applications can clear the MSB of any W register
by executing a Zero-Extend (ZE) instruction on the
appropriate address.
4.2.3SFR SPACE
The first 4 Kbytes of the Near Data Space, from 0x0000
to 0x0FFF, is primarily occupied by Special Function
Registers (SFRs). These are used by the core and
peripheral modules for controlling the operation of the
device.
SFRs are distributed among the modules that they
control, and are generally grouped together by module.
Much of the SFR space contains unused addresses;
these are read as ‘0’.
Note:The actual set of peripheral features and
interrupts varies by the device. Refer to
the corresponding device tables and
pinout diagrams for device-specific
information.
4.2.4NEAR DATA SPACE
The 8 Kbyte area between 0x0000 and 0x1FFF is
referred to as the near data space. Locations in this
space are directly addressable through a 13-bit absolute address field within all memory direct instructions.
Additionally, the whole data space is addressable using
MOV instructions, which support Memory Direct
Addressing mode with a 16-bit address field, or by
using Indirect Addressing mode using a working
register as an Address Pointer.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
4.2.5X AND Y DATA SPACES
The dsPIC33EPXXX(GP/MC/MU)806/810/814 core
has two data spaces, X and Y. These data spaces can
be considered either separate (for some DSP
instructions), or as one unified linear address range (for
MCU instructions). The data spaces are accessed
using two Address Generation Units (AGUs) and
separate data paths. This feature allows certain
instructions to concurrently fetch two words from RAM,
thereby enabling efficient execution of DSP algorithms
such as Finite Impulse Response (FIR) filtering and
Fast Fourier Transform (FFT).
The PIC24EPXXX(GP/GU)806/810/814 devices do not
have a Y data space and a Y AGU. For these devices,
the entire data space is treated as X data space.
The X data space is used by all instructions and
supports all addressing modes. X data space has
separate read and write data buses. The X read data
bus is the read data path for all instructions that view
data space as combined X and Y address space. It is
also the X data prefetch path for the dual operand DSP
instructions (MAC class).
The Y data space is used in concert with the X data
space by the MAC class of instructions (CLR, ED,EDAC, MAC, MOVSAC, MPY, MPY.N and MSC) to provide
two concurrent data read paths.
Both the X and Y data spaces support Modulo
Addressing mode for all instructions, subject to
addressing mode restrictions. Bit-Reversed
Addressing mode is only supported for writes to X data
space. Modulo Addressing and Bit-Reversed
Addressing are not present in PIC24EPXXX(GP/
GU)806/810/814 devices.
All data memory writes, including in DSP instructions,
view data space as combined X and Y address space.
The boundary between the X and Y data spaces is
device-dependent and is not user-programmable.
When the CPU and the DMA controller attempt to
concurrently write to the same DMA RAM location, the
hardware ensures that the CPU is given precedence in
accessing the DMA RAM location. Therefore, the DMA
RAM provides a reliable means of transferring DMA
data without ever having to stall the CPU.
Note 1: DMA RAM can be used for general
purpose data storage if the DMA function
is not required in an application.
2: On PIC24EPXXX(GP/GU)806/810/814
devices, DMA RAM is located at the end
of X data RAM and is part of X data
space.
4.3Program Memory Resources
Many useful resources related to the Program Memory
are provided on the main product page of the Microchip
web site for the devices listed in this data sheet. This
product page, which can be accessed using this link,
contains the latest updates and additional information.
Note:In the event you are not able to access the
product page using the link above, enter
this URL in your browser:
• All related dsPIC33E/PIC24E Family Reference
Manuals Sections
• Development Tools
4.2.6DMA RAM
Each dsPIC33EPXXX(GP/MC/MU)806/810/814 and
PIC24EPXXX(GP/GU)810/814 device contains
4 Kbytes of dual ported DMA RAM located at the end
of Y data RAM and is part of Y data space. Memory
locations in the DMA RAM space are accessible simultaneously by the CPU and the DMA Controller module.
DMA RAM is utilized by the DMA controller to store
data to be transferred to various peripherals using
DMA, as well as data transferred from various peripherals using DMA. The DMA RAM can be accessed by
the DMA controller without having to steal cycles from
the CPU.
Legend:x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:These bits are not available on dsPIC33EP256MU806 devices.
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
Legend:x = unknown value on Reset, — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:These bits are not available on dsPIC33EP256MU806 devices.
Legend:— = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:This bit is available when the module is operating in Device mode.
2:This bit is available when the module is operating in Host mode
3:Device mode only. These bits are always read as ‘0’ in Host mode.
4:The reset value for this bit is undefined.
All
Resets
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
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
Legend:— = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:This bit is available when the module is operating in Device mode.
2:This bit is available when the module is operating in Host mode
3:Device mode only. These bits are always read as ‘0’ in Host mode.
4:The reset value for this bit is undefined.
—————PWMPOL CNTEN
————————
All
Resets
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814
Legend:— = unimplemented, read as ‘0’. Shaded bits are not used in the operation of the PMP module.
Note 1:PMADDR and PMDOUT1 are the same physical register, but are defined differently depending on the module’s operating mode.
(1)
0604CS2CS1Parallel Port Address (ADDR<13:0>)0000
(1)
0604Parallel Port Data Out Register 1 (Buffers Level 0 and 1)0000
—PSIDL
<1:0>
——IB3FIB2FIB1FIB0FOBEOBUF——OB3EOB2EOB1EOB0E008F
ADRMUX<1:0>
INCM
<1:0>
PTBEEN PTWREN PTRDENCSF
MODE16MODE
(1)
<1:0>
WAITB
<1:0>
<1:0>
All
Resets
ALPCS2PCS1PBEPWRSPRDSP0000
WAITM
<3:0>
WAITE
<1:0>
0000
TABLE 4-35:CRC REGISTER MAP
File Name
CRCCON10640
CRCCON20642
CRCXORL0644
CRCXORH0646
CRCDATL0648
CRCDATH064A
CRCWDATL 064C
CRCWDATH
Legend:— = unimplemented, read as ‘0’. Shaded bits are not used in the operation of the programmable CRC module.