Note the following details of the code protection feature on Microchip devices:
•Microchip products meet the specification contained in their particular Microchip Data Sheet.
•Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•Microchip is willing to work with the customer who is concerned about the integrity of their code.
•Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication regarding device
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WHETHER EXPRESS OR
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,
QUALITY, PERFORMANCE, MERCHANTABILITY OR
FITNESS FOR PURPOSE. Microchip disclaims all liability
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at
the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless Microchip from any and all damages, claims,
suits, or expenses resulting from such use. No licenses are
conveyed, implicitly or otherwise, under any Microchip
intellectual property rights.
Trademarks
The Microchip name and logo, the Microchip logo, dsPIC,
KEELOQ, KEELOQ logo, MPLAB, PIC, PICmicro, PICSTART,
PIC32 logo, rfPIC and UNI/O are registered trademarks of
Microchip Technology Incorporated in the U.S.A. and other
countries.
FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor,
MXDEV, MXLAB, SEEVAL and The Embedded Control
Solutions Company are registered trademarks of Microchip
Technology Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, CodeGuard,
dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial
Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified
logo, MPLIB, MPLINK, mTouch, Omniscient Code
Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,
PICtail, REAL ICE, rfLAB, Select Mode, Total Endurance,
TSHARC, UniWinDriver, WiperLock and ZENA are
trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
All other trademarks mentioned herein are property of their
respective companies.
Microchip received ISO/TS-16949:2002 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
T empe, Arizona; Gresham, Oregon and design centers in California
and India. The Company’s quality system processes and procedures
are for its PIC
devices, Serial EEPROMs, microperipherals, nonvolatile memo ry and
analog products. In addition, Microchip’s quality system for the desig n
and manufacture of development systems is ISO 9001:2000 certified.
2.0 Guidelines for Getting Started with 32-bit Microcontrollers........................................................................................................ 41
5.0 Flash Program Memory............................................................................................................................................................ 113
10.0 Direct Memory Access (DMA) Controller ................................................................................................................................. 125
11.0 USB On-The-Go (OTG)............................................................................................................................................................ 127
27.0 Power-Saving Features ........................................................................................................................................................... 159
28.0 Special Features ...................................................................................................................................................................... 161
29.0 Instruction Set .......................................................................................................................................................................... 175
30.0 Development Support............................................................................................................................................................... 177
The Microchip Web Site..................................................................................................................................................................... 251
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
sheet to (480) 792-4150. We welcome your feedback.
Most Current Data Sheet
To obtain the most up-to-date version of this data sheet, please register at our Worldwide Web site at:
http://www.microchip.com
Y ou can determine the version of a data sheet by examining its literature number found on the bottom outside corner
of any page. The last character of the literature number is the version number, (e.g., DS30000A is version A of document DS30000).
Errata
An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may
exist for current devices. As device/documentation issues become known to us, we will publish an errata sheet. The
errata will specify the revision of silicon and revision of document to which it applies.
To determine if an errata sheet exists for a particular device, please check with one of the following:
• Microchip’s Worldwide Web site;
• 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.
docerrors@microchip.com or fax the Reader Re sponse Form in th e back of this data
http://www.microchip.com
Customer Notification System
Register on our web site at
www.microchip.com to receive the most current information on all of our products.
Note 1: Some features are not available on all device variant s.
2: BOR functionality is provided when the on-board voltage regulator is enabled.
UART1-6
Comparators
PORTA
PORTD
PORTE
PORTF
PORTG
PORTB
CN1-22
JTAG
Priority
DMAC
ICD
MIPS32® M4K
®
ISDS
EJTAGINT
Bus Matrix
Prefetch
Data RAM
Peripheral Bridge
128
128-bit Wide
Flash
32
32 32
32
32
Peripheral Bus Clocked by PBCLK
Program Flash Memory
Controller
32
Module
32
32
Interrupt
Controller
BSCAN
PORTC
PMP
I2C1-5
SPI1-4
IC1-5
PWM
OC1-5
OSC1/CLKI
OSC2/CLKO
VDD, VSS
Timing
Generation
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/VCORE
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
CAN1, CAN2
ETHERNET
32
32
CPU Core
1.0DEVICE OVERVIEW
Note 1: This data sheet summarizes the features
of the PIC32MX5XX/6XX/7XX 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 site
(
www.microchip.com/PIC32).
2: Some registers and associated bits
described in this section may not be
available on all devices. Refer to
Section 4.0 “Memory Organization” in
this data sheet for device-specific register
and bit information.
FIGURE 1-1:BLOCK DIAGRAM
(1,2)
This document contains device-specific information for
PIC32MX5XX/6XX/7XX devices.
Figure 1-1 illustrates a general block diagram of the
core and peripheral modules in the
PIC32MX5XX/6XX/7XX family of devices.
Table 1-1 lists the functions of the various pins shown
SCK34948K9I/OSTSynchronous serial clock input/output for SPI3
SDI35052K11ISTSPI3 data in
SDO35153J10O—SPI3 data out
SS3
SCK2410E3I/OSTSynchronous serial clock input/output for SPI2
SDI2511F4ISTSPI2 data in
SDO2612F2O—SPI2 data out
SS2
SCK42939L6I/OSTSynchronous serial clock input/output for SPI4
SDI43149L10ISTSPI4 data in
SDO43250L11O—SPI4 data out
SS4
SCL14466E11I/OSTSynchronous serial clock input/output for I2C1
SDA14367E8I/OSTSynchronous serial data input/output for I2C1
SCL35153J10I/OSTSynchronous serial clock input/output for I2C3
SDA35052K11I/OSTSynchronous serial data input/output for I2C3
SCL2—58H11I/OSTSynchronous serial clock input/output for I2C2
SDA2—59G10I/OSTSynchronous serial data input/output for I2C2
SCL4612F2I/OSTSynchronous serial clock input/output for I2C4
SDA4511F4I/OSTSynchronous serial data input/output for I2C4
SCL53250L11I/OSTSynchronous serial clock input/output for I2C5
SDA53149L10I/OSTSynchronous serial data input/output for I2C5
TMS2317G3ISTJTAG Test mode select pin
TCK2738J6ISTJTAG test clock input pin
TDI2860G11ISTJTAG test data input pin
TDO2461G9O—JTAG test data output pin
RTCC 4268E9O—Real-Time Clock alarm output
REF-1528L2IAnalogComparator Voltage Reference (low)
D+3757H10I/OAnalogUSB D+
D-3656J11I/OAnalog USB DUSBID3351K10ISTUSB OTG ID detect
C1RX5887B6ISTCAN1 bus receive pin
C1TX5988A6O—CAN1 bus transmit pin
AC1RX3240K6ISTAlternate CAN1 bus receive pin
AC1TX3139L6O—Alternate CAN1 bus transmit pin
C2RX2990A5ISTCAN2 bus receive pin
C2TX2189E6O—CAN2 bus transmit pin
AC2RX—8E21STAlternate CAN2 bus receive pin
AC2TX—7E4O—Alternate CAN2 bus transmit pin
ERXD06141J7ISTEthernet Receive Data 0
ERXD16042L7ISTEthernet Receive Data 1
ERXD25943K7ISTEthernet Receive Data 2
ERXD35844L8ISTEthernet Receive Data 3
ERXERR6435J5ISTEthernet receive error input
ERXDV6212F2ISTEthernet receive data valid
ECRSDV6212F2ISTEthernet carrier sense data valid
ERXCLK6314F3ISTEthernet receive clock
EREFCLK6314F3ISTEthernet reference clock
ETXD0288A6O—Ethernet Transmit Data 0
ETXD1387B6O—Ethernet Transmit Data 1
ETXD24379A9O—Ethernet Transmit Dat a 2
ETXD34280D8O—Ethernet Transmit Data 3
ETXERR5489E6O—Ethernet transmit error
ETXEN183D7O—Ethernet transmit enable
ETXCLK5584C7ISTEthernet transmit clock
ECOL4410E3ISTEthernet collision detect
ECRS4511F4ISTEthernet carrier sense
EMDC3071C11O—Ethernet management data clock
EMDIO4968E9I/O—Ethernet management data
AERXD04318G1ISTAlternate Ethernet Receive Data 0
AERXD14219G2ISTAlternate Ethernet Receive Data 1
AERXD2—28L2ISTAlternate Ethernet Receive Data 2
AERXD3—29K3ISTAlternate Ethernet Receive Data 3
AERXERR551B2ISTAlternate Ethernet receive error input
AERXDV—12F2ISTAlternate Ethernet receive data valid
AECRSDV4412F2ISTAlternate Ethernet carrier sense data valid
AERXCLK—14F3ISTAlternate Ethernet receive clock
AEREFCLK4514F3ISTAlternate Ethernet reference clock
AETXD05947L9O—Alternate Ethernet Transmit Data 0
Legend: CMOS = CMOS comp atible input or outputAnalog = Analog inputP = Power
ST = Schmitt Trigger input with CMOS levelsO = OutputI = Input
TTL = TTL input buffer
Note 1:Pin numbers are provided for reference only. See the “
2: See
Section 24.0 “Ethernet Controller” for more information.
(1)
121-Pin
XBGA
Pin
Type
Buffer
Type
Description
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
Pin Diagrams” section for device pin availability.
VREF+1629K3IAnalogAnalog voltage reference (high) input
VREF-1528L2IAnalogAnalog vo ltage reference (low) input
Legend: CMOS = CMOS comp atible input or outputAnalog = Analog inputP = Power
ST = Schmitt Trigger input with CMOS levelsO = OutputI = Input
TTL = TTL input buffer
Note 1:Pin numbers are provided for reference only. See the “
2: See Section 24.0 “Ethernet Controller” for more information.
(1)
121-Pin
XBGA
A7, C2,
C9, E5,
K8, F8,
G5, H4, H6
A8, B10,
D4, D5,
E7, F5,
F10, G6,
G7, H3
Pin
Type
Buffer
Type
Description
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
(2)
Communication Channel 1
Communication Channel 1
Communication Channel 2
Communication Channel 2
active-low Reset to the device.
must be connected at all times.
P—Positive supply for peripheral logic and I/O pins
P—Ground reference for logic and I/O pins. This
pin must be connected at all times.
Pin Diagrams” section for device pin availability.
2.0GUIDELINES FOR GETTING
STARTED WITH 32-BIT
MICROCONTROLLERS
Note 1: This data sheet summarizes the features
of the PIC32MX5XX/6XX/7XX 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 site
(
www.microchip.com/PIC32).
2: Some registers and associated bits
described in this section may not be
available on all devices. Refer to
Section 4.0 “Memory Organization” in
this data sheet for device-specific register
and bit information.
2.1Basic Connection Requirements
Getting started with the PIC32MX5XX/6XX/7XX 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
Section 2.2 “Decoupling Capacitors” )
(see
• All AV
• VCAP/VCORE pin
• MCLR pin
• PGECx/PGEDx pins–used for In-Circuit Serial
• OSC1 and OSC2 pins–when external oscillator
The following pin may be required, as well:
V
for ADC module is implemented
DD and AVSS pins–even if the ADC module
is not used
(see
Section 2.2 “Decoupling Capacitors” )
Section 2.3 “Capacitor on Internal
(see
Vo ltage Regulator (VCAP/VCORE)”
Section 2.4 “Master Clear (MCLR) Pin”)
(see
Programming (ICSP™) and debugging purposes
(see
Section 2.5 “ICSP Pins”)
source is used
Section 2.8 “External Oscillator Pins”)
(see
REF+/VREF- pins – used when external voltage reference
Note:The AV
connected, regardless of ADC use and
the ADC voltage reference source.
DD and AVSS pins must be
)
2.2Decoupling Capacitors
The use of decoupling capacitors on power supply
pins, such as VDD, VSS, AVDD and AVSS is required.
See
Figure 2-1.
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 MHz and higher. It is
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 mm) in length.
• 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 µF to 0.001 µF. Place this
second capacitor next to the primary decoupling
capacitor. In high-speed circuit designs, consider
implementing a decade pair of capacitances as
close to the power and ground pins as possible.
For example, 0.1 µF in parallel with 0.001 µF.
• Maximizing performance: On the board layout
from the power supply circuit, run the power and
return traces to the decoupling capacitors first,
and then to the device pins. This ensures that the
decoupling capacitors are first in the power chain.
Equally important is to keep the trace length
between the capacitor and the power pins to a
minimum thereby reducing PCB track inductance.
Note 1: R ≤ 10 kΩ is recommended. A suggested start-
ing value is 10 kΩ. Ensure that the MCLR
pin
VIH and VIL specifications are met.
2: R1 ≤ 470Ω will limit any current flowing into
MCLR
from the external capacitor C, in the
event of MCLR
pin breakdown, due to
Electrostatic Discharge (ESD) or Electrical
Overstress (EOS). Ensure that the MCLR
pin
VIH and VIL specifications are met.
3: The capacitor can be sized to prevent uninten-
tional Resets from brief glitches or to extend
the device Reset period during POR.
C
R1
R
VDD
MCLR
PIC32
JP
FIGURE 2-1:RECOMMENDED
MINIMUM CONNECTION
2.2.1BULK CAPACITORS
The use of a bulk capacitor is recommended to improve
power supply stability. T ypical values range from 4.7 µF
to 47 µF. This capacitor should be located as close to
the device as possible.
2.4Master Clear (MCLR
The MCLR
pin provides for two specific device
) Pin
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 MCLR
pin. Consequently, specific voltage
levels (VIH and VIL) and fast signal transitions must
not be adversely affected. Therefore, specific values
of R and C will need to be adjusted based on the
application and PCB requirements.
For example, as illustrated in
Figure 2-2, it is
recommended that the capacitor C, be isolated from
the MCLR
pin during programming and debugging
operations.
Place the components illustrated in
one-quarter inch (6 mm) from the MCLR
FIGURE 2-2:EXAMPLE OF MCLR
Figure 2-2 within
pin.
PIN
CONNECTIONS
2.3Capacitor on Internal Voltage
Regulator (VCAP/VCORE)
2.3.1INTERNAL REGULATOR MODE
A low-ESR (1 ohm) capacitor is required on the
VCAP/VCORE pin, which is used to stabilize the internal
voltage regulator output. The VCAP/VCORE pin must not
be connected to VDD, and must have a CEFC capacitor, with at least a 6V rating, connected to ground. The
type can be ceramic or tantal um. Refer to
The PGECx and PGEDx pins are used for In-Circuit
Serial Programming™ (ICSP™) and debugging purposes. It is recommended to keep the trace length
between the ICSP connector and the ICSP pins on the
device as short as possible. If the ICSP connector is
expected to experience an ESD event, a series resistor
is recommended, with the value in the range of a few
tens of Ohms, not to exceed 100 Ohms.
Pull-up resistors, series diodes and capacitors on the
PGECx and PGEDx pins are not recommended as they
will interfere with the programmer/debugger communications to the device. If such discrete components are
an application requirement, they should be removed
from the circuit during programming and debugging.
Alternatively, refer to the AC/DC characteristics and
timing requirements information in the respective
device Flash programming spe cification for information
on capacitive loading limits and pin input voltage high
IH) and input low (VIL) requirements.
(V
Ensure that the “Communication Channel Select” (i.e.,
PGECx/PGEDx pins) programmed into the device
matches the physical connections for the ICSP to
®
MPLAB
For more information on ICD 2, ICD 3 and REAL ICE
connection requirements, refer to the following
documents that are available on the Microchip web
site.
• “MPLAB
• “Using MPLAB
• “MPLAB
• “Using MPLAB
• “MPLAB® ICD 3 Design Advisory” DS51764
• “MPLAB
• “Using MPLAB
ICD 2, MPLAB ICD 3 or MPLAB REAL ICE™.
®
ICD 2 In-Circuit Debugger User’s
Guide” DS51331
User’s Guide” DS51616
DS51749
®
®
®
ICD 2” (poster) DS51265
ICD 2 Design Advisory” DS51566
®
ICD 3” (poster) DS51765
REAL ICE™ In-Circuit Debugger
®
REAL ICE™ Emulator” (poster)
2.6JTAG
The TMS, TDO, TDI and TCK pins are used for testing
and debugging according to the Joint Test Action
Group (JTAG) st andard. 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
IH) and input low (VIL) requirements.
2.7Trace
The trace pins can be connected to a hardware-traceenabled programmer to provide a compress 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
a22Ω series resistor between the trace pins and the
trace connector.
Many MCUs have options for at least two oscillators: a
high-frequency primary oscillator and a low-frequency
secondary oscillator (refer to
Configuration”
The oscillator circuit shoul d be placed on the same side
of the board as the device. Also, place the oscillator circuit close to the respective oscillator pins, not exceeding one-half inch (12 mm) distance between them. The
load capacitors should be placed next to the oscillator
itself, on the same side of the board. Use a grounded
copper pour around the oscillator circuit to isolate them
from surrounding circuits. The grounded copper pour
should be routed directly to the MCU ground. Do not
run any signal traces or power traces inside the ground
pour. Also, if using a two-sided board, avoid any traces
on the other side of the board where the crystal is
placed. A suggested layout is illustrated in
for details).
FIGURE 2-3:SUGGESTED OSCILLATOR
CIRCUIT PLACEMENT
Section 8.0 “Oscillator
Figure 2-3.
2.9Configuration of Analog and
Digital Pins During ICSP
Operations
If MPLAB ICD 2, ICD 3 or REAL ICE is selected as a
debugger, it automatically initializes all of the A/D input
pins (ANx) as “digital” pins by setting all bits in the
ADPCFG register.
The bits in this register that correspond to the A/D pins
that are initialized by MPLAB ICD 2, ICD 3 or REAL
ICE, must not be cleared by the user application
firmware; otherwise, communication errors will result
between the debugger and the device.
If your application needs to use certain A/D pins as
analog input pins during the debug session, the user
application must clear the corresponding bits in the
ADPCFG register during initialization of the ADC
module.
When MPLAB ICD 2, ICD 3 or REAL ICE is used as a
programmer, the user application firmware must correctly configure the ADPCFG register. Automatic initialization of this register is only done during debugger
operation. Failure to correctly configure the register(s)
will result in all A/D pins being recognized as analog
input pins, resulting in the port value being read as a
logic ‘0’, which may affect user application functionality.
2.10Unused 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 V
the pin as an input.
of the PIC32MX5XX/6XX/7XX 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. “MCU”
(DS61113) in the “PIC32 FamilyReference Manual”, which is available
from the Microchip website (
chip.com/PIC32
MIPS32
available at
2: Some registers and associated bits
described in this section may not be
available on all devices. Refer to
Section 4.0 “Memory Organization” in
this data sheet for device-specific register
and bit information.
The MCU module is the heart of the
PIC32MX5XX/6XX/7XX family processor. The MCU
fetches instructions, decodes each instruction, fetches
source operands, executes each instruction and writes
the results of instruction execution to the proper
destinations.
®
). Resources for the
M4K® Processor Core are
http://www.mips.com.
3.1Features
• 5-stage pipeline
• 32-bit address and data paths
• MIPS32 Enhanced Architecture (Rele a se 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
www.micro-
- Atomic interrupt enable/disable
- GPR shadow registers to minimize latency
for interrupt handlers
The PIC32MX5XX/6XX/7XX family 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 Support
• Enhanced JTAG (EJTAG) Controller
3.2.1EXECUTION UNIT
The PIC32MX5XX/6XX/7XX family 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 processing. 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 alig ner
3.2.2MULTIPLY/DIVIDE UNIT (MDU)
The PIC32MX5XX/6XX/7XX family core includes a
Multiply/Divide Unit (MDU) that contains a separate
pipeline for multiply and divide operations. This pipeline
operates 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) operand 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 subsequent 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.
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 primary 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 destination 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.
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. Configuration information, such as presence of options like
MIPS16e, is also available by accessing the CP0
registers, listed in
0-6ReservedReserved in the PIC32MX5XX/6XX/7XX family core.
7HWREnaEnables access via the RDHWR instruction to selected hardware registers.
8BadVAddr
9Count
10ReservedReserved in the PIC32MX5XX/6XX/7XX 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 PIC32MX5XX/6XX/7XX family core.
23Debug
24DEPC
25-29ReservedReserved in the PIC32MX5XX/6XX/7XX 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.
Cause of last general exception.
Program counter at last exception.
Debug control and exception status.
Program counter at last debug exception.
Program counter at last error.
Debug handler scratchpad register.
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.
TABLE 3-3:PIC32MX5XX/6XX/7XX FAMILY CORE EXCEPTION TYPES
ExceptionDescription
Table 3-3 lists
ResetAssertion MCLR
DSSEJTAG debug single step.
DINTEJTAG debug interrupt. Caused by the assertion of the external EJ_DINT input or by setting the
EjtagBrk bit in the ECR register.
NMIAssertion of NMI signal.
InterruptAssertion of unmasked hardware or software interrupt signal.
DIBEJTAG debug hardware instruction break matched.
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 EJTA G 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.
The PIC32MX5XX/6XX/7XX family core of fers 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
“Power-Saving Features”
.
3.3.2LOCAL CLOCK GATING
The majority of the power consumed by the
PIC32MX5XX/6XX/7XX family core is in the clock tree
and clocking registers. The PIC32 family uses extensive use of local gated clocks to reduce this dynamic
power consumption.
Section 27.0
3.4EJTAG Debug Support
The PIC32MX5XX/6XX/7XX family 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 PIC32MX5XX/6XX/7XX family core provides a Debug mode that is entered after a debug
exception (derived from a hardware breakpoint, singlestep 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 (T AP), a serial communication port used for transferring test data in and out of the
PIC32MX5XX/6XX/7XX family 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.
of the PIC32MX5XX/6XX/7XX family of
devices. It is not intended to be a
comprehensive reference source.For
detailed information, refer to Section 3.“Memory Organization” (DS61115) in
the “PIC32 Family Reference Manual”,
which is available from the Microchip
web site (
PIC32MX5XX/6XX/7XX 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 partitioned into user
and kernel memories. In addition, the data memory can
be made executable, allowing PIC32MX5XX/6XX/7XX
devices to execute from data memory.
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 memo ry 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
www.microchip.com/PIC32).
4.1PIC32MX5XX/6XX/7XX Memory
Layout
PIC32MX5XX/6XX/7XX 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 PIC32MX5XX/6XX/7XX
devices are illustrated in
4.1.1PERIPHERAL REGISTERS
LOCATIONS
Table 4-1 through Table 4-44 contain the peripheral
address maps for the PIC32MX5XX/6XX/7XX
devices. Peripherals located on the PB bus are
mapped to 512-byte boundaries. Peripherals on the
FPB bus are mapped to 4-Kbyte boundaries.
2: The size of this memory region is programmable (see Section 3. “Memory Organization”
(DS61115)) and can be changed by initialization code provided by en d user development
tools (refer to the specific development tool documentation for information).
KSEG1KSEG0
FIGURE 4-1:MEMORY MAP ON RESET FOR PIC32MX564F064H, PIC32MX564F064L,
2: The size of this memory region is programmable (see Section 3. “Memory Organization”
(DS61115)) and can be changed by initialization code provided by en d user development
tools (refer to the specific development tool documentation for information).
KSEG1KSEG0
FIGURE 4-2:MEMORY MAP ON RESET FOR PIC32MX534F064H AND PIC32MX534F064L
2: The size of this memory region is programmable (see Section 3. “Memory Organization”
(DS61115)) and can be changed by initialization code provided by en d user development
tools (refer to the specific development tool documentation for information).
KSEG1KSEG0
FIGURE 4-3:MEMORY MAP ON RESET FOR PIC32MX564F128H, PIC32MX564F128L,
PIC32MX664F128H, PIC32MX664F128L, PIC32MX764F128H AND
PIC32MX764F128L DEVICES
2: The size of this memory region is programmable (see Section 3. “Memory Organization”
(DS61115)) and can be changed by initialization code provided by en d user development
tools (refer to the specific development tool documentation for information).
KSEG1KSEG0
FIGURE 4-4:MEMORY MAP ON RESET FOR PIC32MX575F256H, PIC32MX575F256L,
PIC32MX675F256H, PIC32MX675F256L, PIC32MX775F256H AND
PIC32MX775F256L DEVICES
2: The size of this memory region is programmable (see Section 3. “Memory Organization”
(DS61115)) and can be changed by initialization code provid ed by end user development
tools (refer to the specific development tool documentation for information).
KSEG1KSEG0
FIGURE 4-5:MEMORY MAP ON RESET FOR PIC32MX575F512H, PIC32MX575F512L,
PIC32MX675F512H, PIC32MX675F512L, PIC32MX775F512H AND
PIC32MX775F512L DEVICES
2: The size of this memory region is programmable (see Section 3. “Memory Organization”
(DS61115)) and can be changed by initialization code provid ed by end user development
tools (refer to the specific development tool documentation for information).
KSEG1KSEG0
FIGURE 4-6:MEMORY MAP ON RESET FOR PIC32MX695F512H, PIC32MX695F512L,
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 12.1.1 “CLR, SET and INV Registers” for more information.
TABLE 4-2:INTERRUPT REGISTER MAP FOR PIC32MX534F064H, PIC32MX564F064H, PIC32MX564F128H, PIC32MX575F256H AND
PIC32MX575F512H DEVICES
(1)
Bits
Name
Register
(BF88_#)
Virtual Address
1000 INTCON
1010 INTSTAT
1020 IPTMR
1030IFS0
1040IFS1
1050IFS2
1060IEC0
1070IEC1
1080IEC2
1090IPC0
10A0 IPC1
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
information.
2:These bits are not available on PIC32MX534/564/664/764 devices.
TABLE 4-2:INTERRUPT REGISTER MAP FOR PIC32MX534F064H, PIC32MX564F064H, PIC32MX564F128H, PIC32MX575F256H AND
PIC32MX575F512H DEVICES
(1)
(CONTINUED)
Bits
PIC32MX5XX/6XX/7XX
Name
Register
(BF88_#)
Virtual Address
10B0 IPC2
10C0 IPC3
10D0 IPC4
10E0 IPC5
10F0 IPC6
1100 IPC7
1110IPC8
1120 IPC9
1130 IPC10
1140 IPC11
1150 IPC12
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
information.
2:These bits are not available on PIC32MX534/564/664/764 devices.
TABLE 4-3:INTERRUPT REGISTER MAP FOR PIC32MX664F064H, PIC32MX664F128H, PIC32MX675F256H, PIC32MX675F512H AND
PIC32MX695F512H DEVICES
(1)
Bits
Name
Register
(BF88_#)
Virtual Address
1000 INTCON
1010 INTSTAT
1020 IPTMR
1030IFS0
1040IFS1
1050IFS2
1060IEC0
1070IEC1
1080IEC2
1090IPC0
10A0IPC1
10B0IPC2
10C0 IPC3
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
information.
2:These bits are not available on PIC32MX664 devices.
TABLE 4-3:INTERRUPT REGISTER MAP FOR PIC32MX664F064H, PIC32MX664F128H, PIC32MX675F256H, PIC32MX675F512H AND
PIC32MX695F512H DEVICES
(1)
(CONTINUED)
Bits
PIC32MX5XX/6XX/7XX
Name
Register
(BF88_#)
Virtual Address
10D0 IPC4
10E0IPC5
10F0IPC6
1100IPC7
1110IPC8
1120IPC9
1130 IPC10
1140 IPC11
1150 IPC12
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
information.
2:These bits are not available on PIC32MX664 devices.
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 12.1.1 “CLR, SET and INV Registers” for more
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
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note1: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
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note1: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
31:16
15:0
31:16
15:0
31:16
15:0
31:16
31:16
15:0
31:16
15:0
31:16
15:0
31:16
15:0
information.
2:These bits are not available on PIC32MX534/564 devices.
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
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
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
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
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
31:16
15:0ONFRZSIDLTWDISTWIP
31:16
15:0TMR1<15:0>0000
31:16
15:0PR1<15:0>FFFF
31:16
15:0ONFRZSIDL
31:16
15:0TMR2<15:0>0000
31:16
15:0PR2<15:0>FFFF
31:16
15:0ONFRZSIDL
31:16
15:0TMR3<15:0>0000
31:16
15:0PR3<15:0>FFFF
31:16
15:0ONFRZSIDL
31:16
15:0TMR4<15:0>0000
31:16
15:0PR4<15:0>FFFF
31:16
15:0ONFRZSIDL
31:16
15:0TMR5<15:0>0000
31:16
15:0PR5<15:0>FFFF
information.
2:These bits are not available on 64-pin devices.
————————————————0000
———TGATE—TCKPS<1:0>—TSYNCTCS—0000
————————————————0000
————————————————0000
————————————————0000
—————TGATETCKPS<2:0>T32—TCS
————————————————0000
————————————————0000
————————————————0000
—————TGATETCKPS<2:0>——TCS
————————————————0000
————————————————0000
————————————————0000
—————TGATETCKPS<2:0>T32—TCS
————————————————0000
————————————————0000
————————————————0000
—————TGATETCKPS<2:0>——TCS
————————————————0000
————————————————0000
(2)
—0000
(2)
—0000
(2)
—0000
(2)
—0000
Section 12.1.1 “CLR, SET and INV Registers” for more
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
(1)
15:0ONFRZSIDL
31:16
15:0xxxx
31:16————————————————0000
(1)
15:0ONFRZSIDL
31:16
15:0xxxx
31:16
(1)
15:0ONFRZSIDL
31:16
15:0xxxx
31:16
(1)
15:0ONFRZSIDL
31:16
15:0xxxx
31:16
(1)
15:0ONFRZSIDL
31:16
15:0xxxx
————————————————0000
———FEDGEC32ICTMRICI<1:0>ICOVICBNEICM<2:0>0000
IC1BUF<31:0>
———FEDGEC32ICTMRICI<1:0>ICOVICBNEICM<2:0>0000
IC2BUF<31:0>
————————————————0000
———FEDGEC32ICTMRICI<1:0>ICOVICBNEICM<2:0>0000
IC3BUF<31:0>
————————————————0000
———FEDGEC32ICTMRICI<1:0>ICOVICBNEICM<2:0>0000
IC4BUF<31:0>
————————————————0000
———FEDGEC32ICTMRICI<1:0>ICOVICBNEICM<2:0>0000
IC5BUF<31:0>
All Resets
xxxx
xxxx
xxxx
xxxx
xxxx
Section 12.1.1 “CLR, SET and INV Registers” for more information.
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
31:16
15:0ONFRZSIDL
31:16
15:0xxxx
31:16
15:0xxxx
31:16
15:0ONFRZSIDL
31:16
15:0xxxx
31:16
15:0xxxx
31:16
15:0ONFRZSIDL
31:16
15:0xxxx
31:16
15:0
31:16
15:0ONFRZSIDL
31:16
15:0xxxx
31:16
15:0
31:16
15:0ONFRZSIDL
31:16
15:0xxxx
31:16
15:0xxxx
information.
————————————————0000
———————OC32OCFLTOCTSELOCM<2:0>0000
OC1R<31:0>
OC1RS<31:0>
————————————————0000
———————OC32OCFLTOCTSELOCM<2:0>0000
OC2R<31:0>
OC2RS<31:0>
————————————————0000
———————OC32OCFLTOCTSELOCM<2:0>0000
OC3R<31:0>
OC3RS<31:0>
————————————————0000
———————OC32OCFLTOCTSELOCM<2:0>0000
OC4R<31:0>
OC4RS<31:0>
————————————————0000
———————OC32OCFLTOCTSELOCM<2:0>0000
OC5R<31:0>
OC5RS<31:0>
All Resets
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
PIC32MX5XX/6XX/7XX
xxxx
xxxx
xxxx
xxxx
xxxx
Section 12.1.1 “CLR, SET and INV Registers” for more
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table except I2CxRCV have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table except I2CxRCV have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table except I2CxRCV have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See
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
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
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table except SPIxBUF have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
Note 1:All registers in this table except SPIxBUF have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See
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
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
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
(1)
15:0ONFRZ
31:16
15:0
31:16
15:00000
2:DMACH<3> bit is not available on PIC32MX534/564/664/764 devices.
Section 12.1.1 “CLR, SET and INV Registers” for more information.
TABLE 4-18:DMA CRC REGISTER MAP
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
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
2:DMA channels 4-7 are note available on PIC32MX534/564/664/764 devices.
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
2:DMA channels 4-7 are note available on PIC32MX534/564/664/764 devices.
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
2:DMA channels 4-7 are note available on PIC32MX534/564/664/764 devices.
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
2:DMA channels 4-7 are note available on PIC32MX534/564/664/764 devices.
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
2:DMA channels 4-7 are note available on PIC32MX534/564/664/764 devices.
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
information.
2:DMA channels 4-7 are note available on PIC32MX534/564/664/764 devices.
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 vir tual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See
TABLE 4-21:COMPARATOR VOLTAGE REFERENCE REGISTER MAP
Name
Register
(BF80_#)
Virtual Address
9800 CVRCON
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
more information.
2:These bits are not available on PIC32MX575/675/695/775 devices. On these devices, reset value for CVRCON is 0000.
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
————————————————0000
———————NVMOP<3:0>0000
NVMKEY<31:0>
NVMADDR<31:0>
NVMDATA<31:0>
NVMSRCADDR<31:0>
Section 12.1.1 “CLR, SET and INV Registers” for more information.
TABLE 4-23:SYSTEM CONTROL REGISTER MAP
Name
Register
(BF80_#)
Virtual Address
F000 OSCCON
F010 OSCTUN
0000 WDTCON
F600RCON
F610 RSWRST
F230 SYSKEY
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
information.
2:Reset values are dependent on the DEVCFGx Configuration bits and the type of Reset.
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
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
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
Legend:x = unknown value on Reset; — = unimplemented, read as ‘0’. Reset values are shown in hexadecimal.
2: 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
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
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
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
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
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
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
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
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
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 12.1.1 “CLR, SET and INV Registers” for more
TABLE 4-37:CHANGE NOTICE AND PULL-UP REGISTER MAP FOR PIC32MX575F256H, PIC32MX575F512H, PIC32MX675F256H,
PIC32MX675F512H, PIC32MX695F512H, PIC32MX775F256H, PIC32MX775F512H AND PIC32MX795F512H DEVICES
Bits
Name
Register
(BF88_#)
Virtual Address
61C0 CNCON
61D0 CNEN
61E0 CNPUE
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
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