TABLE 1:PIC32MX1XX/2XX/5XX 64/100-PIN CONTROLLER FAMILY FEATURES
Remappable Peripherals
(1)
(4)
Device
PIC32MX120F064H 64
PIC32MX130F128H 64
PIC32MX130F128L
PIC32MX230F128H 64
PIC32MX230F128L
PIC32MX530F128H 64
PIC32MX530F128L
PIC32MX150F256H 64
PIC32MX150F256L
PIC32MX250F256H 64
PIC32MX250F256L
PIC32MX550F256H 64
PIC32MX550F256L
PIC32MX170F512H 64
PIC32MX170F512L
PIC32MX270F512H 64
PIC32MX270F512L
PIC32MX570F512H 64
PIC32MX570F512L
Note 1:All devices feature 3 KB of Boot Flash memory.
2:Four out of five timers are remappable.
3:Four out of five external interrupts are remappable.
4:Please contact your local Microchip Sales Office for information regarding the availability of devices in the 100-pin TFBGA package.
Pins
Packages
QFN,
TQFP
QFN,
TQFP
100 TQFP
100 TFBGA
QFN,
TQFP
100 TQFP
100 TFBGA
QFN,
TQFP
100 TQFP
100 TFBGA
QFN,
TQFP
100 TQFP
100 TFBGA
QFN,
TQFP
100 TQFP
100 TFBGA
QFN,
TQFP
100 TQFP
100 TFBGA
QFN,
TQFP
100 TQFP
100 TFBGA
QFN,
TQFP
100 TQFP
100 TFBGA
QFN,
TQFP
100 TQFP
100 TFBGA
Data Memory (KB)
Program Memory (KB)
64+38375/5/5435283N0Y2YY4/053YN
128+3 16375/5/5435283N0Y2YY4/0 53YN
128+3 16545/5/5545483N0Y2YY4/0 85YY
128+3 16375/5/5435283Y0Y2YY 4/2 49YN
128+3 16545/5/5545483Y0Y2YY
128+3 16375/5/5435283Y1Y2YY 4/4 49YN
128+3 16545/5/5545483Y1Y2YY 4/4 81YY
256+3 32375/5/5435283N0Y2YY4/0 53YN
256+3 32545/5/5545483N0Y2YY4/0 85YY
256+3 32375/5/5435283Y0Y2YY 4/2 49YN
256+3 32545/5/5545483Y0Y2YY 4/2 81YY
256+3 32375/5/5435283Y1Y2YY 4/4 49YN
256+3 32545/5/5545483Y1Y2YY 4/4 81YY
512+3 64375/5/5435283N0Y2YY4/0 53YN
512+3 64545/5/5545483N0Y2YY4/0 85YY
512+3 64375/5/5435283Y0Y2YY 4/2 49YN
512+3 64545/5/5545483Y0Y2YY 4/2 81YY
512+3 64375/5/5435283Y1Y2YY 4/4 49YN
512+3 64545/5/5545483Y1Y2YY 4/4 81YY
Remappable Pins
(2)
(3)
S
2
UART
SPI/I
External Interrupts
Timers/Capture/Compare
Analog Comparators
10-bit 1 Msps ADC (Channels)
CAN
USB On-The-Go (OTG)
CTMU
2
C™
I
PMP
RTCC
DMA Channels (Programmable/Dedicated)
4/2
JTAG
I/O Pins
81YY
Trace
DS60001290C-page 2Preliminary 2014 Microchip Technology Inc.
Page 3
1
64
64-PIN QFN
(4)
AND TQFP (TOP VIEW)
PIC32MX120F064H
PIC32MX130F128H
PIC32MX150F256H
64
1
M
TQFP
QFN
(4)
PIC32MX170F512H
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
Device Pin Tables
TABLE 2:PIN NAMES FOR 64-PIN GENERAL PURPOSE DEVICES
Note 1:The RPn pins can be used by remappable peripherals. See Table 1 for the available peripherals and Section 11.3 “Peripheral Pin
Select” for restrictions.
2:Every I/O port pin (RAx-RGx) can be used as a change notification pin (CNAx-CNGx). See Section 11.0 “I/O Ports” for more information.
3:Shaded pins are 5V tolerant.
4:The metal plane at the bottom of the device is not connected to any pins and is recommended to be connected to VSS externally.
2:Every I/O port pin (RAx-RGx) can be used as a change notification pin (CNAx-CNGx). See Section 11.0 “I/O Ports” for more information.
3:Shaded pins are 5V tolerant.
4:The metal plane at the bottom of the QFN device is not connected to any pins and is recommended to be connected to VSS externally.
USBID/RPF3/RF3
33
VUSB3V3
35
D+
37
OSC1/CLKI/RC12
39
AN26/C3IND/RPD3/RD3
51
RPD5/PMRD/RD5
53
C3INB/RD7
55
VDD
57
DS60001290C-page 4Preliminary 2014 Microchip Technology Inc.
Page 5
TABLE 4:PIN NAMES FOR 100-PIN GENERAL PURPOSE DEVICES
1
100
100-PIN TQFP (TOP VIEW)
PIC32MX130F128L
PIC32MX170F512L
PIC32MX150F256L
Pin #Full Pin NamePin #Full Pin Name
AN28/RG15
1
2VDD37 VDD
AN22/RPE5/PMD5/RE5
3
4AN23/PMD6/RE639 AN34/RPF13/SCK3/RF13
AN27/PMD7/RE7
5
6AN29/RPC1/RC141 AN12/PMA11/RB12
AN30/RPC2/RC2
7
8AN31/RPC3/RC343 AN14/RPB14/CTED5/PMA1/RB14
9RPC4/CTED7/RC444 AN15/RPB15/OCFB/CTED6/PMA0/RB15
10 AN16/C1IND/RPG6/SCK2/PMA5/RG645 V
11 AN17/C1INC/RPG7/PMA4/RG746 VDD
12 AN18/C2IND/RPG8/PMA3/RG847 AN36/RPD14/RD14
13 MCLR48 AN37/RPD15/SCK4/RD15
14 AN19/C2INC/RPG9/PMA2/RG9
SS50RPF5/PMA8/RF5
15 V
V
DD
16
TMS/CTED1/RA0
17
18 AN32/RPE8/RE853 AN39/RPF8/RF8
AN33/RPE9/RE9
19
20 AN5/C1INA/RPB5/RB5
AN4/C1INB/RB4
21
22 PGED3/AN3/C2INA/RPB3/RB3
PGEC3/AN2/CTCMP/C2INB/RPB2/CTED13/RB2
23
24 PGEC1/AN1/RPB1/CTED12/RB1
25 PGED1/AN0/RPB0/RB0
26 PGEC2/AN6/RPB6/RB661 TDO/RA5
27 PGED2/AN7/RPB7/CTED3/RB762 V
28 VREF-/PMA7/RA963 OSC1/CLKI/RC12
REF+/PMA6/RA1064 OSC2/CLKO/RC15
29 V
30 AV
DD65 VSS
31 AVSS66 RPA14/RA14
32 AN8/RPB8/CTED10/RB8
33 AN9/RPB9/CTED4/RB9
CV
REFOUT/AN10/RPB10/CTED11/PMA13/RB10
34
35 AN11/PMA12/RB11
Note 1:The RPn pins can be used by remappable peripherals. See Table 1 for the available peripherals and Section 11.3 “Peripheral Pin
Select” for restrictions.
2:Every I/O port pin (RAx-RGx) can be used as a change notification pin (CNAx-CNGx). See Section 11.0 “I/O Ports” for more
2.0Guidelines for Getting Started with 32-bit MCUs........................................................................................................................ 25
6.0Flash Program Memory .............................................................................................................................................................. 61
10.0 USB On-The-Go (OTG)............................................................................................................................................................ 103
25.0 Comparator Voltage Reference (CVREF) ................................................................................................................................. 281
26.0 Charge Time Measurement Unit (CTMU) ............................................................................................................................... 285
27.0 Power-Saving Features ........................................................................................................................................................... 291
28.0 Special Features ...................................................................................................................................................................... 297
29.0 Instruction Set .......................................................................................................................................................................... 309
30.0 Development Support............................................................................................................................................................... 311
33.0 DC and AC Device Characteristics Graphs.............................................................................................................................. 365
The Microchip Web Site ..................................................................................................................................................................... 383
Customer Change Notification Service .............................................................................................................................................. 383
Product Identification System ............................................................................................................................................................ 384
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
Most Current Data Sheet
To obtain the most up-to-date version of this data sheet, please register at our Worldwide Web site at:
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., DS30000000A is version A of document DS30000000).
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)
When contacting a sales office, 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 to receive the most current information on all of our products.
docerrors@microchip.com. We welcome your feedback.
http://www.microchip.com
DS60001290C-page 10Preliminary 2014 Microchip Technology Inc.
Page 11
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
Referenced Sources
This device data sheet is based on the following
individual sections of the “PIC32 Family Reference 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 Microchip web site
(www.microchip.com).
DS60001290C-page 12Preliminary 2014 Microchip Technology Inc.
Page 13
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
Note:Not all features are available on all devices. Refer to TABLE 1: “PIC32MX1XX/2XX/5XX 64/100-pin Controller
Family Features” for the list of features by device.
UART1-5
Comparators
PORTA/CNA
PORTD/CND
PORTE/CNE
PORTF/CNF
PORTG/CNG
PORTB/CNB
JTAG
Priority
DMACICD
MIPS32
®
M4K® CPU Core
ISDS
EJTAGINT
Bus Matrix
Data RAM
Peripheral Bridge
128
128-bit wide
Flash
32
32
32
32
Peripheral Bus Clocked by PBCLK
Program Flash Memory
Controller
32
32
32
Interrupt
Controller
BSCAN
PORTC/CNC
PMP
I2C1,2
SPI1-4
IC1-5
PWM
OC1-5
OSC1/CLKI
OSC2/CLKO
V
DD,
Timing
Generation
V
SS
MCLR
Power-up
Timer
Oscillator
Start-up Timer
Power-on
Reset
Watchdog
Timer
Brown-out
Reset
Precision
Reference
Band Gap
FRC/LPRC
Oscillators
Regulator
Voltage
VCAP
OSC/SOSC
Oscillators
PLL
DIVIDERS
SYSCLK
PBCLK
Peripheral Bus Clocked by SYSCLK
USB
PLL-USB
USBCLK
32
RTCC
10-bit ADC
Timer1-5
32
32
Remappable
Pins
CTMU
1-3
CAN
32
1.0DEVICE OVERVIEW
This document contains device-specific information for
PIC32MX1XX/2XX/5XX 64/100-pin devices.
Note 1: This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100pin family 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
Figure 1-1 illustrates a general block diagram of the
core and peripheral modules in the PIC32MX1XX/2XX/
5XX 64/100-pin family of devices.
Table 1-1 lists the functions of the various pins shown
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
64-pin
QFN/
TQFP
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
64-pin
QFN/
TQFP
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
100-pin
TQFP
Pin
Type
Buffer
Type
Description
Analog input channels.
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 the OSC2 pin
function.
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.
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
64-pin
QFN/
TQFP
(1)
, 46
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
64-pin
QFN/
TQFP
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
I/OSTSynchronous Serial Clock Input/Output for SPI1
(1)
SDI1PPSPPSI—SPI1 Data In
SDO1PPSPPSOSTSPI1 Data Out
SS1
PPSPPSI/O—SPI1 Slave Synchronization for Frame Pulse I/O
SCK2410I/OSTSynchronous Serial Clock Input/Output for SPI2
SDI2PPSPPSI—SPI2 Data In
SDO2PPSPPSOSTSPI2 Data Out
SS2
PPSPPSI/O—SPI2 Slave Synchronization for Frame Pulse I/O
SCK32939I/OSTSynchronous Serial Clock Input/Output for SPI3
SDI3PPSPPSI—SPI3 Data In
SDO3PPSPPSOSTSPI3 Data Out
SS3
PPSPPSI/O—SPI3 Slave Synchronization for Frame Pulse I/O
SCK4—48I/OSTSynchronous Serial Clock Input/Output for SPI4
SDI4—PPSI—SPI4 Data In
SDO4—PPSOSTSPI4 Data Out
SS4
SCL137
SDA136
—PPSI/O—SPI4 Slave Synchronization for Frame Pulse I/O
(1)
(1)
, 44
, 43
(2)57(1)
(2)56(1)
, 66
, 67
(2)
I/OSTSynchronous Serial Clock Input/Output for I2C1
(2)
I/OSTSynchronous Serial Data Input/Output for I2C1
SCL23258I/OSTSynchronous Serial Clock Input/Output for I2C2
SDA23159I/OSTSynchronous Serial Data Input/Output for I2C2
TMS2317ISTJTAG Test Mode Select Pin
TCK2738ISTJTAG Test Clock Input Pin
TDI2860I—JTAG Test Clock Input Pin
TDO2461O—JTAG Test Clock Output Pin
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
REFOUT2334OAnalogComparator Voltage Reference (Output)
C1INA1120IAnalog
C1INB1221IAnalog
C1INC511IAnalog
C1IND410IAnalog
C2INA1322IAnalog
C2INB1423IAnalog
C2INC814IAnalog
C2IND612IAnalog
C3INA5887IAnalog
C3INB5584IAnalog
C3INC5483IAnalog
C3IND5178IAnalog
C1OUTPPSPPSO—Comparator 1 Output
C2OUTPPSPPSO—Comparator 2 Output
C3OUTPPSPPSO—Comparator 3 Output
PMALL3044OTTL/STParallel Master Port Address Latch Enable Low Byte
PMALH2943OTTL/ST Parallel Master Port Address Latch Enable High Byte
PMA03044OTTL/ST
PMA12943OTTL/ST
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
64-pin
QFN/
TQFP
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
100-pin
TQFP
Pin
Type
Buffer
Type
Description
Comparator 1 Inputs
Comparator 2 Inputs
Comparator 3 Inputs
Parallel Master Port Address bit 0 Input (Buffered Slave
modes) and Output (Master modes)
Parallel Master Port Address bit 0 Input (Buffered Slave
modes) and Output (Master modes)
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
64-pin
QFN/
TQFP
3454I AnalogUSB Bus Power Monitor
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
100-pin
TQFP
Pin
Type
Buffer
Type
Description
Parallel Master Port data (Demultiplexed Master mode) or
Address/Data (Multiplexed Master modes)
Parallel Master Port data (Demultiplexed Master mode) or
Address/Data (Multiplexed Master modes)
USBOEN1221OTTL/STUSB D+, D- active status (see UOEMON bit in Register 10-20)
PGED11625I/OST
PGEC11524IST
PGED21827I/OST
PGEC21726IST
PGED31322I/OST
PGEC31423IST
TRCLK—91O—Trace clock
TRD0—97O—Trace Data bit 0
TRD1—96O—Trace Data bit 1
TRD2—95O—Trace Data bit 2
TRD3—92O—Trace Data bit 3
CTED1—17ISTCTMU External Edge Input 1
CTED2—38ISTCTMU External Edge Input 2
CTED31827ISTCTMU External Edge Input 3
CTED42233ISTCTMU External Edge Input 4
CTED52943ISTCTMU External Edge Input 5
CTED63044ISTCTMU External Edge Input 6
CTED7—9ISTCTMU External Edge Input 7
CTED8—92ISTCTMU External Edge Input 8
CTED9—60ISTCTMU External Edge Input 9
CTED102132ISTCTMU External Edge Input 10
CTED112334ISTCTMU External Edge Input 11
CTED121524ISTCTMU External Edge Input 12
CTED131423ISTCTMU External Edge Input 13
C1RXPPSPPSISTEnhanced CAN Receive
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
64-pin
QFN/
TQFP
(2)
(2)
(2)
3555P—
1120O—USB Host and OTG bus power control Output
3757I/OAnalog USB D+
3656I/OAnalogUSB D-
3351ISTUSB OTG ID Detect
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
100-pin
TQFP
Pin
Type
Buffer
Type
Description
USB internal transceiver supply. If the USB module is not
used, this pin must be connected to V
Data I/O pin for Programming/Debugging Communication
Channel 1
Clock Input pin for Programming/Debugging Communication
Channel 1
Data I/O Pin for Programming/Debugging Communication
Channel 2
Clock Input Pin for Programming/Debugging Communication
Channel 2
Data I/O Pin for Programming/Debugging Communication
Channel 3
Clock Input Pin for Programming/Debugging Communication
Channel 3
VCAP5685P—Capacitor for Internal Voltage Regulator
SS9, 25, 41
V
REF+1629PAnalogAnalog Voltage Reference (High) Input
V
V
REF-1528PAnalogAnalog Voltage Reference (Low) Input
Legend: CMOS = CMOS compatible input or outputAnalog = Analog inputI = InputO = Output
Note 1: This pin is only available on devices without a USB module.
2: This pin is only available on devices with a USB module.
3: This pin is not available on 64-pin devices with a USB module.
4: This pin is only available on 100-pin devices without a USB module.
64-pin
QFN/
TQFP
713IST
10, 26, 38, 572, 16, 37,
ST = Schmitt Trigger input with CMOS levelsTTL = TTL input bufferP = Power
100-pin
TQFP
46, 62, 86
15, 36, 45,
65, 75
Pin
Type
Buffer
Type
Master Clear (Reset) input. This pin is an active-low Reset to
the device.
Positive supply for analog modules. This pin must be
connected at all times.
P—Positive supply for peripheral logic and I/O pins
2.0GUIDELINES FOR GETTING
STARTED WITH 32-BI T MCUS
Note:This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100-pin
family 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
“PIC32 Family Reference Manual”, which
is available from the Microchip web
(www.microchip.com/PIC32).
2.1Basic Connection Requirements
Getting started with the PIC32MX1XX/2XX/5XX 64/
100-pin family of 32-bit Microcontrollers (MCUs)
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:
• All VDD and VSS pins (see 2.2 “Decoupling
Capacitors”)
• All AVDD and AVSS pins, even if the ADC module is
not used (see 2.2 “Decoupling Capacitors”)
•VCAP pin (see 2.3 “Capacitor on Internal Voltage
Regulator (VCAP)”)
• MCLR pin (see 2.4 “Master Clear (MCLR) Pin”)
• PGECx/PGEDx pins, used for In-Circuit Serial
Programming (ICSP™) and debugging purposes
2.5 “ICSP Pins”)
(see
• OSC1 and OSC2 pins, when external oscillator
source is used (see
The following pins may be required:
VREF+/VREF- pins, used when external voltage
reference for the ADC module is implemented
Note:The AVDD and AVSS pins must be
connected, regardless of ADC use and
the ADC voltage reference source.
2.8 “External Oscillator Pins”)
site
.
2.2Decoupling Capacitors
The use of decoupling capacitors on power supply
pins, such as VDD, VSS, AVDD and AVSS is required.
Figure 2-1.
See
Consider the following criteria when using decoupling
capacitors:
• Value and type of capacitor: A value of 0.1 µF
(100 nF), 10-20V is recommended. The capacitor
should be a low Equivalent Series Resistance
(low-ESR) capacitor and have resonance
frequency in the range of 20
further recommended that ceramic capacitors be
used.
• Placement on the printed circuit board: The
decoupling capacitors should be placed as close
to the pins as possible. It is recommended that
the capacitors be placed 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 onequarter inch (6
• Handling high frequency noise: If the board is
experiencing high frequency noise, upward of
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
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.
Note 1: If the USB module is not used, this pin must be
connected to V
DD.
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 3Ω 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)
Connect
(2)
VUSB3V3
(1)
VCAP
Tantalum or
ceramic 10 µF
ESR ≤ 3Ω
(3)
2: Aluminum or electrolytic capacitors should not be
used. ESR ≤ 3Ω from -40ºC to 125ºC @ SYSCLK
frequency (i.e., MIPS).
1K
0.1 µF
Note 1: 470Ω ≤ R1 ≤ 1Ω 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 VIH and VIL specifications are met without
interfering with the Debug/Programmer tools.
2: The capacitor can be sized to prevent unintentional
Resets from brief glitches or to extend the device
Reset period during POR.
3: No pull-ups or bypass capacitors are allowed on
active debug/program PGECx/PGEDx pins.
R1
(1)
10k
V
DD
MCLR
PIC32
1 kΩ
0.1 µF
(2)
PGECx
(3)
PGEDx
(3)
ICSP™
1
5
4
2
3
6
V
DD
VSS
NC
R
C
FIGURE 2-1:RECOMMENDED
MINIMUM CONNECTION
2.4Master Clear (MCLR) Pin
The MCLR pin provides two specific device
functions:
• Device Reset
• Device programming and debugging
Pulling The MCLR pin low generates a device Reset.
Figure 2-2 illustrates a typical MCLR circuit. 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
levels (V
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 illustrated in Figure 2-2, it is
recommended that the capacitor C, be isolated from
the
operations.
Place the components illustrated in Figure 2-2 within
one-quarter inch (6 mm) from the MCLR pin.
FIGURE 2-2:EXAMPLE OF MCLR PIN
MCLR pin. Consequently, specific voltage
IH and VIL) and fast signal transitions must
MCLR pin during programming and debugging
CONNECTIONS
2.2.1BULK CAPACITORS
The use of a bulk capacitor is recommended to improve
power supply stability. Typical values range from 4.7 µF
to 47
the device as possible.
2.3Capacitor on Internal Voltage
2.3.1INTERNAL REGULATOR MODE
A low-ESR (3 ohm) capacitor is required on the VCAP
pin, which is used to stabilize the internal voltage regulator output. The VCAP pin must not be connected to
DD, and must have a CEFC capacitor, with at least a
V
6V rating, connected to ground. The type can be
ceramic or tantalum. Refer to
Electrical Characteristics” for additional information
on CEFC specifications.
DS60001290C-page 26Preliminary 2014 Microchip Technology Inc.
µF. This capacitor should be located as close to
Regulator (V
CAP)
Section 31.0 “40 MHz
Page 27
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
Main Oscillator
Guard Ring
Guard Trace
Secondary
Oscillator
2.5ICSP Pins
The PGECx and PGEDx pins are used for In-Circuit
Serial Programming™ (ICSP™) and debugging pur
poses. 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 communi
cations 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 voltage 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
For more information on MPLAB ICD 3 and MPLAB
REAL ICE connection requirements, refer to the follow
ing documents that are available on the Microchip web
site.
• “Using MPLAB® ICD 3” (poster) DS50001765
• “MPLAB® ICD 3 Design Advisory” DS50001764
• “MPLAB® REAL ICE™ In-Circuit Debugger
• “Using MPLAB® REAL ICE™ Emulator” (poster)
ICD 3 or MPLAB REAL ICE™.
User’s Guide” DS50001616
DS50001749
-
-
-
2.7Trace
The trace pins can be connected to a hardware
trace-enabled programmer to provide a compressed
real-time instruction trace. When used for trace, the
TRD3, TRD2, TRD1, TRD0 and TRCLK pins should
be dedicated for this use. The trace hardware
requires a 22 Ohm series resistor between the trace
pins and the trace connector.
2.8External Oscillator Pins
Many MCUs have options for at least two oscillators: a
high-frequency primary oscillator and a low-frequency
secondary oscillator (refer to
Configuration” for details).
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,
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 illustrated in
FIGURE 2-3:SUGGESTED OSCILLATOR
CIRCUIT PLACEMENT
Section 8.0 “Oscillator
Figure 2-3.
2.6JTAG
The TMS, TDO, TDI and TCK pins are used for testing
and debugging according to the Joint Test Action
Group (JTAG) standard. It is recommended to keep the
trace length between the JTAG connector and the
JTAG pins on the device as short as possible. If the
JTAG 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
TMS, TDO, TDI and TCK 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 (V
and input voltage low (VIL) requirements.
Rounded to the nearest standard value or 13 pF in this example for
Primary Oscillator crystals “C1” and “C2”.
OSC2OSC1
1M
Typical XT
(4-10 MHz)
Circuit A
C1
C2
OSC2OSC1
Typical HS
(10-25 MHz)
Circuit B
C1
C2
Rs
OSC2
OSC1
1M
Typical XT/HS
(4-25 MHz)
Circuit C
C1
C2
1M
Rs
OSC2OSC1
Not Recommended
Circuit D
Not Recommended
1M
Rs
OSC2
OSC1
Circuit E
2.8.1CRYSTAL OSCILLATOR DESIGN
CONSIDERATION
The following example assumptions are used to
calculate the Primary Oscillator loading capacitor
values:
•CIN = PIC32_OSC2_Pin Capacitance = ~4-5 pF
•COUT = PIC32_OSC1_Pin Capacitance = ~4-5 pF
• C1 and C2 = XTAL manufacturing recommended
loading capacitance
• Estimated PCB stray capacitance, (i.e.,12 mm
length) = 2.5 pF
EXAMPLE 2-1: CRYSTAL LOAD CAPACITOR
CALCULATION
The following tips are used to increase oscillator gain,
(i.e., to increase peak-to-peak oscillator signal):
• Select a crystal with a lower “minimum” power drive
rating
• Select an crystal oscillator with a lower XTAL
manufacturing “ESR” rating.
• Add a parallel resistor across the crystal. The smaller
the resistor value the greater the gain. It is recom
mended to stay in the range of 600k to 1M
• C1 and C2 values also affect the gain of the oscillator.
The lower the values, the higher the gain.
• C2/C1 ratio also affects gain. To increase the gain,
make C1 slightly smaller than C2, which will also help
start-up performance.
Note:Do not add excessive gain such that the
oscillator signal is clipped, flat on top of
the sine wave. If so, you need to reduce
the gain or add a series resistor, RS, as
shown in circuit “C” in
Figure 2-4. Failure
to do so will stress and age the crystal,
which can result in an early failure. Adjust
the gain to trim the max peak-to-peak to
DD-0.6V. When measuring the oscilla-
~V
tor signal you must use a FET scope
probe or a probe with ≤ 1.5 pF or the
scope probe itself will unduly change the
gain and peak-to-peak levels.
2.8.1.1Additional Microchip References
• AN588 “PICmicro® Microcontroller Oscillator
• AN826 “Crystal Oscillator Basics and Crystal
• AN849 “Basic PICmicro® Oscillator Design”
DS60001290C-page 28Preliminary 2014 Microchip Technology Inc.
Design Guide”
Selection for rfPIC™ and PICmicro® Devices”
FIGURE 2-4:PRIMARY CRYSTAL
OSCILLATOR CIRCUIT
RECOMMENDATIONS
-
Page 29
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
PIC32
SOSCO
SOSCI
2.2 K
33 pF
33 pF
Note 1: P/N: Epson MC-306 32.7680K-A0:ROHS.
Crystal
(1)
2.9Unused I/Os
Unused I/O pins should not be allowed to float as
inputs. They can be configured as outputs and driven
to a logic-low state.
Alternatively, inputs can be reserved by connecting the
pin to VSS through a 1k to 10k resistor and configuring
the pin as an input.
2.10SOSC Design Recommendation
Figure 2-5 shows the recommended Sosc circuit
design. All components should be as close as possible
to the SOSCI and SOSCO pins of the PIC32 device,
(≤ 8 mm) and the capacitors should be ceramic-type.
2.11Considerations When Interfacing
to Remotely Powered Circuits
2.11.1NON-5V TOLERANT INPUT PINS
A quick review of the absolute maximum rating section
31.0 “40 MHz Electrical Characteristics” will indi-
in
cate that the voltage on any non-5v tolerant pin may not
exceed AVDD/VDD + 0.3V. Figure 2-6 shows an exam-
ple of a remote circuit using an independent power
source, which is powered while connected to a PIC32
non-5V tolerant circuit that is not powered.
FIGURE 2-6:PIC32 NON-5V TOLERANT CIRCUIT EXAMPLE
DS60001290C-page 30Preliminary 2014 Microchip Technology Inc.
Page 31
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
External VDD
PIC32
PIC32 VDD
Opto Digital
ISOLATOR
IN1
VSS
REMOTE_IN
Digital Isolator
PIC32 VDD
VSS
PIC32
Conn
IN1
OUT1
R
EMOTE_IN
REMOTE_OUT
External VDD
REMOTE_IN
External VDD
PIC32
PIC32 V
DD
IN
VSS
Digital Isolator
Analog_IN1
Analog_OUT2
External_V
DD1
PIC32 VDD
VSS
PIC32
Conn
Analog_IN2
S
Analog Switch
Analog / Digital Isolator
ENB
ENB
Without proper signal isolation, on non-5V tolerant
TABLE 2-1:EXAMPLES OF DIGITAL/
pins, the remote signal can power the PIC32 device
through the high side ESD protection diodes.
Besides violating the absolute maximum rating
specification when V
DD of the PIC32 device is
restored and ramping up or ramping down, it can
also negatively affect the internal Power-on Reset
(POR) and Brown-out Reset (BOR) circuits, which
can lead to improper initialization of internal PIC32
logic circuits. In these cases, it is recommended to
Example Digital/Analog
Signal Isolation Circuits
implement digital or analog signal isolation as
depicted in
Figure 2-7, as appropriate. This is
indicative of all industry microcontrollers and not just
Microchip products.
ADuM7241 / 40 ARZ (1 Mbps)X———
ADuM7241 / 40 CRZ (25 Mbps)X———
ISO721—X——
LTV-829S (2 Channel)——X—
LTV-849S (4 Channel)——X—
FSA266 / NC7WB66———X
FIGURE 2-7:DIGITAL/ANALOG SIGNAL ISOLATION CIRCUITS
The internal high side diode on 5V tolerant pins are
bussed to an internal floating node, rather than being
connected to V
on these pins, if VDD < 2.3V, should not exceed
roughly 3.2V relative to VSS of the PIC32 device.
Voltage of 3.6V or higher will violate the absolute
maximum specification, and will stress the oxide
layer separating the high side floating node, which
impacts device reliability. If a remotely powered
“digital-only” signal can be guaranteed to always be
≤ 3.2V relative to Vss on the PIC32 device side, a
5V tolerant pin could be used without the need for a
digital isolator. This is assuming there is not a
ground loop issue, logic ground of the two circuits
not at the same absolute level, and a remote logic
low input is not less than V
FIGURE 2-8:PIC32 5V TOLERANT PIN ARCHITECTURE EXAMPLE
DD, as shown in Figure 2-8. Voltages
SS - 0.3V.
DS60001290C-page 32Preliminary 2014 Microchip Technology Inc.
Page 33
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
CTMU
Current Source
ADC
Microchip
mTouch™
Library
User
Application
Microchip
Graphics
Library
Read the Touch Sensors
Process Samples
Display Data
Parallel
Master
Port
LCD Controller
Frame
Buffer
Display
Controller
PMD<7:0>
LCD
Panel
PIC32MX1XX/2XX/5XX
To AN6To AN7To AN8To AN11
C1
R3
C2
R2
R3
R1
C5
C5
C5
C1
R1
R1
R1
C3
R2
C3
R2
C1
R2
C2
R3
C2
R3
C3
AN0
AN1
AN11
To A N 0
To A N 1
To AN5
AN9
PMWR
To A N 9
R1
C4
R2
C4
R3
C4
Audio
Codec
Display
PMP
I
2
S
SPI
USB
USB
PMD<7:0>
3
3
Stereo Headphones
Speaker
PIC32MX1XX/2XX/5XX
Host
PMWR
MMC SD
3
SDI
REFCLKO
2.12Typical Application Connection
Examples
Examples of typical application connections are shown
in Figure 2-9, Figure 2-10, and Figure 2-11.
FIGURE 2-9:CAPACITIVE TOUCH SENSING WITH GRAPHICS APPLICATION
FIGURE 2-11:LOW-COST CONTROLLERLESS (LCC) GRAPHICS APPLICATION WITH
PROJECTED CAPACITIVE TOUCH
DS60001290C-page 34Preliminary 2014 Microchip Technology Inc.
Page 35
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
CPU
MDU
Execution Core
(RF/ALU/Shift)
FMT
TAP
EJTAG
Bus Interface
Power
Management
System
Co-processor
Off-chip Debug Interface
Bus Matrix
Dual Bus Interface
3.0CPU
Note:This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100-pin
family 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”
(DS60001113) in the “PIC32 Family Reference Manual”, which is available
from the Microchip web
www.microchip.com/PIC32). Resources
(
for the MIPS32® M4K® Processor Core
are available at http://www.imgtec.com.
The the MIPS32® M4K® Processor Core is the heart of
the PIC32MX1XX/2XX/5XX 64/100-pin device processor. The CPU fetches instructions, decodes each
instruction, fetches source operands, executes each
instruction and writes the results of instruction
execution to the proper destinations.
3.1Features
• 5-stage pipeline
• 32-bit address and data paths
• MIPS32® Enhanced Architecture (Release 2):
- Multiply-accumulate and multiply-subtract
instructions
- Targeted multiply instruction
- Zero/One detect instructions
- WAIT instruction
- Conditional move instructions (MOVN, MOVZ)
- Vectored interrupts
- Programmable exception vector base
- Atomic interrupt enable/disable
- GPR shadow registers to minimize latency
for interrupt handlers
- Bit field manipulation instructions
site
• MIPS16e® Code Compression:
- 16-bit encoding of 32-bit instructions to
improve code density
- Special PC-relative instructions for efficient
loading of addresses and constants
- SAVE and RESTORE macro instructions for
setting up and tearing down stack frames
within subroutines
- Improved support for handling 8 and 16-bit
data types
• Simple Fixed Mapping Translation (FMT)
Mechanism:
• Simple Dual Bus Interface:
- Independent 32-bit address and data buses
- Transactions can be aborted to improve
interrupt latency
• Autonomous Multiply/Divide Unit (MDU):
- Maximum issue rate of one 32x16 multiply
per clock
- Maximum issue rate of one 32x32 multiply
every other clock
The MIPS32® M4K® processor core contains several
logic blocks working together in parallel, providing an
efficient high-performance computing engine. The
following blocks are included with the core:
• Execution Unit
• Multiply/Divide Unit (MDU)
• System Control Coprocessor (CP0)
• Fixed Mapping Translation (FMT)
• Dual Internal Bus interfaces
• Power Management
• MIPS16e
• Enhanced JTAG (EJTAG) Controller
3.2.1EXECUTION UNIT
The MIPS32® M4K® processor core execution unit
implements a load/store architecture with single-cycle
ALU operations (logical, shift, add, subtract) and an
autonomous multiply/divide unit. The core contains
thirty-two 32-bit General Purpose Registers (GPRs)
used for integer operations and address calculation.
One additional register file shadow set (containing
thirty-two registers) is added to minimize context
switching overhead during interrupt/exception process
ing. The register file consists of two read ports and one
write port and is fully bypassed to minimize operation
latency in the pipeline.
The execution unit includes:
• 32-bit adder used for calculating the data address
• Address unit for calculating the next instruction
address
• Logic for branch determination and branch target
address calculation
• Load aligner
• Bypass multiplexers used to avoid stalls when
executing instruction streams where data
producing instructions are followed closely by
consumers of their results
• Leading Zero/One detect unit for implementing
the CLZ and CLO instructions
• Arithmetic Logic Unit (ALU) for performing bitwise
logical operations
• Shifter and store aligner
®
Support
-
3.2.2MULTIPLY/DIVIDE UNIT (MDU)
The MIPS32® M4K® processor core includes a Multiply/Divide Unit (MDU) that contains a separate pipeline
for multiply and divide operations. This pipeline oper
ates in parallel with the Integer Unit (IU) pipeline and
does not stall when the IU pipeline stalls. This allows
MDU operations to be partially masked by system stalls
and/or other integer unit instructions.
The high-performance MDU consists of a 32x16 booth
recoded multiplier, result/accumulation registers (HI
and LO), a divide state machine, and the necessary
multiplexers and control logic. The first number shown
(‘32’ of 32x16) represents the rs operand. The second
number (‘16’ of 32x16) represents the rt operand. The
PIC32 core only checks the value of the latter (rt) oper
and to determine how many times the operation must
pass through the multiplier. The 16x16 and 32x16
operations pass through the multiplier once. A 32x32
operation passes through the multiplier twice.
The MDU supports execution of one 16x16 or 32x16
multiply operation every clock cycle; 32x32 multiply
operations can be issued every other clock cycle.
Appropriate interlocks are implemented to stall the
issuance of back-to-back 32x32 multiply operations.
The multiply operand size is automatically determined
by logic built into the MDU.
Divide operations are implemented with a simple 1 bit
per clock iterative algorithm. An early-in detection
checks the sign extension of the dividend (rs) operand.
If rs is 8 bits wide, 23 iterations are skipped. For a 16-bit
wide rs, 15 iterations are skipped and for a 24-bit wide
rs, 7 iterations are skipped. Any attempt to issue a sub
sequent MDU instruction while a divide is still active
causes an IU pipeline stall until the divide operation is
completed.
Table 3-1 lists the repeat rate (peak issue rate of cycles
until the operation can be reissued) and latency (number of cycles until a result is available) for the PIC32
core multiply and divide instructions. The approximate
latency and repeat rates are listed in terms of pipeline
clocks.
Op codeOperand Size (mul rt) (div rs)LatencyRepeat Rate
MULT/MULTU, MADD/MADDU,
MSUB/MSUBU
MUL16 bits21
DIV/DIVU8 bits1211
DS60001290C-page 36Preliminary 2014 Microchip Technology Inc.
16 bits11
32 bits22
32 bits32
16 bits1918
24 bits2625
32 bits3332
Page 37
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
The MIPS architecture defines that the result of a
multiply or divide operation be placed in the HI and LO
registers. Using the Move-From-HI (MFHI) and MoveFrom-LO (MFLO) instructions, these values can be
transferred to the General Purpose Register file.
In addition to the HI/LO targeted operations, the
MIPS32® architecture also defines a multiply instruction,
MUL, which places the least significant results in the pri
mary register file instead of the HI/LO register pair. By
avoiding the explicit MFLO instruction required when
using the LO register, and by supporting multiple desti
-
3.2.3SYSTEM CONTROL
COPROCESSOR (CP0)
In the MIPS architecture, CP0 is responsible for the
virtual-to-physical address translation, the exception
control system, the processor’s diagnostics capability,
the operating modes (Kernel, User and Debug) and
whether interrupts are enabled or disabled. Configura
tion information, such as presence of options like
MIPS16e
registers, listed in Ta bl e 3-2.
®
, is also available by accessing the CP0
nation registers, the throughput of multiply-intensive
operations is increased.
Two other instructions, Multiply-Add (MADD) and
Multiply-Subtract (MSUB), are used to perform the
multiply-accumulate and multiply-subtract operations.
The MADD instruction multiplies two numbers and then
adds the product to the current contents of the HI and
LO registers. Similarly, the MSUB instruction multiplies
two operands and then subtracts the product from the
HI and LO registers. The MADD and MSUB operations
are commonly used in DSP algorithms.
TABLE 3-2:COPROCESSOR 0 REGISTERS
Register
Number
0-6ReservedReserved in the PIC32MX1XX/2XX/5XX 64/100-pin family core.
7HWREnaEnables access via the RDHWR instruction to selected hardware registers.
8BadVAddr
9Count
10ReservedReserved in the PIC32MX1XX/2XX/5XX 64/100-pin family core.
11Compare
12Status
12IntCtl
12SRSCtl
12SRSMap
13Cause
14EPC
15PRIdProcessor identification and revision.
15EBASEException vector base register.
16ConfigConfiguration register.
16Config1Configuration register 1.
16Config2Configuration register 2.
16Config3Configuration register 3.
17-22ReservedReserved in the PIC32MX1XX/2XX/5XX 64/100-pin family core.
23Debug
24DEPC
25-29ReservedReserved in the PIC32MX1XX/2XX/5XX 64/100-pin family core.
30ErrorEPC
31DESAVE
Note 1: Registers used in exception processing.
2: Registers used during debug.
Register
Name
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(2)
(2)
(1)
(2)
Function
Reports the address for the most recent address-related exception.
Processor cycle count.
Timer interrupt control.
Processor status and control.
Interrupt system status and control.
Shadow register set status and control.
Provides mapping from vectored interrupt to a shadow set.
Coprocessor 0 also contains the logic for identifying
and managing exceptions. Exceptions can be caused
by a variety of sources, including alignment errors in
data, external events or program errors.
the exception types in order of priority.
AdELFetch address alignment error. Fetch reference to protected address.
IBEInstruction fetch bus error.
DBpEJTAG breakpoint (execution of SDBBP instruction).
SysExecution of SYSCALL instruction.
BpExecution of BREAK instruction.
RIExecution of a reserved instruction.
CpUExecution of a coprocessor instruction for a coprocessor that is not enabled.
CEUExecution of a CorExtend instruction when CorExtend is not enabled.
OvExecution of an arithmetic instruction that overflowed.
TrExecution of a trap (when trap condition is true).
DDBL/DDBSEJTAG Data Address Break (address only) or EJTAG data value break on store (address + value).
AdELLoad address alignment error. Load reference to protected address.
AdESStore address alignment error. Store to protected address.
DBELoad or store bus error.
DDBLEJTAG data hardware breakpoint matched in load data compare.
Table 3-3 lists
3.3Power Management
The MIPS® M4K® processor core offers a number of
power management features, including low-power
design, active power management and power-down
modes of operation. The core is a static design that
supports slowing or Halting the clocks, which reduces
system power consumption during Idle periods.
3.3.1INSTRUCTION-CONTROLLED
POWER MANAGEMENT
The mechanism for invoking Power-Down mode is
through execution of the WAIT instruction. For more
information on power management, see Section 27.0
“Power-Saving Features”.
3.3.2LOCAL CLOCK GATING
The majority of the power consumed by the PIC32MX1XX/2XX/5XX 64/100-pin family core is in the clock
tree and clocking registers. The PIC32MX family uses
extensive use of local gated-clocks to reduce this
dynamic power consumption.
DS60001290C-page 38Preliminary 2014 Microchip Technology Inc.
3.4EJTAG Debug Support
The MIPS® M4K® processor core provides for an
Enhanced JTAG (EJTAG) interface for use in the software debug of application and kernel code. In addition
to standard User mode and Kernel modes of operation,
the M4K® core provides a Debug mode that is entered
after a debug exception (derived from a hardware
breakpoint, single-step exception, etc.) is taken and
continues until a Debug Exception Return (DERET)
instruction is executed. During this time, the processor
executes the debug exception handler routine.
The EJTAG interface operates through the Test Access
Port (TAP), a serial communication port used for transferring test data in and out of the core. In addition to the
standard JTAG instructions, special instructions
defined in the EJTAG specification define which
registers are selected and how they are used.
Page 39
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
4.0MEMORY ORGANIZATION
Note:This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100-pin
family of devices. It is not intended to be a
comprehensive reference source.For
detailed information, refer to Section 3. “Memory Organization” (DS60001115)
in the “PIC32 Family Reference Manual”,
which is available from the Microchip
site (www.microchip.com/PIC32).
web
PIC32MX1XX/2XX/5XX 64/100-pin microcontrollers
provide 4 GB of unified virtual memory address space.
All memory regions, including program, data memory,
SFRs and Configuration registers, reside in this
address space at their respective unique addresses.
The program and data memories can be optionally par
titioned into user and kernel memories. In addition, the
data memory can be made executable, allowing
PIC32MX1XX/2XX/5XX 64/100-pin devices to execute
from data memory.
The key features include:
• 32-bit native data width
• Separate User (KUSEG) and Kernel (KSEG0/
KSEG1) mode address space
• Flexible program Flash memory partitioning
• Flexible data RAM partitioning for data and
program space
• Separate boot Flash memory for protected code
• Robust bus exception handling to intercept
runaway code
• Simple memory mapping with Fixed Mapping
Translation (FMT) unit
• Cacheable (KSEG0) and non-cacheable (KSEG1)
address regions
-
4.1Memory Layout
PIC32MX1XX/2XX/5XX 64/100-pin microcontrollers
implement two address schemes: virtual and physical.
All hardware resources, such as program memory,
data memory and peripherals, are located at their
respective physical addresses. Virtual addresses are
exclusively used by the CPU to fetch and execute
instructions as well as access peripherals. Physical
addresses are used by bus master peripherals, such as
DMA and the Flash controller, that access memory
independently of the CPU.
The memory maps for the PIC32MX1XX/2XX/5XX 64/
100-pin devices are illustrated in Figure 4-1 through
DS60001290C-page 44Preliminary 2014 Microchip Technology Inc.
4.2Special Function Register Maps
TABLE 4-1:BUS MATRIX REGISTER MAP
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
Bits
Name
Register
(BF88_#)
Virtual Address
2000 BMXCON
2010 BMXDKPBA
2020 BMXDUDBA
2030 BMXDUPBA
2040 BMXDRMSZ
2050 BMXPUPBA
2060 BMXPFMSZ
2070 BMXBOOTSZ
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:This register has corresponding CLR, SET and INV registers at its virtual address, plus an offset of 0x4, 0x8 and 0xC, respectively. See Section 11.2 “CLR, SET, and INV Registers” for more information.
Register 4-1 through Register 4-8 are used for setting
the RAM and Flash memory partitions for data and
code.
REGISTER 4-1:BMXCON: BUS MATRIX CONFIGURATION REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared
Bit
31/23/15/7
U-0U-0U-0U-0U-0R/W-1U-0U-0
—————
U-0U-0U-0R/W-1R/W-1R/W-1R/W-1R/W-1
———
U-0U-0U-0U-0U-0U-0U-0U-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
BMX
ERRIXI
Bit
27/19/11/3
BMX
ERRICD
Bit
26/18/10/2
BMX
CHEDMA
BMX
ERRDMA
25/17/9/1
BMX
ERRDS
————————
U-0R/W-1U-0U-0U-0R/W-0R/W-0R/W-1
—
BMX
WSDRM
———BMXARB<2:0>
Bit
24/16/8/0
——
BMX
ERRIS
Bit
bit 31-27 Unimplemented: Read as ‘0’
bit 26BMXCHEDMA: BMX PFM Cacheability for DMA Accesses bit
1 = Enable program Flash memory (data) cacheability for DMA accesses (requires cache to have data
caching enabled)
0 = Disable program Flash memory (data) cacheability for DMA accesses
(hits are still read from the cache, but misses do not update the cache)
bit 25-21 Unimplemented: Read as ‘0’
bit 20BMXERRIXI: Enable Bus Error from IXI bit
1 = Enable bus error exceptions for unmapped address accesses initiated from IXI shared bus
0 = Disable bus error exceptions for unmapped address accesses initiated from IXI shared bus
bit 19BMXERRICD: Enable Bus Error from ICD Debug Unit bit
1 = Enable bus error exceptions for unmapped address accesses initiated from ICD
0 = Disable bus error exceptions for unmapped address accesses initiated from ICD
bit 18BMXERRDMA: Bus Error from DMA bit
1 = Enable bus error exceptions for unmapped address accesses initiated from DMA
0 = Disable bus error exceptions for unmapped address accesses initiated from DMA
bit 17BMXERRDS: Bus Error from CPU Data Access bit (disabled in Debug mode)
1 = Enable bus error exceptions for unmapped address accesses initiated from CPU data access
0 = Disable bus error exceptions for unmapped address accesses initiated from CPU data access
bit 16BMXERRIS: Bus Error from CPU Instruction Access bit (disabled in Debug mode)
1 = Enable bus error exceptions for unmapped address accesses initiated from CPU instruction access
0 = Disable bus error exceptions for unmapped address accesses initiated from CPU instruction access
bit 15-7Unimplemented: Read as ‘0’
bit 6BMXWSDRM: CPU Instruction or Data Access from Data RAM Wait State bit
1 = Data RAM accesses from CPU have one wait state for address setup
0 = Data RAM accesses from CPU have zero wait states for address setup
bit 5-3Unimplemented: Read as ‘0’
bit 2-0BMXARB<2:0>: Bus Matrix Arbitration Mode bits
111 = Reserved (using these configuration modes will produce undefined behavior)
•
•
•
011 = Reserved (using these configuration modes will produce undefined behavior)
010 = Arbitration Mode 2
001 = Arbitration Mode 1 (default)
000 = Arbitration Mode 0
REGISTER 4-4:BMXDUPBA: DATA RAM USER PROGRAM BASE ADDRESS REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-16 Unimplemented: Read as ‘0’
bit 15-10 BMXDUPBA<15:10>: DRM User Program Base Address bits
bit 9-0BMXDUPBA<9:0>: Read-Only bits
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
————————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R-0R-0
R-0R-0R-0R-0R-0R-0R-0R-0
When non-zero, the value selects the relative base address for User mode program space in RAM,
BMXDUPBA must be greater than BMXDUDBA.
Value is always ‘0’, which forces 1 KB increments
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
BMXDUPBA<15:8>
BMXDUPBA<7:0>
27/19/11/3
Bit
Bit
26/18/10/2
Bit
25/17/9/1
24/16/8/0
Bit
Note 1: At Reset, the value in this register is forced to zero, which causes all of the RAM to be allocated to Kernel
mode data usage.
2: The value in this register must be less than or equal to BMXDRMSZ.
DS60001290C-page 48Preliminary 2014 Microchip Technology Inc.
Page 49
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
REGISTER 4-5:BMXDRMSZ: DATA RAM SIZE REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-0BMXDRMSZ<31:0>: Data RAM Memory (DRM) Size bits
Bit
31/23/15/7
RRRRR R R R
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
BMXDRMSZ<31:24>
RRRRR R R R
BMXDRMSZ<23:16>
RRRRR R R R
BMXDRMSZ<15:8>
RRRRR R R R
BMXDRMSZ<7:0>
Static value that indicates the size of the Data RAM in bytes:
0x00002000 = Device has 8 KB RAM
0x00004000 = Device has 16 KB RAM
0x00008000 = Device has 32 KB RAM
0x00010000 = Device has 64 KB RAM
Bit
24/16/8/0
REGISTER 4-6:BMXPUPBA: PROGRAM FLASH (PFM) USER PROGRAM BASE ADDRESS
REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-20 Unimplemented: Read as ‘0’
bit 19-11 BMXPUPBA<19:11>: Program Flash (PFM) User Program Base Address bits
bit 10-0BMXPUPBA<10:0>: Read-Only bits
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
30/22/14/6
————————
U-0U-0U-0U-0R/W-0R/W-0R/W-0R/W-0
————BMXPUPBA<19:16>
R/W-0R/W-0R/W-0R/W-0R/W-0R-0R-0R-0
R-0R-0R-0R-0R-0R-0R-0R-0
Value is always ‘0’, which forces 2 KB increments
Bit
29/21/13/5
Bit
Bit
28/20/12/4
27/19/11/3
BMXPUPBA<15:8>
BMXPUPBA<7:0>
Bit
Bit
26/18/10/2
Bit
25/17/9/1
24/16/8/0
Bit
Note 1: At Reset, the value in this register is forced to zero, which causes all of the RAM to be allocated to Kernel
mode data usage.
2: The value in this register must be less than or equal to BMXPFMSZ.
REGISTER 4-7:BMXPFMSZ: PROGRAM FLASH (PFM) SIZE REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-0BMXPFMSZ<31:0>: Program Flash Memory (PFM) Size bits
Bit
31/23/15/7
RRRRR R R R
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
BMXPFMSZ<31:24>
RRRRR R R R
BMXPFMSZ<23:16>
RRRRR R R R
BMXPFMSZ<15:8>
RRRRR R R R
BMXPFMSZ<7:0>
Static value that indicates the size of the PFM in bytes:
0x00010000 = Device has 64 KB Flash
0x00020000 = Device has 128 KB Flash
0x00040000 = Device has 256 KB Flash
0x00080000 = Device has 512 KB Flash
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-0BMXBOOTSZ<31:0>: Boot Flash Memory (BFM) Size bits
Bit
31/23/15/7
RRRRRRRR
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
BMXBOOTSZ<31:24>
RRRRRRRR
BMXBOOTSZ<23:16>
RRRRRRRR
BMXBOOTSZ<15:8>
RRRRRRRR
BMXBOOTSZ<7:0>
Static value that indicates the size of the Boot PFM in bytes:
0x00000C00 = Device has 3 KB Boot Flash
Bit
24/16/8/0
DS60001290C-page 50Preliminary 2014 Microchip Technology Inc.
Page 51
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
Interrupt Controller
Interrupt Requests
Vector Number
CPU Core
Priority Level
5.0INTERRUPT CONTROLLER
Note:This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100-pin
family of devices. It is not intended to be
a comprehensive reference source. To
complement the information in this data
sheet, refer to Section 8. “Interrupt
Controller” (DS60001108) in the “PIC32
Family Reference Manual”, which
available from the Microchip web site
(www.microchip.com/PIC32).
PIC32MX1XX/2XX/5XX 64/100-pin devices generate
interrupt requests in response to interrupt events from
peripheral modules. The interrupt control module exists
externally to the CPU logic and prioritizes the interrupt
events before presenting them to the CPU.
is
The PIC32MX1XX/2XX/5XX 64/100-pin interrupt
module includes the following features:
• Up to 76 interrupt sources
• Up to 46 interrupt vectors
• Single and multi-vector mode operations
• Five external interrupts with edge polarity control
• Interrupt proximity timer
• Seven user-selectable priority levels for each
vector
• Four user-selectable subpriority levels within each
priority
DS60001290C-page 54Preliminary 2014 Microchip Technology Inc.
5.1Interrupts Control Registers
TABLE 5-2:INTERRUPT REGISTER MAP
Bits
(3)
Name
Register
(BF88_#)
Virtual Address
1000 INTCON
1010 INTSTAT
1020IPTMR
1030IFS0
1040IFS1
1050IFS2
1060IEC0
1070IEC1
1080IEC2
1090IPC0
10A0IPC1
10B0IPC2
10C0IPC3
10D0IPC4
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:This bit is only available on 100-pin devices.
(4)
2:This bit is only implemented on devices with a USB module.
3:With the exception of those noted, all registers in this table have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4 0x8 and 0xC, respectively. See Section 11.2 “CLR,
SET, and INV Registers” for more information.
4:This register does not have associated CLR, SET, and INV registers.
5:This bit is only implemented on devices with a CAN module.
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:This bit is only available on 100-pin devices.
2:This bit is only implemented on devices with a USB module.
3:With the exception of those noted, all registers in this table have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4 0x8 and 0xC, respectively. See Section 11.2 “CLR,
SET, and INV Registers” for more information.
4:This register does not have associated CLR, SET, and INV registers.
5:This bit is only implemented on devices with a CAN module.
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-17 Unimplemented: Read as ‘0’
bit 16SS0: Single Vector Shadow Register Set bit
bit 15-13 Unimplemented: Read as ‘0’
bit 12MVEC: Multi Vector Configuration bit
bit 11Unimplemented: Read as ‘0’
bit 10-8TPC<2:0>: Interrupt Proximity Timer Control bits
bit 7-5Unimplemented: Read as ‘0’
bit 4INT4EP: External Interrupt 4 Edge Polarity Control bit
bit 3INT3EP: External Interrupt 3 Edge Polarity Control bit
bit 2INT2EP: External Interrupt 2 Edge Polarity Control bit
bit 1INT1EP: External Interrupt 1 Edge Polarity Control bit
bit 0INT0EP: External Interrupt 0 Edge Polarity Control bit
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
————————
U-0U-0U-0U-0U-0U-0U-0R/W-0
———————SS0
U-0U-0U-0R/W-0U-0R/W-0R/W-0R/W-0
———MVEC—TPC<2:0>
U-0U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0
———INT4EPINT3EPINT2EPINT1EPINT0EP
1 = Single vector is presented with a shadow register set
0 = Single vector is not presented with a shadow register set
1 = Interrupt controller configured for multi vectored mode
0 = Interrupt controller configured for single vectored mode
111 = Interrupts of group priority 7 or lower start the Interrupt Proximity timer
110 = Interrupts of group priority 6 or lower start the Interrupt Proximity timer
101 = Interrupts of group priority 5 or lower start the Interrupt Proximity timer
100 = Interrupts of group priority 4 or lower start the Interrupt Proximity timer
011 = Interrupts of group priority 3 or lower start the Interrupt Proximity timer
010 = Interrupts of group priority 2 or lower start the Interrupt Proximity timer
001 = Interrupts of group priority 1 start the Interrupt Proximity timer
000 = Disables Interrupt Proximity timer
1 = Rising edge
0 = Falling edge
1 = Rising edge
0 = Falling edge
1 = Rising edge
0 = Falling edge
1 = Rising edge
0 = Falling edge
1 = Rising edge
0 = Falling edge
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
Bit
24/16/8/0
DS60001290C-page 56Preliminary 2014 Microchip Technology Inc.
Page 57
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
REGISTER 5-2:INTSTAT: INTERRUPT STATUS REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
————————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
U-0U-0U-0U-0U-0R/W-0R/W-0R/W-0
—————SRIPL<2:0>
U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
——VEC<5:0>
(1)
(1)
Bit
24/16/8/0
bit 31-11 Unimplemented: Read as ‘0’
bit 10-8SRIPL<2:0>: Requested Priority Level bits
(1)
111-000 = The priority level of the latest interrupt presented to the CPU
bit 7-6Unimplemented: Read as ‘0’
bit 5-0VEC<5:0>: Interrupt Vector bits
(1)
11111-00000 = The interrupt vector that is presented to the CPU
Note 1: This value should only be used when the interrupt controller is configured for Single Vector mode.
REGISTER 5-6:IPCx: INTERRUPT PRIORITY CONTROL REGISTER (CONTINUED)
bit 9-8IS1<1:0>: Interrupt Subpriority bits
11 = Interrupt subpriority is 3
10 = Interrupt subpriority is 2
01 = Interrupt subpriority is 1
00 = Interrupt subpriority is 0
bit 7-5Unimplemented: Read as ‘0’
bit 4-2IP0<2:0>: Interrupt Priority bits
111 = Interrupt priority is 7
•
•
•
010 = Interrupt priority is 2
001 = Interrupt priority is 1
000 = Interrupt is disabled
bit 1-0IS0<1:0>: Interrupt Subpriority bits
11 = Interrupt subpriority is 3
10 = Interrupt subpriority is 2
01 = Interrupt subpriority is 1
00 = Interrupt subpriority is 0
Note:This register represents a generic definition of the IPCx register. Refer to Table 5-1 for the exact bit
definitions.
DS60001290C-page 60Preliminary 2014 Microchip Technology Inc.
Page 61
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
6.0FLASH PROGRAM MEMORY
Note:This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100-pin
family of devices. It is not intended to be
a comprehensive reference source. To
complement the information in this data
sheet, refer to Section 5. “Flash Program Memory” (DS60001121) in the
“PIC32 Family Reference Manual”, which
is available from the Microchip web site
(www.microchip.com/PIC32).
PIC32MX1XX/2XX/5XX 64/100-pin devices contain an
internal Flash program memory for executing user
code. There are three methods by which the user can
program this memory:
• Run-Time Self-Programming (RTSP)
• EJTAG Programming
• In-Circuit Serial Programming™ (ICSP™)
RTSP is performed by software executing from either
Flash or RAM memory. Information about RTSP
techniques is available in Section 5. “Flash Program
Memory” (DS60001121) in the “PIC32 Family
Reference Manual”.
EJTAG is performed using the EJTAG port of the
device and an EJTAG capable programmer.
ICSP is performed using a serial data connection to the
device and allows much faster programming times than
RTSP.
The EJTAG and ICSP methods are described in the
“PIC32 Flash Programming Specification”
(DS60001145), which can be downloaded from the
Microchip web site.
Note:On PIC32MX1XX/2XX/5XX 64/100-pin
devices, the Flash page size is 1 KB and
the row size is 128 bytes (256 IW and
DS60001290C-page 62Preliminary 2014 Microchip Technology Inc.
6.1Control Registers
TABLE 6-1:FLASH CONTROLLER REGISTER MAP
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
Bits
Name
Register
(BF80_#)
Virtual Address
NVMSRC
ADDR
information.
(1)
(1)
F400 NVMCON
F410 NVMKEY
F420
NVMADDR
F430 NVMDATA
F440
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:This register has corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 11.2 “CLR, SET , and INV Registers” for more
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-16 Unimplemented: Read as ‘0’
bit 15WR: Write Control bit
bit 14WREN: Write Enable bit
bit 13WRERR: Write Error bit
bit 12LVDERR: Low-Voltage Detect Error bit (LVD circuit must be enabled)
bit 11LVDSTAT: Low-Voltage Detect Status bit (LVD circuit must be enabled)
bit 10-4Unimplemented: Read as ‘0’
bit 3-0NVMOP<3:0>: NVM Operation bits
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
24/16/8/0
————————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
R/W-0R/W-0R-0R-0R-0U-0U-0U-0
WRWREN
U-0U-0U-0U-0R/W-0R/W-0R/W-0R/W-0
(1)
WRERR
(2)
LVDERR
(2)
LVDSTAT
(2)
———
————NVMOP<3:0>
This bit is writable when WREN = 1 and the unlock sequence is followed.
1 = Initiate a Flash operation. Hardware clears this bit when the operation completes
0 = Flash operation complete or inactive
(1)
1 = Enable writes to WR bit and enables LVD circuit
0 = Disable writes to WR bit and disables LVD circuit
This is the only bit in this register reset by a device Reset.
(2)
This bit is read-only and is automatically set by hardware.
1 = Program or erase sequence did not complete successfully
0 = Program or erase sequence completed normally
(2)
This bit is read-only and is automatically set by hardware.
1 = Low-voltage detected (possible data corruption, if WRERR is set)
0 = Voltage level is acceptable for programming
(2)
This bit is read-only and is automatically set, and cleared, by hardware.
1 = Low-voltage event active
0 = Low-voltage event NOT active
These bits are writable when WREN = 0.
1111 =Reserved
•
•
•
0111 = Reserved
0110 =No operation
0101 =Program Flash (PFM) erase operation: erases PFM, if all pages are not write-protected
0100 =Page erase operation: erases page selected by NVMADDR, if it is not write-protected
0011 =Row program operation: programs row selected by NVMADDR, if it is not write-protected
0010 =No operation
0001 =Word program operation: programs word selected by NVMADDR, if it is not write-protected
0000 = No operation
Bit
Note 1: This bit is cleared by any reset (i.e., POR, BOR, WDT, MCLR
, SWR).
2: This bit is only cleared by setting NVMOP = 0000, and initiating a Flash WR operation or a POR. Any
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-0NVMKEY<31:0>: Unlock Register bits
Bit
31/23/15/7
W-0W-0W-0W-0W-0W-0W-0W-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
NVMKEY<31:24>
W-0W-0W-0W-0W-0W-0W-0W-0
NVMKEY<23:16>
W-0W-0W-0W-0W-0W-0W-0W-0
NVMKEY<15:8>
W-0W-0W-0W-0W-0W-0W-0W-0
NVMKEY<7:0>
These bits are write-only, and read as ‘0’ on any read.
Bit
24/16/8/0
Note:This register is used as part of the unlock sequence to prevent inadvertent writes to the PFM.
Bit
Bit
26/18/10/2
Bit
25/17/9/1
REGISTER 6-3:NVMADDR: FLASH ADDRESS REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Bit
31/23/15/7
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
27/19/11/3
NVMADDR<31:24>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMADDR<23:16>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMADDR<15:8>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMADDR<7:0>
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-0NVMADDR<31:0>: Flash Address bits
Bulk/Chip/PFM Erase: Address is ignored
Page Erase: Address identifies the page to erase
Row Program: Address identifies the row to program
Word Program: Address identifies the word to program
Bit
24/16/8/0
DS60001290C-page 64Preliminary 2014 Microchip Technology Inc.
Page 65
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
REGISTER 6-4:NVMDATA: FLASH PROGRAM DATA REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-0NVMDATA<31:0>: Flash Programming Data bits
Note:The bits in this register are only reset by a Power-on Reset (POR).
Bit
31/23/15/7
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
NVMDATA<31:24>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMDATA<23:16>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMDATA<15:8>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMDATA<7:0>
Bit
24/16/8/0
REGISTER 6-5:NVMSRCADDR: SOURCE DATA ADDRESS REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-0NVMSRCADDR<31:0>: Source Data Address bits
Bit
31/23/15/7
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
NVMSRCADDR<31:24>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMSRCADDR<23:16>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMSRCADDR<15:8>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NVMSRCADDR<7:0>
The system physical address of the data to be programmed into the Flash when the NVMOP<3:0> bits
(NVMCON<3:0>) are set to perform row programming.
DS60001290C-page 66Preliminary 2014 Microchip Technology Inc.
Page 67
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
MCLR
VDD
VDD Rise
Detect
POR
Sleep or Idle
Brown-out
Reset
WDT
Time-out
Glitch Filter
BOR
Configuration
SYSRST
Software Reset
Power-up
Timer
Voltage
Enabled
Reset
WDTR
SWR
CMR
MCLR
Mismatch
Regulator
Brown-out
Reset
HVDR
VCAP
HVD Detect
and Reset
7.0RESETS
Note:This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100-pin
family of devices. It is not intended to be
a comprehensive reference source. To
complement the information in this data
sheet, refer to Section 7. “Resets”
(DS60001118) in the “PIC32 Family Reference Manual”, which
from the Microchip web site
(www.microchip.com/PIC32).
FIGURE 7-1:SYSTEM RESET BLOCK DIAGRAM
is available
The Reset module combines all Reset sources and
controls the device Master Reset signal, SYSRST. The
following is a list of device Reset sources:
• POR: Power-on Reset
• MCLR: Master Clear Reset pin
• SWR: Software Reset
• WDTR: Watchdog Timer Reset
• BOR: Brown-out Reset
• CMR: Configuration Mismatch Reset
• HVDR: High Voltage Detect Reset
A simplified block diagram of the Reset module is
illustrated in Figure 7-1.
DS60001290C-page 68Preliminary 2014 Microchip Technology Inc.
7.1Control Registers
TABLE 7-1:RESET SFR SUMMARY
(1)
Name
Register
(BF80_#)
Virtual Address
F600RCON
F610 RSWRST
Legend:— = unimplemented, read as ‘0’. Address offset values are shown in hexadecimal.
Note 1:The Reset value is dependent on the DEVCFGx Configuration bits and the type of reset.
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-1Unimplemented: Read as ‘0’
bit 0SWRST: Software Reset Trigger bit
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
————————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
U-0U-0U-0U-0U-0U-0U-0W-0, HC
———————SWRST
(1)
1 = Enable software Reset event
0 = No effect
Bit
24/16/8/0
(1)
Note 1: The system unlock sequence must be performed before the SWRST bit can be written. Refer to Section
6. “Oscillator” (DS60001112) in the “PIC32 Family Reference Manual” for details.
DS60001290C-page 70Preliminary 2014 Microchip Technology Inc.
Page 71
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
8.0OSCILLATOR
CONFIGURATION
Note:This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100-pin
family of devices. It is not intended to be
a comprehensive reference source. To
complement the information in this data
sheet, refer to Section 6. “Oscillator Configuration” (DS60001112) in the
“PIC32 Family Reference Manual”, which
is available from the Microchip web site
(www.microchip.com/PIC32).
The PIC32MX1XX/2XX/5XX 64/100-pin oscillator
system has the following modules and features:
• A Total of four external and internal oscillator
options as clock sources
• On-Chip PLL with user-selectable input divider,
multiplier and output divider to boost operating
frequency on select internal and external
oscillator sources
• On-Chip user-selectable divisor postscaler on
select oscillator sources
• Software-controllable switching between
various clock sources
• A Fail-Safe Clock Monitor (FSCM) that detects
clock failure and permits safe application recovery
or shutdown
• Dedicated On-Chip PLL for USB peripheral
A block diagram of the oscillator system is provided in
Notes: 1. A series resistor, RS, may be required for AT strip cut crystals or eliminate clipping. Alternately, to increase oscillator circuit gain, add a
parallel resistor, R
P, with a value of 1 MΩ.
2. The internal feedback resistor, R
F, is typically in the range of 2 MΩ to 10 MΩ.
3. Refer to Section 6. “Oscillator Configuration” (DS60001112) in the “PIC32 Family Reference Manual” for help in determining the
best oscillator components.
4. PBCLK out is available on the OSC2 pin in certain clock modes.
5. USB PLL is available on PIC32MX2XX/5XX devices only.
Timer1, RTC C
Clock Control Logic
Fail-Safe
Clock
Monitor
FSCM INT
FSCM Event
COSC<2:0>
NOSC<2:0>
OSWEN
FSCMEN<1:0>
PLL
Secondary Oscillator (SOSC)
SOSCEN and FSOSCEN
SOSCO
SOSCI
Primary Oscillator
P
OSC (XT, HS, EC)
CPU and Select Peripherals
Peripherals
FRCDIV<2:0>
WDT, PWRT
8 MHz typical
FRC
31.25 kHz typical
FRC
Oscillator
LPRC
Oscillator
SOSC
LPRC
FRCDIV
TUN<5:0>
div 16
Postscaler
FPLLIDIV<2:0>
PBDIV<1:0>
FRC/16
Postscaler
COSC<2:0>
FIN
div x
div y
PLLODIV<2:0>
div x
32.768 kHz
PLLMULT<2:0>
PBCLK (T
PB)
UF
IN= 4 MHz
PLL x24
USB Clock (48 MHz)
div 2
UPLLEN
UFRCEN
div x
UPLLIDIV<2:0>
UFIN
4 MHz ≤ FIN ≤ 5 MHz
C1
(3)
C2
(3)
XTAL
R
S
(1)
Enable
OSC2
(4)
OSC1
R
F
(2)
To Internal
Logic
USB PLL
(5)
(POSC)
div 2
To A D C
SYSCLK
REFCLKI
REFCLKO
OE
To S P I
ROSEL<3:0>
POSC
FRC
LPRC
S
OSC
PBCLK
SYSCLK
XTPLL, HSPLL,
ECPLL, FRCPLL
System PLL
2N
M
512
----------+
×
RODIV<14:0>
(N)
ROTRIM<8:0>
(M)
R
P
(1)
÷
96 MHz
FV
CO
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
FIGURE 8-1:PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY CLOCK DIAGRAM
DS60001290C-page 72Preliminary 2014 Microchip Technology Inc.
Page 73
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
FPLLIDIVXVCOFPLLODIV
SYSCLK
FPLLMULT
FIN:
(1)
3.92 MHz ≤ FIN ≤ 5 ΜΗz
FSYS:
(1)
60 MHz ≤ FSYS ≤ 120 ΜΗz
SYSCLK:
(1)
234,375 Hz ≤ SYSCLK
≤
50 MHz
Divide By:
1,2,3,4,5,6,10,12
Multiply By:
15,16,17,18,19,
20,21,22,23,24
Divide By:
1,2,4,8,16,32,64,256
(Crystal, External Clock
Or Internal RC)
Note 1: This frequency range must be satisfied at all times if the PLL is enabled and software is updating the
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:With the exception of those noted, all registers in this table have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 11.2
“CLR, SET, and INV Registers” for more information.
2:Reset values are dependent on the DEVCFGx Configuration bits and the type of reset.
3:This bit is only available on devices with a USB module.
REGISTER 8-1:OSCCON: OSCILLATOR CONTROL REGISTER (CONTINUED)
bit 18-16 PLLMULT<2:0>: Phase-Locked Loop (PLL) Multiplier bits
111 = Clock is multiplied by 24
110 = Clock is multiplied by 21
101 = Clock is multiplied by 20
100 = Clock is multiplied by 19
011 = Clock is multiplied by 18
010 = Clock is multiplied by 17
001 = Clock is multiplied by 16
000 = Clock is multiplied by 15
bit 15Unimplemented: Read as ‘0’
bit 14-12 COSC<2:0>: Current Oscillator Selection bits
111 = Internal Fast RC (FRC) Oscillator divided by OSCCON<FRCDIV> bits
110 = Internal Fast RC (FRC) Oscillator divided by 16
101 = Internal Low-Power RC (LPRC) Oscillator
100 = Secondary Oscillator (S
011 = Primary Oscillator (P
010 = Primary Oscillator (POSC) (XT, HS or EC)
001 = Internal Fast RC Oscillator with PLL module via Postscaler (FRCPLL)
000 = Internal Fast RC (FRC) Oscillator
bit 11Unimplemented: Read as ‘0’
bit 10-8NOSC<2:0>: New Oscillator Selection bits
111 = Internal Fast RC Oscillator (FRC) divided by OSCCON<FRCDIV> bits
110 = Internal Fast RC Oscillator (FRC) divided by 16
101 = Internal Low-Power RC (LPRC) Oscillator
100 = Secondary Oscillator (S
011 = Primary Oscillator with PLL module (XTPLL, HSPLL or ECPLL)
010 = Primary Oscillator (XT, HS or EC)
001 = Internal Fast Internal RC Oscillator with PLL module via Postscaler (FRCPLL)
000 = Internal Fast Internal RC Oscillator (FRC)
On Reset, these bits are set to the value of the FNOSC Configuration bits (DEVCFG1<2:0>).
bit 7CLKLOCK: Clock Selection Lock Enable bit
If clock switching and monitoring is
1 = Clock and PLL selections are locked
0 = Clock and PLL selections are not locked and may be modified
OSC)
OSC) with PLL module (XTPLL, HSPLL or ECPLL)
OSC)
disabled (FCKSM<1:0> = 1x):
If clock switching and monitoring is enabled (FCKSM<1:0> =
Clock and PLL selections are never locked and may be modified.
bit 6ULOCK: USB PLL Lock Status bit
1 = Indicates that the USB PLL module is in lock or USB PLL module start-up timer is satisfied
0 = Indicates that the USB PLL module is out of lock or USB PLL module start-up timer is in progress or
USB PLL is disabled
bit 5SLOCK: PLL Lock Status bit
1 = PLL module is in lock or PLL module start-up timer is satisfied
0 = PLL module is out of lock, PLL start-up timer is running or PLL is disabled
bit 4SLPEN: Sleep Mode Enable bit
1 = Device will enter Sleep mode when a WAIT instruction is executed
0 = Device will enter Idle mode when a WAIT instruction is executed
bit 3CF: Clock Fail Detect bit
1 = FSCM has detected a clock failure
0 = No clock failure has been detected
Note 1: This bit is available on PIC32MX2XX/5XX devices only.
Note:Writes to this register require an unlock sequence. Refer to Sectio n 6. “Oscillator” (DS60001112) in the
“PIC32 Family Reference Manual” for details.
DS60001290C-page 76Preliminary 2014 Microchip Technology Inc.
(1)
0x):
Page 77
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
REGISTER 8-1:OSCCON: OSCILLATOR CONTROL REGISTER (CONTINUED)
bit 2UFRCEN: USB FRC Clock Enable bit
1 = Enable FRC as the clock source for the USB clock source
0 = Use the Primary Oscillator or USB PLL as the USB clock source
bit 14Unimplemented: Read as ‘0’
bit 13SIDL: Peripheral Stop in Idle Mode bit
1 = Discontinue module operation when device enters Idle mode
0 = Continue module operation in Idle mode
bit 12OE: Reference Clock Output Enable bit
1 = Reference clock is driven out on REFCLKO pin
0 = Reference clock is not driven out on REFCLKO pin
bit 11RSLP: Reference Oscillator Module Run in Sleep bit
1 = Reference Oscillator Module output continues to run in Sleep
0 = Reference Oscillator Module output is disabled in Sleep
bit 10Unimplemented: Read as ‘0’
bit 9DIVSWEN: Divider Switch Enable bit
1 = Divider switch is in progress
0 = Divider switch is complete
bit 8ACTIVE: Reference Clock Request Status bit
1 = Reference clock request is active
0 = Reference clock request is not active
bit 7-4Unimplemented: Read as ‘0’
(2)
Note 1: The ROSEL and RODIV bits should not be written while the ACTIVE bit is ‘1’, as undefined behavior may
result.
2: This bit is ignored when the ROSEL<3:0> bits = 0000 or 0001.
3: While the ON bit is set to ‘1’, writes to these bits do not take effect until the DIVSWEN bit is also set to ‘1’.
REGISTER 8-3:REFOCON: REFERENCE OSCILLATOR CONTROL REGISTER (CONTINUED)
bit 3-0ROSEL<3:0>: Reference Clock Source Select bits
1111 = Reserved; do not use
•
•
•
1001 = Reserved; do not use
1000 = REFCLKI
0111 = System PLL output
0110 = USB PLL output
0101 =S
0100 =LPRC
0011 =FRC
0010 =P
0001 = PBCLK
0000 = SYSCLK
Note 1: The ROSEL and RODIV bits should not be written while the ACTIVE bit is ‘1’, as undefined behavior may
result.
2: This bit is ignored when the ROSEL<3:0> bits = 0000 or 0001.
3: While the ON bit is set to ‘1’, writes to these bits do not take effect until the DIVSWEN bit is also set to ‘1’.
OSC
OSC
(1)
DS60001290C-page 80Preliminary 2014 Microchip Technology Inc.
Page 81
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
REGISTER 8-4:REFOTRIM: REFERENCE OSCILLATOR TRIM REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:y = Value set from Configuration bits on POR
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-23 ROTRIM<8:0>: Reference Oscillator Trim bits
bit 22-0Unimplemented: Read as ‘0’
Bit
31/23/15/7
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
R/W-0U-0U-0U-0U-0U-0U-0U-0
ROTRIM<0>———————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
111111111 = 511/512 divisor added to RODIV value
111111110 = 510/512 divisor added to RODIV value
•
•
•
100000000 = 256/512 divisor added to RODIV value
•
•
•
000000010 = 2/512 divisor added to RODIV value
000000001 = 1/512 divisor added to RODIV value
000000000 = 0/512 divisor added to RODIV value
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
ROTRIM<8:1>
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
24/16/8/0
Bit
Note:While the ON bit (REFOCON<15>) is ‘1’, writes to this register do not take effect until the DIVSWEN bit is
DS60001290C-page 82Preliminary 2014 Microchip Technology Inc.
Page 83
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
Address Decoder
Channel 0 Control
Channel 1 Control
Channel n Control
Global Control
(DMACON)
Bus Interface
Channel Priority
Arbitration
S
E
L
S
E
L
Y
I
0
I
1
I
2
I
n
System IRQINT Controller
Device Bus + Bus Arbitration
Peripheral Bus
9.0DIRECT MEMORY ACCESS
(DMA) CONTROLLER
Note:This data sheet summarizes the features
of the PIC32MX1XX/2XX/5XX 64/100-pin
family of devices. It is not intended to be
a comprehensive reference source. To
complement the information in this data
sheet, refer to Section 31. “Direct
Memory Access (DMA) Controller”
(DS60001117) in the “PIC32 Family
Reference Manual”
from the Microchip web site
(www.microchip.com/PIC32).
The PIC32 Direct Memory Access (DMA) controller is a
bus master module useful for data transfers between
different devices without CPU intervention. The source
and destination of a DMA transfer can be any of the
memory mapped modules existent in the PIC32 (such
as Peripheral Bus (PBUS) devices: SPI, UART, PMP,
etc.) or memory itself.
Following are some of the key features of the DMA
controller module:
• Four identical channels, each featuring:
- Auto-increment source and destination
address registers
- Source and destination pointers
- Memory to memory and memory to
peripheral transfers
• Automatic word-size detection:
- Transfer granularity, down to byte level
- Bytes need not be word-aligned at source
and destination
, which is available
• Fixed priority channel arbitration
• Flexible DMA channel operating modes:
- Manual (software) or automatic (interrupt)
DMA requests
- One-Shot or Auto-Repeat Block Transfer
modes
- Channel-to-channel chaining
• Flexible DMA requests:
- A DMA request can be selected from any of
the peripheral interrupt sources
- Each channel can select any (appropriate)
observable interrupt as its DMA request
source
- A DMA transfer abort can be selected from
any of the peripheral interrupt sources
- Pattern (data) match transfer termination
• Multiple DMA channel status interrupts:
- DMA channel block transfer complete
- Source empty or half empty
- Destination full or half full
- DMA transfer aborted due to an external
event
- Invalid DMA address generated
• DMA debug support features:
- Most recent address accessed by a DMA
channel
- Most recent DMA channel to transfer data
• CRC Generation module:
- CRC module can be assigned to any of the
available channels
DS60001290C-page 84Preliminary 2014 Microchip Technology Inc.
9.1Control Registers
TABLE 9-1:DMA GLOBAL REGISTER MAP
Bits
(1)
Name
Register
(BF88_#)
Virtual Address
3000 DMACON
3010 DMASTAT
3020 DMAADDR
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table have corresponding CLR, SET and INV registers at its virtual address, plus an offset of 0x4, 0x8 and 0xC, respectively. See Section 11.2 “CLR, SET, and INV Registers” for
more information.
TABLE 9-2:DMA CRC REGISTER MAP
(1)
Name
Register
(BF88_#)
Virtual Address
3030 DCRCCON
3040 DCRCDATA
3050 DCRCXOR
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 11.2 “CLR, SET, and INV Registers” for
TABLE 9-3:DMA CHANNEL 0 THROUGH CHANNEL 3 REGISTER MAP
Bits
(1)
Name
Register
(BF88_#)
Virtual Address
3060 DCH0CON
3070 DCH0ECON
3080 DCH0INT
3090 DCH0SSA
30A0 DCH0DSA
30B0 DCH0SSIZ
30C0 DCH0DSIZ
30D0 DCH0SPTR
30E0 DCH0DPTR
30F0 DCH0CSIZ
3100 DCH0CPTR
3110 DCH0DAT
3120 DCH1CON
3130 DCH1ECON
3140 DCH1INT
3150 DCH1SSA
3160 DCH1DSA
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 11.2 “CLR, SET, and INV Registers” for
DS60001290C-page 86Preliminary 2014 Microchip Technology Inc.
TABLE 9-3:DMA CHANNEL 0 THROUGH CHANNEL 3 REGISTER MAP (CONTINUED)
Bits
(1)
Name
Register
(BF88_#)
Virtual Address
3170 DCH1SSIZ
3180 DCH1DSIZ
3190 DCH1SPTR
31A0 DCH1DPTR
31B0 DCH1CSIZ
31C0 DCH1CPTR
31D0 DCH1DAT
31E0 DCH2CON
31F0 DCH2ECON
3200 DCH2INT
3210 DCH2SSA
3220 DCH2DSA
3230 DCH2SSIZ
3240 DCH2DSIZ
3250 DCH2SPTR
3260 DCH2DPTR
3270 DCH2CSIZ
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 11.2 “CLR, SET, and INV Registers” for
TABLE 9-3:DMA CHANNEL 0 THROUGH CHANNEL 3 REGISTER MAP (CONTINUED)
Bits
(1)
Name
Register
(BF88_#)
Virtual Address
3280 DCH2CPTR
3290 DCH2DAT
32A0 DCH3CON
32B0 DCH3ECON
32C0 DCH3INT
32D0 DCH3SSA
32E0 DCH3DSA
32F0 DCH3SSIZ
3300 DCH3DSIZ
3310 DCH3SPTR
3320 DCH3DPTR
3330 DCH3CSIZ
3340 DCH3CPTR
3350 DCH3DAT
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 11.2 “CLR, SET, and INV Registers” for
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-30 Unimplemented: Read as ‘0’
bit 29-28 BYTO<1:0>: CRC Byte Order Selection bits
bit 27WBO: CRC Write Byte Order Selection bit
bit 26-25 Unimplemented: Read as ‘0’
bit 24BITO: CRC Bit Order Selection bit
Bit
31/23/15/7
U-0U-0R/W-0R/W-0R/W-0U-0U-0R/W-0
——BYTO<1:0>WBO
U-0U-0U-0U-0U-0U-0U-0U-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
(1)
Bit
26/18/10/2
Bit
25/17/9/1
24/16/8/0
——BITO
————————
U-0U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0
———PLEN<4:0>
R/W-0R/W-0R/W-0U-0U-0R/W-0R/W-0R/W-0
CRCENCRCAPP
(1)
CRCTYP——CRCCH<2:0>
11 = Endian byte swap on half-word boundaries (i.e., source half-word order with reverse source byte order
per half-word)
10 = Swap half-words on word boundaries (i.e., reverse source half-word order with source byte order per
half-word)
01 = Endian byte swap on word boundaries (i.e., reverse source byte order)
00 = No swapping (i.e., source byte order)
(1)
1 = Source data is written to the destination re-ordered as defined by BYTO<1:0>
0 = Source data is written to the destination unaltered
(1
When CRCTYP (DCRCCON<15>) = 1 (CRC module is in IP Header mode):
1 = The IP header checksum is calculated Least Significant bit (LSb) first (i.e., reflected)
0 = The IP header checksum is calculated Most Significant bit (MSb) first (i.e., not reflected)
Bit
When CRCTYP (DCRCCON<15>) =
0 (CRC module is in LFSR mode):
1 = The LFSR CRC is calculated Least Significant bit first (i.e., reflected)
0 = The LFSR CRC is calculated Most Significant bit first (i.e., not reflected)
bit 23-13 Unimplemented: Read as ‘0’
bit 12-8PLEN<4:0>: Polynomial Length bits
(1)
When CRCTYP (DCRCCON<15>) = 1 (CRC module is in IP Header mode):
These bits are unused.
When CRCTYP (DCRCCON<15>) =
0 (CRC module is in LFSR mode):
Denotes the length of the polynomial – 1.
bit 7CRCEN: CRC Enable bit
1 = CRC module is enabled and channel transfers are routed through the CRC module
0 = CRC module is disabled and channel transfers proceed normally
Note 1: When WBO = 1, unaligned transfers are not supported and the CRCAPP bit cannot be set.
DS60001290C-page 90Preliminary 2014 Microchip Technology Inc.
Page 91
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
REGISTER 9-4:DCRCCON: DMA CRC CONTROL REGISTER (CONTINUED)
bit 6CRCAPP: CRC Append Mode bit
1 = The DMA transfers data from the source into the CRC but NOT to the destination. When a block transfer
completes the DMA writes the calculated CRC value to the location given by CHxDSA
0 = The DMA transfers data from the source through the CRC obeying WBO as it writes the data to the
destination
bit 5CRCTYP: CRC Type Selection bit
1 = The CRC module will calculate an IP header checksum
0 = The CRC module will calculate a LFSR CRC
bit 4-3Unimplemented: Read as ‘0’
bit 2-0CRCCH<2:0>: CRC Channel Select bits
111 = CRC is assigned to Channel 7
110 = CRC is assigned to Channel 6
101 = CRC is assigned to Channel 5
100 = CRC is assigned to Channel 4
011 = CRC is assigned to Channel 3
010 = CRC is assigned to Channel 2
001 = CRC is assigned to Channel 1
000 = CRC is assigned to Channel 0
Note 1: When WBO = 1, unaligned transfers are not supported and the CRCAPP bit cannot be set.
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-0 DCRCDATA<31:0>: CRC Data Register bits
Bit
31/23/15/7
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
24/16/8/0
DCRCDATA<31:24>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DCRCDATA<23:16>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DCRCDATA<15:8>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DCRCDATA<7:0>
Writing to this register will seed the CRC generator. Reading from this register will return the current value of
the CRC. Bits greater than PLEN will return ‘0’ on any read.
Bit
When CRCTYP (DCRCCON<15>) =
1 (CRC module is in IP Header mode):
Only the lower 16 bits contain IP header checksum information. The upper 16 bits are always ‘0’. Data written
to this register is converted and read back in 1’s complement form (i.e., current IP header checksum value).
When CRCTYP (DCRCCON<15>) = 0 (CRC module is in LFSR mode):
Bits greater than PLEN will return ‘0’ on any read.
REGISTER 9-6:DCRCXOR: DMA CRCXOR ENABLE REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
Bit
31/23/15/7
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
DCRCXOR<31:24>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DCRCXOR<23:16>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DCRCXOR<15:8>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DCRCXOR<7:0>
24/16/8/0
Bit
bit 31-0 DCRCXOR<31:0>: CRC XOR Register bits
When CRCTYP (DCRCCON<15>) = 1 (CRC module is in IP Header mode):
This register is unused.
When CRCTYP (DCRCCON<15>) = 0 (CRC module is in LFSR mode):
1 = Enable the XOR input to the Shift register
0 = Disable the XOR input to the Shift register; data is shifted in directly from the previous stage in
the register
DS60001290C-page 92Preliminary 2014 Microchip Technology Inc.
Page 93
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
REGISTER 9-7:DCHxCON: DMA CHANNEL ‘x’ CONTROL REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-16 Unimplemented: Read as ‘0’
bit 15CHBUSY: Channel Busy bit
bit 14-9Unimplemented: Read as ‘0’
bit 8CHCHNS: Chain Channel Selection bit
bit 7CHEN: Channel Enable bit
bit 6CHAED: Channel Allow Events If Disabled bit
bit CHCHN: Channel Chain Enable bit
bit 4CHAEN: Channel Automatic Enable bit
bit 3Unimplemented: Read as ‘0’
bit 2CHEDET: Channel Event Detected bit
bit 1-0CHPRI<1:0>: Channel Priority bits
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
24/16/8/0
————————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
R/W-0U-0U-0U-0U-0U-0U-0R/W-0
CHBUSY————— —CHCHNS
R/W-0R/W-0R/W-0R/W-0U-0R-0R/W-0R/W-0
(2)
CHEN
CHAEDCHCHNCHAEN—CHEDETCHPRI<1:0>
1 = Channel is active or has been enabled
0 = Channel is inactive or has been disabled
(1)
1 = Chain to channel lower in natural priority (CH1 will be enabled by CH2 transfer complete)
0 = Chain to channel higher in natural priority (CH1 will be enabled by CH0 transfer complete)
(2)
1 = Channel is enabled
0 = Channel is disabled
1 = Channel start/abort events will be registered, even if the channel is disabled
0 = Channel start/abort events will be ignored if the channel is disabled
1 = Allow channel to be chained
0 = Do not allow channel to be chained
1 = Channel is continuously enabled, and not automatically disabled after a block transfer is complete
0 = Channel is disabled on block transfer complete
1 = An event has been detected
0 = No events have been detected
11 = Channel has priority 3 (highest)
10 = Channel has priority 2
01 = Channel has priority 1
00 = Channel has priority 0
Bit
(1)
Note 1: The chain selection bit takes effect when chaining is enabled (i.e., CHCHN = 1).
2: When the channel is suspended by clearing this bit, the user application should poll the CHBUSY bit (if
available on the device variant) to see when the channel is suspended, as it may take some clock cycles
to complete a current transaction before the channel is suspended.
REGISTER 9-8:DCHxECON: DMA CHANNEL ‘x’ EVENT CONTROL REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:S = Settable bit
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
24/16/8/0
————————
R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
CHAIRQ<7:0>
R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
CHSIRQ<7:0>
S-0S-0R/W-0R/W-0R/W-0U-0U-0U-0
(1)
(1)
CFORCECABORTPATENSIRQENAIRQEN———
Bit
bit 31-24 Unimplemented: Read as ‘0’
bit 23-16 CHAIRQ<7:0>: Channel Transfer Abort IRQ bits
11111111 = Interrupt 255 will abort any transfers in progress and set CHAIF flag
•
•
•
00000001 = Interrupt 1 will abort any transfers in progress and set CHAIF flag
00000000 = Interrupt 0 will abort any transfers in progress and set CHAIF flag
bit 15-8CHSIRQ<7:0>: Channel Transfer Start IRQ bits
11111111 = Interrupt 255 will initiate a DMA transfer
•
•
•
00000001 = Interrupt 1 will initiate a DMA transfer
00000000 = Interrupt 0 will initiate a DMA transfer
bit 7CFORCE: DMA Forced Transfer bit
1 = A DMA transfer is forced to begin when this bit is written to a ‘1’
0 = This bit always reads ‘0’
bit 6CABORT: DMA Abort Transfer bit
1 = A DMA transfer is aborted when this bit is written to a ‘1’
0 = This bit always reads ‘0’
bit 5PATEN: Channel Pattern Match Abort Enable bit
1 = Abort transfer and clear CHEN on pattern match
0 = Pattern match is disabled
bit 4SIRQEN: Channel Start IRQ Enable bit
1 = Start channel cell transfer if an interrupt matching CHSIRQ occurs
0 = Interrupt number CHSIRQ is ignored and does not start a transfer
bit 3AIRQEN: Channel Abort IRQ Enable bit
1 = Channel transfer is aborted if an interrupt matching CHAIRQ occurs
0 = Interrupt number CHAIRQ is ignored and does not terminate a transfer
bit 2-0Unimplemented: Read as ‘0’
(1)
(1)
Note 1: See Table 5-1: “Interrupt IRQ, Vector and Bit Location” for the list of available interrupt IRQ sources.
DS60001290C-page 94Preliminary 2014 Microchip Technology Inc.
Page 95
PIC32MX1XX/2XX/5XX 64/100-PIN FAMILY
REGISTER 9-9:DCHxINT: DMA CHANNEL ‘x’ INTERRUPT CONTROL REGISTER
Bit
Range
31:24
23:16
15:8
7:0
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-24 Unimplemented: Read as ‘0’
bit 23CHSDIE: Channel Source Done Interrupt Enable bit
bit 22CHSHIE: Channel Source Half Empty Interrupt Enable bit
bit 21CHDDIE: Channel Destination Done Interrupt Enable bit
bit 20CHDHIE: Channel Destination Half Full Interrupt Enable bit
bit 19CHBCIE: Channel Block Transfer Complete Interrupt Enable bit
bit 18CHCCIE: Channel Cell Transfer Complete Interrupt Enable bit
bit 17CHTAIE: Channel Transfer Abort Interrupt Enable bit
bit 16CHERIE: Channel Address Error Interrupt Enable bit
bit 15-8Unimplemented: Read as ‘0’
bit 7CHSDIF: Channel Source Done Interrupt Flag bit
bit 6CHSHIF: Channel Source Half Empty Interrupt Flag bit
bit 5CHDDIF: Channel Destination Done Interrupt Flag bit
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
————————
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHSDIECHSHIECHDDIECHDHIECHBCIECHCCIECHTAIECHERIE
U-0U-0U-0U-0U-0U-0U-0U-0
————————
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHSDIFCHSHIFCHDDIFCHDHIFCHBCIFCHCCIFCHTAIFCHERIF
1 = Interrupt is enabled
0 = Interrupt is disabled
1 = Interrupt is enabled
0 = Interrupt is disabled
1 = Interrupt is enabled
0 = Interrupt is disabled
1 = Interrupt is enabled
0 = Interrupt is disabled
1 = Interrupt is enabled
0 = Interrupt is disabled
1 = Interrupt is enabled
0 = Interrupt is disabled
1 = Interrupt is enabled
0 = Interrupt is disabled
1 = Interrupt is enabled
0 = Interrupt is disabled
1 = Channel Source Pointer has reached end of source (CHSPTR = CHSSIZ)
0 = No interrupt is pending
1 = Channel Source Pointer has reached midpoint of source (CHSPTR = CHSSIZ/2)
0 = No interrupt is pending
1 = Channel Destination Pointer has reached end of destination (CHDPTR = CHDSIZ)
0 = No interrupt is pending
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown
bit 31-16 Unimplemented: Read as ‘0’
bit 15-0CHCSIZ<15:0>: Channel Cell-Size bits
Bit
31/23/15/7
U-0U-0U-0U-0U-0U-0U-0U-0
Bit
30/22/14/6
Bit
29/21/13/5
Bit
28/20/12/4
Bit
27/19/11/3
Bit
26/18/10/2
Bit
25/17/9/1
————————
U-0U-0U-0U-0U-0U-0U-0U-0
————————
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHCSIZ<15:8>
R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHCSIZ<7:0>
1111111111111111 = 65,535 bytes transferred on an event
•
•
•
0000000000000010 = 2 bytes transferred on an event
0000000000000001= 1 byte transferred on an event
0000000000000000 = 65,536 bytes transferred on an event