Microchip PIC32MZ1025W104132 - Uncategorized

PIC32MZ1025W104132 - Uncategorized Microchip - Free user manual and instructions

Find the device manual for free PIC32MZ1025W104132 Microchip in PDF.

📄 740 pages English EN Download 💬 AI Question 10 questions ⚙️ Specs
Notice Microchip PIC32MZ1025W104132 - page 43
View the manual : English EN Українська UK
Pick your language and provide your email: we'll send you a specifically translated version.
Product Type 32-bit Microcontroller with Wi-Fi and Hardware-Based Security Accelerator
Model PIC32MZ1025W104132 (SoC) / WFI32E01PE, WFI32E01PC, WFI32E01UE, WFI32E01UC, WFI32E02UE, WFI32E02UC (Modules)
Core Processor 200 MHz MIPS32 M-Class with 16 KB I-Cache, 16 KB D-Cache, DSP-enhanced core
Memory 1 MB Flash, 64 KB Boot Flash, 256 KB SRAM, 64 KB Data Buffer (DBF)
Wireless IEEE 802.11 b/g/n, 2.4 GHz ISM band, Infrastructure BSS STA, Soft-AP, WPA3/WPA2/WEP security
Security Accelerator Hardware accelerated AES (ECB, CBC, CTR, CFB, OFB, GCM), 3DES, SHA, MD5, HMAC, TRNG, Public Key (ECC/ECDH/ECDSA up to 512-bit), Trust&GO (optional)
Power Supply (SoC) 2.97V to 3.63V
Power Supply (Module) 3.0V to 3.6V
Operating Temperature -40°C to +85°C (Industrial)
Low Power Modes Dream, Sleep, Deep Sleep (1.9 μA typical), Extreme Deep Sleep (0.71 μA typical)
Package (SoC) 132-pin DQFN, 10 x 10 x 0.9 mm
Package (Modules) WFI32E01: 54-pin SMD, 24.5 x 20.5 x 2.5 mm; WFI32E02: 87-pin dual-row SMD, 24.5 x 22.5 x 2.5 mm
Weight (Estimate) Approximately 1-2 grams for SoC; 3-5 grams for modules
Peripheral Interfaces USB 2.0 OTG FS, Ethernet MAC (10/100), CAN/CAN-FD, UART (3), SPI (2), I2C (2), SQI, ADC (12-bit, up to 20 ch), CVD touch, PTG
Care and Cleaning No special maintenance required. Keep away from moisture and static discharge. Clean with soft dry cloth if needed.
Safety Operate within specified voltage and temperature range. Use ESD protection during handling. Follow MCLR and power supply recommendations.
Spare Parts and Repairability Not applicable. The device is sold as a single component. No user-serviceable parts. For support, contact Microchip.
Certifications (Module) FCC, ISED, CE, UKCA, MIC, KCC, NCC, SRRC; RoHS and REACH compliant
Software Support MPLAB Harmony v3 TCP/IP Stack, RTOS (FreeRTOS, ThreadX, etc.), OTA/OTH firmware update

Frequently Asked Questions - PIC32MZ1025W104132 Microchip

What is the PIC32MZ1025W104132?
The PIC32MZ1025W104132 is a 32-bit microcontroller from Microchip integrating a MIPS32 M-Class core at 200 MHz, with Wi-Fi (802.11 b/g/n) and hardware security accelerator (AES, ECC, TRNG). It comes in a 132-pin DQFN package.
What is the difference between the SoC and the WFI32 module?
The SoC (PIC32MZ1025W104132) is the standalone chip. The WFI32 module includes the SoC plus an integrated front-end module (FEM) and antenna options (PCB or U.FL), RF certification, and optional Trust&GO secure element.
What power supply voltage is required?
SoC operates from 2.97V to 3.63V. Modules require 3.0V to 3.6V. Analog supply (AVDD) should be clean 3.3V for best ADC performance.
What low-power modes are available?
Modes include Dream, Sleep, Deep Sleep (1.9 μA) and Extreme Deep Sleep (0.71 μA). Deep Sleep retains context in 32 semaphore registers.
What wireless security is supported?
Supports WPA3 Personal (SAE, PMF-802.11w), WPA2, and WEP. Hardware accelerates AES (ECB/CBC/CTR/CFB/OFB/GCM), ECC up to 512-bit, and includes a True Random Number Generator (TRNG).
How many GPIO pins are available?
SoC: up to 62 GPIO. WFI32E01 module: 37 GPIO; WFI32E02 module: 60 GPIO. All I/O pins support high current (25 mA) and peripheral pin select.
What are the dimensions of the WFI32 module?
WFI32E01: 24.5 mm x 20.5 mm x 2.5 mm (54-pin SMD). WFI32E02: 24.5 mm x 22.5 mm x 2.5 mm (87-pin dual-row SMD).
Can I use this device without an external antenna?
Yes, the WFI32E01PC and WFI32E01PE variants have a PCB antenna integrated. For external antenna, use the U.FL connector variants (e.g., WFI32E01UC).
What development tools are supported?
Supported by MPLAB X IDE and MPLAB Harmony v3 framework. Compatible with C/C++ compilers, and RTOS like FreeRTOS, ThreadX, µC/OS. Programming via ICSP, JTAG, or bootloader.
How do I reset the device?
Pull the MCLR pin low. A typical circuit uses a 10 kΩ pull-up to VDD and a 1 kΩ series resistor to limit current. A 0.1 μF capacitor to ground can filter glitches.

User questions about PIC32MZ1025W104132 Microchip

0 question about this device. Answer the ones you know or ask your own.

Ask a new question about this device

The email remains private: it is only used to notify you if someone responds to your question.

No questions yet. Be the first to ask one.

Download the instructions for your Uncategorized in PDF format for free! Find your manual PIC32MZ1025W104132 - Microchip and take your electronic device back in hand. On this page are published all the documents necessary for the use of your device. PIC32MZ1025W104132 by Microchip.

USER MANUAL PIC32MZ1025W104132 Microchip

PIC32MZ W1 MCU and WFI32 Module with Wi-Fi® and Hardware-Based Security Accelerator Data Sheet

INTRODUCTION

The PIC32MZ W1 Family (PIC32MZ1025W104132 device) is a general purpose, low-cost, 32-bit Microcontroller (MCU) with the Wi-Fi and network connectivity, hardware-based security accelerator, transceiver and Power Management Unit (PMU). It supports interface to an External Front-End Module.

The WFI32 is a fully RF certified wireless Module that contains the PIC32MZ1025W104 SoC and an integrated Front-end Module (FEM) with following antenna options:

• PCB Antenna (WFI32E01PC/WFI32E01PE)

• U.FL Connector (WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE) for External Antenna

The WFI32 Module has the following variants:

• WFI32E01

• WFI32E02

The PIC32MZ W1 Family supports rich set of standard PIC32 peripherals, such as Wi-Fi, Ethernet MAC, USB, CAN, CAN-FD, SPI, I²C, SQL, UART, CVD, ADC and JTAG.

TCP/IP based connectivity protocols along with SSL support enables a low-cost, low complexity system to obtain full-featured Internet connectivity and reliable information exchange.

PIC32MZ W1 FAMILY FEATURES

The following section lists the PIC32MZ1025W104 related features.

Wireless Interfaces

• PHY :

  • IEEE ^® 802.11 b/g/n WLAN link
  • Single spatial stream of 20 MHz channel bandwidth
  • External FEM support for Power Amplifier (PA), Low Noise Amplifier (LNA), Transmitter/Receiver (TX/RX) switch
  • 2.4 GHz (2400 \~ 2483.5 MHz) ISM band

• M A C :

  • Infrastructure BSS STA mode
  • Soft-AP mode functionality
  • Active and passive scanning
  • Transmit power control support over temperature and voltage

- Security:

  • WPA3 personal (SAE and PMF-802.11w)
  • WPA2 personal, with options for WPA compatibility and PMF
  • WEP

• Harmony Networking:

  • Out of box support for MPLAB ^ Harmony v3 TCP/IP Stack
  • TLS v1.2 with symmetric/asymmetric crypto acceleration

• Wi-Fi Power Save Modes:

- Wireless Sleep mode (WSM)

- Wireless Deep Sleep mode (WDS)

• Wi-Fi Timestamping Support
200 MHz, MIPS32 ^® M-Class Microprocessor Core
• 16 KB I-Cache, 16 KB D-Cache
- Fixed Mapping Translation (FMT) based MMU for Optimum Embedded OS Execution
- microMIPS™ Mode for Up to 35% Smaller Code Size
• DSP-enhanced Core:
- Four 64-bit accumulators
- Single-cycle MAC, saturating and fractional math
• Code-efficient (c and assembly) architecture

On-Chip Flash and SRAM

• 1 MB Flash Program Memory
• 64 KB Boot Program Flash
• 256 KB SRAM (Program and Data)
• 64 KB Data Buffer (DBF)
• Dedicated Buffer for Peripherals

Power Management and System Recovery

  • Low-Power Modes (Dream, Sleep, Deep Sleep and Extreme Deep Sleep)
  • 8 KB Context SRAM for Context Storage Under Low Power Modes
  • Deep Sleep mode

- 32 Semaphore registers (32-bit wide) for context storage Current consumption: 1.9 μA (typical)

- Extreme Deep Sleep mode

  • 32-bit Semaphore register for context storage. Current consumption: 0.71 μA (typical)

  • Integrated Power-on Reset (POR), Brown-out Reset (BOR), Zero-power BOR (ZPBOR) and Programmable Low Voltage Detect (PLVD)
    • Secondary Oscillator and Fail Safe Clock

  • Fast Power-up and Brown-out Recovery

Security

  • Hardware Accelerated Security Modes (with Built-in DMA Support)
  • Crypto Engine with True Random Number Generator (TRNG) for Data Encryption/decryption and Authentication (AES, 3DES, SHA, MD5 and HMAC)
  • AES Modes:

- Electronic Codebook (ECB)

- Cypher Block Chaining (CBC)

- Counter Mode (CTR)

- Cypher Feedback Mode (CFB)

- Output Feedback Mode (OFB)

- Galois/Counter Mode (GCM)

- Hardware Accelerated Public Key Cryptography with Support for:

  • 16-DSP multipliers configuration
  • 256-bit ECC/ECDH/ECDSA/Curve25519
  • 256-bit Ed25519
  • 512-bit ECC/ECDH/ECDSA generation

Clock Management

• 40 MHz Primary Oscillator (POSC)
• 32.768 kHz Secondary Oscillator (SOSC)
• Power-up Timer (PWRT) and Oscillator Start-up Timer (OST)
• Fail-Safe Clock Monitor (FSCM)

- On-chip Clock Sources:

  • 8 MHz Fast RC (FRC) oscillator
  • 32.768 kHz Low-Power RC (LPRC) oscillator

- Programmable PLLs and Oscillator Clock Sources

- Independent Watchdog Timer (WDT), Deadman Timer (DMT) and Independent Deep Sleep Watchdog Timer

- Fast Wake-up and Start-up

- Support for Precise Reference Clocks to External Devices

Direct Memory Access (DMA)

- Eight Channels with Automatic Data Size Detection

• Programmable 32-bit Cyclic Redundancy Check (CRC)

Advanced Analog

• 12-bit ADC Module:
- 2 MSPS with two Sample and Hold (S&H) circuits (one dedicated and one shared)
- Up to 20 analog input channels
- Sleep and Idle mode operations
- Multiple trigger sources
- Two digital comparators and two digital filters
- Supports self capacitance touch interface with a maximum of 18 touch buttons and one driven shield

Communication Interfaces

  • Up to Two CAN Modules (CAN and CAN-FD)
  • 2.0B Active with DeviceNet™ addressing support
  • Up to Three UART Modules (Speed up to 10 Mbps):
  • Supports RS-232, RS-485, LIN 2.1 and IrDA Protocols
  • One Ethernet MAC Module (10/100 Mbps) with RMII Interface and Dedicated DMA:

- IEEE 1588 Precision Time Protocol (PTP)

- Time synchronization support between Wi-Fi and Ethernet

- Up to Two SPI (4-wire) Modules with Speed up to 40 MHz

- SQI Configurable as an Additional SPI Module (60 MHz)

• One Full-Speed USB 2.0 OTG Interface with Dedicated DMA

• T w ^2 6 (Up to 1M baud) with SMBus Support

Timers/Output Compare/Input Capture

  • Seven 16-bit or up to Three 32-bit Timers/Counters
    • Four Output Compare (OC) Modules
    • Four Input Capture (IC) Modules
  • Low-power Precision Real-Time Clock and Calendar (RTCC)

Input/Output

• High Current Source/Sink (up to 25 mA) on All I/O Pins
- Configurable Open-Drain, Pull-up, Pull-down and Slew Rate Controls
• External interrupts on all I/O Pins
- Peripheral Pin Select (PPS) to Enable Function Remap
- Up to 62 GPIO Pins

Peripheral Trigger Generator (PTG)

- PTG with 8-bit User Command for Scheduling Complex Sequences

Qualification and Class B Support

• Class B Safety Library, IEC 60730

Debugger Development Support

• In-circuit and In-application Programming
• 4 - w i r®EnhancerPJTAG Interface
- Unlimited Software, 8 Instruction and 4 Data Complex Hardware Breakpoints
- IEEE 1149.2-Compatible (JTAG) Boundary Scan
- iFlowtrace functionality support: - Off-chip Buffering of iFlowTrace Messages

Software and Tools Support

• C/C++ Compiler with Native DSP/fractional
- MPLAB ^® Harmony Integrated Software Framework:
- TCP/IP, USB, Graphics and mTouch™ Middleware
- MFi, Android™
- RTOS Kernels: Express Logic ThreadX, FreeRTOS™, OPENRTOS®, Micrium® μC/OS™ and SEGGER embOS®

• Supports Over-the-Air (OTA) and Over-the-Host (OTH) Firmware Update Modes

Package and Operating Conditions

  • Package:
  • 132-pin DQFN – Dual Row
  • Size - 10 x 10 x 0.9 mm
  • Operating conditions:
  • 2.97V to 3.63V, -40°C to +85°C, DC to 200 MHz

WFI32 MODULE FEATURES

The following section lists the WFI32 Module related features, which complement SoC features.

Antenna Options

• PCB Antenna Variants:
- WFI32E01PC
- WFI32E01PE

- External Antenna Variants:

- WFI32E01UC

- WFI32E01UE

- WFI32E02UC

- WFI32E02UE

Wireless Feature

On-Board FEM/PA to Meet the TX Power Requirements:

• Maximum 20.5 dBm TX Power in 802.11b Mode

Security

• Integrated Trust&GO (Optional)

Clock Management

• Integrated 40 MHz POSC

Advanced Analog

• 12 Analog Channels for WFI32E01

• 20 Analog Channels for WFI32E02

Input/Output

• 37 GPIO Pins for WFI32E01

• 60 GPIO Pins for WFI32E02

Package and Operating Conditions

  • WFI32E01 Package:
  • 54-pin SMD package with Shield Can
  • Size - 24.5 mm x 20.5 mm x 2.5 mm
  • WFI32E02 Package:
  • 87-pin dual-row SMD package with Shield Can
  • Size - 24.5 mm x 22.5 mm x 2.5 mm

- Operating conditions:

- 3.0V to 3.6V, -40°C to +85°C, DC to 200 MHz

Regulations

• RoHS and REACH Compliant

Certifications

• WFI32 Module Certified to FCC, ISED, CE, UKCA, MIC, KCC, NCC and SRRC Radio

TABLE 1: PIC32MZ1025W104 SoC FEATURES

SoC NameProgram Memory (KB)Data Memory (KB)PinsPackageBoot Flash Memory (KB)Wireless/RF Remappable PeripheralsCryptoAsymmetric CryptoTrust&GOTRNGDMA Channels (Programmable/Dedicated)ADC ChannelsCVDADC Enhanced CVDPTGUSB 2.0 OTG FS I^2C SPIUARTSQIRTCCEthernet MACI/O PinsICSPTMJTAGTrace
802.11 b/g/nChannel BW (MHz)Remappable PinsTimers/Capture/ Compare(1)UARTSPI/2SCAN-FD (1.0)CAN (2.0 A/B)
PIC32MZ1025W1041321024256132DQFN641x120587/4/42111YYNY820YY11211YYY62YYY

TABLE 2: WFI32 MODULE FEATURES

Module NameProgram Memory (KB)Data Memory (KB)PinsPackageBoot Flash Memory (KB)Wireless/RFRemappable PeripheralsCryptoAsymmetric CryptoTrust&GOTRNGDMA Channels (Programmable/Dedicated)ADC ChannelsCVDADC Enhanced CVDPTGUSB 2.0 OTG FS ^12C SPIUARTSQIRTCCEthernet MACI/O PinsICSPJTAGTraceAntenna Options
On-board FEM802.11 b/g/nChannel BW (MHz)Remappable PinsTimers/Capture/CompareUARTSPI/ I^2S CAN-FD (1.0)
WFI32E01PE102425654SMD64Y1x120357/4/42111YYNY812YY11111NYY37YYPCB
WFI32E01PC102425654SMD64Y1x120357/4/42111YYYY812YY11111NYY37YYPCB
WFI32E01UE102425654SMD64Y1x120357/4/42111YYNY812YY11111NYY37YYU.FL
WFI32E01UC102425654SMD64Y1x120357/4/42111YYYY812YY11111NYY37YYU.FL
WFI32E02UE102425687SMD64Y1x120567/4/42111YYNY820YY11211YYY60YYU.FL
WFI32E02UC102425687SMD64Y1x120567/4/42111YYYY820YY11211YYY60YYU.FL

TABLE 3: PIN NAMES FOR 132-PIN PIC32MZ1025W104 SoC

132-PIN DQFN (TOP AND BOTTOM VIEW) Microchip PIC32MZ1025W104132 - Certifications - 1
SoC Pin NumberSoC Pin Name(1,2)V A64 D+SoC Pin NumberSoC Pin Name(1,2)
A1NCA36NC
A2 PMU_VSENSE A37 NC
A3VDD33A38NC
A4CVDT13/ETXD0/RPC15/IOCC15/RC15A39RXR_IN2
A5CVDT15/EMDIO/RPK13/IOCK13/RK13A40RXR_RIQ_VDD15
A6CVDT14/ERXDV/RPK12/IOCK12/RK12A41NC
A7NCA42TXR_UMX_VDD15
A8 VDD15A43 TXR_LPA_VOUT
A9SQICS1/CVDT18/RPC0/IOCC0/RC0A44RF_FE_3/RPK0/IOCK0/RK0
A10SQID2/CVDT20/RPC2/IOCC2/RC2A45RF_FE_1/AN19/CVD19/CVDR19/RPK2/IOCK2/RK2
A11 VDD33A46 VDD33
A12SQICLK/CVDT23/RPC5/IOCC5/RC5A47SCK2/RPA11/IOCA11/RA11
A13 SDI1/RPC7/IOCC7/RC7 A48 AN15/ANN1/CVD15/CVDR15/RPA13/IOCA13/RA13
A14SS1/CS1/FSYNC1/RPA1/IOCA1/RA1A49TRD0/AN13/CVD13/CVDR13/RPA15/IOCA15/RA15
A15SCL2/RPA2/IOCA2/RA2A50TRD1/AN12/CVD12/CVDR12/RPB14/IOCB14/RB14
A16SCL1/RPA4/IOCA4/RA4A51TRD3/ANA0/RPB12/IOCB12/RB12
A17 NC A52AN10/CVD10/CVDR10/LVDIN/RPB10/IOCB10/RB10
A18 NC A53 NC
A19 NC A54 NC
A20 NC A55 NC
A21U1RTSn/U1BCLK/IOCA7/RA7A56TDI/PGED4/AN9/CVD9/CVDR9/RPB9/IOCB9/RB9
A22U1TX/IOCA9/RA9A57TDO/AN7/CVD7/CVDR7/CVDT0/RPB7/IOCB7/RB7
A23MCLRA58SOSCO/PK15(4)
A24BT_PRIO/RPK6/IOCK6/RK6A59SOSCI/PB15(4)
A25 VDD33A60 VBAT
A26RF_FE_8/RPK9/IOCK9/RK9A61PGEC1/AN3/CVD3/CVDR3/CVDT4/USBOEN/RPB3/IOCB3/RB3
A27RF_FE_5/RPK11/IOCK11/RK11A62AN1/CVD1/CVDR1/CVDT6/ETH_EXCLK_OUT/VBUSON/RPB1/IOCB1/RB1
A 28 A F E _DD 1 5 A 6 3
A29 XTAL_IN

Note

1: The RPn pins can be used by re-mappable peripherals. Refer to Section 13.4 "Peripheral Pin Select (PPS)" for details.

2: Every I/O port pin (RAx-RKx) can be used as a change notification pin (CNAx-CNKx). See Section 13.0 "I/O Ports" for more information.

3: Do not use BUCK/MLDO output to drive any other device.

4: A58 and A59 pins can be configured as GPI as an alternate function.

5: Exact connection for each pin is available in the reference design package. Contact the Microchip Sales/Support Team for the package.

6: Connect Exposed Die Pad to GND.

TABLE 3: PIN NAMES FOR 132-PIN PIC32MZ1025W104 SoC (CONTINUED)

Note
1: The RPn pins can be used by re-mappable peripherals. Refer to Section 13.4 "Peripheral Pin Select (PPS)" for details.
2: Every I/O port pin (RAx-RKx) can be used as a change notification pin (CNAx-CNKx). See Section 13.0 "I/O Ports" for more information.
3: Do not use BUCK/MLDO output to drive any other device.
4: A58 and A59 pins can be configured as GPI as an alternate function.
5: Exact connection for each pin is available in the reference design package. Contact the Microchip Sales/Support Team for the package.
6: Connect Exposed Die Pad to GND.

TABLE 3: PIN NAMES FOR 132-PIN PIC32MZ1025W104 SoC (CONTINUED)

132-PIN DQFN (TOP AND BOTTOM VIEW) Microchip PIC32MZ1025W104132 - Certifications - 2
SoC Pin NumberSoC Pin Name(1,2)SoC Pin NumberSoC Pin Name(1,2)
B23SPI_VDD15B54VUSB3V3
B 24 X T A L-VDD1 5 B 5
B25 NC B56 NC
B26IOVDD_RFB57CVDT8/ERXD1/RPC10/IOCC10/RC10
B27IN_TSSIB58CVDT10/ETH_CLK_OUT/ERXCLK/RPC12/IOCC12/RC12
B28 SYN_PLL_VDD15 B59 BUK_MLDO_OUT(3)
B29 NC B60 VPMU_VDDP
— — EPAD Exposed Die Pad(6)

Note
1: The RPn pins can be used by re-mappable peripherals. Refer to Section 13.4 "Peripheral Pin Select (PPS)" for details.
2: Every I/O port pin (RAx-RKx) can be used as a change notification pin (CNAx-CNKx). See Section 13.0 "I/O Ports" for more information.
3: Do not use BUCK/MLDO output to drive any other device.
4: A58 and A59 pins can be configured as GPI as an alternate function.
5: Exact connection for each pin is available in the reference design package. Contact the Microchip Sales/Support Team for the package.
6: Connect Exposed Die Pad to GND

Table of Contents

Introduction 1

1.0 Ordering Information 11

2.0 PIC32MZ1025W104 SoC Description 13

3.0 WFI32E01 Module Description 27

4.0 CPU 59

5.0 Flash Program Memory 71

6.0 Memory Organization 85

7.0 Resets 111

8.0 CPU Exceptions and Interrupt Controller 119

9.0 Prefetch Module 147

10.0 Direct Memory Access (DMA) Controller 155

11.0 Oscillator Configuration 179

12.0 Full-Speed USB On-The-Go (OTG) 201

13.0 I/O Ports 227

14.0 Peripheral Trigger Generator (PTG) 263

15.0 Timer1 283

16.0 Timer2/3, Timer4/5, and Timer6/7 287

17.0 Deadman Timer (DMT) 293

18.0 Watchdog Timer (WDT) 301

19.0 Input Capture 303

20.0 Output Compare 307

21.0 Serial Peripheral Interface (SPI) and Inter-IC Sound (I^2S) 311

22.0 Serial Quad Interface (SQI) 319

23.0 Inter-Integrated Circuit (I²C) 341

24.0 UART 351

25.0 Real-Time Clock and Calendar (RTCC) 359

26.0 Asymmetric Crypto Engine 369

27.0 Symmetric Crypto Engine 371

28.0 True Random Number Generator (TRNG) 395

29.0 12-bit High-Speed Successive Approximation Register (SAR) ADC 401

30.0 Controller Area Network (CAN) 445

31.0 Controller Area Network-Flexible Data-Rate (CAN-FD) Module 473

32.0 Wi-Fi Controller 523

33.0 Ethernet Controller 565

34.0 Enhanced Capacitive Voltage Divider (CVD) Touch Controller 565

35.0 Power Management Unit (PMU) 587

36.0 Power-Saving Features 599

37.0 Programmable Low Voltage Detect (PLVD) 617

38.0 Special Features 621

39.0 Instruction Set 641

40.0 Development Support 643

41.0 Electrical Specifications 647

42.0 Packaging Information 707

Appendix A: Regulatory Approvals 723

Appendix B: Document Revision History 735

TO OUR VALUED CUSTOMERS

It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and enhanced as new volumes and updates are introduced.

If you have any questions or comments regarding this publication, please contact the Marketing Communications Department via E-mail at docerrors@microchip.com. 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 Website at:

http://www.microchip.com

You can determine the version of a data sheet by examining its literature number found on the bottom outside corner of any page. The last character of the literature number is the version number, (e.g., 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 Website; 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 website at www.microchip.com to receive the most current information on all of our products.

Referenced Sources

This device data sheet is based on the following individual sections of the "PIC32 Family Reference Manual" and "PIC32MZ W1 Family Reference Man-

ual". These documents must be considered as the general reference for the operation of a particular module or device feature.

Note: To access the following documents, browse the documentation section of the Microchip website (www.microchip.com).

• Section 5. “Flash Program Memory with Support for Live Update” (DS60001640)
• Section 6. "Memory Organization and Permissions" (DS60001641)
• Section 7. "Resets" (DS60001118)
• Section 8. "Interrupts" (DS60001108)
- Section 9. "Prefetch Module for Devices with L1 CPU Cache" (DS60001649)
• Section 9. "Watchdog, Deadman, and Power-up Timers" (DS60001114)
• Section 10. "Power-Saving Modes" (DS60001130)
• Section 12. "I/O Ports" (DS60001120)
• Section 14. "Timers" (DS60001105)
• Section 14. "Peripheral Trigger Generator (PTG)" (DS50003105)
• Section 15. "Input Capture" (DS60001122)
• Section 16. "Output Compare" (DS60001111)
• Section 21. "UART" (DS60001107)
- Section 22. "12-bit High-Speed Successive Approximation Register (SAR) Analog-to-Digital Converter (ADC)" (DS60001344)
• Section 23. "Serial Peripheral Interface (SPI)" (DS60001106)
• Section 24. "Inter-Integrated Circuit (I ^2 C)" (DS60001116)
• Section 26. "Asymmetric Crypto Engine" (DS60001695)
• Section 27. "USB On-The-Go (OTG)" (DS61126)
• Section 29. "Real-Time Clock and Calendar (RTCC)" (DS60001125)
• Section 31. "DMA Controller" (DS60001117)
• Section 32. "Configuration" (DS60001124)
• Section 33. "Programming and Diagnostics" (DS60001129)

• Section 34. "Controller Area Network (CAN)" (DS60001154)
• Section 34. "Enhanced Capacitive Voltage Divider (CVD) Controller" (DS60001684)
• Section 35. "Ethernet Controller" (DS60001155)
• Section 42. "Oscillators with Enhanced PLL" (DS60001250)
• Section 46. "Serial Quad Interface (SQL)" (DS60001244)
• Section 49. "Crypto Engine and Random Number Generator (RNG)" (DS60001246)
- Section 50. "CPU for Devices with MIPS32 ^ microAptiv ^TM and M-Class Cores" (DS60001192)
• Section 56. "Controller Area Network with Flexible Data-rate (CAN FD)" (DS60001549)

1.0 ORDERING INFORMATION

This chapter provides the ordering information of the PIC32MZ1025W104 SoC and the WFI32 Module.

1.1 PIC32MZ1025W104 SoC Ordering Information

The following table describes the ordering information of the PIC32MZ1025W104 SoC.

TABLE 1-1: PIC32MZ1025W104 SOC ORDERING DETAILS

SoC Name Pin and Package Description Ordering Code
PIC32MZ1025W104 132-pin and DQFN (10 mm x10 mm x 0.9 mm)32-bit MCU Wi-Fi Connectivity and Security AcceleratorPIC32MZ1025W104132-I/NX

The following figure illustrates the details of PIC32MZ1025W104 SoC ordering information.

FIGURE 1-1: PIC32MZ1025W104 SOC ORDERING INFORMATION
Microchip PIC32MZ1025W104132 - PIC32MZ1025W104 SoC Ordering Information - 1

flowchart
graph TD
    A["PIC32 MZ 10"] --> B["Microchip Brand"]
    A --> C["Architecture"]
    A --> D["Memory Size 10 = 1024 KB"]
    A --> E["RAM Size 25 = 256 KB"]
    A --> F["Family W1 = WLAN"]
    A --> G["Key Feature Set"]
    A --> H["Pin Count 132 Pin Device"]
    A --> I["Packing Specification Tray"]
    A --> J["Temperature Range I = Industrial (-40°C to +85°C) V = Various (-40°C to +105°C)"]
    A --> K["Packaging Information 132-Lead (10x10x0.9 mm) DQFN - Dual Row"]
    A --> L["Pattern Information QTP, SQTP, Code and Special Requirements ES = Engineering Sample"]
    A --> M["W1 04 132"]
    A --> N["T I - /N NX XXX"]

1.2 WFI32 Module Ordering Information

The following table describes the ordering information of the WFI32 Module.

TABLE 1-2: WFI32 MODULE ORDERING INFORMATION

Model No.Module SoC DescriptionRegulatory CertificationOrdering Code
WFI32E01PEPIC32MZ1025W104132-I/NX WFI32E01 Module with PCB antennaI32E01 Module with PCB antenna FCC, ISED, CE, UKCA, MIC, KCC, NCC and SRRCWFI32E01PE - I
WFI32E01PCenna and Trust&GOFCC, ISED, CE, UKCA, MIC, KCC, NCC and SRRCWFI32E01PC - I
WFI32E01UEWFI32E01 Module with U.FL connectorConnector for external antennaFCC, ISED, CE, UKCA, MIC, KCC, NCC and SRRCWFI32E01UE - I
WFI32E01UCWFI32E01 Module with U.FL connector for external antenna and Trust&GOFCC, ISED, CE, UKCA, MIC, KCC, NCC and SRRCWFI32E01UC - I
WFI32E02UCWFI32E02 Module with U.FL connector for external antenna and Trust&GOFCC, ISED, CE, UKCA, MIC, KCC, NCC and SRRCWFI32E02UC - I
WFI32E02UEWFI32E02 Module with U.FL connectorConnector for external antennaFCC, ISED, CE, UKCA, MIC, KCC, NCC and SRRCWFI32E02UE - I

The following figure illustrates the details of the WFI32 Module ordering information.

FIGURE 1-2: WFI32 MODULE ORDERING INFORMATION
Microchip PIC32MZ1025W104132 - WFI32 Module Ordering Information - 1

flowchart
graph TD
    A["WFI"] --> B["32"]
    B --> C["E0X"]
    C --> D["P/U"]
    D --> E["E/C"]
    E --> F["I"]
    F --> G["XXX"]
    H["Microchip Brand"] --> A
    I["Architecture\n32 = Embedded 32-bit MCU Core"] --> A
    J["Family\nE01 = WLAN Connectivity\nE02 = WLAN Connectivity with Additional Pins"] --> A
    K["Antenna\nP = PCB Antenna\nU = U.FL Connector"] --> A
    L["Encryption\nE = Encryption\nC = Trust&Go + Encryption"] --> A
    M["Temperature Range\nI = Industrial (-40°C to +85°C)"] --> A
    N["FW Version/Custom Designations"] --> A

2.0 PIC32MZ1025W104 SOC DESCRIPTION

Note: This data sheet summarizes the features of the PIC32MZ1025W104 SoC. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

This chapter contains device-specific information for the PIC32MZ1025W104 SoC.

2.1 Block Diagram

The following figure illustrates the block diagram of the core and peripheral modules in the PIC32MZ1025W104 SoC.

FIGURE 2-1: PIC32MZ1025W104 SoC BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - Block Diagram - 1

flowchart
graph TD
    subgraph_Timing_Generation["Timing Generation"]
        A["POS C Oscillators"] --> B["SOSC Oscillators"]
        B --> C["FRC/LPRC Oscillators"]
        C --> D["PLL"]
        D --> E["PLL-BT"]
        E --> F["PLL-ETH_WI-FI"]
        F --> G["PLL-USB"]
        G --> H["Dividers"]
        H --> I["SYSCLK PBxCLK"]
        I --> J["BUCK/MLDO"]
        J --> K["LDOs"]
        K --> L["Power-up Timer"]
        L --> M["Oscillator Start-up Timer"]
        M --> N["Power-on Reset"]
        N --> O["Precision Band Gap Reference"]
        O --> P["Brown-out Reset"]
        P --> Q["Watchdog Timer"]
        Q --> R["PLVD"]
        I --> S["V_DD, AWD, VSS, MCLR"]
    end

    subgraph_System_Bus["System Bus"]
        T["EVIC"] --> U["EJTAG INT MIPS32® M-Class Core I-Cache D-Cache System Bus I/F"]
        U --> V["JTAG/BSCAN"]
        V --> W["T6"]
        W --> X["I2 T5"]
        X --> Y["T4"]
        Y --> Z["I9"]
        Z --> AA["I8"]
        AA --> AB["T7"]
        AB --> AC["T11"]
        AC --> AD["Peripheral Bus 3"]
        AD --> AE["UART1"]
        AD --> AF["UART2"]
        AD --> AG["ICAP (1-4)"]
        AD --> AH["OCMP (1-4)"]
        AI["Peripheral Bus 1"] --> AJ["Flash Controller"]
        AJ --> AK["PFM Flash Wrapper and ECC 272-bit wide Flash Memory"]
        AK --> AL["CAN-FD"]
        AL --> AM["CAN"]
        AM --> AN["Peripheral Bus 2"]
        AN --> AO["2 S&H SAR ADC Port A"]
        AN --> AP["Port B"]
        AQ["Peripheral Bus 3"] --> AR["UART1"]
        AQ --> AS["UART2"]
        AQ --> AT["ICAP (1-4)"]
        AQ --> AU["OCMP (1-4)"]
    end

    subgraph I = Initiator["I = Initiator"]
        AV["CFG"] <--> AW["WDT"] <--> AX["PTG"] <--> AY["UART3"] <--> AZ["Timer (1-7)"]
        BA["PPS"] <--> BB["ICD"] <--> BC["DMT"] <--> BD["WCM"] <--> BE["Timer (1-7)"]
    end

    subgraph T = Target["T = Target"]
        BF["SPI1"] <--> BG["SPI2"] <--> BH["I2C2"]
    end

2.2 Function-wise Pinout Description

The following tables provide the function-wise pinout descriptions for the PIC32MZ1025W104 SoC and the WFI32 Module pins.

TABLE 2-1: ADC PINOUT DESCRIPTION

PIC32MZ1025W104 WFI32E01 WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
AN0B52AN0B5IAnalogA/D Analog Input Channels
AN1 A62 AN13AN1 B2 IAnalog
AN2 B51 AN27AN2 A5 IAnalog
AN3 A61 —— AN3 B32IAnalog
AN4 B50 AN42AN4 B4 IAnalog
AN5 B49 AN552AN5 A4 IAnalog
AN6B47AN646AN6A47IAnalog
AN7A57AN749AN7A48IAnalog
AN8B46AN847AN8B30IAnalog
AN9A56AN948AN9B31IAnalog
AN10A52AN10B27IAnalog
AN11B43AN11B29IAnalog
AN12A50AN12B26IAnalog
AN13A49AN13A42IAnalog
AN14B41AN1444AN14A45IAnalog
AN15A48AN1542AN15B25IAnalog
AN16B40AN16B28IAnalog
AN17B39AN1741AN17A44IAnalog
AN18B38IAnalog
AN19A45IAnalog
ANA0A51ANA045ANA0A43IAnalog
ANB0B44ANB0A46IAnalogA/D Negative Analog Input Channels
ANN0B41ANN044ANN0A45IAnalog
ANN1A48ANN142ANN1B25IAnalog
Legend: Analog = Analog input I = Input

TABLE 2-2: OSCILLATOR PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
XTAL_INA29I40 MHz Primary Oscillator Crystal Input
XTAL_OUTA30O40 MHz Primary Oscillator Crystal Output
SOSCIA59SOSCI53SOSCIB34I32.768 kHz Secondary Oscillator Crystal Input
SOSCOA58SOSCO54SOSCOB33O32.768 kHz Secondary Oscillator Crystal Output
REFIPPSREFIPPSREFIPPSIReference Clock Generator Input
REFO1PPSREFO1PPSREFO1PPSOReference Clock Generator Outputs 1-4
REFO2PPSREFO2PPSREFO2PPSO
REFO3PPSREFO3PPSREFO3PPSO
REFO4PPSREFO4PPSREFO4PPSO
Legend: PPS = Peripheral Pin Select I = Input O = output

TABLE 2-3: IC1 THROUGH IC4 PINOUT DESCRIPTION

PIC32MZ1025W104 WF32E01 WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Input Capture
IC1 PPS IC1 PPS IC1 PPS I ST InputCapture Inputs 1-4
IC2 PPS IC2 PPS IC2 PPS I ST
IC3 PPS IC3 PPS IC3 PPS I ST
IC4 PPS IC4 PPS IC4 PPS I ST

Legend: ST = Schmitt Trigger input with CMOS levels I = Input PPS = Peripheral Pin Select

TABLE 2-4: OC1 THROUGH OC4 PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Output Compare
OC1PPSOC1PPSOC1PPSOOutput Compare Outputs 1-4
OC2PPSOC2PPSOC2PPSO
OC3PPSOC3PPSOC3PPSO
OC4PPSOC4PPSOC4PPSO
OCFAPPSOCFAPPSOCFAPPSISTOutput Compare Fault A Input
OCFBPPSOCFBPPSOCFBPPSISTOutput Compare Fault B Input
OCFCPPSOCFCPPSOCFCPPSISTOutput Compare Fault C Input
OCFDPPSOCFDPPSOCFDPPSISTOutput Compare Fault D Input

Legend: ST = Schmitt Trigger input with CMOS levels O = Output I = Input PPS = Peripheral Pin Select

TABLE 2-5: EXTERNAL INTERRUPTS PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
External Interrupts
INT0B39INT041INT0A44ISTExternal Interrupt 0
INT1PPSINT1PPSINT1PPSISTExternal Interrupt 1
INT2PPSINT2PPSINT2PPSISTExternal Interrupt 2
INT3PPSINT3PPSINT3PPSISTExternal Interrupt 3
INT4PPSINT4PPSINT4PPSISTExternal Interrupt 4

Legend: ST = Schmitt Trigger input with CMOS levels I = Input PPS = Peripheral Pin Select

TABLE 2-6: PORTA THROUGH PORTC AND PORTK PINOUT DESCRIPTION

PIC32MZ1025W104 WFI32E01 WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
PORTA
RA0 B6 —— RA0 B12I/O DIG/STPORTA Digital I/O
RA1 A14RA1 20RA1 A19 I/ODIG/ST
RA2 A15— —RA2 B15 I/ODIG/ST
RA3 B14— —RA3 B16 I/ODIG/ST
RA4 A16RA4 33RA4 B17 I/ODIG/ST
RA5 B15RA5 32RA5 B18 I/ODIG/ST
RA6 B16— —RA6 B19 I/ODIG/ST
RA7 A21— —RA7 B21 I/ODIG/ST
RA8 B17— —RA8 B20 I/ODIG/ST
RA9 A22— —RA9 B22 I/ODIG/ST
RA10B39RA1041RA10A44I/ODIG/ST
RA11A47RA1143RA11A41I/ODIG/ST
RA12B40RA12B28I/ODIG/ST
RA13A48RA1342RA13B25I/ODIG/ST
RA14B41RA1444RA14A45I/ODIG/ST
RA15A49RA15A42I/ODIG/ST
PORTB
RB0 B52— —RB0 B5I/O DIG/STPORTB Digital I/O
RB1 A62RB1 3RB1 B2I/O DIG/ST
RB2 B51RB2 7RB2 A5I/O DIG/ST
RB3 A61— —RB3 B32 I/ODIG/ST
RB4 B50RB4 2RB4 B4I/O DIG/ST
RB5 B49RB5 52RB5 A4I/O DIG/ST
RB6 B47RB6 46RB6 A47 I/ODIG/ST
RB7 A57RB7 49RB7 A48 I/ODIG/ST
RB8 B46RB8 47RB8 B30 I/ODIG/ST
RB9 A56RB9 48RB9 B31 I/ODIG/ST
RB10A52— — RB10B27 I/O DIG/ST
RB11B44— — RB11A46 I/O DIG/ST
RB12A51RB1245RB12A43I/ODIG/ST
RB13B43— — RB13B29 I/O DIG/ST
RB14A50— — RB14B26 I/O DIG/ST
PB15A59PB1553PB15B34IDIG/ST
PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
PORTC
RC0 A9 —— RC0 —I/O DIG/STPORTC Digital I/O
RC1 B8 —— RC1 —I/O DIG/ST
RC2 A10 —— RC2 —I/O DIG/ST
RC3 B9 —— RC3 —I/O DIG/ST
RC4 B10 —— RC4 —I/O DIG/ST
RC5 A12 —— RC5 —I/O DIG/ST
RC6 B11 RC6 21 RC6— I/O DIG/ST
RC7 A13 RC7 19 RC7— I/O DIG/ST
RC8 B12 RC8 23 RC8— I/O DIG/ST
RC9 B5 RC9 18 RC9— I/O DIG/ST
RC10 B57 RC10 10 RC10 — I/O DIG/ST
RC11A68RC119RC11I/ODIG/ST
RC12 B58 RC12 12 RC12 — I/O DIG/ST
RC13 A69 RC13 8RC13— I/O DIG/ST
RC14 B2 RC14 13 RC14 — I/O DIG/ST
RC15 A4 RC15 14 RC15 — I/O DIG/ST
PORTK
RK0A44 — — RK0— I/O DIG/ST PORTK Digital I/O
RK1B37 RK134 RK1— I/O DIG/ST
RK2A45 — — RK2— I/O DIG/ST
RK3B38 RK335 RK3— I/O DIG/ST
RK4B18 RK424 RK4— I/O DIG/ST
RK5B19 RK527 RK5— I/O DIG/ST
RK6A24 RK625 RK6— I/O DIG/ST
RK7B20 RK728 RK7— I/O DIG/ST
RK8B21 — — RK8— I/O DIG/ST
RK9A26 — — RK9— I/O DIG/ST
RK10B22— — RK10— I/O DIG/ST
RK11A27RK11I/ODIG/ST
RK12A6 RK1215 RK12— I/O DIG/ST
RK13A5 RK1316 RK13— I/O DIG/ST
RK14B4 RK1417 RK14— I/O DIG/ST
PK15A58PK1554PK15IDIG/ST

Legend: DIG = Digital input
ST = Schmitt Trigger input with CMOS levels
O = Output I = Input

TABLE 2-7: TIMER1 THROUGH TIMER7 AND RTCC PINOUT DESCRIPTION

PIC32MZ1025W104 WWFI32E01 WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Timer1 through Timer7
T1CK PPST1CK PPST1CK PPSI ST Timer1 ExternalClock Input
T2CK PPST2CK PPST2CK PPSI ST Timer2 ExternalClock Input
T3CK PPST3CK PPST3CK PPSI ST Timer3 ExternalClock Input
T4CK PPST4CK PPST4CK PPSI ST Timer4 ExternalClock Input
T5CK PPST5CK PPST5CK PPSI ST Timer5 ExternalClock Input
T6CK PPST6CK PPST6CK PPSI ST Timer6 ExternalClock Input
T7CK PPST7CK PPST7CK PPSI ST Timer7 ExternalClock Input
Real-Time Clock and Calendar
RTCCB49RTCC52RTCC52ORTCC Output Clock

Legend: ST = Schmitt Trigger input with CMOS levels
O = Output I = Input
PPS = Peripheral Pin Select

TABLE 2-8: UART1 (DEDICATED) PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Universal Asynchronous Receiver Transmitter 1
U1CTSnB16U1CTSnB19ISTUART1 Clear to Send (CTS) Input
U1RTSn/U1BCLKA21U1RTSn/U1BCLKB21O DIGUART1 Request to Send (RTS) Output/UART1 Baud Clock
U1RXB17U1RX30U1RXB20ISTUART1 Receive
U1TXA22U1TX29U1TXB22ODIGUART1 Transmit

Legend: DIG = Digital input
ST = Schmitt Trigger input with CMOS levels
O = Output I = Input

TABLE 2-9: UART1 THROUGH UART3 PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Universal Asynchronous Receiver Transmitter 1
U1CTSnPPSU1CTSnPPSU1CTSnPPSISTUART1 CTS Input
U1RTSn/U1BCLKPPSU1RTSnPPSU1RTSnPPSODIGUART1 RTS Output/UART1 Baud Clock
U1RXPPSU1RXPPSU1RXPPSISTUART1 Receive
U1TXPPSU1TXPPSU1TXPPSODIGUART1 Transmit
Universal Asynchronous Receiver Transmitter 2
U2CTSnPPSU2CTSnPPSU2CTSnPPSISTUART2 CTS Input
U2RTSn/U2BCLKPPSU2RTSnPPSU2RTSnPPSODIGUART2 RTS Output/UART2 Baud Clock
U2RXPPSU2RXPPSU2RXPPSISTUART2 Receive
U2TXPPSU2TXPPSU2TXPPSODIGUART2 Transmit
Universal Asynchronous Receiver Transmitter 3
U3CTSnPPSU3CTSnPPSU3CTSnPPSISTUART3 CTS Input

Legend: DIG = Digital input
ST = Schmitt Trigger input with CMOS levels
O = Output I = Input
PPS = Peripheral Pin Select

TABLE 2-9: UART1 THROUGH UART3 PINOUT DESCRIPTION (CONTINUED)

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
U3RTSn/U3BCLKPPS U3RTSn PPS U3RSn PPS ODIG UART3RTS OutputUART3BaudClock
U3RX PPS U3RX PPS U3RX PPS I STUART3 Receive
U3TX PPS U3TX PPS U3TX PPS O DIG UART3 Transmit

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input PPS = Peripheral Pin Select

TABLE 2-10: SPI1 (DEDICATED) PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Serial Peripheral Interface 1
SCK1 B11CK1 21 SCK1 A20I/ODIG/STSPI1 Synchronous Serial Clock Input/Output
SDI1A13SDI119SDI1A18ISTSPI1 Data In
SDO1B12SDO123SDO1A21ODIGSPI1 Data Out
\overline{SS1}/\overline{CS1}A14\overline{SS1}/\overline{CS1}20\overline{SS1}/\overline{CS1}$ A19I/ODIG/STSPI1 Client Select/Chip Select/Frame Sync (active-low)

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input

TABLE 2-11: SPI1 THROUGH SPI 2 PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Serial Peripheral Interface 1
SCK1B11SCK121SCK1A20I/ODIG/STSPI1 Synchronous Serial Clock Input/Output
SDI1PPSSDI1PPSSDI1PPSISTSPI1 Data In
SDO1PPSSDO1PPSSDO1PPSODIGSPI1 Data Out
1/CS1 PPS 1/CS1 PPS 1/CS1 PPSI/ODIG/STSPI1 Client Select/Chip Select/Frame Sync (active-low)
Serial Peripheral Interface 2
SCK2A47SCK243SCK2A41I/ODIG/STSPI2 Synchronous Serial Clock Input/Output
SDI2PPSSDI2PPSSDI2PPSISTSPI2 Data In
SDO2PPSSDO2PPSSDO2PPSODIGSPI2 Data Out
2/CS2 PPS 2/CS2 PPS 2/CS2 PPSI/ODIG/STSPI2 Client Select/Chip Select/Frame Sync (active-low)

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input PPS = Peripheral Pin Select

TABLE 2-12: I2C1 THROUGH I2C2 PINOUT DESCRIPTION

PIC32MZ1025W104 WFI32E01 WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Inter-Integrated Circuit 1
SCL1 A16SCL1 33 SSCL1 B17 I/ODIG/I2C/SMBI2C1 Synchronous Serial Clock Input/Output
SDA1 B15SDA1 32SDA1 B18 I/ODIG/I2C/SMBI2C1 Data Input/Output
Inter-Integrated Circuit 2
SCL2 A15— —SCL2 B15I/O DIG/I2C/SMBI2C2 Synchronous Serial Clock Input/Output
SDA2 B14— —SDA2 B16I/O DIG/I2C/SMBI2C2 Data Input/Output

Legend: DIG = Digital input O = Output I = Input

TABLE 2-13: USB PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
V_BUSA65V_BUS4V_BUSA65IUSB V_BUS Input Signal (3.3V); can be left open when USB not in use(1).
VUSB3V3B54P• USB Internal Transceiver Supply Voltage (3.3V).• This pin must be connected to the 3.3V even if USB is not used.
D+A64USB D+6USB D+A64I/OUSB D+
D-A63USB D-5USB D-A63I/OUSB D-
USBIDB51USBID7USBIDB51ISTUSB OTG ID input
USBOENA61USBOENB32ODIGUSB transceiver interface output enable state
VBUSONA62VBUSON3VBUSONA62ODIGUSB ON signal for external VBUS source

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input P = Power
Note 1: The recommendation is to use a voltage divider on the V_BUS . For more details, refer to Section 3.2.6 "USB".

TABLE 2-14: CAN AND CAN-FD PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
C1TXPPSC1TXPPSC1TXPPSOCAN1 Bus Transmit Pin
C1RXPPSC1RXPPSC1RXPPSISTCAN1 Bus Receive Pin
C2TXPPSC2TXPPSC2TXPPSOCAN2 Bus Transmit Pin
C2RXPPSC2RXPPSC2RXPPSISTCAN2 Bus Receive Pin

Legend: ST = Schmitt Trigger input with CMOS levels O = Output I = Input PPS = Peripheral Pin Select
Note: The CAN1 bus supports only the CAN interface, and the CAN2 bus supports both the CAN and CAN-FD interfaces.

TABLE 2-15: ETHERNET RMII PINOUT DESCRIPTION

PIC32MZ1025W104 WF32E01 WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Ethernet RMII Interface
ERXD0 A68 ERXD0 9 ERXD0 A68 I ST Ethernet Receive Data 0
ERXD1 B57 ERXD1 10ERXD1 B57 I ST Ethernet Receive Data 1
ERXERRB5ERXERR18ERXERRB5ISTEthernet Receive Error
ERXDVA6ERXDV15ERXDVA6ISTEthernet Receive Data Valid
ETHCLKOUTB58ETH_CLK_OUT12ETH_CLK_OUTB58OSTEthernet Clock Output (50 MHz)
ETXD0A4ETXD014ETXD0A4ODIGEthernet Transmit Data 0
ETXD1B2ETXD113ETXD1B2ODIGEthernet Transmit Data 1
ETXEN A69 ETXEN 8 ETXEN A69 ODIGEthernet Transmit Enable
EMDCB4EMDC17EMDCB4ODIGEthernet Management Data Clock
EMDIOA5EMDIO16EMDIOA5I/OST/DIGEthernet Management Data

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input

TABLE 2-16: SQI1 PINOUT Description

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
SQICLKA12SQICLKA12ODIG/STSQI1 Clock
SQICS0B6SQICS0B6ODIGSQI Chip Select 0
SQICS1A9SQICS1A9ODIGSQI Chip Select 1
SQID0B10SQID0B10I/ODIG/STSQI1 Data[0]
SQID1B9SQID1B9I/ODIG/STSQI1 Data[1]
SQID2A10SQID2A10I/ODIG/STSQI1 Data[2]
SQID3B8SQID3B8I/ODIG/STSQI1 Data[3]

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input

TABLE 2-17: POWER, GROUND AND VOLTAGE REFERENCE PINOUT DESCRIPTION

PIC32MZ1025W104 WFI32E01 WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
Power and Ground
VPMU_VDDP A70, B60 — —— — P —Input Supply Voltage (3.3V) to PMU
PMU_VDDIO/VPMU_VDDCB1 — —— — PInput Supply Voltage (3.3V) to PMU Core
VBATA60— — — —P —Backup Battery Voltage and must Be Connected to Input Supply Voltage (3.3V)
BUK_MDLO_OUTB59— — — —P —MLDO Output Voltage (1.5V), for Internal Usage only; Do Not Connect to Any External Circuit
BUK_BK_LXA71— — — —P —Buck Output to External LC Filter.
PMU_VSENSEA2 — — —— P —Feedback Voltage to PMU
VDD33A3, A11, A25, A46, A67, B3, B13, B483V3_MOD51, 52VDDA51, A52PInput Supply Voltage (3.3V)
VUSB3V3B54— — — —P —USB Input Supply Voltage (3.3V)
AVDD33B423V3_MOD51, 52AVDDB35PAnalog Input Supply Voltage (3.3V)
AVssB45PAnalog Ground
VDD15A66, A8— — — —P —Input Supply Voltage (1.5V) from PMU
IOVDD_RFA34, B26 —— — — P —ESD Input Voltage (3.3V)
RXR_RIQ_VDD15A40PRF Supply Voltage (1.5V) from PMU
RXR_FE1_VDD15B33— — — —P —
RXR_FE2_VDD15B32— — — —P —
SYN_PLL_VDD15B28— — — —P —
SYN_SD_VDD15A32— — — —P —
SYN_VCO_VDD15A33— — — —P —
XTAL_VDD15B24— — — —P —
TXR_LPA_VDD15B36— — — —P —
TXR_UMX_VDD15A42— — — —P —
SPI_VDD15B23— — — —P —
BB_VDD15B34— — — —P —
AFE_VDD15A28— — — —P —
Voltage Reference
LVDINA52LVDINB27IAnalogProgrammable Low-Voltage Detect Input
GNDDBGND— — — —P —

Legend: P = Power
Analog = Analog input
I = Input

TABLE 2-18: JTAG, TRACE AND PROGRAMMING/DEBUGGING PINOUT DESCRIPTION

PIC32MZ1025W104 WFI32E01 WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
JTAG
TCK B46 TCK 47TCK B30 I STJTAG Test Clock/Programming Clock Input
TDIA56 TDI48 TDIB31 I STJTAG Test Data/Programming Data Input
TDOA57TDO49TDOA48ODIGJTAG Test Data Output
TMSB47TMS46TMSA47ISTJTAG Test Mode Select Input
Trace
TRCLKB41TRCLKA45ODIGTrace Clock
TRD0A49TRD0A42ODIGTrace Data
TRD1A50TRD1B26ODIG
TRD2B43TRD2B29ODIG
TRD3A51TRD3A43ODIG
Programming/ Debugging
MCLRA23MCLR26MCLRA27ISTMaster Clear (Device Reset) Input(active-low)
PGC1/EMUC1A61PGC1/EMUC1B32ISTICSP Programming Clock
PGC1ENTRYA61ISTTest Mode Entry Clock
PGC2/EMUC2B50PGC22PGC2/EMUC2B4ISTICSP Programming Clock
PGC2ENTRYB50ISTTest Mode Entry Clock
PGC4/EMUC4B46PGC447PGC4/EMUC4B30ISTICSP Programming Clock
PGC4ENTRYB46ISTTest Mode Entry Clock
PGD1/EMUD1B51PGD1/EMUD1A5I/ODIG/STICSP Programming Data
PGD1ENTRYB51ISTTest Mode Entry Data
PGD2/EMUD2B49PGD252PGD2/EMUD2A4I/ODIG/STICSP Programming Data
PGD2ENTRYB49ISTTest Mode Entry Data
PGD4/EMUD4A56PGD448PGD4/EMUD4B31I/ODIG/STICSP Programming Data
PGD4ENTRYA56ISTTest Mode Entry Data

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input PPS = Peripheral Pin Select

TABLE 2-19: WI-FI INTERFACE PINOUT DESCRIPTION

PIC32MZ1025W104 WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
RF_FE_1 A45(1)— — — —I/O DIG/STRF Front-End Control
RF_FE_2 B38 RF_FE_2 35RF_FE_2A33I/O DIG/ST
RF_FE_3 A44(1)I/ODIG/ST
RF_FE_4 B37 RF_FE_4 34RF_FE_4A34I/O DIG/ST
RF_FE_5 A27 — —RF_FE_5 A29I/ODIG/ST
RF_FE_6 B22 — —RF_FE_6 B23I/ODIG/ST
RF_FE_7 B21 — —RF_FE_7 A30I/ODIG/ST
RF_FE_8 A26 — —RF_FE_8 A28I/ODIG/ST
ANALOG_TEST A31— — — —O —Analog Test Output
IN_TSSIB27 — —— — ITSSI (Transmitter Signal Strength Indication) Input
MBS_EXTRA_48KB31ODC Output (Band Gap Voltage)
RXR_INA39 — —— — IReceiver Input
TXR_LPA_VOUTA43OTransmitter Output

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input
Note 1: A44 and A45 pins are used for controlling the FEM on the WFI32 Module. Microchip recommends using these pins as described in the reference design package. Contact the Microchip Sales/Support Team for the reference package.

TABLE 2-20: WI-FI BLUETOOTH ^ COEXISTENCE ^(1)

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
BT_CLK_OUTB18BT_CLK_OUT24BT_CLK_OUTA23ODIGBluetooth®Clock Out
PTA_BT_ACTIVEB20PTA_BT_ACTIVE28PTA_BT_ACTIVEA24I/ODIG/STPacket Traffic Arbitration (PTA) three-wire interface for Wi-Fi and Bluetooth co-existence
PTA_BT_PRIOA24PTA_BT_PRIO25PTA_BT_PRIOA26I/ODIG/ST
PTA_WLAN_ACTIVEB19PTA_WLAN_ACTIVE27PTA_WLAN_ACTIVEA25I/ODIG/ST

Legend: DIG = Digital input ST = Schmitt Trigger input with CMOS levels O = Output I = Input
Note 1: This feature is currently not supported and it is recommended that it not be used in an end-product design. Microchip plans to support this feature in the future.

TABLE 2-21: CVD PINOUT DESCRIPTION

PIC32MZ1025W104 WWFI32E01 WFI32E02Pin TypeBuffer Type Description
Pin NamePin NumberPin NamePin NumberPin NamePin Number
CVD1 A62CVD1 3 CVDD1 B2 O DIGADC CVDControllerOutput
CVD2 B51CVD2 7 CVDD2 A5 O DIG
CVD3A61CVD3B32ODIG
CVD4 B50CVD4 2 CVDD4 B4 O DIG
CVD5 B49CVD5 52CVD5 A4O DIG
CVD6 B47CVD6 46CVD6 A47O DIG
CVD7 A57CVD7 49CVD7 A48O DIG
CVD8 B46CVD8 47CVD8 B30O DIG
CVD9 A56CVD9 48CVD9 B31O DIG
CVD10A52CVD10B27ODIG
CVD11B43CVD11B29ODIG
CVD12A50CVD12B26ODIG
CVD13A49CVD13A42ODIG
CVD14B41CVD1444CVD14A45ODIG
CVD15A48CVD1542CVD15B25ODIG
CVD16B40CVD16B28ODIG
CVD17B39CVD1741CVD17A44ODIG
CVD18B38CVD18A33ODIG
CVD19A45CVD19ODIG

Legend: DIG = Digital input O = Output

TABLE 2-22: ENHANCED CVD PINOUT DESCRIPTION

PIC32MZ1025W104 WWFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
CVDR1A62CVDR13CVDR1B2ODIGADC CVD Controller RX Output
CVDR2B51CVDR27CVDR2A5ODIG
CVDR3A61CVDR3B32ODIG
CVDR4B50CVDR42CVDR4B4ODIG
CVDR5B49CVDR552CVDR5A4ODIG
CVDR6B47CVDR646CVDR6A47ODIG
CVDR7A57CVDR749CVDR7A48ODIG
CVDR8B46CVDR847CVDR8B30ODIG
CVDR9A56CVDR948CVDR9B31ODIG
CVDR10A52CVDR10B27ODIG
CVDR11B43CVDR11B29ODIG
CVDR12A50CVDR12B26ODIG
CVDR13A49CVDR13A42ODIG
CVDR14B41CVDR1444CVDR14A45ODIG
CVDR15A48CVDR1542CVDR15B25ODIG
CVDR16B40CVDR16B28ODIG
CVDR17B39CVDR1741CVDR17A44ODIG
CVDR18B38CVDR18A33ODIG
CVDR19A45CVDR19ODIG
PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
CVDT0 A57CVDT0 49CVDT0 A48O DIG ADC CVD Controller TX Output
CVDT1 B47CVDT1 46CVDT1 A47O DIG
CVDT2 B49CVDT2 52CVDT2 A4O DIG
CVDT3 B50CVDT3 2CVDT3 B4O DIG
CVDT4 A61— — CVDT4 B32O DIG
CVDT5 B51CVDT5 7CVDT5 A5O DIG
CVDT6 A62CVDT6 3CVDT6 B2O DIG
CVDT7 B5CVDT7 18CVDT7 B9O DIG
CVDT8 B57CVDT8 10CVDT8 B7O DIG
CVDT9 A68CVDT9 9CVDT9 B6O DIG
CVDT10 B58CVDT1012 CVDT10A8 O DIG
CVDT11A69CVDT118CVDT11A7ODIG
CVDT12 B2CVDT1213 CVDT12B8 O DIG
CVDT13 A4CVDT1314 CVDT13A10 O DIG
CVDT14 A6CVDT1415 CVDT14A11O DIG
CVDT15 A5CVDT1516 CVDT15B10 O DIG
CVDT16 B4CVDT1617 CVDT16A9 O DIG
CVDT17 B6— — CVDT17 B12O DIG
CVDT18 A9— — CVDT18 B13O DIG
CVDT19 B8— — CVDT19 A13O DIG
CVDT20 A10— — CVDT20 A14O DIG
CVDT21 B9— — CVDT21 A15O DIG
CVDT22 B10— — CVDT22 B14O DIG
CVDT23 A12— — CVDT23 A16O DIG

Legend: DIG = Digital input O = Output

TABLE 2-23: CTRT PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
CTRTM0B39CTRTM041CTRTM0A44ISTCTR External Trigger
CTRTM1B40CTRTM1B28IST

Legend: ST = Schmitt Trigger input with CMOS levels I = Input

TABLE 2-24: PTG PINOUT DESCRIPTION

PIC32MZ1025W104WFI32E01WFI32E02Pin TypeBuffer TypeDescription
Pin NamePin NumberPin NamePin NumberPin NamePin Number
PTG28PPSPTG28PPSPTG28PPSOPeripheral Trigger Generator output buffer data
PTG29 PPSS PTG29PPSPTG29 PPSO
PTG30 PPSS PTG30PPSPTG30 PPSO
PTG31 PPSS PTG31PPSPTG31 PPSO

Legend: O = Output PPS = Peripheral Pin Select
Note: For more details on the designs using the PIC32MZ1025W104 SoC, refer to the PIC32MZ-W1_Reference_Design_Package on the product page.

3.0 WFI32 MODULE DESCRIPTION

The WFI32 is a fully-certified Module that contains the PIC32MZ1025W104 SoC, an integrated FEM and Trust&GO with following antenna options:

• PCB antenna (WFI32E01PC/WFI32E01PE)
• U.FL connector (WFI32E01UC/WFI32E01UE) for external antenna
- U.FL connector (WFI32E02UC/WFI32E02UE) for external antenna

The Trust&GO is a pre-configured and pre-provisioned secure element of Microchip's family of security-focused devices. The Trust&Go is connected using I2C2 in the Module.

The WFI32 Module has the following variants:

  • WFI32E01
  • WFI32E02

The following figure illustrates the WFI32E01 Module block diagram.

FIGURE 3-1: WFI32E01 MODULE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - WFI32 MODULE DESCRIPTION - 1

flowchart
graph TD
    A["PCB Antenna or U.FL Connector"] --> B["RF Front-end Module and Matching Circuit"]
    B --> C["PIC32MZ1025W104 SoC"]
    C --> D["Trust&GO (Optional)"]
    D --> E["I2C2"]
    E --> C
    C --> F["POSC (40 MHz)"]
    F --> G["MCLR (Reset)"]
    F --> H["JTAG/ICSP™"]
    F --> I["12-bit ADC (12 Ch.)"]
    F --> J["Ethernet (RMII)"]
    F --> K["SPI1/SPI2"]
    F --> L["USB 2.0 OTG (FS)"]
    F --> M["I2C1"]
    F --> N["CVD"]
    F --> O["CAN-FD"]
    F --> P["CAN"]
    F --> Q["UART1/UART2/UART3"]
    F --> R["GPIOs"]
    F --> S["V_DD (3V3)"]
    F --> T["SOSC (32.768 kHz)"]

The following figure illustrates the WFI32E02 Module block diagram.

FIGURE 3-2: WFI32E02 MODULE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - WFI32 MODULE DESCRIPTION - 2

flowchart
graph TD
    A["U.FL Connector"] --> B["RF Front-end Module and Matching Circuit"]
    B --> C["PIC32MZ1025W104 SoC"]
    C --> D["Trust&GO (Optional)"]
    D --> E["I2C2"]
    E --> C
    F["MCLR (Reset)"] --> G["JTAG/ICSP™"]
    G --> H["12-bit ADC (20 Ch.)"]
    H --> I["Ethernet (RMII)"]
    I --> J["SPI1/SPI2"]
    J --> K["SQI"]
    K --> L["USB 2.0 OTG (FS)"]
    L --> M["I2C1/I2C2"]
    M --> N["CVD"]
    N --> O["CAN-FD"]
    O --> P["CAN"]
    P --> Q["UART1/UART2/UART3"]
    Q --> R["GPIOs"]
    R --> S["V_DD (3V3)"]
    S --> T["AV_DD (3V3)"]
    T --> U["SOSC (32.768 kHz)"]
    C --> V["POSC (40 MHz)"]

3.1 Pinout Details

3.1.1 WFI32E01 PINOUT DETAILS

The following figure illustrates the WFI32E01 Module pinout diagram.

FIGURE 3-3: WFI32E01 MODULE PINOUT DIAGRAM
Microchip PIC32MZ1025W104132 - WFI32E01 PINOUT DETAILS - 1

scatter | Chip | Pin Number | Frequency | | :--- | :--- | :--- | | GND | 40 | 829 | | GND | 41 | 829 | | NC | 42 | 803 | | GND | 43 | 803 | | GND | 44 | 54 | | RF_FE_2 / RPK3 | 45 | 57 | | RF_FE_4 / RPK1 | 46 | 59 | | SCL1 / RPA4 | 47 | 60 | | SDA1 / RPA5 | 48 | 57 | WFI32E01 An17 / CVD17 / CVDR17 / INT0 / RPA10 An15 / ANN1 / CVD15 / CVDR15 / RPA13 SCK2 / RPA11 AN14 / ANN0 / CVD14 / CVDR14 / RPA14 ANA0 / RPB12 TMS / AN6 / CVD6 / CVDR6 / RPB6 TCK / PGC4 / AN8 / CVD8 / CVDR8 / RPB8 TDI / PGD4 / AN9 / CVD9 / CVDR9 / RPB9 TDO / AN7 / CVD7 / CVDR7 / RPB7 VDD VDD PGD2 / AN5 / CVD5 / CVDR5 / CVDT2 / RTCC / RPB5 GND PGC2 / AN4 / CVD4 / CVDR4 / CVDT3 / RPB4 AN1 / CVD1 / CVDR1 / CVDT6 / VBUSON / RPB1 VBUS USB D- USB D+ AN2 / CVD2 / CVDR2 / CVDT5 / USBID / RPB2 CVDT11 / ETXEN / RPC13 CVDT9 / ERXD0 / RPC11 CVDT8 / ERXD1 / RPC10 GND CVDT10 / ETH_CLK_OUT / RPC12 CVDT12 / ETXD1 / RPC14 CVDT13 / ETXD0 / RPC15 MCLR PTA_BT_PRIO / RPK6 BT_CLK_OUT / RPK4 SDO1 / RPC8 GND SCK1 / RPC6 SPI1CS / RPA1 SDI1 / RPC7 CVDT7 / ERXERR / RPC9 CVDT16 / EMDC / RPK14 CVDT15 / EMDIO / RPK13 CVDT14 / ERXDV / RPK12 SOSCI/PB15 SOSCO/PK15

Note 1: For details on the exact pin placement and dimensions, refer to Section 42.0 "Packaging Information".
2: For pin descriptions, refer to Table 3-1.
3: Pins (61-63) are not indicated in the Figure 3-3. For more details, refer to the Section 42.0 "Packaging Information".

TABLE 3-1: WFI32E01 MODULE PIN DESCRIPTION

Module Pin NumberSoC Pin NumberPin NamePin Type(1)Description
1 — GND P Ground
2 B50 PGC2 IIn Circuit Serial Programming^TM (ICSP)programming clock
AN4 I Analog input
CVD4 O ADC CVD controller output
CVDR4O ADC CVD controller RX
CVDT3O ADC CVD controller TX
RPB4I/ORemappable peripheral (2)
RB4 I/O PORTBdigital I/O
3 A62 AN1 I Analog input
CVD1 O ADC CVD controller output
CVDR1O ADC CVD controller RX
CVDT6O ADC CVD controller TX
VBUSONO USB ON signal for external VBUS source
RPB1I/ORemappable peripheral (2)
RB1 I/O PORTBdigital I/O
4 A65 VBUS IUSB VBUS signal input (3.3V), can be left open when USB not in use
5 A63 USB D-I/O USB data -
6 A64 USB D+I/O USB data +
7 B51 AN2 I Analog input
CVD2 O ADC CVD controller output
CVDR2O ADC CVD controller RX
CVDT5O ADC CVD controller TX
USBIDI USB OTG ID input
RPB2I/ORemappable peripheral (2)
RB2 I/O PORTBdigital I/O
8 A69 CVDT11O ADC CVD controller TX
ETXENO Ethernettransmit enable output
RPC13I/ORemappable peripheral (2)
RC13I/OPORTC digital I/O
9 A68 CVDT9O ADC CVD controller TX
ERXD0I EthernetRMII receive data bit 0
RPC11I/ORemappable peripheral (2)
RC11I/OPORTC digital I/O
10B57 CVDT8O ADC CVD controller TX
ERXD1I EthernetRMII receive data bit 1
RPC10I/ORemappable peripheral (2)
RC10I/OPORTC digital I/O
11— GND P Ground
12B58 CVDT10O ADC CVD controller TX
ETH_CLK_OUTOEthernet RMII reference clock out (50 MHz), requires an external 33 Ω series termination resistor
RPC12I/ORemappable peripheral (2)
RC12I/OPORTC digital I/O
13B2CVDT12O ADC CVD controller TX
ETXD1O EthernetRMII transmit data bit 1
RPC14I/ORemappable peripheral (2)
RC14I/OPORTC digital I/O
14 A4 CVDT3 O ADC CVDD controller TX
ETXD0 O Ethernet RMII receive data bit 0
RPC15 I/O Remappable peripheral (2)
RC15 I/O PORTC digital I/O
15 A6 CVDT4 O ADC CVDD controller TX
ERXDV I Ethernet RMII receive data valid
RPK12 I/O Remappable peripheral (2)
RK12 I/O PORTK digital I/O
16 A5 CVDT5 O ADC CVDD controller TX
EMDIO I/O Ethernet management data IO
RPK13 I/O Remappable peripheral (2)
RK13 I/O PORTK digital I/O
17 B4 CVDT6 O ADC CVDD controller TX
EMDC O Ethernet management data clock
RPK14 I/O Remappable peripheral (2)
RK14 I/O PORTK digital I/O
18 B5 CVDT7 O ADC CVDD controller TX
ERXERRI Ethernet RMII receive error
RPC9I/O Remappable peripheral (2)
RC9I/O PORTC digital I/O
19 A13SDI1I SPI1 serial data in
RPC7I/O Remappable peripheral (2)
RC7I/O PORTC digital I/O
20 A14SPI1CSO SPI client select/chip select input (active-low)
RPA1 I/O Remappable peripheral (2)
RA1I/O PORTA digital I/O
21 B11SCK1I/O SPI1 serial clock
RPC6I/O Remappable peripheral (2)
RC6I/O PORTC digital I/O
22 —GNDPGround
23 B12SDO1O SPI1 serial data out
RPC8I/O Remappable peripheral (2)
RC8I/O PORTC digital I/O
24 B18BT_CLK_OUT O Bluetooth®reference clock out (26 MHz)(6)
RPK4I/O Remappable peripheral (2)
RK4I/O PORTK digital I/O
25A24PTA_BT_PRIOI/OPacket Traffic Arbitration (PTA) Bluetooth priority signal for Bluetooth and Wi-Fi® coexistence(6)
RPK6I/O Remappable peripheral (2)
RK6I/O PORTK digital I/O
26(4)A23MCLRIReset signal, Active-low, requires external RC circuit
27B19PTA_WLAN_ACTIVEI/OPTA Wi-Fi active signal for Bluetooth and Wi-Fi coexistence(6)
RPK5I/O Remappable peripheral (2)
RK5I/O PORTK digital I/O
28B20PTA_BT_ACTIVEI/OPTA Bluetooth active signal for Bluetooth and Wi-Fi coexistence(6)
RPK7I/O Remappable peripheral (2)
RK7I/O PORTK digital I/O
29 A22U1TX O UART1 transmit
30 B17 U1RXI UART1 receive
31 — GND PGround
32B15SDA1I/OI2C data, requires an external pull-up resistor (1.8 kΩ)
RPA5 I/O Remappable peripheral (2)
RA5 I/O PORTA digital I/O
33A16SCL1I/OI2C clock, requires an external pull-up resistor (1.8 kΩ)
RPA4 I/O Remappable peripheral (2)
RA4 I/O PORTA digital I/O
34 B37 RF_FE_4I/O RF front-end control
RPK1 I/O Remappable peripheral (2)
RK1 I/O PORTK digital I/O
35 B38 RF_FE_2I/O RF front-end control
AN18 I/O Analog input
CVD18I/O ADC CVD controller output
CVDR18I/O ADC CVD controller RX
RPK3 I/O Remappable peripheral (2)
RK3 I/O PORTK digital I/O
36 — GND PGround
37 — GND PGround
38 — NC— RF test pad (only for factory use)
39 — GND PGround
40 — GND PGround
41 B39 AN17I Analog input
CVD17OADC CVD controller output
CVDR17OADC CVD controller RX output
INT0I External interrupt input 0
RPA10I/O Remappable peripheral (2)
RA10 I/O PORTA digital I/O
42 A48 AN15I Analog input
ANN1 I Analog input
CVD15OADC CVD controller output
CVDR15OADC CVD controller RX
RPA13I/O Remappable peripheral (2)
RA13 I/O PORTA digital I/O
43 A47 SCK2I/O SPI2 serial clock
RPA11I/O Remappable peripheral (2)
RA11I/O PORTA digital I/O
44 B41 AN14I Analog input
ANN0 I Analog input
CVD14OADC CVD controller output
CVDR14OADC CVD controller RX
RPA14I/O Remappable peripheral (2)
RA14 I/O PORTA digital I/O
45 A51 ANA0I Analog input
RPB12I/O Remappable peripheral (2)
RB12 I/O PORTB digital I/O
46 B47 TMSI JTAG Testmode select input
AN6 I Analog input
CVD6 O ADC CVD controller output
CVDR6 O ADC CVD controller RX
CVDT1 O ADC CVD controller TX
RPB6I/ORemappable peripheral(2)
RB6 I/O PORTB digital I/O
47 B46 TCKI JTAG test cock/programming clock input
PGC4I ICSP programming clock
AN8 I Analog input
CVD8 O ADC CVD controller output
CVDR8 O ADC CVD controller RX
RPB8I/ORemappable peripheral(2)
RB8 I/O PORTB digital I/O
48 A56 TDII JTAG test data/programming data input
PGD4I/OICSP programming data
AN9 I Analog input
CVD9 O ADC CVD controller output
CVDR9 O ADC CVD controller RX
RPB9I/ORemappable peripheral(2)
RB9 I/O PORTB digital I/O
49 A57 TDOO JTAG testdata output
AN7 I Analog input
CVD7 O ADC CVD controller output
CVDR7 O ADC CVD controller RX
CVDT0 O ADC CVD controller TX
RPB7I/ORemappable peripheral(2)
RB7 I/O PORTB digital I/O
50VDDPInput supply voltage (3V3)
51VDDPInput supply voltage (3V3)
52 B49 PGD2I/O ICSP programming data
AN5 I Analog input
CVD5 O ADC CVD controller output
CVDR5 O ADC CVD controller RX
CVDT2 O ADC CVD controller TX
RTCCO RTCC output clock
RPB5I/ORemappable peripheral(2)
RB5 I/O PORTB digital I/O
53 A59 SOSCII Secondary oscillator input
PB15I PORTB digital input
54 A58 SOSCOO Secondary oscillator output
PK15I PORTK digital input
55-60^(5) NCTest pad (only for factory use, no pads on the host board)
61-63^(5) GNDPExposed GND pads, must be soldered on the host board

Note 1: Legend:
- I = Input pin
- O = Output pin
- I/O = Input/Output pin

- P = Power pin

2: These pins can be configured for any of the supported peripheral functions based on the user's requirement. For more details, refer to Section 13.4 "Peripheral Pin Select (PPS)".
3: Every I/O port pin (RAx-RKx) can be used as a change notification pin (CNAx-CNKx). See Section 13.0 "I/O Ports" for more information.
4: Pins 26 through 30 are critical pins, and Microchip recommends adding series resistors in the host board. For more details on series resistor recommendations, see Figure 3-5.
5: For the placement of pins 55 through 63, refer to Section 42.2 "WFI32 Module Packaging Information".
6: The PTA features are currently not supported, and it is recommended that it not be used in an end-product design. Microchip plans to support this feature in the future.

Note: For module-related recommended operating values and electrical characteristics, refer to Section 41.2 "WFI32 Module Electrical Specifications".

3.1.2 WFI32E02 MODULE PINOUT DETAILS

The following figure illustrates the WFI32E02 Module pinout diagram.

FIGURE 3-4: WFI32E02 MODULE PINOUT DIAGRAM
Microchip PIC32MZ1025W104132 - WFI32E02 MODULE PINOUT DETAILS - 1

geo WFI32E02 | Category | Pin Number | | :--- | :--- | | GND | A10 | | GND | A39 | | NC | S7 | | GND | A36 | | Reserved | A34 | | Reserved | S4 | | RF_FE_4/RPK1 | ■ | | RF_FE_2/RPK3 | ■ | | GND | A32 | | GND | A31 | | RF_FE_7/RPK8 | ■ | | RF_FE_5/RPK11 | ■ | | RF_FE_8/RPK9 | ■ | | NMCLR | A27 | | PTA_BT_PRIO/RPK6 | ■ | | GND | B21 | | PTA_WLAN_ACTIVE/RPK5 | ■ | | RF_FE_6/RPK10 | ■ | | PTA_BT_ACTIVE/RPK7 | ■ | | U1TX | B22 | | BT_CLK_OUT/RPK4 | ■ | | U1RTSn | B21 | | GND | A22 | | U1RX | B20 | | ANB0/RPB11 | A46 | | ANB0/RPB11 | A46 | | PGC4/TCK/AN8/CVD8/CVDR8/RPB8 | B30 | | TMS/AN6/CVD6/CVDR6/CVDT1/RPB6 | A47 | | PGD4/TDI/AN9/CVD9/CVDR9/RPB9 | B51 | | TDO/AN7/CVD7/CVDR7/CVDT0/RPB7 | A48 | | AN3/CVD3/CVDR3/CVDT4/RPB3 | B32 | | GND | A49 | | SOSCO/PK15 | B33 | | GND | A50 | | SOSCI/PB15 | B30 | | VDD | A51 | | AVDD | B39 | | VDD | A52 | | GND | A1 | | VBUS | A2 | | GND | A3 | | VBUSON/CVD1/CVDR1/CVDT6/AN1/RPB1 USB_D-USB_D+PGD2/AN5/CVD5/CVDR5/CVDT2/RTCC/RPB5 PGC2/AN4/CVD4/CVDR4/CVDT3/RPB4 USBID/AN2/CVD2/CVDR2/CVDT5/RPB2 ANO/RPB0 GND ERXD0/CVDT9/RPC11 ETXEN/CVDT11/RPC13 ERXD1/CVDT8/RPC10 ETH_CLK_OUT/CVDT10/RPC12 ETXD1/CVDT12/RPC14 EMDC/CVDT16/RPK14 ERXERR/CVDT7/RPC9 ETXD0/CVDT13/RPC15 EMDIO/CVDT15/RPK13 ERXD/CVDT14/RPK12 GND GND SQICSO/RPA0 SQID3/RPC1 SQICSI/RPC0 SQID2/RPC2 SQICCLK/RPC5 SQID0/RPC4 SQID1/RPC3 SQICCLK/RPC5 SQID2/RPC2 SQICCLK/RPC5 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICSC0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RPC1 SQICCS0/RPA0 SQID3/RRCN RPLC (A) B ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ● S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2 S2

Note 1: For details on the exact pin placement and dimensions, refer to Section 42.0 "Packaging Information".
2: For pin descriptions, refer to Table 3-2.
3: Pins (93-102) are not indicated in Figure 3-4. For more details, refer to the Section 42.0 "Packaging Information".

TABLE 3-2: WFI32E02 MODULE PIN DESCRIPTION

Module Pin NumberSoC Pin NumberPin NamePin Type(1)Description
A1 — GND PGround
B1 A65 VBUSI USB VBUSsignal input (3.3V compliant andneeds a resistor divider on the host board), can be left open when USB not in use
A2 — GND PGround
B2 A62 AN1Analog input
CVD1 O ADC CVD controller output
CVDR1O ADC CVD controller RX
CVDT6O ADC CVD controller TX
VBUSONO USB ON signal for external VBUS source
RPB1I/ORemappable peripheral(2)
RB1 I/O PORTB digital I/O
A3 A63 USBD-I/O USB data -
B3 A64 USBD+I/O USB data +
A4 B49 PGD2I/O In Circuit Serial ProgrammingTM (ICSPTM) programming data

TABLE 3-2: WFI32E02 MODULE PIN DESCRIPTION (CONTINUED)

Module Pin NumberSoC Pin NumberPin NamePin Type(1)Description
B7 B57 CVDT8 O ADC CVD controller TX
ERXD1 I Ethernet RMI receive data bit 1
RPC10 I/O Remappable peripheral (2)
RC10 I/O PORTC digital I/O
A8 B58 CVDT10 O ADC CVD controller TX
ETH_CLK_OUT O Ethernet RMIreference clock out (50 MHz), requires an external 33 series termination resistor
RPC12 I/O Remappable peripheral (2)
RC12 I/O PORTC digital I/O
B8 B2 CVDT12 O ADC CVD controller TX
ETXD1 O Ethernet RMI transmitdata bit 1
RPC14 I/O Remappable peripheral (2)
RC14 I/O PORTC digital I/O
A9 B4 CVDT16 O ADC CVD controller TX
EMDCO Ethernet management data clock
RPK14I/O Remappable peripheral (2)
RK14I/O PORTK digital I/O
B9 B5 CVDT7 O ADC CVD controller TX
ERXERRI Ethernet RMII receive error
RPC9I/O Remappable peripheral (2)
RC9I/O PORTC digital I/O
A10A4 CVDT13O ADC CVD controller TX
ETXD0 O Ethernet RMII receive data bit 0
RPC15 I/O Remappable peripheral (2)
RC15 I/O PORTC digital I/O
B10A5 CVDT15O ADC CVD controller TX
EMDIO I/O Ethernet management data IO
RPK13I/O Remappable peripheral (2)
RK13I/O PORTK digital I/O
A11A6 CVDT14O ADC CVD controller TX
ERXDVI Ethernet RMII receive data valid
RPK12I/O Remappable peripheral (2)
RK12I/O PORTK digital I/O
B11GNDPGround
A12— GNDPGround
B12B6 SQICS0O SQI1 Chip Select
CVDT17 O ADC CVD controller TX
RPA0 I/O Remappable peripheral (2)
RA0I/O PORTA digital I/O
A13B8 SQID3I/O SQI1 Data[3]
CVDT19 O ADC CVD controller TX
RPC1I/O Remappable peripheral (2)
RC1I/O PORTC digital I/O
B13A9 SQICS1O SQI1 Chip Select
CVDT18 O ADC CVD controller TX
RPC0I/O Remappable peripheral (2)
RC0I/O PORTC digital I/O
A14 A10 SQID2 I/O SQI1Data[2]
CVDT20 O ADC CVDcontrollerTX
RPC2 I/O Remappable peripheral(2)
RC2 I/O PORTC digital I/O
A15 B9 SQID1 I/O SQI1Data[1]
CVDT21 O ADC CVDcontrollerTX
RPC3 I/O Remappable peripheral(2)
RC3 I/O PORTC digital I/O
B14 B10 SQID0 I/O SQI1Data[0]
CVDT22 O ADC CVDcontrollerTX
RPC4 I/O Remappable peripheral(2)
RC4 I/O PORTC digital I/O
A16 A12 SQICLK I/O SQI1Clock
CVDT23 O ADC CVDcontrollerTX
RPC5 I/O Remappable peripheral(2)
RC5 I/O PORTC digital I/O
B15 A15 SCL2 I/O I2C1 Synchronous Serial Clock Input/Output
RPA2 I/O Remappable peripheral(2)
RA2 I/O PORTA digital I/O
A17 —GNDPGround
B16 B14 SDA2I/O I2C2 Data Input/Output
RPA3 I/O Remappable peripheral(2)
RA3 I/O PORTA digital I/O
A18 A13 SDI1I SPI1 serial data in
RPC7 I/O Remappable peripheral(2)
RC7 I/O PORTC digital I/O
B17A16SCL1I/OI2C clock, requires an external pull-up resistor (1.8 kΩ)
RPA4 I/O Remappable peripheral(2)
RA4 I/O PORTA digital I/O
A19 A14 SPI1CS——O SPI client select/chip select input (active-low)
RPA1 I/O Remappable peripheral(2)
RA1 I/O PORTA digital I/O
B18B15SDA1I/OI2C data, requires an external pull-up resistor (1.8 kΩ)
RPA5 I/O Remappable peripheral(2)
RA5 I/O PORTA digital I/O
A20 B11SCK1I/O SPI1 serial clock
RPC6 I/O Remappable peripheral(2)
RC6 I/O PORTC digital I/O
B19 B16 U1CTSn IUART1 CTS Output
RA6 I/O PORTA digital I/O
A21 B12 SDO1O SPI1 serial data out
RPC8 I/O Remappable peripheral(2)
RC8 I/O PORTC digital I/O
B20 B17 U1RX IUART1 receive
A22 —GNDPGround
B21 A21 U1RTSn OUART1 RTS Input
RA7 I/O PORTA digital I/O
A23 B18 BTCLK_OUT OBluetooth ^ reference clock out (26 MHz)
RPK4 I/O Remappable peripheral(2)
RK4 I/O PORTK digital I/O
B22 A22 U1TX O UART1transmit
A24 B20 PTA_BT_ACTIVEI PTA Bluetooth active signal for Bluetooth and Wi-Fi ^ coexistence(6)
RPK7 I/O Remappable peripheral(2)
RK7 I/O PORTK digital I/O
B23 B22 RFFE_6 I/O RFfront-end control
RPK10 I/O Remappable peripheral(2)
RK10I/O PORTK digital I/O
A25B19PTA_WLAN_ACTIVEOPTA Wi-Fi active signal for Bluetooth and Wi-Fi coexistence(6)
RPK5 I/O Remappable peripheral(2)
RK5 I/O PORTK digital I/O
B24 —GNDPGround
A26A24PTA_BT_PRIOIPacket Traffic Arbitration (PTA) Bluetooth priority signal for Bluetooth and Wi-Fi coexistence(6)
RPK6 I/O Remappable peripheral(2)
RK6 I/O PORTK digital I/O
A27 A23 MCLRI Reset signal, Active-low, requires external RC circuit
A28 A26 RFFE_8 I/O RFfront-end control
RPK9 I/O Remappable peripheral(2)
RK9 I/O PORTK digital I/O
A29 A27 RFFE_5 I/O RFfront-end control
RPK11I/O Remappable peripheral(2)
RK11I/O PORTK digital I/O
A30 B21 RFFE_7 I/O RFfront-end control
RPK8 I/O Remappable peripheral(2)
RK8 I/O PORTK digital I/O
A31 —GNDPGround
A32 —GNDPGround
A33 B38 RFFE_2 I/O RFfront-end control
AN18I/O Analog input
CVD18I/O ADC CVD controller output
CVDR18I/O ADC CVD controller RX
RPK3 I/O Remappable peripheral(2)
RK3 I/O PORTK digital I/O
A34 B37 RFFE_4 I/O RFfront-end control
RPK1 I/O Remappable peripheral(2)
RK1 I/O PORTK digital I/O
A35(7)Reserved
A36(7)Reserved
A37 —GNDPGround
A38NCRF test pad (only for factory use)
A39 —GNDPGround
A40 —GNDPGround
A41 A47 SCK2 I/O SPI2 sserial clock
RPA11I/O Remappable peripheral(2)
RA11I/O PORTA digital I/O
B25 A48 AN15 I Analog input
ANN1 I Analog input
CVD15 O ADC CVD controller output
CVDR15 O ADC CVD controller RX
RPA13 I/O Remappable peripheral (2)
RA13 I/O PORTA digital I/O
A42 A49 AN13 I Analog input
CVD13 O ADC CVD controller output
CVDR13 O ADC CVD controller RX
RPA15 I/O Remappable peripheral (2)
RA15 I/O PORTA digital I/O
B26 A50 AN12 I Analog input
CVD12 O ADC CVD controller output
CVDR12 O ADC CVD controller RX
RPB14 I/O Remappable peripheral (2)
RB14 I/O PORTB digital I/O
A43 A51 ANA0I Analog input
RPB12 I/O Remappable peripheral (2)
RB12 I/O PORTB digital I/O
B27 A52 AN110 I Analog input
CVD10 O ADC CVD controller output
CVDR10 O ADC CVD controller RX
RPB10 I/O Remappable peripheral (2)
RB10 I/O PORTB digital I/O
A44 B39 AN17 I Analog input
CVD17 O ADC CVD controller output
CVDR17O ADC CVD controller RX output
INT0I External interrupt input 0
RPA10 I/O Remappable peripheral (2)
RA10 I/O PORTA digital I/O
B28 B40 AN116 I Analog input
CVD16 O ADC CVD controller output
CVDR16O ADC CVD controller RX output
RPA12 I/O Remappable peripheral (2)
RA12 I/O PORTA digital I/O
A45 B41 AN114 I Analog input
ANN0 I Analog Input
CVD14 O ADC CVD controller output
CVDR14 O ADC CVD controller RX
RPA14 I/O Remappable peripheral (2)
RA14 I/O PORTA digital I/O
B29 B43 AN11
I Analog input
CVD11O ADC CVD controller output
CVDR11O ADC CVD controller RX output
RPB13 I/O Remappable peripheral (2)
RB13 I/O PORTB digital I/O
A46 B44 ANB0 I A/D Analog inputs
RPB11 I/O Remappable peripheral (2)
RB11 I/O PORTB digital I/O
B30 B46 TCK I JTAG testcock/programming clock input
PGC4 I ICSP programming clock
AN8I Analog input
CVD8OADC CVD controller output
CVDR8OADC CVD controller RX
RPB8 I/O Remappable peripheral (2)
RB8I/O PORTB digital I/O
A47 B47 TMSI JTAG Test mode select input
AN6I Analog input
CVD6OADC CVD controller output
CVDR6OADC CVD controller RX
CVDT1OADC CVD controller TX
RPB6 I/O Remappable peripheral (2)
RB6I/O PORTB digital I/O
B31 A56 TDII JTAG test data/programming data input
PGD4 I/O ICSP programming data
AN9I Analog input
CVD9OADC CVD controller output
CVDR9OADC CVD controller RX
RPB9 I/O Remappable peripheral (2)
RB9I/O PORTB digital I/O
A48 A57 TDOI JTAG test data output
AN7I Analog input
CVD7OADC CVD controller output
CVDR7OADC CVD controller RX
CVDT0OADC CVD controller TX
RPB7 I/O Remappable peripheral (2)
RB7I/O PORTB digital I/O
B32 A61 AN3I Analog input
CVD3OADC CVD controller output
CVDR3OADC CVD controller RX
CVDT4OADC CVD controller TX
RPB3 I/O Remappable peripheral (2)
RB3I/O PORTB digital I/O
A49 —GNDPGround
B33 A58 SOSCOO Secondary oscillator output
A50 —GNDPGround
B34 A59 SOSCI I Secondary oscillator input
A51 —VDDPInput supply voltage (3V3)
B35 —AVDD PInput supply voltage (3V3)
A52 —VDDPInput supply voltage (3V3)
88-92^(5) NCTest pad (only for factory use, no pads on the host board)
93-102^(5) GNDPExposed GND pads, must be soldered on the host board

Note 1: Legend:
- | = Input pin

  • O = Output pin
    • I/O = Input/Output pin
  • P = Power pin

2: These pins can be configured for any of the supported peripheral functions based on the user's requirement. For more details, refer to Section 13.4 "Peripheral Pin Select (PPS)".

3: Every I/O port pin (RAx-RKx) can be used as a change notification pin (CNAx-CNKx). See Section 13.0 "I/O Ports" for more information.

4: Microchip recommends adding series resistors in the host board. For more details on series resistor recommendations, see Figure 3-6.

5: For the placement of pins 88 through 102, refer to Section 42.2 "WFI32 Module Packaging Information".

6: The PTA features is currently not supported, and it is recommended that it not be used in an end-product design. Microchip plans to support this feature in the future.

7: The recommendation is to keep pins A35 and A36 as Reserved/Not Connected (NC) on the host board for future product upgrade. However, the pins A35 and A36 are connected to the GND on the EV89Y10A PIC32 WFI32 Curiosity HPC Board.

Note: For module-related recommended operating values and electrical characteristics, refer to Section 41.2 "WFI32 Module Electrical Specifications".

3.2 Basic Connection Requirement

The WFI32 Module requires attention to a minimal set of device pin connections before proceeding with development.

FIGURE 3-5: WFI32E01 MODULE BASIC CONNECTIONS
WFI32E01 +3.3V +3.3V PGC2 PGD2 U1TX U1RX R1 10k R2 1k C3 0.1uF GND VBUSON VBUS_MOD USB- USB- USBID RP36 RP58 RP59 RP57 PK15 PB15 R17 41k R2 VBUS_MOD PGC2 PGD2 U1TX U1RX MCLR VBUSON/RPB1 VBUS USB- USB+ USBID/RPB2 TMS/AN6/RPB6 TCK/AN8/RPB8 TDI/AN9/RPB9 TDO/AN7/RPB7 SO6CO/PK15 SO6CI/PB15 NC GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND

Note 1: The mentioned resistance values are only for the guidance. For details on the application schematics, refer to the PIC32 WFI32E Curiosity Board User's Guide (DS50003028).

FIGURE 3-6: WFI32E02 MODULE BASIC CONNECTIONS
WFI32E02 +3.2V +3.2V U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1RX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TAX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TATX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1TCX U1C2A/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 DCA7RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFIA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA5 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 DCA7RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SD42/RFA3 U260 SCL-SPA7A RFA3 U260 SCL-SPA7B RFA3 U260 SCL-SPA7C RFA3 U260 SCL-SPA7D RFA3 U260 SCL-SPA7E RFA3 U260 SCL-SPA7F RFA3 U260 SCL-SPA7G RFA3 U260 SCL-SPA7H RFA3 U260 SCL-SPA7I RFA3 U260 SCL-SPA7J RFA3 U260 SCL-SPA7K RFA3 U260 SCL-SPA7L RFA3 U260 SCL-SPA7M RFA3 U260 SCL-SPA7N RFA3 U260 SCL-SPA7O RFA3 U260 SCL-SPA7P RFA3 U260 SCL-SPA7Q RFA3 U260 SCL-SPA7R FRA3 U260 SCL-SPA7S RFA3 U260 SCL-SPA7T RFA3 U260 SCL-SPA7V RFA3 U260 SCL-SPA7W RFA3 U260 SCL-SPA7X RFA3 U260 SCL-SPA7Y RFA3 U260 SCL-SPA7Z RFA3 U260 SCL-SPA7A BRA3 U260 SCL-SPA7B BRA3 U260 SCL-SPA7C BRA3 U260 SCL-SPA7D BRA3 U260 SCL-SPA7E BRA3 U260 SCL-SPA7F BRA3 U260 SCL-SPA7G BRA3 U260 SCL-SPA7H BRA3 U260 SCL-SPA7I BRA3 U260 SCL-SPA7J BRA3 U260 SCL-SPA7K BRA3 U260 SCL-SPA7L BRA3 U260 SCL-SPA7M BRA3 U260 SCL-SPA7N BRA3 U260 SCL-SPA7O BRA3 U260 SCL-SPA7P BRA3 U260 SCL-SPA7Q BRA3 U260 SCL-SPA7R BRA3 U260 SCL-SPA7S BRA3 U260 SCL-SPA7W BRA3 U260 SCL-SPA7X BRA3 U260 SCL-SPA7Y BRA3 U260 SCL-SPA7Z BRA3 U260 SCL-SPA7W BRA3 U260 SCL-SPA7X BRA3 U260 SCL-SPA7Y BRA3 U260

Note 1: The mentioned resistance values are only for the guidance. For details on the application schematics, refer to the EV89Y10A PIC32 WFI32 Curiosity HPC User's Guide (DS50003573).

3.2.1 POWER PINS

It is recommended that a bulk and a decoupling capacitor be added at the input supply pin (VDD, AVDD and GND pins) of the WFI32 Module.

FIGURE 3-7: WFI32E01
RECOMMENDED MODULE POWER SUPPLY CONNECTIONS
WFI32E01 Module VDD C1(1) 22 μF GND C2(1) 0.1 μF GND Note 1: Value of the C1 and C2 capacitor can vary based on the application requirement. 2: Place the C1 and C2 capacitors close to the Module pin.

FIGURE 3-8: WFI32E02
RECOMMENDED MODULE POWER SUPPLY CONNECTIONS
C3(1) 22 μF GND C4(1) 0.1 μF GND AVDD WFI32E02 Module VDD C1(1) 22 μF GND C2(1) 0.1 μF GND

Note 1: Value of the C1, C2, C3 and C4 capacitor can vary based on the application requirement.

2: Place the C1, C2, C3 and C4 capacitors close to the module pin.

3: To achieve better ADC performance, the user can supply power to AVDD and VDD supply pins from separate power supply sources.

3.2.2 MASTER CLEAR (MCLR) PIN

The MCLR pin provides for two specific device functions:

  • Device Reset
    • Device programming and debugging

Pulling the MCLR pin low generates a device Reset. Figure 3-9 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 need to be adjusted based on the application and PCB requirements.

For example, as illustrated in Figure 3-9, it is recommended that capacitor C be isolated from the MCLR pin during programming and debugging operations.

Place the components illustrated in Figure 3-9 within one-quarter inch (6 mm) from the MCLR pin.

FIGURE 3-9: EXAMPLE OF MCLR PIN CONNECTIONS
VDD R 10k 0.1 μF(2) C R1(1) 1 kΩ MCLR WFI32 1 5 4 2 VDD 3 Vss 6 NC PGCx(3) PGDx(3)

Note 1: 470 ≤ R1 ≤ 1 kΩ limits 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 PGCx and PGDx pins.

3.2.3 ICSP PINS

The PGCx/PGECx and PGDx/PGEDx pins are used for ICSP and debugging purposes. It is recommended that PGC2 and PGD2 be used for the WFI32 Module as the default configuration.

Keep the trace length between the ICSP pins of the WFI32 Module and the ICSP header 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 s, not to exceed 100 .

Ensure that the Communication Channel Select (PGECx/PGEDx pins) programmed into the device matches the physical connections for the ICSP to MPLAB ICD 4/MPLAB ICD 5 or MPLAB REAL ICE™ in-circuit emulator.

For more information on MPLAB ICD 4/MPLAB ICD 5, and MPLAB REAL ICE in-circuit emulator connection requirements, refer to the following documents available from the Microchip website.

  • "MPLAB® ICD 4 In-Circuit Debugger Quick Start
  • Guide" (DS50002538)
  • "MPLAB® ICD 4 In-Circuit Debugger User's
  • Guide" (DS50002596)
  • "MPLAB ^ ICD 5 In-Circuit Debugger Quick Start Guide" (DS50003438)
  • "MPLAB ^ ICD 5 In-Circuit Debugger User's Guide" (DS50003529)
  • "MPLAB® REAL ICE™ In-Circuit Debugger User's Guide" (DS50001616)
  • "Using MPLAB ^ REAL ICE ^TM Emulator" (poster) (DS50001749)

3.2.4 JTAG

Note: This is an optional interface for the WFI32 Module. JTAG can be used based on the selection of the debugger and programing interface.

The TMS, TDO, TDI and TCK pins are used for programming and debugging according to the Joint Test Action Group (JTAG) standard. Pull-up resistors are recommended on these lines for JTAG functionality. For remappable functionality, the discrete component value needs to be considered based on application.

It is recommended to keep the trace length between the JTAG connector and the JTAG pins on the WFI32 Module 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 s, not to exceed 100 .

Refer to the AC/DC characteristics and timing requirements in the respective device specification for information on capacitive loading limits and pin input voltage high (VIH) and input voltage low (VIL) requirements.

3.2.5 UNUSED I/O PINS

For low power modes, the user must not allow the unused I/O pins to float as inputs. The user can also configure them as outputs and drive them to a Logic-low state. As an alternative, the user can reserve the inputs by connecting the pin to VSS through a 1 kΩ to 10 kΩ resistor and configuring the pin as an input.

In general, the user needs to drive the I/O pins based on the application use case. Also, the user must know how a particular pin is wired before driving it to a particular state. For example, do not drive a pin to low, if it is wired to sink current, or drive high, if it is going to the source current.

3.2.5.1 GPIO Pins/PPS Functions

Most of the WFI32 Module pins can be configured as GPIOs pins or for PPS functionality. To find the functionality supported by each of these GPIOs, refer to Table 3-1 and Table 3-2.

It is recommended that a series resistor be added on the host board for all GPIOs. The value of the series resistor depends on the actual pin configuration. These resistors must be placed close to the module. Figure 3-16 and Figure 3-17 illustrate the placement of the series resistor.

3.2.6 USB

The external VBUS specified with 5V tolerance needs to be level converted interfacing with the WFI32 Module, which is a 3.3V-tolerant pin.

FIGURE 3-10: EXTERNAL 5V V BUS INTERFACING WITH WFI32 MODULE
J1 VBUS 1 VBUS (5V) D- 2 D- D+ 3 D+ ID 4 USBID GND 5 R1 41k 0402 1% WFI32 Module PIC32 SOC 3.3V VBUS Rtotal 80k GND

3.3 WFI32 Module Placement Guidelines

  • For any Wi-Fi product, the antenna placement affects the performance of the whole system. The antenna requires free space to radiate RF signals and it must not be surrounded by the ground plane. Thus, for best PCB antenna performance, the WFI32E01PC/WFI32E01PE Module must be placed at the edge of the host board.
  • The WFI32E01PC/WFI32E01PE Module ground outline edge must be aligned with the edge of the host board ground plane (see the following figure).
  • A low-impedance ground plane for the WFI32 Module ensures the best radio performance (best range and lowest noise). The ground plane can be

extended beyond the minimum recommendation as required for the host board EMC and noise reduction.

  • For best performance, keep metal structures and components (such as mechanical spacers, bump-on, and so on) at least 31.75 mm away from the PCB trace antenna as illustrated in the following figure.
  • The antenna on the WFI32 Module must not be placed in direct contact with or close proximity to plastic casing or objects. Keep a minimum clearance of 10mm in all directions around the PCB antenna (see the following figure).
  • Microchip uses the following module placement for EV36W50A.

FIGURE 3-11: WFI32E01PC/WFI32E01PE MODULE PLACEMENT RECOMMENDATION (TOP VIEW)
Keepout Area Around Antenna (Approximately 31.75 mm) from Metallic Structures Edge of the WFI32E01 Module Module Ground Outline 6.2 mm 1.8 mm Edge of the Host PCB 2.32 mm 3.763 mm Edge of the Host PCB Ground Plane 18.3 mm 6.127 mm Host PCB Ground Plane No Copper Area

Note: For alternate module placement guidelines, refer to the Section Appendix B: "Alternate Module Placement Guidelines".
- The WFI32 Module must be flush mounted to the host board (see the following figure).

FIGURE 3-12: WFI32 MOUNTING GUIDELINES RECOMMENDATION (SIDE VIEW)
WFI32 Module Host PCB Flush mounted on the host PCB (No Gap)

  • The WFI32E01UC/WFI32E01UE Module on the host board can be placed aligned to each other (see Figure 3-13).
  • Three Exposed GND pads (61-63) on the bottom of the WFI32E01 Module must be soldered to the host board (see Figure 42-7).

- A PCB cutout is required under RF test point (see Figure 42-7).

• Copper keepout areas are required on the top layer under voltage test points (55-60) (see Figure 42-7).

FIGURE 3-13: WFI32E01UC/WFI32E01UE MODULE PLACEMENT (TOP VIEW)
Host PCB Ground Plane 24.5 mm MICROCHIP WFI32E01 20.5 mm

Note 1: The user can place the WFI32E01UC/WFI32E01UE variants anywhere on the host PCB.

FIGURE 3-14: WFI32E02UC/WFI32E02UE MODULE PLACEMENT (TOP VIEW)
Host PCB Ground Plane 7.5 mm WFI12E02 R1.0 24.5 mm MICROCHIP WFI32E02 20.5 mm 22.5 mm

Note 1: The user can place the WFI32E02UC/WFI32E02UE variants anywhere on the host PCB.

The following figure illustrates the examples of WFI32E01PC/WFI32E01PE Module placement on a host board with a ground plane. Refer to Figure 3-11 for placement specific guidance.

FIGURE 3-15: EXAMPLES OF WFI32E01PC/WFI32E01PE MODULE PLACEMENTS ON THE HOST BOARD
Good Case Best Case Poor Case Poor Case Good Case No Copper Area Ground Plane

3.4 WFI32 Module Routing Guidelines

  • Use the multi-layer host board for routing signals on the inner layer and the bottom layer.
  • The top layer (underneath the Module) of the host board must be ground with as many GND vias as possible.

  • For WFI32E01 Module, see Figure 3-16 and Figure 42-11.

  • For WFI32E02 Module, see Figure 3-17 and Figure 42-12.

- Avoid fan-out of the signals under the Module or antenna area. Use a via to fan-out signals to the edge of the WFI32 Module.

  • For better GND connection and thermal conductivity to the WFI32 Module, solder the exposed GND pads of the WFI32 Module on the host board.
  • For the WFI32 Module GND pad, use a GND via of a minimum 10 mil (hole diameter) for good ground to all the layers and thermal conduction path.
  • The recommendation is to have a series resistor on the host board for all GPIOs. Place these resistors close to the signal source. Refer to Figure 3-16 and Figure 3-17 for the placement of the series resistor.
  • The user must ensure length matching of the signal traces on the host PCB.

  • USB differential pair signals are 90 impedance controlled on the WF132 Module PCB and the same must be followed on the host board.

  • SOSC crystal (32.768 kHz) on host board must be placed close to the WFI32 Module and follow the shortest trace routing length with the minimum number of vias (see Figure 3-16, Figure 3-17 and Figure 3-18).

FIGURE 3-16: WFI32E01 - EXAMPLE OF THE HOST BOARD TOP LAYER
Module Outline No Signal or Via on Antenna Side Host Board Outline Mounting PADs on Host Board SOSC Crystal Placement Signals to Inner Layer from Module Mounting PADs Continuous Ground with Distributed Via Signals Going Out from Module Mounting PADs Series Resistor Keepout Area for Test PointsPCB Cut Exposed RGN3A Point

Note 1: The user can place the WFI32E01UC/WFI32E01UE Module anywhere on the host PCB (see Figure 3-13) and must provide continuous ground and tented ground vias underneath the module (see Figure 3-16).

FIGURE 3-17: WFI32E02 - EXAMPLE OF THE HOST BOARD TOP LAYER
WFI32E02 Module Outline Mounting PADs on Host Board SOSC Crystal Placement Exposed GND Area Host Board Signals from Module Mounting PADs Continuous Ground with Distribute Via Series Resistor PCB Keep Out Area for RF Test Point PCB Keep Out Area for Test Point Exposed GND Area

Note 1: The user can place the WFI32E02UC/WFI32E02UE Module anywhere on the host PCB (see Figure 3-14), and must provide continuous ground and tented ground vias underneath the module (see Figure 3-17).

FIGURE 3-18: PLACEMENT AND ROUTING OF SOSC CRYSTAL
32.768 kHz Crystal Module SOSC PADs Routing at the Bottom Layer

3.5 WFI32 Module RF Considerations

The overall performance of the system, RF and Wi-Fi is significantly affected by the product design, environment and application. The product designer must ensure system level shielding (if required) and verify the performance of the product features and applications.

Consider the following guidelines for optimal Wi-Fi performance:

  • The WFI32 Module must be positioned in a noise-free RF environment and must be kept far away from high-frequency clock signals and any other sources of RF energy
  • The antenna must not be shielded by any metal objects
    • Power supply must be clean and noise-free
  • Make sure that the width of the traces routed to GND, VDD rails are sufficiently large for handling peak TX current consumption.

Note: The WFI32 Module includes RF shielding on top of the board as a standard feature.

3.6 WFI32 Module Antenna Considerations

3.6.1 WFI32E01 PCB ANTENNA

For the WFI32E01PC/WFI32E01PE Module, the PCB antenna is fabricated on the top copper layer and covered in solder mask. The layers below the antenna do not have copper trace. It is recommended that the module is mounted on the edge of the host board and to have no PCB material below the antenna structure of the module and no copper traces or planes on the host board in that area. It is recommended to verify that antenna tuning is maintained when the module is integrated onto a host board or end-product.

The following table lists the technical specification of the PCB antenna, which is tested with the WF132E01 module mounted on a Carrier/Evaluation Board of 0.8 mm PCB thickness.

TABLE 3-3: WFI32E01 PCB ANTENNA SPECIFICATIONS

Parameter Specification
Operating frequency 2400 ~2500 MHz
Peak gain 2.51 dBi at 2450MHz
Efficiency (avg.)71%

3.6.1.1 PCB Antenna Radiation Pattern

The following figures illustrate the module orientation and PCB antenna radiation pattern.

FIGURE 3-19: MODULE ORIENTATION FOR RADIATION PATTERN MEASUREMENT
Z Y X MICROCHIP WF32EM_08 04-11:32:56

FIGURE 3-20: PHI = 0 DEGREE ANTENNA RADIATION PATTERN
Microchip PIC32MZ1025W104132 - PCB Antenna Radiation Pattern - 2

radar | Frequency | Frequency (MHz) | |---|---| | 2400.00 | 5.0 | | 2412.00 | 5.0 | | 2437.00 | 5.0 | | 2462.00 | 5.0 | | 2472.00 | 5.0 | | 2484.00 | 5.0 | | 2500.00 | 5.0 |

FIGURE 3-21: PHI = 90 DEGREE ANTENNA RADIATION PATTERN
Microchip PIC32MZ1025W104132 - PCB Antenna Radiation Pattern - 3

radar | Frequency (MHz) | Angle (deg) | Value (dB) | | --------------- | ----------- | ---------- | | 2400.00 | 0 | ~5.0 | | 2400.00 | 30 | ~5.0 | | 2400.00 | 190 | ~5.0 | | 2400.00 | 270 | ~5.0 | | 2400.00 | 360 | ~5.0 | | 2412.00 | 0 | ~5.0 | | 2412.00 | 30 | ~5.0 | | 2412.00 | 190 | ~5.0 | | 2412.00 | 270 | ~5.0 | | 2412.00 | 360 | ~5.0 | | 2437.00 | 0 | ~5.0 | | 2437.00 | 30 | ~5.0 | | 2437.00 | 190 | ~5.0 | | 2437.00 | 270 | ~5.0 | | 2437.00 | 360 | ~5.0 | | 2462.00 | 0 | ~5.0 | | 2462.00 | 30 | ~5.0 | | 2462.00 | 190 | ~5.0 | | 2462.00 | 270 | ~5.0 | | 2462.00 | 360 | ~5.0 | | 2472.00 | 0 | ~5.0 | | 2472.00 | 30 | ~5.0 | | 2472.00 | 190 | ~5.0 | | 2472.00 | 270 | ~5.0 | | 2472.00 | 360 | ~5.0 | | 2484.00 | 0 | ~5.0 | | 2484.00 | 30 | ~5.0 | | 2484.00 | 190 | ~5.0 | | 2484.00 | 270 | ~5.0 | | 2484.00 | 360 | ~5.0 | | 2500.00 | 0 | ~5.0 | | 2500.00 | 30 | ~5.0 | | 2500.00 | 190 | ~5.0 | | 2500.00 | 270 | ~5.0 | | 2500.00 | 360 | ~5.0 |

FIGURE 3-22: THETA = 90 DEGREE ANTENNA RADIATION PATTERN
Microchip PIC32MZ1025W104132 - PCB Antenna Radiation Pattern - 4

radar | Frequency (MHz) | Angle (deg) | Value (dB) | | ---------------- | ----------- | ---------- | | 2400.00 | 0 | ~3.5 | | 2400.00 | 90 | ~3.5 | | 2412.00 | 0 | ~3.5 | | 2412.00 | 90 | ~3.5 | | 2437.00 | 0 | ~3.5 | | 2437.00 | 90 | ~3.5 | | 2462.00 | 0 | ~3.5 | | 2462.00 | 90 | ~3.5 | | 2472.00 | 0 | ~3.5 | | 2472.00 | 90 | ~3.5 | | 2484.00 | 0 | ~3.5 | | 2484.00 | 90 | ~3.5 | | 2500.00 | 0 | ~3.5 | | 2500.00 | 90 | ~3.5 |

3.6.2 EXTERNAL ANTENNA PLACEMENT RECOMMENDATIONS

The following recommendations must be applied for the placement of the antenna and its cable:

  • The antenna cable must not be routed over circuits generating electrical noise on the host board or alongside or underneath the module. It is preferred that the cable is routed straight out of the module.
  • The antenna must not be placed in direct contact or in close proximity of the plastic casing/objects.
  • Do not enclose the antenna within a metal shield.
  • Keep any components which may radiate noise, signals or harmonics within the 2.4 GHz to 2.5 GHz frequency band away from the antenna and, if possible, shield those components. Any noise radiated from the host board in this frequency band degrades the sensitivity of the module.

- It is recommended that the antenna be placed preferably at a distance greater than 5 cm away from the module. The following figure shows the antenna keep out area indication where the antenna must not be placed.

These recommendations are based on an open-air measurement and does not take into account any metal shielding of the customer end-product. When a metal enclosure is used, the antenna can be located closer to the WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Module.

Note: These are generic guidelines and it is recommended that customers check and fine-tune the antenna positioning in the final host product based on RF performance.

The following figure provides an indication on how the antenna cable must be routed depending on the location of the antenna with respect to the WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Module PCB, there are two possible options for the optimum routing of the cable.

FIGURE 3-23: WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Module ANTENNA PLACEMENT GUIDELINES
Preferred antenna cable routing direction 5 cm Preferred antenna cable routing direction 5 cm5 cm Antenna keep out area

3.6.2.1 External Antennas

The WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Modules have an ultra-small surface mount U.FL connector for an external antenna connection. The choice of antenna is limited to the antenna types for which the module is tested and approved.

The WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Modules are approved to use with the antennas listed in Table 3-4.

It is permissible to use different antenna, provided the same antenna type, antenna gain (equal or less than), and similar in-band and out-of-band characteristics are present (refer to specification sheet for cutoff frequencies).

If other antenna types are used, the OEM installer must conduct the necessary assessments and authorize the antenna with respective regulatory agencies and ensure compliance.

TABLE 3-4: LIST OF APPROVED EXTERNAL ANTENNAS

SI.No.Part Number ManufacturerAntenna Gain (dBi)Antenna TypeRegulatory Authority(1)Cable Length/Remarks
FCC(2)(3)ISED CE
1RFA-02-L2H1Alead/Aristotle2Dipolexxx150 mm
2RFA-02-C2H1-D034Alead/Aristotle2Dipolexxx150 mm
3RFA-02-D3Alead/Aristotle2Dipolexxx150 mm
4RFDPA870920IMLB301WALSIN1.84Dipolexxx200 mm
5RFDPA870920IMAB302WALSIN1.82Dipolexxx200 mm/Black
6RFDPA870920IMAB305WALSIN1.82Dipolexxx200 mm/Grey
7RFDPA870910IMAB308WALSIN2Dipolexxx100 mm
8RFA-02-C2M2Alead/Aristotle2DipolexxxRP-SMA(2)(3) to U.FL cable length of 100 mm
9RFA-02-C2M2-SMA-D034Alead/Aristotle2DipolexSMA to U.FL cable length of 100 mm
10RN-SMA-S-RPMicrochip0.56DipolexxxRP-SMA(2)(3) to U.FL cable length of 100 mm
11RN-SMA-SMicrochip0.56DipolexSMA to U.FL cable length of 100 mm

Note 1: 'x' denotes the antennas covered under the certification.
2: If the end-product using the module is designed to have an antenna port that is accessible to the end-user than a unique (non-standard) antenna connector (as permissible by FCC) must be used (e.g., RP (Reverse Polarity)-SMA socket).
3: If an RF coaxial cable is used between the module RF output and the enclosure, than a unique (non-standard) antenna connector must be used in the enclosure wall to interface with antenna.
4: Contact the antenna vendor for detailed antenna specifications to review its suitability to the end-product operating environment and to identify alternatives.

3.7 WFI32 Module Reflow Profile Information

The WFI32 Module was assembled using the IPC/JEDEC J-STD-020 Standard lead free reflow profile. The WFI32 Module can be soldered to the host board using standard leaded or lead free solder reflow profiles. To avoid damaging the module, adhere to the following recommendations:

  • For Solder Reflow Recommendations, refer to the Solder Reflow Recommendation Application Note (AN233).
  • Do not exceed a Peak Temperature (TP) of 250^ .
  • Refer to the solder paste data sheet for specific reflow profile recommendations from the vendor.
  • Use no-clean flux solder paste.

  • Do not wash as moisture can be trapped under the shield.

  • Use single reflow. If the PCB requires multiple iterations of reflow soldering, it is important to mount the WFI32 Module during the final reflow iteration.

3.7.1 CLEANING

The Exposed GND pad helps to self-align the module, avoiding pad misalignment. The use of no clean solder pastes is recommended. Full drying of no-clean paste fluxes as a result of the reflow process must be ensured. This may require longer reflow profiles and/or peak temperatures toward the high end of the process window as recommended by the solder paste vendor. The uncured flux residues may lead to corrosion and/or shorting in accelerated testing and possibly the field.

3.8 WFI32 Module Assembly Considerations

The WFI32 Module is assembled with an EMI shield to ensure compliance with EMI emission and immunity rules. The EMI shield is made of a tin-plated steel (SPTE) and is not hermetically sealed. Solutions such as IPA and similar solvents can be used to clean this module. Cleaning solutions containing acid must never be used on the module.

3.8.1 CONFORMAL COATING

The modules are not intended for use with a conformal coating and the customer assumes all risks (such as the module reliability, performance degradation and so on) if a conformal coating is applied to the modules.

4.0 CPU

Note 1: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 50. "CPU for Devices with MIPS32® microAptiv™ and M-Class Cores" (DS60001192) of the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

2: The Series 5 Warrior M-class CPU core resources are available at: www.imgtec.com.

The MIPS32 ^® M-Class Microprocessor Core is the heart of the PIC32MZ1025W104. The CPU fetches instructions, decodes each instruction, fetches source operands, executes each instruction and writes the results of instruction execution to the proper destinations.

Key features include:

  • 5-stage pipeline
    • 32-bit address and data paths
  • MIPS32 enhanced architecture (release 5):

  • Multiply-accumulate and multiply-subtract instructions

  • Targeted multiply instruction
  • Zero/onedetectinstructions
  • 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
  • Virtual memory support

- microMIPS™ compatible instruction set:

  • Improves code size density over MIPS32, while maintaining MIPS32 performance.
  • Supports all MIPS32 instructions (except branch- likely instructions)
  • Fifteen additional 32-bit instructions and thirty-nine 16-bit instructions corresponding to commonly-used MIPS32 instructions
  • Stack Pointer implicit in instruction
  • MIPS32 assembly and Application Binary Interface (ABI) compatible

• MIPS32 ISA mode for legacy compatibility

• MCU ASE 1(Application Specific Extension 1):

- Increases the number of interrupt hardware inputs from 6 to 8 for Vectored Interrupt (VI) mode, and from 63 to 255 for External Interrupt Controller (EIC) mode.

  • Separate priority and vector generation.
  • 16-bit vector address is provided.
  • Hardware assist combined with the use of shadow register sets to reduce interrupt latency during the prologue and epilogue of an interrupt.
  • An interrupt return with automated interrupt epilogue handling instruction (IRET) improves interrupt latency.
  • Supports optional interrupt chaining.
  • Two memory-to-memory atomic read-modify-write instructions (ASET and ACLR) eases commonly used semaphore manipulation in MCU applications. Interrupts are automatically disabled during the operation to maintain coherency.

- MMU with simple FMT mechanism:

  • FMT performs virtual-to-physical address translation
  • Provides attributes for the different segments

- Separate L1 data and instruction caches:

  • 16 Kbyte 4 way set associative instruction cache (I-Cache)
  • 16 Kbyte 4 way set associative data cache (D-Cache)

• Autonomous Multiply/Divide Unit (MDU):

  • Maximum issue rate of one 32x32 multiply per clock
  • Early-in iterative divide. Minimum 12 and maximum 38 clock latency (dividend (rs) sign extension-dependent)

- Power control:

  • Minimum frequency: 0 MHz
  • Low-Power mode (triggered by WAIT instruction)
  • Extensive use of local gated clocks

- EJTAG debug and instruction trace:

  • Support for single stepping
  • Virtual instruction and data address/value breakpoints
  • Hardware breakpoint supports both address match and address range triggering.
  • Eight instruction and four data complex breakpoints

- iFlowtrace ^ version 2.0 support:

  • Real-time instruction program counter
  • Special events trace capability
  • Two performance counters with 34 user-selectable countable events
  • Disabled if the processor enters Debug mode
  • Program counter sampling

- Eight watch registers:

  • Instruction, data read, data write options
  • Address match masking options

- DSP ASE extension:

  • Native fractional format data type operations
  • Register Single Instruction Multiple Data (SIMD)

operations (add, subtract, multiply, and shift)

  • GPR-based shift
  • Bit manipulation
  • Compare-pick
  • DSP control access
  • Indexed-load
  • Branch

  • Multiplication of complex operands

  • Variable bit insertion and extraction
  • Virtual circular buffers
  • Arithmetic saturation and overflow handling
  • Zero-cycle overhead saturation and rounding operations

A block diagram of the PIC32MZ1025W104 processor core is shown in the figure below.

FIGURE 4-1: PIC32MZ1025W104 MICROPROCESSOR CORE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - CPU - 1

flowchart
graph TD
    A["SYS_CLK"] --> B["Decode (MIPS32®/microMIPS™)"]
    B --> C["Execution Unit ALU/Shift Atomic/LdSt DSP ASE"]
    C --> D["System Coprocessor"]
    D --> E["Debug/Profiling Break Points iFlowtrace® Fast Debug Channel Performance Counters Sampling Secure Debug"]
    E --> F["EJTAG"]
    F --> G["2-wire Debug"]
    G --> H["Power Management"]
    H --> I["D-Cache Controller"]
    I --> J["BIU"]
    J --> K["System Bus"]
    C --> L["GPR (1,2,4,8,16 sets)"]
    C --> M["Enhanced MDU (with DSP ASE)"]
    C --> N["microMIPS™"]
    C --> O["I-Cache Controller"]
    O --> P["I-Cache"]
    P --> Q["BIU"]
    Q --> R["System Bus"]
    style A fill:#f9f,stroke:#333
    style B fill:#ccf,stroke:#333
    style C fill:#cfc,stroke:#333
    style D fill:#fcc,stroke:#333
    style E fill:#cff,stroke:#333
    style F fill:#ffc,stroke:#333
    style G fill:#cfc,stroke:#333
    style H fill:#fcc,stroke:#333
    style I fill:#cfc,stroke:#333
    style J fill:#cfc,stroke:#333
    style K fill:#fcc,stroke:#333
    style L fill:#cfc,stroke:#333
    style M fill:#cfc,stroke:#333
    style N fill:#cfc,stroke:#333
    style O fill:#cfc,stroke:#333
    style P fill:#cfc,stroke:#333
    style Q fill:#cfc,stroke:#333
    style R fill:#fcc,stroke:#333
    style S fill:#fcc,stroke:#333
    style T fill:#fcc,stroke:#333
    style U fill:#fcc,stroke:#333
    style V fill:#fcc,stroke:#333
    style W fill:#fcc,stroke:#333
    style X fill:#fcc,stroke:#333
    style Y fill:#fcc,stroke:#333
    style Z fill:#fcc,stroke:#333

4.1 Architecture Overview

The MIPS32 M-Class Microprocessor Core in PIC32MZ1025W104 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
  • General Purpose Register (GPR)
  • Multiply/Divide Unit (MDU)
  • System control coprocessor (CP0)
    • Memory Management Unit (MMU)
  • Instruction/data cache controllers
  • Power management
  • Instructions and data caches
  • microMIPS support
    • Enhanced JTAG (EJTAG) controller

4.1.1 EXECUTION UNIT

The processor core execution unit implements a load/store architecture with single-cycle Arithmetic Logic Unit (ALU) operations (logical, shift, add, subtract) and an autonomous multiply/divide unit. The core contains

thirty-two 32-bit GPRs used for integer operations and address calculation. Seven additional register file shadow sets (containing 32 registers) are 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 for calculating the data address
- Address unit for calculating the next instruction address
- Logic for branch determination and branch target address calculation
- Load aligner
- Trap condition comparator
- Bypass multiplexers for avoiding stalls when executing instruction streams where data producing instructions are followed closely by results

  • Leading zero/one detect unit for implementing the CLZ and CLO instructions
  • ALU for performing arithmetic and bitwise logical operations
  • Shifter and store aligner
  • DSP ALU and logic block for performing DSP instructions, such as arithmetic/shift/compare operations

4.1.2 MULTIPLY/DIVIDE UNIT

The processor core includes an MDU that contains a separate pipeline for multiply and divide operations, and DSP ASE multiply instructions. 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 32x32 booth recoded multiplier, four pairs of result/accumulation registers (HI and LO), a divide state machine, and the necessary multiplexers and control logic. The first num-

ber shown ('32' of 32x32) represents the rs operand. The second number ('32' of 32x32) represents the rt operand.

The MDU supports execution of one multiply or multiply-accumulate operation every clock cycle. 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.

The table below 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 processor core multiply and divide instructions. The approximate latency and repeat rates are listed in terms of pipeline clocks.

TABLE 4-1: MIPS32 ^ M-CLASS MICROPROCESSOR CORE HIGH-PERFORMANCE INTEGER MDU LATENCIES AND REPEAT RATES

OpcodeOperand Size (mul rt) (div rs)LatencyRepeat Rate
MULT/MULTU, MADD/MADDU,MSUB/MSUBU (HI/LO destination)16 bits 5 1
32 bits 5 1
MUL (GPR destination) 16 bits 5 1
32 bits 5 1
DIV/DIVU 8 bits12/1412/14
16 bits 20/2220/22
24 bits 28/3028/30
32 bits 36/3836/38

The MIPS architecture defines that the result of a multiply or divide operation be placed in one of four pairs of HI and LO registers. Using the Move-From-HI (MFHI) and Move-From-LO (MFLO) instructions, these values can be transferred to the GPR.

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.

The MDU also implements various shift instructions operating on the HI/LO register and multiply instructions as defined in the DSP ASE. The MDU supports all of the data types required for this purpose and includes three extra HI/LO registers as defined by the ASE.

The table below lists the latencies and repeat rates for the DSP multiply and dot-product operations. The approximate latencies and repeat rates are listed in terms of pipeline clocks.

TABLE 4-2: DSP-RELATED LATENCIES AND REPEAT RATES

OpcodeLatencyRepeat Rate
Multiply and dot-product without saturation after accumulation51
Multiply and dot-product with saturation after accumulation51
Multiply without accumulation51

4.1.3 SYSTEM CONTROL

COPROCESSOR (CP0)

In the MIPS architecture, CP0 is responsible for the virtual-to-physical address translation and cache protocols, 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 cache size and set associativity, and the presence of options like microMIPS is also available by accessing the CP0 registers, as listed in the table below. Refer to the Series 5 Warrior M-class CPU core resources which are available at: www.imgtec.com for more information.

TABLE 4-3: COPROCESSOR 0 REGISTERS

Register NumberRegister NameFunction
0 IndexIndex into the TLB array (MPU only).
1 Random Randomly generated index into the TLB array (MPU only).
2 EntryLo0 Low-order portion of the TLB entry for even-numbered virtual pages (MPU only).
3 EntryLo1 Low-order portion of the TLB entry for odd-numbered virtual pages (MPU only).
4 Context/UserLocalPointer to the page table entry in memory (MPU only).User information that can be written by privileged software and read through the RDHWR instruction.
5 PageMask/PageGrainPageMask controls the variable page sizes in TLB entries. PageGrain enables support of 1 KB pages in the TLB (MPU only).
6 Wired Controls the number of fixed (i.e., wired) TLB entries (MPU only).
7HWREnaEnables access through the RDHWR instruction to selected hardware registers in Non-privileged mode.
8 BadVAddr Reports the address for the most recent address-related exception.
BadInstr Reports the instruction that caused the most recent exception.
BadInstrP Reports the branch instruction if a delay slot caused the most recent exception.
9 CountProcessor cycle count.
10EntryHiHigh-order portion of the TLB entry (MPU only).
11CompareCore timer interrupt control.
12StatusProcessor status and control.
IntCtlInterrupt control of vector spacing.
SRSCtlShadow register set control.
SRSMap Shadow register mapping control.
View_IPLAllows the Priority Level to be read/written without extracting or inserting that bit from/to the Status register.
SRSMAP2Contains two 4-bit fields that provide the mapping from a vector number to the shadow set number to use when servicing such an interrupt.
GuestCtl0Control of virtualized Guest OS
GTOffsetGuest Timer Offset
13CauseDescribes the cause of the last exception.
NestedExcContains the error and exception level status bit values that existed prior to the current exception.
View_RIPLEnables read access to the RIPL bit that is available in the Cause register.
14EPCProgram counter at last exception.
NestedEPCContains the exception program counter that existed prior to the current exception.
15PRIDProcessor identification and revision
EbaseException base address of exception vectors.
CDMMBaseCommon device memory map base.
16Config Configuration register.
Config1 Configuration register 1.
Config2 Configuration register 2.
Config3 Configuration register 3.
Config4 Configuration register 4.
Config5 Configuration register 5.
Config7 Configuration register 7.
17 LAddr Load link address (MPU only).
18 WatchLo Low-order watchpoint address (MPU only).
19 WatchHi High-order watchpoint address (MPU only).
20-22Reserved Reserved in the PIC32 core.
23 Debug EJTAG debug register.
TraceControlEJTAG trace control.
TraceControl2EJTAG trace control 2.
UserTraceData1EJTAG user trace data 1 register.
TraceBPC EJTAG trace breakpoint register.
Debug2Debug control/exception status 1.
24 DEPC Program counter at last debug exception.
UserTraceData2EJTAG user trace data 2 register.
25 PerfCtl0 Performance counter 0 control.
PerfCnt0Performance counter 0.
PerfCtl1Performance counter 1 control.
PerfCnt1Performance counter 1.
26ErrCtlSoftware test enable of way-select and data RAM arrays for I-Cache and D-Cache (MPU only).
27ReservedReserved in the PIC32 core.
28TagLo/DataLoLow-order portion of cache tag interface (MPU only).
29ReservedReserved in the PIC32 core.
30 ErrorEPC Program counter at last error exception.
31 DeSave Debug exception save.
KScratchnScratch registers for Kernel mode

4.2 Power Management

The 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.

4.2.1 INSTRUCTION-CONTROLLED POWER MANAGEMENT

The mechanism for invoking Power-Down mode is through execution of the WAIT/SLEEP instruction. For more information on power management, see Section 36.0 "Power-Saving Features".

The majority of the power consumed by the processor core is in the clock tree and clocking registers. The PIC32MZ1025W104 family makes extensive use of local gated-clocks to reduce this dynamic power consumption.

4.3 L1 Instruction and Data Caches

4.3.1 INSTRUCTION CACHE (I-CACHE)

The I-Cache is an on-core memory block of 16 Kbytes. As the I-Cache is virtually indexed, the virtual-to-physical address translation occurs in parallel with the cache access rather than having to wait for the physical address translation. The tag holds 22 bits of physical address, a valid bit, and a lock bit. The Least Recently Used (LRU) replacement bits are stored in a separate array.

The I-Cache block also contains and manages the instruction line fill buffer. Besides accumulating data to be written to the cache, instruction fetches that reference data in the line fill buffer are serviced either by a bypass of that data, or data coming from the external interface. The I-Cache control logic controls the bypass function.

The processor core supports I-Cache locking. Cache locking allows critical code or data segments to be locked into the cache on a per-line basis, enabling the system programmer to maximize the efficiency of the system cache.

The cache locking function is always available on all I-Cache entries. Entries can then be marked as locked or unlocked on a per entry basis using the CACHE instruction.

4.3.2 DATA CACHE (D-CACHE)

The D-Cache is an on-core memory block of 16 Kbytes. This virtually indexed, physically tagged cache is protected. As the D-Cache is virtually indexed, the virtual-to-physical address translation occurs in parallel with the cache access. The tag holds 22 bits of physical address, a valid bit, and a lock bit. There is an additional array holding dirty bits and LRU replacement algorithm bits for each set of the cache.

In addition to I-Cache locking, the processor core also supports a D-Cache locking mechanism identical to the I-Cache. Critical data segments are locked into the cache on a per-line basis. The locked contents can be updated on a store hit, but cannot be selected for replacement on a cache miss.

The D-Cache locking function is always available on all D-Cache entries. Entries can then be marked as locked or unlocked on a per-entry basis using the CACHE instruction.

4.3.3 ATTRIBUTES

The processor core I-Cache and D-Cache attributes are listed in the Configuration registers (see Register 4-1 through Register 4-4).

4.4 EJTAG Debug Support

The 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 processor core provides a Debug mode that is entered after a debug exception (derived from a hardware breakpoint, single-step exception, and so on) 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 specify which registers are selected and how they are used.

4.5 MIPS DSP ASE Extension

The MIPS DSP ASE Revision 2 is an extension to the MIPS32 architecture. This extension comprises new integer instructions and states that include new HI/LO accumulator register pairs and a DSP control register. This extension is crucial in a wide range of DSP, multimedia, and DSP-like algorithms covering audio and video processing applications. The extension supports native fractional format data type operations, register SIMD operations, such as add, subtract, multiply, and shift. In addition, the extension includes the following features that are essential in making DSP algorithms computationally efficient:

  • Support for multiplication of complex operands
  • Variable bit insertion and extraction
  • Implementation and use of virtual circular buffers
  • Arithmetic saturation and overflow handling support
  • Zero cycle overhead saturation and rounding operations

4.6 microMIPS ISA

The processor core supports the microMIPS ISA, which contains all MIPS32 ISA instructions (except for branch-likely instructions) in a new 32-bit encoding scheme, with some of the commonly used instructions also available in 16-bit encoded format. This ISA improves code density through the additional 16-bit instructions while maintaining a performance similar to MIPS32 mode. In microMIPS mode, 16-bit or 32-bit instructions will be fetched and recoded to legacy MIPS32 instruction opcodes in the pipeline's I stage, so that the processor core can have the same microAptiv UP microarchitecture. The microMIPS instruction stream can be intermixed with 16-bit halfword or 32-bit word size instructions on halfword or word boundaries, additional logic is in place to address the word misalignment issues, thus minimizing performance loss.

4.7 M-Class Core Configuration

Register 4-1 through Register 4-4 show the default configuration of the M-Class core, which is included on the PIC32MZ1025W104.

REGISTER 4-1: CONFIG: CONFIGURATION REGISTER; CP0 REGISTER 16, SELECT 0

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-1 U-0U-0 U-0U-0 U-0 U-0 R-0
— — —— — —ISP
23:16R-0R-0R-1R-0 U-0 R-1R-0R-0
DSPUDISBMDUMM[1:0]BM
15:8R-0R-0R-0 R-0R-0 R-1R-0 R-0
BEAT[1:0]AR[2:0]MT[2:1]
7:0R-1U-0U-0 U-0U-0R/W-0R/W-1R/W-0
MT[0]— — —K0[2]:0]
Legend:r = Reserved 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 Reserved: This bit is hardwired to '1' to indicate the presence of the Config1 register.

bit 30-25 Unimplemented: Read as '0'.

bit 24 ISP: Instruction Scratch Pad RAM bit 0 = Instruction scratch pad RAM is not implemented

bit 23 DSP: Data Scratch Pad RAM bit 0 = Data scratch pad RAM is not implemented

bit 22 UDI: User-defined bit 0 = CorExtend user-defined instructions are not implemented

bit 21 SB: SimpleBE bit 1 = Only simple byte enables are allowed on the internal bus interface

bit 20 MDU: Multiply/Divide Unit bit 0 = Fast, high-performance MDU 1 = Iterative, area-efficient MDU

bit 19 Unimplemented: Read as '0'

bit 18-17 MM[1:0]: Merge Mode bits 10 = Merging is allowed x1 = Reserved

bit 16 BM: Burst Mode bit 0 = Burst order is sequential

bit 15 BE: Endian Mode bit 0 = Little-endian

bit 14-13 AT[1:0]: Architecture Type bits 00 = MIPS32

bit 12-10 AR[2:0]: Architecture Revision Level bits 001 = MIPS32 release 2

bit 9-7 MT[2:0]: MMU Type bits 011 = Fixed Mapping

bit 6-3 Unimplemented: Read as '0'

REGISTER 4-1: CONFIG: CONFIGURATION REGISTER; CP0 REGISTER 16, SELECT 0

bit 2-0 K0[2:0]: Kseg0 Coherency Algorithm bits

011 = Cacheable, non-coherent, write-back, write allocate
010 = Uncached
001 = Cacheable, non-coherent, write-through, write allocate
000 = Cacheable, non-coherent, write-through, no write allocate

All other values are not used and mapped to other values. 100, 101, and 110 are mapped to 010. 111 is mapped to 010.

REGISTER 4-2: CONFIG1L: CONFIGURATION REGISTER 1

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-1 R-0 R-0 R-0 R-0 R-0R-0 R-0
— — — — — — — —IS[ 2 ]
23:16R-1 R-0 R-0 R-1 R-1 R-0R-1 R-1
IS[1:0] IL[2:0]IA[2:0]
15:8R-0 R-0 R-0 R-0 R-1 R-1R-0 R-1
DS[2:0]DL[2:0]DA[2:0]
7:0R-1 U-0 U-0 R-1 R-1 R-0R-1 R-0
FCPRIPCWRCAEPFP
Legend:r = Reserved bit
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31 Reserved: This bit is hardwired to a '1' to indicate the presence of the Config2 register.

bit 30-25 Unimplemented: Read as '0'

bit 24-22 IS[2:0]: Instruction Cache Sets bits

0x2: 256

0x5 - 0x7: Reserved

bit 21-19 IL[2:0]: Instruction-Cache Line bits

000 = No I-Cache present

011 = Contains instruction cache line size of 16 bytes

0x1, 0x2, 0x4 - 0x7: Reserved

bit 18-16 IA[2:0: Instruction-Cache Associativity bits

0x00 - 0x02: Reserved

0x3: 4-way

0x4 - 0x7: Reserved

bit 15-13 DS[2:0]: Data-Cache Sets bits

0x2: 256

0x5 - 0x7: Reserved

bit 12-10 DL[2:0]: Data-Cache Line bits

0x0: No D-Cache present

0x3: 16 bytes

0x1, 0x2, 0x4 - 0x7: Reserved

bit 9-7 DA[2:0]: Data-Cache Associativity bits

0x00 - 0x02: Reserved

0x3: 4-way

0x4 - 0x7: Reserved

bit 6-5 Unimplemented: Read as '0'

bit 4 PC: Performance Counter bit

1 = The processor core contains performance counters

bit 3 WR: Watch Register Presence bit

1 = No Watch registers are present

bit 2 CA: Code Compression Implemented bit

0 = No MIPS16e® present

bit 1 EP: EJTAG Present bit

1 = Core implements EJTAG

bit 0 FP: Floating Point Unit bit

0 = No FPU

REGISTER 4-3: CONFIG3: CONFIGURATION REGISTER 3; CP0 REGISTER 16, SELECT 3

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-1 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 R-0R-1 R-0 R-0 R-0R-1 R/W-y
IPLW[1:0]MMAR[2:0]MCUISAONEXC(1)
15:8R-yR-y R-1R-1 R-1 R-1 U-0R-1
ISA[1:0]^(1) ULRIRXIDSP2PDSPPITL
7:0R-0 R-1R-1 U-0 R-1 U-0U-0 R-1
LPAVEICVINTCDMMTL
Legend:r = Reserved bity = 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 cleared x = Bit is unknown

bit 31 Reserved: This bit is hardwired as '1' to indicate the presence of the Config4 register.

bit 30-23 Unimplemented: Read as '0'

bit 22-21 IPLW[1:0]: Width of the Status IPL and Cause RIPL bits

01 = IPL and RIPL bits are 8-bits in width

Others = Reserved

bit 20-18 MMAR[2:0]: microMIPS Architecture Revision Level bits

000 = Release 1

Others = Reserved

bit 17 MCU: MIPS® MCU™ ASE Implemented bit

0 = MCU ASE is not implemented

1 = MCU ASE is implemented

bit 16 ISAONEXC: ISA on Exception bit ^(1)

1 = microMIPS is used on entrance to an exception vector

0 = MIPS32 ISA is used on entrance to an exception vector

bit 15-14 ISA[1:0]: Instruction Set Availability bits ^(1)

00 = Only MIPS32 is implemented

01 = Only microMIPS is implemented

11 = Both MIPS32 and microMIPS are implemented; microMIPS is used when coming out of Reset

10 = Both MIPS32 and microMIPS are implemented; MIPS32 ISA used when coming out of Reset

bit 13 ULRI: UserLocal Register Implemented bit

1 = UserLocal Coprocessor 0 register is implemented

bit 12 RXI: RIE and XIE Implemented in PageGrain bit

0 = RIE and XIE bits are not implemented

1 = RIE and XIE bits are implemented

bit 11 DSP2P: MIPS DSP ASE Revision 2 Presence bit

1 = DSP revision 2 is present

bit 10 DSPP: MIPS DSP ASE Presence bit

1 = DSP is present

bit 9 Unimplemented: Read as '0'

bit 8 ITL: Indicates that iFlowtrace® hardware is present

1 = iFlowtrace® is implemented in the core

bit 7 LPA: Denotes the presence of support for large physical addresses on MIPS64 processors. Not used by MIPS32 processors and returns zero on read.

0 = Large physical address support is not implemented

Note 1: These bits are set based on the value of the BOOTISA Configuration bit (BCFG0[3]).

REGISTER 4-3: CONFIG3: CONFIGURATION REGISTER 3; CP0 REGISTER 16, SELECT 3 (CONTINUED)

bit 6 VEIC: External Vector Interrupt Controller bit

1 = Support for an external interrupt controller is implemented

bit 5 VINT: Vector Interrupt bit

1 = Vector interrupts are implemented

bit 4 Unimplemented: Read as '0'

bit 3 CDMM: Common Device Memory Map bit

0 = CDMM is not implemented

1 = CDMM is implemented

bit 2-1 Unimplemented: Read as '0'

bit 0 TL: Trace Logic bit

1 = Trace logic is implemented

Note 1: These bits are set based on the value of the BOOTISA Configuration bit (BCFG0[3]).

REGISTER 4-4: CONFIG5: CONFIGURATION REGISTER 5; CP0 REGISTER 16, SELECT 5

Legend: r = Reserved

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31 M: This bit is reserved to indicate that a Config5 register is present. With the current architectural definition, this bit must always read as a '0'.

bit 30-1 Unimplemented: Read as '0'

bit 0 NF: Nested Fault bit

1 = Nested Fault feature is implemented

REGISTER 4-5: CONFIG7: CONFIGURATION REGISTER 7; CP0 REGISTER 16, SELECT 7

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31 WII: Wait IE Ignore bit

1 = Indicates that this processor will allow an interrupt to unblock a WAIT instruction

bit 30-0 Unimplemented: Read as '0'

5.0 FLASH PROGRAM MEMORY

Note: This data sheet summarizes the features of the PIC32MZ1025W104 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 Programming” (DS60001640) in the “PIC32MZ W1 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

The PIC32MZ1025W104 device contains an internal Flash program memory for executing user code, which includes the following features:

  • Write protection for program and boot Flash
  • Error-correction code (ECC) support
    • Supports chip and page erase
    • Supports Single Word, Quad Word and row program options
  • Flash page size is 4 Kbytes (1K Instruction Word (IW))
  • Row size is 1 KB (256 IW)

The user can program this memory using the following methods:

• Run-Time Self-Programming (RTSP)
• Enhanced JTAG (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 Programming" (DS60001640) in the "PIC32MZ W1 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 is available for download from the Microchip website (www.microchip.com).

5.1 Flash Control Registers

TABLE 5-1: FLASH CONTROLLER REGISTER MAP

Virtual Address(BF50_#)Register NameBit RangeBitsAll Resets
31/15 30/1429/13 28/127/11 2610 25/9 248 23/7 22/621/5 20/4 1973 18/2 17/116/0
600NVMCON (1)31:160000
15:00WRWRENWRERRLVDERRHTDPGMNVMOP[3:0]50x0
610NVMCON231:16ERS[3:0]SLEEPWS[4:0]011x
15:00TEMPCREAD1VREAD1RETRY[1:0]x000
620NVMKEY31:16NVMKEY[31:0]0000
15:000000
630NVMADDR(1)31:16NVMADDR[31:0]0000
15:000000
640NVMDATA031:16NVMDATA0[31:0]0000
15:000000
650NVMDATA131:16NVMDATA1[31:0]0000
15:000000
660NVMDATA231:16NVMDATA2[31:0]0000
15:000000
670NVMDATA331:16NVMDATA3[31:0]0000
15:000000
680NVMDATA431:16NVMDATA4[31:0]0000
15:000000
690NVMDATA531:16NVMDATA5[31:0]0000
15:000000
6A0NVMDATA631:16NVMDATA6[31:0]0000
15:000000
6B0NVMDATA731:16NVMDATA7[31:0]0000
15:000000
6C0NVMSRC ADDR31:16NVMSRCADDR[31:0]0000
15:000000
6D0NVMPWPLT31:16ULOCKPWPLT[23:16]8000
15:00PWPLT[15:0]0000
6E0NVMPWPGTE31:16ULOCKPGTE[23:16]80FF
15:00PGTE[15:0]F22F
6F0NVMLBWP(1)31:16ULOCKLBWP23LBWP22LBWP21LBWP20LBWP19LBWP18LBWP17LBWP1680FF
15:00LBWP15LBWP14LBWP13LBWP12LBWP11LBWP10LBWP9LBWP8LBWP7LBWP6LBWP5LBWP4LBWP3LBWP2LBWP1F22F
700NVMUBWP(1)31:16ULOCKUBWP23UBWP22LBWP21UBWP20UBWP19UBWP18UBWP17UBWP1680FF
15:00UBWP15UBWP14UBWP13UBWP12UBWP11UBWP10UBWP9UBWP8UBWP7UBWP6UBWP5UBWP4UBWP3UBWP2UBWP1F22F

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 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 5-1: NVMCON: PROGRAMMING CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — —— —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — —— —
15:8R/HS/HC-0R/W-0R/HS/HC-0R/HS/HC-0U-0U-0U-0R/HS/HC-0
WR(1)WREN(1)WRERR(1)LVDERR(1)HTDPGM
7:0U-0 U-0U-0 U-0 R/W-0R/W-0R/W-0R/W-0
— — —NVMOP[3:0]
Legend:HC = Hardware Set HC = Hardware Cleared
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 WR: Write Control Bit ^(1)

1 = Initiate a Flash operation. Hardware clears this bit when the operation completes.

0 = Flash operation complete or inactive.

Note: This field can only be modified when WREN = 1, TEMP = 1, and the NVMKEY unlock sequence is satisfied.

bit 14 WREN: Write Enable Bit ^(1)

1 = Enables writes to WR

0 = Disables writes to WR

bit 13 WRERR: Write Error Bit ^(1)

1 = Program or erase sequence does not complete successfully

0 = Program or erase sequence completed normally

Note: Cleared by setting NVMOP == 0000b and initiating a Flash operation (WR).

bit 12 LVDERR: Low-voltage Detect Error Bit ^(1)

The error is only captured for programming/erase operations (when WR = 1).

1 = Low-voltage is detected (possible data corruption if WRERR is set)

0 = Normal voltage is detected

Note: Cleared by setting NVMOP == 0000b and initiating a Flash operation (WR).

bit 11-9 Unimplemented: Read as '0'

bit 8 HTDPGM: High Temperature Detected during Program/Erase Operation bit

This status is only captured for programming/erase operations (when WR = 1).

1 = High temperature is detected (possible data corruption, verify operation)

0 = High temperature is not detected

Note: Cleared by setting NVMOP == 0000b and initiating a Flash operation (WR)

bit 7-4 Unimplemented: Read as '0'

Note 1: These bits are only reset by a POR and are not affected by other Reset sources.

2: This operation results in a No Operation (NOP) when the Dynamic Flash ECC Configuration bits = 00 (FECCCON[1:0] (CFGCON0[299:28])), which enables ECC at all times. For all other FECCCON[1:0] bit settings, this command will execute, but will not write the ECC bits for the Word and can cause DED errors if dynamic Flash ECC is enabled (FECCCON[1:0] = 01).

REGISTER 5-1: NVMCON: PROGRAMMING CONTROL REGISTER (CONTINUED)

bit 3-0 NVMOP[3:0]: NVM Operation bits

These bits are only writable when WREN = 0.

1111 = Reserved

.

.

.

1000 = Reserved

0111 = Program erase operation: erase all of program Flash memory (all pages must be unprotected)

0110 = Upper program Flash memory erase operation: erases only the upper mapped region of program Flash (all pages in that region must be unprotected)

0101 = Lower program Flash memory erase operation: erases only the lower mapped region of program Flash (all pages in that region must be unprotected)

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 = Quad Word (256-bit) program operation: programs the 256-bit Flash Word selected by NVMADDR, if it is not write-protected 0001 = Word program operation: programs Word selected by NVMADDR, if it is not write-protected ^(2) 0000 = No operation

Note 1: These bits are only reset by a POR and are not affected by other Reset sources.

2: This operation results in a No Operation (NOP) when the Dynamic Flash ECC Configuration bits = 00 (FECCCON[1:0] (CFGCON0[299:28])), which enables ECC at all times. For all other FECCCON[1:0] bit settings, this command will execute, but will not write the ECC bits for the Word and can cause DED errors if dynamic Flash ECC is enabled (FECCCON[1:0] = 01).

REGISTER 5-2: NVMCON2: PROGRAMMING CONTROL2 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 R/W-1
ERS[3:0]— — — SLEEP
23:16U-0U-0U-0R/W-1R/W-1R/W-1R/W-1R/W-1
WS[4:0]
15:8U-0R/W-cfgR/W-0R/W-0U-0U-0R/W-0R/W-0
TEMPCREAD1VREAD1RETRY[1:0]
7:0U-0 U-0U-0U-0U-0 U-0 U-0U-0
Legend:HC = Hardware Set HC = Hardware Cleared
R = Readable bitW = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown

bit 31-28 ERS[3:0]: Erase Retry State

These bits are used by software to track the software state of the erase retry procedure in the event of a system Reset (MCLR) or brown out Reset event.

bit 27-25 Unimplemented: Read as '0'

bit 24 SLEEP: Power Down in Sleep bit

1 = Configures Flash for power down when the system is in Sleep mode

0 = Configures Flash for standby when the system is in Sleep mode

Note: This field can only be modified when the NVMKEY unlock sequence is satisfied.

bit 23-21 Unimplemented: Read as '0'

bit 20-16 WS[4:0]: Flash Access Wait State Control for VREAD1 = 1

11111 = 31 wait states (32 total system clocks)

11110 = 30 wait states (31 total system clocks)

+ + +

00010 = 2 wait states (3 total system clocks)

00001 = 1 wait state (2 total system clocks)

00000 = 0 wait state (1 total system clock)

Note 1: When VREAD1 = 1, WS[] only affects the panel containing NVMADDR[].

2: This field can only be modified when the NVMKEY unlock sequence is satisfied.

bit 15 Unimplemented: Read as '0'

bit 14 TEMP: Operating Temperature Control bit

1 = Configures Flash for standard temperature, low latency reads

0 = Configures Flash for high temperature, high latency reads

Note 1: When TEMP = 0, all NVMOP Operations are disabled because NVMWR cannot be written to '1'.

2: When TEMP = 0, firmware must adjust Flash wait state control at the system level.

3: This field can only be modified when NVMCON.WR == 0 and the NVMKEY unlock sequence is satisfied.

bit 13 CREAD1: Compare Read of Logic 1 bit

Compare read 1 causes all bits in a Flash Word (including ECC if it exists) to be evaluated during the read. If all bits are 1, the lowest Word in the Flash Word evaluates to 0x0000_0001, all other Words are 0x0001_0000. If any bit is 0, the read evaluates to 0x0000_0000 for all Words in the Flash Word.

1 = Compare read enabled, only if VREAD1 = 1

0 = Compare read disabled

Note 1: When using erase retry in an ECC Flash system, CREAD1 = 1 must be used.

2: This field can only be modified when the NVMKEY unlock sequence is satisfied.

REGISTER 5-2: NVMCON2: PROGRAMMING CONTROL2 REGISTER (CONTINUED)

bit 12 VREAD1: Verify Read of Logic 1 Control bit

1 = Selects erase retry procedure with verify read

0 = Selects single erase without verify read

Note 1: When VREAD1 = 1, Flash wait state control is from WS[] for the panel containing NVMADDR[].

2: Using erase retry and verify read procedure increase life of Flash panel(s).

3: This field can only be modified when NVMCON.WR == 0 and the NVMKEY unlock sequence is satisfied.

bit 11 Unimplemented: Read as '0'

bit 10 Unimplemented: Read as '0'

bit 9-8 RETRY[1:0]: Erase Retry Control bit, only used when VREAD1 = 1

11 = Erase strength for last retry cycle

10 = Erase strength for third retry cycle

01 = Erase strength for second retry cycle

00 = Erase strength for first retry cycle

Note: This field can only be modified when NVMCON.WR == 0.

bit 7-0 Unimplemented: Read as '0'

REGISTER 5-3: NVMKEY: PROGRAMMING UNLOCK REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24W-0 W-0W-0 W-0 W-0W-0 W-0 W-0
NVMKEY[31:24]
23:16W-0 W-0W-0 W-0 W-0W-0 W-0 W-0
NVMKEY[23:16]
15:8W-0 W-0W-0 W-0 W-0W-0 W-0 W-0
NVMKEY[15:8]
7:0W-0 W-0W-0 W-0 W-0W-0 W-0 W-0
NVMKEY[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 NVMKEY[31:0]: Unlock Register bits

These bits are write only and read '0' on any read.

Note: This register is used as part of the unlock sequence to prevent inadvertent writes to the program Flash.

REGISTER 5-4: NVMADDR: FLASH ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMADDR[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMADDR[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMADDR[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMADDR[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 NVMADDR[31:0]: Flash (Word) Address bits

NVMOP[3:0] SelectionFlash Address Bits (NVMADDR[31:0])
Page eraseAddress identifies the page to erase.
Row programAddress identifies the row to program.
Double Word program Addressidentifies the 64-bit DWord to program.NVMADDR[2:0] bits are ignored.
Quad Double Word programAddress identifies the 256-bit Quad DWord to program. NVMADDR[4:0] bits are ignored.

Note 1: Hardware prevents writing to this register when NVMCON.WR = 1.
2: For all other NVMOP[3:0] bit settings, the Flash address is ignored. See the NVMCON register (Register 5-1) for additional information on these bits.
3: The bits in this register are only reset by a POR and are not affected by other Reset sources.

REGISTER 5-5: NVMDATAx: FLASH PROGRAM DATA REGISTER (x = 0-7)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMDATA[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMDATA[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMDATA[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMDATA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 NVMDATAx[31:0]: Flash Programming Data bits

The value in this register is written to Flash when a program operation is commanded.

Single Double Word program (64-bit)

Writes NVMDATA1:NVMDATA0 to the target Flash address defined in NVMADDR.

Quad Double Word program (256-bit)

Writes NVMDATA7:NVMDATA6:NVMDATA5:NVMDATA4:NVMDATA3:NVMDATA2:NVMDATA1:NVMDATA0 to the target Flash address defined in NVMADDR. NVMDATA0 contains the Least Significant Instruction Word.

Note: Hardware prevents writing to this register when NVMCON.WR = 1.

REGISTER 5-6: NVMSRCADDR: SOURCE DATA ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMSRCADDR[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMSRCADDR[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMSRCADDR[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NVMSRCADDR[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 NVMSRCADDR[31:0]: Source Data (Word) Address bits

This is the system physical Word address of the data (in DRM) to be programmed into the Flash when NVMCON.NVMOP is set to row programming.

Note: Hardware prevents writing to this register when NVMCON.WR = 1.

REGISTER 5-7: NVMPWPLT: FLASH PROGRAM WRITE PROTECT LOWER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/C-1 U-0 UU-0 U-0 U-0U-0 U-0
ULOCK— — —— — —
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PWPLT[23:16]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PWPLT[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PWPLT[7:0]

Legend:

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31 ULOCK: NVMPWPLT Register Unlock bit

1 = NVMPWPLT register is not locked and can be modified

0 = NVMPWPLT register is locked and cannot be modified

Note 1: This field can only be modified when the NVMKEY unlock sequence is satisfied.

2: This field can be cleared at the same time as writing to PWPLT[23:0].

bit 30-24 Unimplemented: Read as '0'

bit 23-0 PWPLT[23:0]: Flash Program Write Protect Less Than Address

Pages at Flash addresses less than this value are write protected.

Note 1: This field can only be modified when the NVMKEY unlock sequence is satisfied, and ULOCK = 1.

2: This is a byte address force to align to page boundaries.

REGISTER 5-8: NVMPWPGTE: FLASH PROGRAM WRITE PROTECT GREATER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/C-1 U-0 U-0 U-0 U-0 U-0 U-0
ULOCK— — —— — — —
23:16R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
PWPGTE[23:16]
15:8R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
PWPGTE[15:8]
7:0R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
PWPGTE[7:0]
Legend:r = Reserved
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 ULOCK: NVMPWPGTE Register Unlock bit

1 = NVMPWPGTE register is not locked and can be modified
0 = NVMPWPGTE register is locked and cannot be modified

Note 1: This field can only be modified when the NVMKEY unlock sequence is satisfied.

2: This field can be cleared at the same time as writing to PWPGTE[23:0].

bit 30-24 Unimplemented: Read as '0'

bit 23-0 PWPGTE[23:0]: Flash Program Write Protect Address bits

Pages at Flash addresses greater than or equal to this value are write protected.

Note 1: This field can only be modified when the NVMKEY unlock sequence is satisfied, and ULOCK = 1.
2: This is a byte address force to align to page boundaries.

REGISTER 5-9: NVMLBWP: FLASH LOWER BOOT WRITE PROTECT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/C-1 U-0 U-0 U-0 U-0 U-0 U-0
ULOCK——————
23:16R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
LBWP23LBWP22LBWP21LBWP20LBWP19LBWP18LBWP17LBWP16
15:8R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
LBWP15LBWP14LBWP13LBWP12LBWP11LBWP10LBWP9LBWP8
7:0R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
LBWP7LBWP6LBWP5LBWP4LBWP3LBWP2LBWP1LBWP0
Legend:r = Reserved
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 ULOCK: Lower Boot Write Protect (LBWPn) Unlock bit

1 = LBWPn bits are not locked and can be modified

0 = LBWPn bits are locked and cannot be modified

Note 1: This field can only be modified when the NVMKEY unlock sequence is satisfied.

2: This field can be cleared at the same time as writing to LBWP[msb:lsb].

bit 30-24 Unimplemented: Read as '0'

bit 23-0 LBWP[23:0]: Lower Boot Pages Write Protect bits

LBWP[n] = 1: Erase and write protection for upper boot page n is enabled

LBWP[n] = 0: Erase and write protection for upper boot page n is disabled

Note: This field can only be modified when the NVMKEY unlock sequence is satisfied, and ULOCK = 1.

REGISTER 5-10: NVMUBWP: FLASH UPPER BOOT WRITE PROTECT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/C-1 U-0 U-0 U-0 U-0 U-0
ULOCK——————
23:16R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
UBWP23UBWP22UBWP21UBWP20UBWP19UBWP18UBWP17UBWP16
15:8R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
UBWP15UBWP14UBWP13UBWP12UBWP11UBWP10UBWP9UBWP8
7:0R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
UBWP7UBWP6UBWP5UBWP4UBWP3UBWP2UBWP1UBWP0
Legend:r = Reserved
R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31 ULOCK: Upper Boot Write Protect (UBWPn) Register Unlock bit

1 = UBWPn bits are not locked and can be modified

0 = UBWPn bits are locked and cannot be modified

Note 1: This field can only be modified when the NVMKEY unlock sequence is satisfied.

2: This field can be cleared at the same time as writing to UBWP[msb:lsb].

bit 30-24 Unimplemented: Read as '0'

bit 23-0 UBWP[23:0]: Upper Boot Pages Write Protect bits

UBWP[n] = 1: Erase and write protection for upper boot page n is enabled

UBWP[n] = 0: Erase and write protection for upper boot page n is disabled

Note: This field can only be modified when the NVMKEY unlock sequence is satisfied, and ULOCK = 1.

6.0 MEMORY ORGANIZATION

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. For detailed information, refer to Section 6. "Memory Organization and Permissions" (DS60001641) in the "PIC32MZ W1 Family Reference Manual", which is available from the Microchip web site (www.microchip.com/PIC32).

PIC32MZ1025W104 MCUs 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, PIC32MZ1025W104 device allows execution from data memory.

Key features include:

• 32-bit native data width
- Separate User (KUSEG) and Kernel (KSEG0/KSEG1) mode address space
- Separate boot Flash memory for protected code
- Robust bus exception handling to intercept runaway code
- Cacheable (KSEG0) and non-cacheable (KSEG1) address regions
- Read/Write permission access to predefined memory regions

6.1 Memory Layout

PIC32MZ1025W104 MCUs 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 manager peripherals, such as DMA and the Flash controller, that access memory independently of the CPU.

The main memory maps for the PIC32MZ1025W104 device is illustrated in Figure 6-1, which provides memory map information for boot Flash and boot alias. Table 6-1 provides memory map information for Special Function Registers (SFRs).

FIGURE 6-1: MEMORY MAP FOR DEVICES WITH 1024 KBYTE OF PROGRAM MEMORY, 256 KBYTE RAM AND 64 KBYTE DATA BUFFER (DBF) ^(1,2)
Microchip PIC32MZ1025W104132 - Memory Layout - 1
Note 1: Memory areas are not shown to scale.
2: The Cache and MMU (FMT) are initialized by compiler start-up code.
3: RAM memory is divided into two equal banks: RAM Bank 1 and RAM Bank 2 on a half boundary.
4: Refer to Figure 6-2.
5: Refer to Table 6-1.

FIGURE 6-2: BOOT AND ALIAS MEMORY MAP

Physical Memory Map(1)
Reserved0x1FC7FFFF
Calibration Area(2)0x1FC570000x1FC56FFF
0x1FC560000x1FC55FFF
Configuration Space(3, 4)0x1FC550000x1FC54FFF
Reserved0x1FC500000x1FC4FFFF
Upper Boot Alias0x1FC400000x1FC3FFFF
Reserved0x1FC100000x1FC0FFFF
Lower Boot Alias0x1FC00000

Note 1: Memory areas are not shown to scale.
2: This calibration area space cannot be modified by user.
3: Refer to Section 6.1.1 "Boot Flash And Configuration" for more information.
4: This configuration space cannot be used for executing code in the upper boot alias. These memory locations are used to initialize Configuration registers (see Section 38.2 "Special Features Registers".

TABLE 6-1: SFR MEMORY MAP

PeripheralVirtual Address
BaseOffset Start
Asymmetric Crypto0xBF9000000x0000
Sonics Register Target 0x030000
Wi-Fi(2)0xBF8C00000x0000
SQI 0x021000
Crypto 0x024000
RNG 0x025000
RTCC 0xBF870000 0x0000
DSCON 0x1000
I2C20xBF8400000x0400
UART1-UART20x0600
SPI1-SPI20x0C00
IC1-IC40x1000
OC1-OC40x2000
Ethernet0x3000
USB0x4000
PORTA-PORTC0xBF8200000x0000
PORTK0x0300
I2C10x0400
ADC0x1000
CAN0x2000
CAN-FD0x3000
CVD0x4000
Interrupt controller0xBF8100000x0000
DMA 0x1000
Prefetch0x2400
PMU 0x3E00
PMU WCM0x4000

Note 1: Refer to Section 6.3 "System Bus Arbitration" for important legal information.
2: This configuration space cannot be modified by the user.

TABLE 6-1: SFR MEMORY MAP (CONTINUED)

Configuration0xBF8000000x0000
Flash Controller 0x0600
Watchdog Timer 0x0800
Deadman Timer 0x0A00
CRU 0x1200
UART3 0x1600
PPS 0x1800
PTG 0x1C00
Timer1-Timer7 0x2000
PFW 0xFE00

Note 1: Refer to Section 6.3 "System Bus Arbitration" for important legal information.
2: This configuration space cannot be modified by the user.

6.1.1 BOOT FLASH AND

CONFIGURATION

PIC32MZ W1 on device Reset, reads Boot Flash Configuration Word information before allowing system to boot.

Every time device Reset or NMI event occurs, the CFGPG.CPUPG[1:0] bits are reset to '0'. This helps the user to strictly control some regions. Boot code to use the CFGPG registers to define regions that are only accessible by group 0. Once the boot code is finished with data or code operations, it must set the CFGPG.CPUPG[1:0] to a value other than '0'.

6.2 Boot Flash Configuration Registers

TABLE 6-2: BOOT FLASH CONFIGURATION WORD SUMMARY

Virtual Address (BFC5_#)Register NameBit RangeBitsAll Resets
31/15 3014 29/13 2812 27/11 26/1025/9 24/823/7 22/6 21/5 204 19/318/2 17/1 160
5F9CBFDEVCFG031:16BINFOVAL-ID0xxxx
15:00BOOT-ISAPCSC-MODExxxx0
5F98BFDEVCFG131:16EPGMCLKETHTPSFFECCCON[1:0]ETHPLL-HWMDBTPLL-HWMDSPLL-HWMDUPLL-HWMDPCMCANFDDIVIC_ACLKOC_ACLKxxxxx
15:00CFGLOCK[1:0]IOLOCKPMDLOCKPGLOCKPMULOCKUSBSSENEXLPRIDMAPRIFCPRIJTAGENTROENTDOENxxxxx
5F94BFDEVCFG231:16WDTPS[4:0]USBDPTRIM[3:0]USBDMTRIM[3:0]xxxxx
15:00HSUARTENSMCLRHSSPIENVBUSIOUSBIDIOCLASSB-DISETHEX-EREFFMIENTRCENICESEL[1:0]DEBUG[1:0]xxxxx
5F90BFDEVCFG331:16DMTENDMTCNT[4:0]WDTWINSZ[1:0]WDTENWINDISWDTSPGMWDTPS[4:0]xxxxx
15:00FSCMENCKSWENWAKE2SPDSOSCSELWDTRMCS[1:0]POSCMOD[1:0]DMTINTV[2:0]xxxxx
5F8CBFDEVCFG431:16SOSCENDSENDSWDTENDSWD-TOSCDSWDTPS[4:0]DSZP-BORENVBZP-BORENxxxxx
15:00SOSCCFG[7-0]xxxxx
5F88BFDEVCFG531:16xxxxx
15:00USERID[15:0]xxxxx

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: The user configured setting of BFDEVCFG0 to BFDEVCFG5 loaded from boot Flash into following counterpart registers at system start-up.
• BFDEVCFG0 to BCFG0(L)
• BFDEVCFG1 to CFGCON0(L)
• BFDEVCFG2 to CFGCON1(L)
• BFDEVCFG3 to CFGCON2(L)
• BFDEVCFG4 to CFGCON4(L)
• BFDEVCFG5 to USERID
Definition of BCFG0, CFGCON0, CFGCON1, CFGCON2, CFGCON4 and USERID is available in Table 38-1.

TABLE 6-1: BOOT FLASH CODE PROTECTION REGISTER SUMMARY MAP

Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedP = Programmable Bit

bit 31-29 Unimplemented: Read as '0'

bit 28 CP: Code Protect bit

0 = Protection Disabled

1 = Protection Enabled

bit 27-0 Unimplemented: Read as '0'

TABLE 6-3: BOOT FLASH SIGN REGISTER SUMMARY MAP

Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedP = Programmable Bit

bit 31 SIGN: Flash SIGN bit

1 = Unsigned

0 = Signed

bit 30-0 Unimplemented: Read as '0'

6.3 System Bus Arbitration

Note: The System Bus interconnect implements one or more instantiations of the SonicsSX® interconnect from Sonics, Inc. This document contains materials that are (c) 2003-2015 Sonics, Inc., and that constitute proprietary information of Sonics, Inc. SonicsSX is a registered trademark of Sonics, Inc. All such materials and trademarks are used under license from Sonics, Inc.

As shown in the PIC32MZ1025W104 family block diagram (see Figure 2-1), there are multiple initiator modules (I1 through I13) in the system that can access various target modules (T1 through T13). Table 6-3 lists the initiator and its corresponding access target. The System Bus supports simultaneous access to targets by initiators, so long as the initiators are accessing different targets. The System Bus will perform arbitration if multiple initiators attempt to access the same target.

TABLE 6-3: INITIATORS TO TARGET ACCESS ASSOCIATION

Target #Initiator ID1234567891011121314
NameCPUFlash ControllerDMA ReadDMA WriteICDWI-FIADCCANCAN-FDCryptoEthernet TXEthernet RXSQIUSB
1RAM Bank 1 MemoryXXXXXXXXXXXXXX
2RAM Bank 2 MemoryXXXXXXXXXXXXXX
3Data Buffer MemoryXXXXXXXXXXXXXX
4PrefetchXXXXXXXXXXX
5Flash Memory Boot FlashXX
6Peripheral Set 1: Flash Controller, WDT, DMT, Clock Reset Unit, PTG, UART3, PPS, Timer 1-7XXXXX
7Peripheral Set 2: Port A, Port B, Port C, Port K, I2C1, ADC, CAN, CAN-FD, CVD ControllerXXXXX
8Wi-FiXXXXX
9Peripheral Set 4: RTCC, DSCONXXXX
10SSX RTXXXXX
11Peripheral Set 3: I2C, UART1-UART2, SPI1-SPI2, IC1-IC4, OC1-OC4, Ethernet Controller, USBXXXXX
12AHBXXXXX
13SQIXXXXX

Legend:
- X = Connection between initiator and target
- Shaded cells = No connection between initiator and target

The System Bus arbitration scheme implements a non-programmable, Least Recently Serviced (LRS) priority, which provides Quality Of Service (QOS) for most initiators. However, some initiators can use Fixed High Priority (HIGH) arbitration to guarantee their access to data.

The arbitration scheme for the available initiators is shown in Table 6-4.

TABLE 6-4: INITIATOR ID AND QOS

Name ID QOS
CPU 1 LRS(1)
CPU 2 HIGH(1,2)
Flash Controller 3 LRS(1)
Flash Controller 4 HIGH(1,2)
DMA Read5 LRS(1)
DMA Read6 HIGH(1,2)
DMA Write7 LRS(1)
DMA Write8 HIGH(1,2)
ICD - JTAG9LRS
Wi-Fi10LRS
ADC11LRS
CAN12LRS
CAN-FD13LRS
Crypto Engine14LRS
Ethernet Write15LRS
Ethernet Read16LRS
SQI17LRS
USB18LRS

Note 1: When accessing SRAM, the DMAPRI bit (CFGCON0[6]), the FCPRI bit (CFGCON0[5]), and the EXLPRI bit (CFGCON0[7]) provide arbitration control for the DMA, FC, and CPU (when servicing an interrupt (EXL = 1)), respectively, by selecting the use of LRS or HIGH. When using HIGH, the DMA, FC, and CPU get arbitration preference over all initiators using LRS.
2: Using HIGH arbitration can have serious negative effects on other initiators. Therefore, it is recommended to not enable this type of arbitration for an initiator that uses significant system bandwidth. HIGH arbitration is intended to be used for low bandwidth applications that require low latency, such as LCC graphics applications.

6.4 Permission Access and System Bus Registers

The System Bus on the PIC32MZ1025W104 family of MCUs provide access control capabilities for the transaction initiators on the System Bus.

The System Bus divides the entire memory space into 14 target regions and permits access to each target by initiators through permission groups. Four Permission Groups (0 through 3) can be assigned to each initiator. Each permission group is independent of the others and can have exclusive or shared access to a region.

Using the CFGPG register (see Register 38-6 in Section 38.0 "Special Features"), Boot firmware can assign a permission group to each initiator, which can make requests on the System Bus.

The available targets and their regions, as well as the associated control registers to assign protection, are described and listed in Table 6-5.

Register 6-5 through Register 6-12 are used for setting and controlling access permission groups and regions.

To change these registers, they must be unlocked in hardware. The register lock is controlled by the PGLOCK Configuration bit (CFGCON[11]). Setting PGLOCK prevents writes to the control registers; clearing PGLOCK allows writes.

To set or clear the PGLOCK bit, an unlock sequence must be executed. Refer to Oscillators with Enhanced PLL in the "PIC32 Family Reference Manual" for more details.

TABLE 6-5: SYSTEM BUS TARGETS AND ASSOCIATED PROTECTION REGISTERS

Target Number Target Description^(5) SBTxREGy Register SBTxRDy Register SBTxWRy Register
NameRegion Base (BASE[21:0]) (2)Physical Start AddressRegion Size (SIZE[4:0]) (3)Region SizePriority (PRI)Priority LevelNameRead Permission (GROUP3, GROUP2, GROUP1, GROUP0)NameWrite Permission (GROUP3, GROUP2, GROUP1, GROUP0)
1 RAMBank 1 MemorySBT1REG0 R0x00000000 R(4)128 Kbyte0 SBT1RD0 R/W(1)SBT1WR0 R/W
SBT1REG1 R/WR/WR/WR/W3 SBT1RD1 R/W(1)SBT1WR1 R/W
SBT1REG2R/WR/WR/WR/W01SBT1RD2 R/W^(1) SBT1WR2 R/W
2 RAMBank 2 MemorySBT2REG0 R0x00020000 R(4)128 Kbyte0 SBT2RD0 R/W(1)SBT2WR0 R/W
SBT2REG1 R/WR/WR/WR/W3 SBT2RD1 R/W(1)SBT2WR1 R/W
SBT2REG2R/WR/WR/WR/W01SBT2RD2 R/W^(1) SBT2WR2 R/W
3 DataBuffer MemorySBT3REG0 R0x00040000 R(4)64 Kbyte0 SBT3RD0 R/W(1)SBT3WR0 R/W
SBT3REG1 R/WR/WR/WR/W3 SBT3RD1 R/W(1)SBT3WR1 R/W
SBT3REG2R/WR/WR/WR/W01SBT3RD2 R/W^(1) SBT3WR2 R/W
4 FlashMemory (Peripherals)SBT4REG0 R0x10800000R1 Mbyte0 SBT4RD0 R/W(1)SBT4WR00, 0, 0, 0
SBT4REG1 R/WR/WR/WR/W3 SBT4RD1 R/W(1)SBT4WR10, 0, 0, 0
SBT4REG2R/WR/WR/WR/W01SBT4RD2 R/W^(1) SBT4WR20, 0, 0, 0
5Flash Memory (CPU)SBT5REG0 R0x10000000 R(4)1 Mbyte0 SBT5RD0 R/W(1)SBT5WR00, 0, 0, 0
SBT5REG2R/WR/WR/WR/W01SBT5RD2 R/W^(1) SBT5WR20, 0, 0, 0
SBT5REG3R/WR/WR/WR/W01SBT5RD3 R/W^(1) SBT5WR30, 0, 0, 0
SBT5REG4RRRR12SBT5RD40, 0, 0, 1SBT5WR40, 0, 0, 0
SBT5REG5RRRR12SBT5RD50, 0, 0, 1SBT5WR50, 0, 0, 0
SBT5REG6RRRR12SBT5RD60, 0, 0, 1SBT5WR60, 0, 0, 0
SBT5REG7RRRR12SBT5RD71, 1, 1, 1SBT5WR70, 0, 0, 0
SBT5REG8RRRR12SBT5RD81, 1, 1, 1SBT5WR80, 0, 0, 0
SBT5REG9RRRR12SBT5RD90, 0, 0, 1SBT5WR90, 0, 0, 0
SBT5REG10RRRR12SBT5RD100, 0, 0, 1SBT5WR100, 0, 0, 0
6Peripheral Set 1: Flash Controller, DMT, WDT, Clock Reset Unit, UART3, PPS, PTG, Timer1-Timer7, DMA, ICD, PMUSBT6REG0 R0x1F800000R128 Kbyte0 SBT6RD0R/W (1)SBT6WR0 R/W
SBT6REG1 R/WR/WR/WR/W3 SBT6RD1R/W (1)SBT6WR1 R/W

Legend:
R = Read;
R/W =
'x' in a reg
'y' in a register name = 0-10.
Note
1: Reset values for these bits are ‘_’, ‘1’, ‘1’, ‘2’, respectively.
2: The BASE[21:0] bits must be set to the corresponding Physical Address and right shifted by 10 bits. For Read-only bits, this value is set by hardware on Reset.
3: The SIZE[4:0] bits must be set to the corresponding Region Size, based on the following formula: Region Size = 2^(SIZE-1) x 1024 bytes. For read-only bits, this value is set by hardware on Reset.
4: Refer to the Device Memory Maps (Figure 6-1 for specific device memory sizes and start addresses
5: See Table 6-1 for information on specific target memory size and start addresses.
6: The SBTxREG1 SFRs are reserved, and therefore, are not listed in this table for this target.

TABLE 6-5: SYSTEM BUS TARGETS AND ASSOCIATED PROTECTION REGISTERS (CONTINUED)

Target Number Target Description^(5) SBTxREGy RegisterSBTxRDy Register SBTxWRy Register
NameRegion Base (BASE[21:0]) (2)Physical Start AddressRegion Size (SIZE[4:0]) (3)Region SizePriority (PRI)Priority LevelNameRead Permission (GROUP3, GROUP2, GROUP1, GROUP0)NameWrite Permission (GROUP3, GROUP2, GROUP1, GROUP0)
7Peripheral Set 2: Port A, Port B, Port C, Port K, I2C1, ADC, CAN, CAN-FD, CVD ControllerSBT7REG0 R0x1F820000 R 128Kbyte— 0SBT7RD0 R/W(1)SBT7WR0 R/W
8Wi-FiSBT8REG0 R0x1F8C0000 R 128Kbyte— 0SBT8RD0 R/W(1)SBT8WR0 R/W
9Peripheral Set 4: RTCC, DSCONSBT9REG0 R0x1F870000 R 128Kbyte— 0SBT9RD0 R/W(1)SBT9WR0 R/W
10SSX RTSBT10REG0 R0X1F8F0000 R 64Kbyte— 0SBT10RD0 00, 0, 1SBT10WR0 00, 0,1
11Peripheral Set 3: I2C, UART1-UART2, SPI1-SPI2, IC1-IC4, OC1-OC4, USB, Ethemet ControllerSBT11REG0R 0x1F8400000 R 128 Kbyte— 0SBT11RD0R/W(1)SBT11WR0R/W
12AHBSBT12REG0 R0x1F8E4000 R 256Kbyte— 0SBT12RD0R/W(1)SBT12WR0R/W
SBT12REG1R/WR/WR/W R/W— 3SBT12RD1R/W(1)SBT12WR1R/W
13SQLSBT13REG0 R0x1F8E1000 R 4Kbyte— 0SBT13RD0R/W(1)SBT13WR0R/W

Legend: R = Read; R/W = Read/Write; 'x' in a register name = 0-13; 'y' in a register name = 0-10.
Note 1: Reset values for these bits are ‘1’, ‘1’, ‘1’, ‘1’, respectively.
2: The BASE[21:0] bits must be set to the corresponding Physical Address and right shifted by 10 bits. For Read-only bits, this value is set by hardware on Reset.
3: The SIZE[4:0] bits must be set to the corresponding Region Size, based on the following formula: Region Size = 2 ^(SIZE-1) x 1024 bytes. For read-only bits, this value is set by hardware on Reset.
4: Refer to the Device Memory Maps (Figure 6-1 for specific device memory sizes and start addresses.
5: See Table 6-1 for information on specific target memory size and start addresses.
6: The SBTxREG1 SFRs are reserved, and therefore, are not listed in this table for this target.

TABLE 6-6: SYSTEM BUS TARGET x REGISTER MAP, x = 1, 2, 3, 4 (2)

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: Target virtual addresses are:
•Target 1 Virtual address = 0xBF93_1000
•Target 2 Virtual address = 0xBF93_2000
•Target 3 Virtual address = 0xBF93_3000
•Target 4 Virtual address = 0xBF93_4000
2: For Reset values listed as 'xxxx', refer to Table 6-5 for the actual Reset values.

TABLE 6-7: SYSTEM BUS TARGET 5 REGISTER MAP

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note: For Reset values listed as 'xxxx', refer to Table 6-5 for the actual Reset values.

TABLE 6-7: SYSTEM BUS TARGET 5 REGISTER MAP (CONTINUED)

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note: For Reset values listed as 'xxxx', refer to Table 6-5 for the actual Reset values.

TABLE 6-8: SYSTEM BUS TARGET x REGISTER MAP, x = 7, 8, 9, 11, 13

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: Target virtual addresses are:
•Target 7 Virtual address = 0xBF93 7000
•Target 8 Virtual address = 0xBF93 8000
•Target 9 Virtual address = 0xBF93 9000
•Target 11 Virtual address = 0xBF93 B000
•Target 13 Virtual address = 0xBF93 D000
2: For Reset values listed as 'xxxx', refer to Table 6-5 for the actual Reset values.

TABLE 6-9: SYSTEM BUS TARGET 10 REGISTER MAP

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note: For Reset values listed as 'xxxx', refer to Table 6-5 for the actual Reset values.

TABLE 6-10: SYSTEM BUS TARGET x REGISTER MAP, WHERE x = 6, 12

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: Target virtual addresses are:
•Target 6 Virtual address = 0xBF93_6000
•Target 12 Virtual address = 0xBF93_C000
2: For Reset values listed as 'xxxx', refer to Table 6-5 for the actual Reset values.

REGISTER 6-5: SBTxELOG1: SYSTEM BUS TARGET 'x' ERROR LOG REGISTER 1 ('x' = 0-13)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0, C U-0U-0 U-0 R/W-0,C R/W-0, C R/W-0, C R/W-0, C
MULTI — — —COD
23:16U-0 U-0 U-0 U-0 U-0 U-0
— — — —— —— —
15:8R-0 R-0 R-0 R-0 R-0 R-0
INITID[7:0]
7:0R-0 R-0 R-0 R-0 U-0 R-0 R-0
REGION[3:0]CMD[2:0]
Legend:C = Clearable bit
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared

bit 31 MULTI: Multiple Permission Violations Status bit

This bit is cleared by writing a '1'.

1 = Multiple errors have been detected
0 = No multiple errors have been detected

bit 30-28 Unimplemented: Read as '0'

bit 27-24 CODE[3:0]: Error Code bits

Indicates the type of error that was detected. These bits are cleared by writing a '1'.

1111 = Reserved
1101 = Reserved


0011 = Permission violation
0010 = Reserved
0001 = Reserved
0000 = No error

bit 23-16 Unimplemented: Read as '0'

Note: Refer to Table 6-5 for the list of available targets and their descriptions.

REGISTER 6-5: SBTxELOG1: SYSTEM BUS TARGET 'x' ERROR LOG REGISTER 1 ('x' = 0-13) (CONTINUED)
bit 15-8 INITID[7:0]: Initiator ID of Requester bits

11111111 = Reserved
.
.
.
00010011 = Reserved
00010010 = USB
00010001 = SQL
00010000 = Ethernet Read
00001111 = Ethernet Write
00001110 = Crypto Engine
00001101 = CAN-FD
00001100 = CAN
00001011 = ADC
00001010 = Wi-Fi
00001001 = JTAG
00001000 = DMA Write (DMAPRI (CFGCON0[6]) = 1)
00000111 = DMA Write (DMAPRI (CFGCON0[6]) = 0)
00000110 = DMA Read (DMAPRI (CFGCON0[6]) = 1)
00000101 = DMA Read (DMAPRI (CFGCON0[6]) = 0)
00000100 = Flash Controller (FCPRI(CFGCON0[5]) = 0)
00000011 = Flash Controller (FCPRI(CFGCON0[5]) = 0)
00000010 = CPU (CPUPRI (CFGCON0[7]) = 1)
00000001 = CPU (CPUPRI (CFGCON0[7]) = 0)
00000000 = Reserved 

bit 7-4 REGION[3:0]: Requested Region Number bits

1111 - 0000 = Target's region that reported a permission group violation 

bit 3 Unimplemented: Read as '0'

bit CMD[2:0]: Transaction Command of the Requester bits

111 = Reserved
110 = Reserved
101 = Write (a non-posted write)
100 = Reserved
011 = Read (a locked read caused by a Read-Modify-Write transaction)
010 = Read
001 = Write
000 = Idle 

Note: Refer to Table 6-5 for the list of available targets and their descriptions.

REGISTER 6-6: SBTxELOG2: SYSTEM BUS TARGET 'x' ERROR LOG REGISTER 2 ('x' = 0-13)

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared

bit 31-3 Unimplemented: Read as '0'

bit 1-0 GROUP[1:0]: Requested Permissions Group bits

11 = Group 3

10 = Group 2

01 = Group 1

00 = Group 0

Note: Refer to Table 6-5 for the list of available targets and their descriptions.

REGISTER 6-7: SBTxECON: SYSTEM BUS TARGET 'x' ERROR CONTROL REGISTER
('x' = 0-13)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0R/W-0
—— ——— — —ERRP
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0
—— ——— — — — —
15:8U-0 U-0 U-0 U-0 U-0 U-0U-0
—— ——— — — — —
7:0U-0 U-0 U-0 U-0 U-0 U-0U-0
—— ——— — — — —

Legend:

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared

bit 31-25 Unimplemented: Read as '0'

bit 24 ERRP: Error Control bit

1 = Report protection group violation errors
0 = Do not report protection group violation errors

bit 23-0 Unimplemented: Read as '0'

Note: Refer to Table 6-5 for the list of available targets and their descriptions.

REGISTER 6-8: SBTxECLRS: SYSTEM BUS TARGET 'x' SINGLE ERROR CLEAR REGISTER ('x' = 0-13)

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR '1' = Bit is set '0' = Bit is cleared 

bit 31-1 Unimplemented: Read as '0'

bit 0 CLEAR: Clear Single Error on Read bit

A single error as reported via SBTxELOG1 and SBTxELOG2 is cleared by a read of this register.

Note: Refer to Table 6-5 for the list of available targets and their descriptions.

REGISTER 6-9: SBTxECLRM: SYSTEM BUS TARGET 'x' MULTIPLE ERROR CLEAR REGISTER ('x' = 0-13)

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR '1' = Bit is set '0' = Bit is cleared 

bit 31-1 Unimplemented: Read as '0'

bit 0 CLEAR: Clear Multiple Errors on Read bit

Multiple errors as reported via SBTxELOG1 and SBTxELOG2 is cleared by a read of this register.

Note: Refer to Table 6-5 for the list of available targets and their descriptions.

REGISTER 6-10: SBTxREGy: SYSTEM BUS TARGET 'x' REGION 'y' REGISTER
('x' = 0-13; 'y' = 0-10)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
BASE[21:14]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
BASE[13:6]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
BASE[5:0] PRI —
7:0R/W-0 R/W-0 R/W-0 R/W-0U-0U-0 U-0
SIZE[4: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-10 BASE[21:0]: Region Base Address bits

bit 9 PRI: Region Priority Level bit

1 = Level 2

0 = Level 1

bit 8 Unimplemented: Read as '0'

bit 7-3 SIZE[4:0]: Region Size bits

Permissions for a region are only active is the SIZE is non-zero.

11111 = Region size = 2(SIZE - 1) x 1024 (bytes)

.

00001 = Region size = 2(SIZE - 1) x 1024 (bytes)

00000 = Region is not present

bit 2-0 Unimplemented: Read as '0'

Note 1: Refer to Table 6-5 for the list of available targets and their descriptions.

2: For some target regions, certain bits in this register are read-only with preset values. See Table 6-5 for more information.

REGISTER 6-11: SBTxRDy: SYSTEM BUS TARGET 'x' REGION 'y' READ PERMISSIONS REGISTER ('x' = 0-13; 'y' = 0-10)

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared

bit 31-4 Unimplemented: Read as '0'

bit 3 Group3: Group3 Read Permissions bits

1 = Privilege Group 3 has read permission
0 = Privilege Group 3 does not have read permission

bit 2 Group2: Group2 Read Permissions bits

1 = Privilege Group 2 has read permission
0 = Privilege Group 2 does not have read permission

bit 1 Group1: Group1 Read Permissions bits

1 = Privilege Group 1 has read permission
0 = Privilege Group 1 does not have read permission

bit 0 Group0: Group0 Read Permissions bits

1 = Privilege Group 0 has read permission
0 = Privilege Group 0 does not have read permission

Note 1: Refer to Table 6-5 for the list of available targets and their descriptions.

2: For some target regions, certain bits in this register are read-only with preset values. See Table 6-5 for more information.

REGISTER 6-12: SBTxWRy: SYSTEM BUS TARGET 'x' REGION 'y' WRITE PERMISSIONS REGISTER ('x' = 0-13; 'y' = 0-10)

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared

bit 31-4 Unimplemented: Read as '0'

bit 3 Group3: Group 3 Write Permissions bits

1 = Privilege Group 3 has write permission
0 = Privilege Group 3 does not have write permission

bit 2 Group2: Group 2 Write Permissions bits

1 = Privilege Group 2 has write permission
0 = Privilege Group 2 does not have write permission

bit 1 Group1: Group 1 Write Permissions bits

1 = Privilege Group 1 has write permission
0 = Privilege Group 1 does not have write permission

bit 0 Group0: Group 0 Write Permissions bits

1 = Privilege Group 0 has write permission
0 = Privilege Group 0 does not have write permission

Note 1: Refer to Table 6-5 for the list of available targets and their descriptions.

2: For some target regions, certain bits in this register are read-only with preset values. See Table 6-5 for more information.

7.0 RESETS

Note: This data sheet summarizes the features of the PIC32MZ1025W104 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 is available from the Microchip website (www.microchip.com/PIC32).

The Reset module combines all Reset sources and controls the device host Reset signal, SYSRST.

The device Reset sources are as follows:

• Power-on Reset (POR)
• Master Clear Reset (MCLR)
- Software Reset (SWR)
- Watchdog Timer Reset (WDTR)
• Brown-out Reset (BOR)
- Configuration Mismatch Reset (CMR)
- Deadman Timer Reset (DMTR)
• Zero-power BOR (ZPBOR)

A simplified block diagram of the Reset module is illustrated in the figure below.

FIGURE 7-1: SYSTEM RESET BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - RESETS - 1

flowchart
graph TD
    A["MCLR"] --> B["Amplifier"]
    B --> C["Glitch Filter"]
    C --> D["MCLR"]
    E["Sleep or Idle"] --> F["WDT Time-out"]
    E --> G["DMT Time-out"]
    F --> H["NMI Time-out"]
    G --> H
    H --> I["AND"]
    I --> J["DMTR/WDTR"]
    K["Voltage Regulator Enabled"] --> L["Power-up Timer"]
    L --> M["AND"]
    M --> N["POR"]
    O["VDD"] --> P["VDD Rise Detect"]
    P --> Q["Brown-out Reset"]
    Q --> R["BOR"]
    R --> S["SYSRST"]
    T["Configuration Mismatch Reset"] --> U["CMR"]
    V["Software Reset"] --> W["SWR"]

7.1 Reset Control Registers

TABLE 7-1: RESETS REGISTER MAP

Virtual Address (BF80_#)Register NameBit RangeBitsAll Resets
31/15 304/14 29/13 233/12 27/1126/10 25/924/8 23/7 22/6 21/5 20/419/3 18/217/1 16/0
1260RCON31:16PORIO PCRCOREBCFGERRBCFGFAILNVMLTANVMEOLVBPORVBAT0000
15:0DPSLPCMREXTRSWRDMTOWDTOSLEEPIDLEBORPOR0000
1270RSWRST31:160000
15:0SWRST0000
1280RNMON31:16DMTOWDTRSWNMIGNMILVDCFWDTS0000
15:0NMICNT[15:0]0000

Legend: x = unknown value on Reset; — = unimplemented, read as 'C'. Reset values are shown in hexadecimal.
Note 1: All registers have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0×4, 0×8 and 0×C, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 7-1: RCON: RESET CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/HS-0 R/W/HS-0 U-0 U-0 R/W-0, HS R/W-0, HS R/W/HS-0 R/W/HS-0
PORIO^(1) PORCORE^(1) — — BCFGERR BCFGFAIL NVMLTA NVMEOL
23:16U-0U-0U-0U-0U-0U-0R/W-0, HSR/W-0, HS
VBPORVBAT
15:8U-0U-0U-0U-0U-0R/W-0, HSR/W-0, HSU-0
DPSLP^(1) CMR
7:0R/W-0, HSR/W-0, HSR/W-0, HSR/W-0, HSR/W-0, HSR/W-0, HSR/W-1, HSR/W-1, HS
EXTRSWRDMTOWDTOSLEEPIDLE BOR^(1) POR^(1)
Legend:HS = Hardware SetHC = Hardware Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31 PORIO: IO Voltage POR Flag bit ^(1)

1 = Power-up Reset occurs due to IO voltage

0 = Power-up Reset does not occur due to IO voltage

Set by hardware at detection of an IO POR event.

Note: User may write this bit to '1'. Does not cause a POR_IO.

bit 30 PORCORE: Core Voltage POR Flag bit ^(1)

1 = Power-up Reset occurs due to core voltage

0 = Power-up Reset does not occur due to core voltage

Set by hardware at detection of a core POR event.

Note: User may write this bit to '1'. Does not cause a POR_CORE.

bit 29-28 Unimplemented: Read as '0'

bit 27 BCFGERR: BCFG Error Flag bit

1 = BCFG error occurs

0 = BCFG error does not occur

A primary BCFG value had an error but the secondary BCFG value was valid and used.

bit 26 BCFGFAIL: BCFG Failure Flag bit

1 = BCFG failure occurs

0 = BCFG failure does not occur

bit 25 NVMLTA: NVM Life Time Alert Flag bit

1 = NVM LTA error occurs

0 = NVM LTA error does not occur

NVM Life Time Alert - due to charge leakage the NVM is nearing End of Life (EOL).

bit 24 NVMEOL: NVM EOL Flag bit

1 = NVM EOL failure occurs

0 = NVM EOL failure does not occur

NVM EOL - may not be visible since the part does not come out of Reset if the bit is asserted.

bit 23-18 Unimplemented: Read as '0'

bit 17 VBPOR: VBPOR Mode Flag bit

1 = VBAT domain POR occurs

0 = VBAT domain POR does not occur

Note: User may write this bit to '1'. Does not cause a VBPOR event.

bit 16 VBAT: VBAT Mode Flag bit

1 = POR exit from VBAT occurs. A true POR must be established with the valid VBAT voltage level on the VBAT pin.

0 = POR exit from VBAT does not occur

Note: User may write this bit to '1'. Does not cause a VBAT event.

bit 15-11 Unimplemented: Read as '0'

REGISTER 7-1: RCON: RESET CONTROL REGISTER (CONTINUED)

bit 10 DPSLP: Deep Sleep Mode Flag bit (1)

1 = Deep Sleep mode occurs

0 = Deep Sleep mode does not occur

Set by hardware at time of entry into Deep Sleep mode.

Note: User may write this bit to '1'. Does not cause a DPSLP event.

bit 9 CMR: Configuration Mismatch Reset Flag bit

1 = Configuration mismatch Reset event occurs

0 = Configuration mismatch Reset event does not occur

Note: User may write this bit to '1'. Does not cause a mismatch Reset.

bit 8 Unimplemented: Read as '0'

bit 7 EXTR: External Reset (MCLR) Pin Flag bit

1 = MCLR occurs

0 = MCLR does not occur

Note: User may write this bit to '1'. Does not cause a MCLR.

bit 6 SWR: Software Reset Flag bit

1 = SWR is executed

0 = SWR is not executed

Note: User may write this bit to '1'. Does not cause SWR.

bit 5 DMTO: Deadman Timer Time-Out Flag bit

1 = DMT time-out occurs and causes a Reset

0 = DMT time-out does not occur

Note: User may write this bit to '1'. Does not cause DMT Reset.

bit 4 WDTO: Watchdog Timer Time-Out Flag bit

1 = WDT time-out occurs and causes a Reset

0 = WDT time-out does not occur

bit 3 SLEEP: Wake from Sleep Flag bit

1 = Device is in Sleep mode

0 = Device is not in Sleep mode

Note: User may write this bit to '1'. Does not invoke Sleep mode.

bit 2 IDLE: Wake from Idle Flag bit

1 = Device in Idle mode

0 = Device in not in Idle mode

Note: User may write this bit to '1'. Does not invoke Idle mode.

bit 1 BOR: Brown-out Reset Flag bit (1)

1 = Brown-out Reset occurs

0 = Brown-out Reset does not occur

Set by hardware at detection of a BOR event.

Note: User may write this bit to '1'. Does not cause a BOR.

bit 0 POR: Power-On Reset Flag bit (1)

1 = Power-up Reset occurs

0 = Power-up Reset does not occur

Set by hardware at detection of a POR event.

Note: User may write this bit to '1'. Does not cause a POR.

Note 1: User software must clear this bit to view the next detection.

REGISTER 7-2: RSWRST: SOFTWARE RESET REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
7:0U-0 U-0U-0 U-0 U-0 U-0U-0 W-0, HC
SWRST ^(1,2)
Legend:HC = Hardware Cleared
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-1 Unimplemented: Read as '0'

bit 0 SWRST: Software Reset Trigger bit ^(1)

1 = Enable SWR event

0 = No effect

Note 1: The system unlock sequence must be performed before the SWRST bit can be written. Refer to Oscillators with Enhanced PLL in the "PIC32 Family Reference Manual" for details. Once this bit is set, any read of the RSWRST register triggers a Reset.

REGISTER 7-3: RNMICON: NON-MASKABLE INTERRUPT (NMI) CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0R/W-0 R/W-0
— — —— — —DMTOWDT
23:16R/W-0U-0 U-0U-0R/W-0U-0 R/W-0R/W-0
SWNMIGNMILVDCFWDTS
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NMICNT[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
NMICNT[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 x = Bit is unknown

bit 31-26 Unimplemented: Read as '0'

bit 25 DMTO: Deadman Timer Time-Out Flag bit

This causes a Reset when NMICNT expires.

1 = DMT time-out occurs and causes a NMI

0 = DMT time-out does not occur

Note: User may write this bit to '1'. Does cause a user initiated DMT NMI event and NMICNT start.

bit 24 WDTR: Watchdog Timer Time-Out in Run Flag bit

This may cause a Reset if NMICNT expires

1 = WDT time-out occurs and causes a NMI

0 = WDT time-out does not occur

Note: User may write this bit to '1'. Does cause a user initiated WDT NMI event and NMICNT start.

bit 23 SWNMI: Software NMI Trigger bit

1 = Writing a '1' to this bit causes an NMI to be generated

0 = Writing a '0' to this bit does not have any effect

bit 22-20 Unimplemented: Read as '0'

bit 19 GNMI: External/Generic NMI Event bit

1 = Generic NMI event is detected and causes an NMI

0 = Generic NMI event is not detected

Note: User may write this bit to '1'. Does cause a user initiated External/Generic NMI event.

bit 18 LVD: Low-voltage Detect Event bit

1 = LVD detects a Low-voltage condition and causes an NMI

0 = LVD does not detect a Low-voltage condition

Note: User may write this bit to '1'. Does cause a user initiated LVD NMI event.

bit 17 CF: Clock Fail Detect bit (read/clearable by application)

1 = FSCM detects clock failure and causes an NMI

0 = FSCM does not detect clock failure

Note 1: Writing a '1' to the CF bit causes a user initiated clock failure NMI event, but does not actually cause a clock switch.

2: Reset when a valid clock switching sequence is initiated by the clock switch state machine set when clock fail detected.

Note: The system unlock sequence must be performed before the SWRST bit can be written. Refer to Oscillators with Enhanced PLL in the "PIC32 Family Reference Manual" for details.

bit 16 WDTS: WDTS: Watch-Dog Timer Time-Out in Sleep Flag bit

1 = WDT time-out occurs during Sleep mode and causes a wake-up from sleep

0 = WDT time-out does not occur during Sleep mode

Note: User may write this bit to '1'. Does cause a user initiated WDT NMI event.

REGISTER 7-3: RNMICON: NON-MASKABLE INTERRUPT (NMI) CONTROL REGISTER (CONTINUED)

bit 15-0 NMICNT[15:0]: NMI Reset Counter bit

This bit field specifies the reload value used by the NMI Reset counter.

1111111111111111-0000000000000001 = Number of SYSCLK cycles before a device Reset occurs ^(2) .

If the NMI event is cleared before the counter reached zero, then device Reset is not asserted.

00000000000000000 = No delay between NMI assertion and device Reset event

Note 1: The system unlock sequence must be done before this register can be written.

2: When a WDT NMI event (when not in Sleep mode) or a DMT NMI event is triggered, the NMICNT starts decrementing. When NMICNT reaches zero, the device is Reset. This NMI Reset counter is only applicable to these two specific NMI events.

Note: The system unlock sequence must be performed before the SWRST bit can be written. Refer to Oscillators with Enhanced PLL in the "PIC32 Family Reference Manual" for details.

8.0 CPU EXCEPTIONS AND INTERRUPT CONTROLLER

Note: This data sheet summarizes the features of the PIC32MZ1025W104 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. "Interrupts" (DS60001108) and Section 50. "CPU for Devices with MIPS32® microAptiv™ and M-Class Cores" (DS60001192) of the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The PIC32MZ1025W104 device generates interrupt requests in response to interrupt events from peripheral modules. The Interrupt Controller module exists outside of the CPU and prioritizes the interrupt events before presenting them to the CPU.

The CPU handles interrupt events as part of the exception handling mechanism, which is described in Section 8.1 "CPU Exceptions".

The Interrupt Controller module includes the following features:

  • Up to 126 interrupt sources
  • Seven user selectable priority levels with four sub-priority levels within a priority level
  • Fixed priority within a specified user sub-priority level
  • Unique interrupt offset for each source
  • Single vector mode with interrupt number status "registerfwifi"
  • Software can generate any peripheral interrupt
  • Seven shadow register sets that can be used for any priority level, eliminating software context switch and reducing interrupt latency
  • Five external interrupts with edge polarity control

The figure below shows the block diagram for the Interrupt Controller and CPU exceptions.

FIGURE 8-1: CPU EXCEPTIONS AND INTERRUPT CONTROLLER MODULE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - CPU EXCEPTIONS AND INTERRUPT CONTROLLER - 1

flowchart
graph LR
    A["Interrupt Requests"] --> B["Interrupt Controller"]
    C["SYSCLK"] --> B
    B --> D["Vector Number and Offset"]
    B --> E["Priority Level"]
    B --> F["Shadow Set Number"]
    D --> G["CPU Core (Exception Handling)"]
    E --> G
    F --> G

8.1 CPU Exceptions

CPU coprocessor 0 contains the logic for identifying and managing exceptions. Exceptions can be caused by a variety of sources, including boundary cases in data, external events or program errors. The table below lists the exception types in order of priority.

TABLE 8-1: MIPS32 ® M-CLASS MICROPROCESSOR CORE EXCEPTION TYPES

Exception Type (In Order of Priority)Description Branches toStatus Bits SetDebug Bits SetEXCCODEXC32 Function Name
Highest Priority
ResetAssertion MCLR or a POR.0xBFC0_0000BEV, ERL_on_reset
Soft Reset Assertion of a software Reset.0xBFC0_0000 BEV, SR, ERLSR, ERL_on_reset
DSSEJTAG debug single step.0xBFC0_0480DSS
DINTEJTAG debug interrupt. Caused by the assertion of the external EJ_DINT input or by setting the EjtagBrk bit in the ECR register.0xBFC0_0480DINT
NMIAssertion of NMI signal.0xBFC0_0000BEV, NMI, ERL_nmi_handler
InterruptAssertion of unmasked hardware or software interrupt signal.See Table 8-2.IPL[2:0]0x00See Table 8-2.
DIBEJTAG debug hardware instruction break matched.0xBFC0_0480DIB
AdELFetch address alignment error. Fetch reference to protected address.0xBFC0_0380EXL — 0x04general exception handler
IBEInstruction fetch bus error.0xBFC0_0380EXL0x06general exception handler
Execute ExceptionAn instruction-based exception occurred: Integer overflow, trap, system call, breakpoint, floating point, or DSP ASE state disabled exception.0xBFC0_0380EXL — 0x080x0Cgeneral exception handler
TrExecution of a trap (when trap condition is true).0xBFC0_0380EXL0x0Dgeneral exception handler
DDBL/DDBSEJTAG Data Address Break (address only) or EJTAG data value break on store (address + value).0xBFC0_0480DBL or DDBS
AdELLoad address alignment error. User mode load reference to kernel address.0xBFC0_0380EXL — 0x04general exception handler
AdESStore address alignment error. User mode store to kernel address.0xBFC0_0380EXL — 0x05general exception handler
Exception Type (In Order of Priority)DescriptionBranches toStatus Bits SetDebug Bits SetEXCCODEXC32 Function Name
DBE Load or store bus error. 0xBFC0_0380 EXL — 0x07_general_exception_han-dler
DDBL EJTAG data hardware breakpoint matched in load data compare.0xBFC0_0480 — DDBL — —
CBrk EJTAG complex breakpoint. 0xBFC0_0480 — DIBIMPR,DDBLIMPR and/or DDBSIMPR
Lowest Priority

8.2 Interrupts

The PIC32MZ1025W104 uses variable offsets for vector spacing. This allows the interrupt vector spacing to be configured according to application needs. A unique interrupt vector offset can be set for each vector using its associated OFFx register.

For details on the variable offset feature, refer to 8.5.2 "Variable Offset" in Section 8. "Interrupt Controller" (DS60001108) of the "PIC32 Family Reference Manual".

The table below provides the interrupt IRQ, vector and bit location information.

TABLE 8-2: INTERRUPT IRQ, VECTOR AND BIT LOCATION

Interrupt Source(1)XC32 Vector Name IRQ # Vector #Interrupt Bit LocationPersistent Interrupt
Flag Enable Priority Sub-priority
Highest Natural Order Priority
Core Timer Interrupt_CORE_TIMER_VECTOR0OFF000[17:1]IFS0[0]IEC0[0]IPC0[4:2]IPC0[1:0]No
Core Software Interrupt 0_CORE_SOFTWARE_0_VECTOR1OFF001[17:1]IFS0[1]IEC0[1]IPC0[12:10]IPC0[9:8]No
Core Software Interrupt 1_CORE_SOFTWARE_1_VECTOR2OFF002[17:1]IFS0[2]IEC0[2]IPC0[20:18]IPC0[17:16]No
External Interrupt 0_EXTERNAL_0_VECTOR3OFF003[17:1]IFS0[3]IEC0[3]IPC0[28:26]IPC0[25:24]No
Timer1_TIMER_1_VECTOR4OFF004[17:1]IFS0[4]IEC0[4]IPC1[4:2]IPC1[1:0]No
Input Capture 1 Error_INPUT_CAPTURE_1_ERROR_VECTOR5OFF005[17:1]IFS0[5]IEC0[5]IPC1[12:10]IPC1[9:8]Yes
Input Capture 1_INPUT_CAPTURE_1_VECTOR6OFF006[17:1]IFS0[6]IEC0[6]IPC1[20:18]IPC1[17:16]Yes
Output Compare 1_OUTPUT_COMPARE_1_VECTOR7OFF007[17:1]IFS0[7]IEC0[7]IPC1[28:26]IPC1[25:24]No
External Interrupt 1_EXTERNAL_1_VECTOR8OFF008[17:1]IFS0[8]IEC0[8]IPC2[4:2]IPC2[1:0]No
Timer2_TIMER_2_VECTOR9OFF009[17:1]IFS0[9]IEC0[9]IPC2[12:10]IPC2[9:8]No
Input Capture 2 Error_INPUT_CAPTURE_2_ERROR_VECTOR10OFF010[17:1]IFS0[10]IEC0[10]IPC2[20:18]IPC2[17:16]Yes
Input Capture 2_INPUT_CAPTURE_2_VECTOR11OFF011[17:1]IFS0[11]IEC0[11]IPC2[28:26]IPC2[25:24]Yes
Output Compare 2_OUTPUT_COMPARE_2_VECTOR12OFF012[17:1]IFS0[12]IEC0[12]IPC3[4:2]IPC3[1:0]No
External Interrupt 2_EXTERNAL_2_VECTOR13OFF013[17:1]IFS0[13]IEC0[13]IPC3[12:10]IPC3[9:8]No
Timer3_TIMER_3_VECTOR14OFF014[17:1]IFS0[14]IEC0[14]IPC3[20:18]IPC3[17:16]No
Input Capture 3 Error_INPUT_CAPTURE_3_ERROR_VECTOR15OFF015[17:1]IFS0[15]IEC0[15]IPC3[28:26]IPC3[25:24]Yes
Input Capture 3INPUT_CAPTURE_3_VECTOR16OFF016[17:1]IFS0[16]IEC0[16]IPC4[4:2]IPC4[1:0]Yes
Output Compare 3_OUTPUT_COMPARE_3_VECTOR17OFF017[17:1]IFS0[17]IEC0[17]IPC4[12:10]IPC4[9:8]No
External Interrupt 3_EXTERNAL_3_VECTOR18OFF018[17:1]IFS0[18]IEC0[18]IPC4[20:18]IPC4[17:16]No
Timer4_TIMER_4_VECTOR19OFF019[17:1]IFS0[19]IEC0[19]IPC4[28:26]IPC4[25:24]No
Input Capture 4 ErrorINPUT_CAPTURE_4_ERROR_VECTOR20OFF020[17:1]IFS0[20]IEC0[20]IPC5[4:2]IPC5[1:0]Yes
Input Capture 4_INPUT_CAPTURE_4_VECTOR21OFF021[17:1]IFS0[21]IEC0[21]IPC5[12:10]IPC5[9:8]Yes
Output Compare 4_OUTPUT_COMPARE_4_VECTOR22OFF022[17:1]IFS0[22]IEC0[22]IPC5[20:18]IPC5[17:16]No
External Interrupt 4_EXTERNAL_4_VECTOR23OFF023[17:1]IFS0[23]IEC0[23]IPC5[28:26]IPC5[25:24]No
Timer5_TIMER_5_VECTOR24OFF024[17:1]IFS0[24]IEC0[24]IPC6[4:2]IPC6[1:0]No
FC Programming EventFLASH_CONTROL_VECTOR30OFF030[17:1]IFS0[30]IEC0[30]IPC7[20:18]IPC7[17:16]No
Interrupt Source(1)XC32 Vector NameIRQ #Vector #Interrupt Bit LocationPersistent Interrupt
FlagEnablePrioritySub-priority
Prefetch module Event_PREFETCHVECTOR 31 OFF031[17:1] IFS0[31] IEC0[31] IPC7[28:26] IPC7[25:24] No
PFW CRC Event_PFW_CRC_VECTOR32OFF032[17:1]IFS1[0]IEC1[0]IPC8[4:2]IPC8[1:0]No
Real Time Clock_RTCC_VECTOR33OFF033[17:1]IFS1[1]IEC1[1]IPC8[12:10]IPC8[9:8]No
Combined Interrupt_USB_VECTOR34OFF034[17:1]IFS1[2]IEC1[2]IPC8[20:18]IPC8[17:16]Yes
SPI 1 Fault_SPI1_FAULT_VECTOR35OFF035[17:1]IFS1[3]IEC1[3]IPC8[28:26]IPC8[25:24]Yes
SPI 1 Receive Done_SPI1_RX_VECTOR36OFF036[17:1]IFS1[4]IEC1[4]IPC9[4:2]IPC9[1:0]Yes
SPI 1 Transfer Done_SPI1_TX_VECTOR37OFF037[17:1]IFS1[5]IEC1[5]IPC9[12:10]IPC9[9:8]Yes
UART1 Fault_UART1_FAULT_VECTOR38OFF038[17:1]IFS1[6]IEC1[6]IPC9[20:18]IPC9[17:16]Yes
UART1 Receive Done_UART1_RX_VECTOR39OFF039[17:1]IFS1[7]IEC1[7]IPC9[28:26]IPC9[25:24]Yes
UART1 Transfer Done_UART1_TX_VECTOR40OFF040[17:1]IFS1[8]IEC1[8]IPC10[4:2]IPC10[1:0]Yes
I2C 1 Bus Collision Event_I2C1_BUS_VECTOR41OFF041[17:1]IFS1[9]IEC1[9]IPC10[12:10]IPC10[9:8]Yes
I2C 1 Slave Event_I2C1_SLAVE_VECTOR42OFF042[17:1]IFS1[10]IEC1[10]IPC10[20:18]IPC10[17:16]Yes
I2C 1 Master Event_I2C1_MASTER_VECTOR43OFF043[17:1]IFS1[11]IEC1[11]IPC10[28:26]IPC10[25:24]Yes
PortA Input Change Interrupt_CHANGE_NOTICE_A_VECTOR44OFF044[17:1]IFS1[12]IEC1[12]IPC11[4:2]IPC11[1:0]Yes
PortB Input Change Interrupt_CHANGE_NOTICE_B_VECTOR45OFF045[17:1]IFS1[13]IEC1[13]IPC11[12:10]IPC11[9:8]Yes
PortC Input Change Interrupt_CHANGE_NOTICE_C_VECTOR46OFF046[17:1]IFS1[14]IEC1[14]IPC11[20:18]IPC11[17:16]Yes
PortK Input Change Interrupt_CHANGE_NOTICE_K_VECTOR47OFF047[17:1]IFS1[15]IEC1[15]IPC11[28:26]IPC11[25:24]Yes
SPI 2 Fault_SPI2_FAULT_VECTOR53OFF053[17:1]IFS1[21]IEC1[21]IPC13[12:10]IPC13[9:8]Yes
SPI 2 Receive Done_SPI2_RX_VECTOR54OFF054[17:1]IFS1[22]IEC1[22]IPC13[20:18]IPC13[17:16]Yes
SPI 2 Transfer Done_SPI2_TX_VECTOR55OFF055[17:1]IFS1[23]IEC1[23]IPC13[28:26]IPC13[25:24]Yes
UART 2 Error_UART2_FAULT_VECTOR56OFF056[17:1]IFS1[24]IEC1[24]IPC14[4:2]IPC14[1:0]Yes
UART 2 Receiver_UART2_RX_VECTOR57OFF057[17:1]IFS1[25]IEC1[25]IPC14[12:10]IPC14[9:8]Yes
UART 2 Transmitter_UART2_TX_VECTOR58OFF058[17:1]IFS1[26]IEC1[26]IPC14[20:18]IPC14[17:16]Yes
I2C 2 Bus Collision Event_I2C2_BUS_VECTOR59OFF059[17:1]IFS1[27]IEC1[27]IPC14[28:26]IPC14[25:24]Yes
I2C 2 Slave Event_I2C2_SLAVE_VECTOR60OFF060[17:1]IFS1[28]IEC1[28]IPC15[4:2]IPC15[1:0]Yes
I2C 2 Master Event_I2C2_MASTER_VECTOR61OFF061[17:1]IFS1[29]IEC1[29]IPC15[12:10]IPC15[9:8]Yes
UART 3 Error_UART3_FAULT_VECTOR62OFF062[17:1]IFS1[30]IEC1[30]IPC15[20:18]IPC15[17:16]Yes
UART 3 Receiver_UART3_RX_VECTOR63OFF063[17:1]IFS1[31]IEC1[31]IPC15[28:26]IPC15[25:24]No
UART 3 Transmitter_UART3_TX_VECTOR64OFF064[17:1]IFS2[0]IEC2[0]IPC16[4:2]IPC16[1:0]No
DMA Channel 0_DMA0_VECTOR68OFF068[17:1]IFS2[4]IEC2[4]IPC17[4:2]IPC17[1:0]No
DMA Channel 1_DMA1_VECTOR69OFF069[17:1]IFS2[5]IEC2[5]IPC17[12:10]IPC17[9:8]No
DMA Channel 2_DMA2_VECTOR70OFF070[17:1]IFS2[6]IEC2[6]IPC17[20:18]IPC17[17:16]No
DMA Channel 3_DMA3_VECTOR 71OFF071[17:1] IFS2[7] IEC2[7] IPC17[28:26]IPC17[25:24] No
DMA Channel 4_DMA4_VECTOR 72OFF072[17:1] IFS2[8] IEC2[8] IPC18[4:2] IPC18[1:0] No
DMA Channel 5_DMA5_VECTOR 73OFF073[17:1] IFS2[9] IEC2[9] IPC18[12:10] IPC18[9:8] No
DMA Channel 6_DMA6_VECTOR 74OFF074[17:1] IFS2[10] IEC2[10] IPC18[20:18] IPC18[17:16] No
DMA Channel 7_DMA7_VECTOR 75OFF075[17:1] IFS2[11] IEC2[11] IPC18[28:26] IPC18[25:24] No
Timer 6_TIMER_6_VECTOR76OFF076[17:1]IFS2[12]IEC2[12]IPC19[4:2]IPC19[1:0]No
Timer 7_TIMER_7_VECTOR80OFF080[17:1]IFS2[16]IEC2[16]IPC20[4:2]IPC20[1:0]No
Wi-Fi SMC Event_RFSMC_VECTOR83OFF083[17:1]IFS2[19]IEC2[19]IPC20[28:26]IPC20[25:24]Yes
Wi-Fi MAC Event_RFMAC_VECTOR84OFF084[17:1]IFS2[20]IEC2[20]IPC21[4:2]IPC21[1:0]Yes
Cycle Time Register Event_CTR1_EVENT_VECTOR85OFF085[17:1]IFS2[21]IEC2[21]IPC21[12:10]IPC21[9:8]No
Wi-Fi Timer 0 Event_RFTM0_VECTOR86OFF086[17:1]IFS2[22]IEC2[22]IPC21[20:18]IPC21[17:16]Yes
Wi-Fi Timer 1 Event_RFTM1_VECTOR87OFF087[17:1]IFS2[23]IEC2[23]IPC21[28:26]IPC21[25:24]Yes
Wi-Fi Timer 2 Event_RFTM2_VECTOR88OFF088[17:1]IFS2[24]IEC2[24]IPC22[4:2]IPC22[1:0]Yes
Wi-Fi Timer 3 Event_RFTM3_VECTOR89OFF089[17:1]IFS2[25]IEC2[25]IPC22[12:10]IPC22[9:8]Yes
Cycle Time Reg Trig. Out Ev._CTR1_TRG_VECTOR90OFF090[17:1]IFS2[26]IEC2[26]IPC22[20:18]IPC22[17:16]No
Wi-Fi WCOE Event_RFWCOE_VECTOR91OFF091[17:1]IFS2[27]IEC2[27]IPC22[28:26]IPC22[25:24]Yes
ADC global_ADC_VECTOR92OFF092[17:1]IFS2[28]IEC2[28]IPC23[4:2]IPC23[1:0]No
ADC Digital Comparator 1_ADC_DC1_VECTOR94OFF094[17:1]IFS2[30]IEC2[30]IPC23[20:18]IPC23[17:16]No
ADC Digital Comparator 2_ADC_DC2_VECTOR95OFF095[17:1]IFS2[31]IEC2[31]IPC23[28:26]IPC23[25:24]No
ADC Digital Filter 1_ADC_DF1_VECTOR96OFF096[17:1]IFS3[0]IEC3[0]IPC24[4:2]IPC24[1:0]No
ADC Digital Filter 2_ADC_DF2_VECTOR97OFF097[17:1]IFS3[1]IEC3[1]IPC24[12:10]IPC24[9:8]No
ADC Fault Interrupt_ADC_FAULT_VECTOR100OFF100[17:1]IFS3[4]IEC3[4]IPC25[4:2]IPC25[1:0]No
ADC EO Scan_ADC_EOS_VECTOR101OFF101[17:1]IFS3[5]IEC3[5]IPC25[12:10]IPC25[9:8]No
ADC Analog Ready_ADCARDY_VECTOR102OFF102[17:1]IFS3[6]IEC3[6]IPC25[20:18]IPC25[17:16]No
ADC Update Ready after Suspend_ADC_URDY_VECTOR103OFF103[17:1]IFS3[7]IEC3[7]IPC25[28:26]IPC25[25:24]No
ADC 1st Class Buffer Transfer_ADC_DMA_VECTOR104OFF104[17:1]IFS3[8]IEC3[8]IPC26[4:2]IPC26[1:0]No
ADC A Data #0_ADC_DATA0_VECTOR106OFF106[17:1]IFS3[10]IEC3[10]IPC26[20:18]IPC26[17:16]No
ADC A Data #1_ADC_DATA1_VECTOR107OFF107[17:1]IFS3[11]IEC3[11]IPC26[28:26]IPC26[25:24]No
ADC A Data #2_ADC_DATA2_VECTOR108OFF108[17:1]IFS3[12]IEC3[12]IPC27[4:2]IPC27[1:0]No
ADC A Data #3_ADC_DATA3_VECTOR109OFF109[17:1]IFS3[13]IEC3[13]IPC27[12:10]IPC27[9:8]No
ADC A Data #4_ADC_DATA4_VECTOR110OFF110[17:1]IFS3[14]IEC3[14]IPC27[20:18]IPC27[17:16]No
ADC A Data #5_ADC_DATA5_VECTOR111OFF111[17:1]IFS3[15]IEC3[15]IPC27[28:26]IPC27[25:24]No
ADC A Data #6_ADC_DATA6_VECTORTOR 112 OFF112[17:1] IFS3[16] IEC3[16] IPC28[4:2]IPC28[1:0] No
ADC A Data #7_ADC_DATA7_VECTOR113OFF113[17:1]IFS3[17]IEC3[17]IPC28[12:10]IPC28[9:8]No
ADC A Data #8_ADC_DATA8_VECTOR114OFF114[17:1]IFS3[18]IEC3[18]IPC28[20:18]IPC28[17:16]No
ADC A Data #9_ADC_DATA9_VECTOR115OFF115[17:1]IFS3[19]IEC3[19]IPC28[28:26]IPC28[25:24]No
ADC A Data #10_ADC_DATA10_VECTOR116 OFF116[17:1] IFS3[20] IEC3[20] IPC29[4:2]IPC29[1:0] No
ADC A Data #11_ADC_DATA11_VECTOR117 OFF117[17:1] IFS3[21] IEC3[21] IPC29[12:10]IPC29[9:8] No
ADC A Data #12_ADC_DATA12_VECTOR118OFF118[17:1]IFS3[22]IEC3[22]IPC29[20:18]IPC29[17:16]No
ADC A Data #13_ADC_DATA13_VECTOR119OFF119[17:1]IFS3[23]IEC3[23]IPC29[28:26]IPC29[25:24]No
ADC A Data #14_ADC_DATA14_VECTOR120 OFF120[17:1] IFS3[24] IEC3[24] IPC30[4:2]IPC30[1:0] No
ADC A Data #15_ADC_DATA15_VECTOR121 OFF121[17:1] IFS3[25] IEC3[25] IPC30[12:10]IPC30[9:8] No
ADC A Data #16_ADC_DATA16_VECTOR122OFF122[17:1]IFS3[26]IEC3[26]IPC30[20:18]IPC30[17:16]No
ADC A Data #17_ADC_DATA17_VECTOR123OFF123[17:1]IFS3[27]IEC3[27]IPC30[28:26]IPC30[25:24]No
ADC A Data #18_ADC_DATA18_VECTOR124 OFF124[17:1] IFS3[28] IEC3[28] IPC31[4:2]IPC31[1:0] No
ADC A Data #19_ADC_DATA19_VECTOR125 OFF125[17:1] IFS3[29] IEC3[29] IPC31[12:10]IPC31[9:8] No
ADC A Data #20_ADC_DATA20_VECTOR126OFF126[17:1]IFS3[30]IEC3[30]IPC31[20:18]IPC31[17:16]No
ADC A Data #21_ADC_DATA21_VECTOR127OFF127[17:1] IFS3[31] IEC3[31] IPC31[28:26] IPC31[25:24] No
ADC A Data #22_ADC_DATA22_VECTOR128OFF128[17:1]IFS4[0]IEC4[0]IPC32[4:2]IPC32[1:0]No
ADC A Data #23_ADC_DATA23_VECTOR129OFF129[17:1]IFS4[1]IEC4[1]IPC32[12:10]IPC32[9:8]No
CAN Combined Interrupt_CAN1_VECTOR142OFF142[17:1]IFS4[14]IEC4[14]IPC35[20:18]IPC35[17:16]Yes
CAN Combined Interrupt_CAN2_RX_VECTOR143OFF143[17:1]IFS4[15]IEC4[15]IPC35[28:26]IPC35[25:24]Yes
CAN Combined Interrupt_CAN2_TX_VECTOR144OFF144[17:1]IFS4[16]IEC4[16]IPC36[4:2]IPC36[1:0]Yes
CAN Combined Interrupt_CAN2_MISC_VECTOR145OFF145[17:1]IFS4[17]IEC4[17]IPC36[12:10]IPC36[9:8]Yes
SQI Event Completion_SQI1_VECTOR150OFF150[17:1]IFS4[22]IEC4[22]IPC37[20:18]IPC37[17:16]Yes
PTG Step Complete_PTG0_STEP_VECTOR152OFF152[17:1]IFS4[24]IEC4[24]IPC38[4:2]IPC38[1:0]No
PTG Watchdog Timeout_PTG0_WDT_VECTOR153OFF153[17:1]IFS4[25]IEC4[25]IPC38[12:10]IPC38[9:8]No
PTG Int. Trigger 0_PTG0_TRG0_VECTOR154OFF154[17:1]IFS4[26]IEC4[26]IPC38[20:18]IPC38[17:16]No
PTG Int. Trigger 1_PTG0_TRG1_VECTOR155OFF155[17:1]IFS4[27]IEC4[27]IPC38[28:26]IPC38[25:24]No
PTG Int. Trigger 2_PTG0_TRG2_VECTOR156OFF156[17:1]IFS4[28]IEC4[28]IPC39[4:2]IPC39[1:0]No
PTG Int. Trigger 3_PTG0_TRG3_VECTOR157OFF157[17:1]IFS4[29]IEC4[29]IPC39[12:10]IPC39[9:8]No
Core perform. counter event_CORE_PERF_COUNT_VECTOR162OFF162[17:1]IFS5[2]IEC5[2]IPC40[20:18]IPC40[17:16]Yes
Fast Debug Channel Event_CORE_FAST_DEBUG_CHAN_VECTOR163OFF163[17:1]IFS5[3]IEC5[3]IPC40[28:26]IPC40[25:24]Yes
Crypt Engine 1 Event_CRYPTO_VECTOR164OFF164[17:1]IFS5[4]IEC5[4]IPC41[4:2]IPC41[1:0]Yes
Interrupt Source^(1) XC32 Vector NameIRQ #Vector #Interrupt Bit LocationPersistent Interrupt
FlagEnablePriority Sub-priority
Ethernet network eventETHERNET_VECTOR165OFF165[17:1]IFS5[5]IEC5[5]IPC41[12:10]IPC41[9:8]Yes
IRQEnd _CRYPTO1_VECTOR 166OFF166[17:1] IFS5[6] IEC5[6] IPC41[20:18] IPC41[17:16] Yes
IRQErrCRYPTO1_FAULT_VECTOR167OFF167[17:1]IFS5[7]IEC5[7]IPC41[28:26]IPC41[25:24]Yes
CVD Event Interrupt_CVD_EVENT_VECTOR168OFF168[17:1]IFS5[8]IEC5[8]IPC42[4:2]IPC42[1:0]No
Lowest Natural Order Priority

8.3 Interrupt Control Registers

TABLE 8-3: INTERRUPT REGISTER MAP

Virtual Address(BF81_#)Register Name(1)Bit RangeBitsAll Resets
31/15 3014 29/13 28/12 27/11 26/10 25/9 24/8 23/7 22/6 21/5 20/419/3 18/2 17/116/0
0000INTCON31:16NMIKEY[7:0]0000
15:0MVECIPC[2:0]INT4EPINT3EPINT2EPINT1EPINT0EP0000
0010PRISS31:16PRI7SS[3:0]PRI6SS[3:0]PRI5SS[3:0]PRIWSS[3:0]0000
15:0PRI3SS[3:0]PRI2SS[3:0]PRI1SS[3:0]5500000
0020INTSTAT31:160000
15:0SRIPL[2:0]SIRQ[7:0]0000
0030IPTMR31:16IPTMR[31:16]0000
15:0IPTMR[15:0]0020
0040IFS031:16PREIF FOCIFT5IFINT4IFOC4IFIC4IFIC4EIFT4IFINT3IFOC3IFIC3IF0000
15:0IC3EIFT3IFINT2IFOC2IFIC2IFIC2EIFT2IFINT1IFOC1IFIC1IFIC1EIFT1IFINT0IFCS1IFCS0IFCTIF0020
0050IFS131:16U3RXIFU3EIFI2C2MIFI2C2SIFI2C2BIFU2TXIFU2RXIFU2EIFSPI2TXIFSPI2RXIFSPI2EIF0000
15:0CNKIFCNCFCNBIFCNAIFI2C1MIFI2C1SIFI2C1BIFU1TXIFU1RXIFU1EIFSPI1TXIFSPI1RXIFSPI1EIFUSBIFRTCCIFPFWCRCIF0030
0060IFS231:16ADCDC2IFADCDC1IFADCIFRFWCOEIFCTR1TRGIFRFTM3IFRFTM2IFRFTM1IFRFTM0IFCTR1EVIFRFMACIFRFSMCIFT7IF0003
15:0T9IFDMA7IFDMA8IFDMA5IFDMA4IFDMA3IFDMA2IFDMA1IFDMA0IFU3TXIF0003
0070IFS331:16ADCD21IFADCD20IFADCD19IFADCD18IFADCD17IFADCD16IFADCD15IFADCD14IFADCD13IFADCD12IFADCD11IFADCD10IFADCD9IFADCD8IFADCD7IFADCD8IF0003
15:0ADDC5IFADCD4IFADCD3IFADCD2IFADCD1IFADCD0IFADCFCBTIFADCURDYIFADCARDYIFADCDEOSIFADCFLTIFADCDF2IFADCDF1IF0000
0080IFS431:16PTG0TR3IFPTG0TR2IFPTG0TR1IFPTG0TR0IFPTGWDTIFPTGSTEP1IFSQ1IFCAN2IFCAN2TXIF0000
15:0CAN2RXIFCAN1IFADCDD23IFADCDD22IF0000
0090IFS531:160000
15:0CRPT1EIFCRPT1IFETHIFCRPTIFFDCIFMPUPCIF0000
00C0IEC031:16PREIEFCEIET5IEINT4IEOC4IEIC4IEIC4EIET4IEINT3IEOC3IEIC3IE0003
15:0IC3EIET3IEINT2IEOC2IEIC2IEIC2EIET2IEINT1IEOC1IEIC1IEIC1EIET1IEINT0IECS1IECS0IECTIE0000
00D0IEC131:16U3RXIEU3EIEI2C2MIEI2C2SIEI2C2BIEU2TXIEU2RXIEU2EIESPI2TXIESPI2RXIESPI2EIE0000
15:0CNKIECNCECNBIECNAIEI2C1MIEI2C1SIEI2C1BIEU1TXIEU1RXIEU1EIESPI1TXIESPI1RXIESPI1EIEUSBIERTCCIEPFWCRCIE0020
00E0IEC231:16ADCDC2IEADCDC1IEADCIERFWCOEIFCTRTRGIERFTM3IERFTM2IERFTM1IERFTM0IECTREVIERFMACIERFSMCIET7IE0030
15:0T8IEDMA7IEDMA8IEDMA5IEDMA4IEDMA3IEDMA2IEDMA1IEDMA0IEU3TXIE0000
00FDIEC331:16ADCDC21IEADCDC20IEADCDC19IEADCDC18IEADCDC17IEADCDC16IEADCDC15IEADCDC14IEADCDC13IEADCDC12IEADCDC11IEADCDC10IEADCDC9IEADCDC8IEADCDD7IEADCDD8IE0030
15:0ADCDSIEADCDS4IEADCDS3IEADCDS2IEADCDS1IEADCDS0IEADCFCBTIEADCUCRDYIEADCARDYIEADCDEOSIEADCFLTIEADCDCF2IEADCDCF1IE0000
0100IEC431:16PTG0TR3IEPTG0TR2IEPTG0TR1IEPTG0TR0IEPTGWDTIEPTGSTEP1IESQIECAN2IECAN2TXIE0000
15:0CAN2RXIECAN1IEADCDD23IEADCDD22IE0000
0110IEC531:160000
15:0CRPT1EIECRPT1IEETHIECRPTIEFDCIEMPUPCIE0000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See
Section 13.3 "CLR, SET and INV Registers" for more information
2: This bit or register is not available on devices without a CAN module.
3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Virtual Address(BF81_f9)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
0140IPC031:16— — INT0IP[2:0] INT0IS[1:0] — — —CS1IP[2:0] CS1IS[1:0] 00:00
15:0CS0IP[2:0]CS0IS[1:0]CTIP[2:0]CTIS[1:0]00:00
0150IPC131:16OC1IP[2:0]OC1IS[1:0]IC1IP[2:0]IC1IS[1:0]00:00
15:0IC1EP[2:0]IC1EIS[1:0]T1IP[2:0]T1IS[1:0]00:00
0160IPC231:16IC2IP[2:0]IC2IS[1:0]IC2EIP[2:0]IC2EIS[1:0]00:00
15:0T2IP[2:0]T2IS[1:0]INT1IP[2:0]INT1IS[1:0]00:00
0170IPC331:16IC3EIP[2:0]IC3EIS[1:0]T3IP[2:0]T3IS[1:0]00:00
15:0INT2IP[2:0]INT2IS[1:0]OC2IP[2:0]OC2IS[1:0]00:00
0160IPC431:16T4IP[2:0]T4IS[1:0]INT3IP[2:0]INT3IS[1:0]00:00
15:0OC3IP[2:0]OC3IS[1:0]IC3IP[2:0]IC3IS[1:0]00:00
0190IPC531:16INT4IP[2:0]INT4IS[1:0]OC4IP[2:0]OC4IS[1:0]00:00
16:0IC4IP[2:0]IC4IS[1:0]IC4EIP[2:0]IC4EIS[1:0]00:00
01A0IPC631:1600:00
16:0T5IP[2:0]T5IS[1:0]00:00
01B0IPC731:16PREIP[2:0]PREIS[1:0]FCEIP[2:0]FCEIS[1:0]00:00
15:000:00
01C0IPC831:16SP11EIP[2:0]SP11EIS[1:0]USBIP[2:0]USBIS[1:0]00:00
15:0RTCCIP[2:0]RTCCIS[1:0]PFWCRCIP[2:0]PFWCRCIS[1:0]00:00
01D0IPC931:16U1RXIP[2:0]U1RXIS[1:0]U1EIP[2:0]U1EIS[1:0]00:00
15:0SP11TXIP[2:0]SP11TXIS[1:0]SP11RXIP[2:0]SP11RXIS[1:0]00:00
01E0IPC1031:16I2C1MIP[2:0]I2C1MIS[1:0]I2C1SIP[2:0]I2C1SIS[1:0]00:00
15:0I2C1BIP[2:0]I2C1MIS[1:0]U1TXIP[2:0]U1TXIS[1:0]00:00
01F0IPC1131:16CNKIP[2:0]CNKIS[1:0]CNCIP[2:0]CNCIS[1:0]00:00
15:0CNBIP[2:0]CNBIS[1:0]CNAIP[2:0]CNAIS[1:0]00:00
0210IPC1331:16SP12TXIP[2:0]SP12TXIS[1:0]SP12RXIP[2:0]SP12RXIS[1:0]00:00
15:0SP12EIP[2:0]SP12EIS[1:0]00:00
0220IPC1431:16I2C2BIP[2:0]I2C2BIS[1:0]U2TXIP[2:0]U2TXIS[1:0]00:00
16:0U2RXIP[2:0]U2RXIS[1:0]U2EIP[2:0]U2EIS[1:0]00:00
0230IPC1531:16U3RXIP[2:0]U3RXIS[1:0]U3EIP[2:0]U3EIS[1:0]00:00
15:0I2C2MIP[2:0]I2C2MIS[1:0]I2C2SIP[2:0]I2C2SIS[1:0]00:00
0240IPC1631:1600:00
15:0U3TXIP[2:0]U3TXIS[1:0]00:00

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: This bit or register is not available on devices without a CAN module.
3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Virtual Address(BF81_#)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
C250IPC1731:15— —DMA3IP[2:0] DMA3IS[1:0]— —DMA2IP[2:0] DMA2IS[1:0] ****
15:0— —DMA1IP[2:0] DMA1IS[1:0]— —DMA0IP[2:0] DMA0IS[1:0] ****
C260IPC1831:16DMA7IP[2:0]DMA7IS[1:0]DMA6IP[2:0]DMA8IS[1:0]C000
15:0DMA5IP[2:0]DMA5IS[1:0]DMA4IP[2:0]DMA4IS[1:0]C000
C270IPC1931:16C000
15:0T6IP[2:0]T6IS[1:0]C000
C280IPC2031:16RFSMCIP[2:0]RFSMCIS[1:0]C000
15:0T7IP[2:0]T7IS[1:0]C000
C290IPC2131:16RFTM1IP[2:0]RFTM1IS[1:0]RFTM0IP[2:0]RFTM0IS[1:0]C000
15:0CTREVIP[2:0]CTREVIS[1:0]RFMACIP[2:0]RFMACIS[1:0]C000
C2A0IPC2231:16RFWCOEIP[2:0]RFWCOEIS[1:0]CTRTRGIP[2:0]CTRTRGIS[1:0]C000
15:0RFTM3IP[2:0]RFTM3IS[1:0]RFTM2IP[2:0]RFTM2IS[1:0]C000
C2B0IPC2331:16AD1DC2IP[2:0]AD1DC2IS[1:0]AD1DC1IP[2:0]AD1DC1IS[1:0]C000
15:0AD1IF[2:0]AD1IS[1:0]C000
C2C0IPC2431:16C000
15:0AD1DF2IP[2:0]AD1DF2IS[1:0]AD1DF1IP[2:0]AD1DF1IS[1:0]C000
C2D0IPC2531:16AD1RSIP[2:0]AD1RSIS[1:0]AD1ARIP[2:0]AD1ARIS[1:0]C000
15:0AD1EOSIP[2:0]AD1EOSIS[1:0]AD1DFIP[2:0]AD1DFIIS[1:0]C000
C2E0IPC2631:16AD1101IP[2:0]AD1101IS[1:0]AD1100IP[2:0]AD1100IS[1:0]C000
15:0AD1FCIP[2:0]AD1FCIS[1:0]C000
C2F0IPC2731:16AD105IP[2:0]AD105IS[1:0]AD1104IP[2:0]AD1104IS[1:0]C000
15:0AD1103IP[2:0]AD1103IS[1:0]AD1102IP[2:0]AD1102IS[1:0]C000
C300IPC2831:16AD1109IP[2:0]AD1109IS[1:0]AD1108IP[2:0]AD1108IS[1:0]C000
15:0AD1107IP[2:0]AD1107IS[1:0]AD1108IP[2:0]AD1108IS[1:0]C000
C310IPC2931:16AD1113IP[2:0]AD1113IS[1:0]AD1112IP[2:0]AD1112IS[1:0]C000
15:0AD1111IP[2:0]AD1111IS[1:0]AD1110IP[2:0]AD1110IS[1:0]C000
C320IPC3031:16AD1117IP[2:0]AD1117IS[1:0]AD1116IP[2:0]AD1116IS[1:0]C000
15:0AD1115IP[2:0]AD1115IS[1:0]AD1114IP[2:0]AD1114IS[1:0]C000
C330IPC3131:16AD1121IP[2:0]AD1121IS[1:0]AD1120IP[2:0]AD1120IS[1:0]C000
15:0AD1119IP[2:0]AD1119IS[1:0]AD1118IP[2:0]AD1118IS[1:0]C000
C340IPC3231:16C000
15:0AD1123IP[2:0]AD1123IS[1:0]AD1122IP[2:0]AD1122IS[1:0]C000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.

2: This bit or register is not available on devices without a CAN module. 3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: This bit or register is not available on devices without a CAN module.
3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.

2: This bit or register is not available on devices without a CAN module. 3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.

2: This bit or register is not available on devices without a CAN module.

3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Virtual Address(BF81_#)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
D5FB OFF04631:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D5FC OFF04731:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D614 OFF05331:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D618 OFF05431:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D61C OFF05531:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D620 OFF05631:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D624 OFF05731:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D628 OFF05831:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D62C OFF05931:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D630 OFF06031:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D634 OFF06131:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D638 OFF06231:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D63C OFF06331:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D640 OFF06431:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D650 OFF06831:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D654 OFF06931:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D658 OFF07031:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000
D65C OFF07131:16————————— VOFF[7:16] (C00)
15:0 VOFF[15:1]— 2000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0xB and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: This bit or register is not available on devices without a CAN module.
3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Virtual Address (BF81_9)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
D650OFF07231:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D664OFF07331:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D658OFF07431:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D65COFF07531:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D670OFF07631:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D650OFF08031:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D65COFF08331:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D690OFF08431:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D694OFF08531:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D698OFF08631:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D65COFF08731:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D6A0OFF08831:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D6A4OFF08931:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D6A8OFF09031:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D6ACOFF09131:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D6B0OFF09231:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D6B8OFF09431:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000
D6BCOFF09531:15—————————VOFF[7:16] (C00)
15:0 VOFF[15:1]— 3000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: This bit or register is not available on devices without a CAN module.
3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Virtual Address(BF81_#)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
D6C0OFF39631:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6C4OFF39731:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6D0OFF10031:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6D4OFF10131:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6DBOFF10231:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6DCOFF10331:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6E0OFF10431:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6E8OFF10631:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6ECOFF10731:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6F0OFF10831:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6F4OFF10931:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6F8OFF11031:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D6FCOFF11131:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D700OFF11231:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D704OFF11331:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D708OFF11431:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D70COFF11531:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000
D710OFF11631:18—————————VOFF[7:18] (COO)
15:0 VOFF[15:1]— 3000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: This bit or register is not available on devices without a CAN module.
3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: This bit or register is not available on devices without a CAN module.
3: This bit or register is not available on devices without a Crypto module.

TABLE 8-3: INTERRUPT REGISTER MAP (CONTINUED)

Virtual Address(BF81_#)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
07A0OFF 15231:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07A4OFF 15331:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07A8OFF 15431:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07ACOFF 15531:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07B0OFF 15631:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07B4OFF 15731:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07CBOFF 16231:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07CCOFF 16331:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07D0OFF 164(3)31:16VOFF[17:16]9000
15.0 V OFF[15:1]— 3000
07D4OFF 16531:16————————— VOFF[7:16] CC00
15.0 V OFF[15:1]— 3000
07D8OFF 166(3)31:16VOFF[17:16]9000
15.0 V OFF[15:1]— 3000
07DCOFF 167(3)31:16VOFF[17:16]9000
15.0 V OFF[15:1]— 3000
07E0OFF 168(3)31:16VOFF[17:16]9000
15.0 V OFF[15:1]— 3000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table with the exception of the OFFx registers, have corresponding CLR, SET, and INV registers at their virtual addresses, plus offsets of 0x4, 0xB and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: This bit or register is not available on devices without a CAN module.
3: This bit or register is not available on devices without a Crypto module.

REGISTER 8-1: INTCON: INTERRUPT CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NMIKEY[7:0]
23:16U-0 U-0U-0 U-0 U-0U-0 U-0
— — —
15:8U-0 U-0U-0R/W-0U-0R/W-0 R/W-0 R/W-0
MVECTPC[2:0]
7:0U-0 U-0U-0R/W-0 R/W-0R/W-0 R/W-0 R/W-0
INT4EPINT3EPINT2EPINT1EPINT0EP

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-24 NMIKEY[7:0]: Non-maskable Interrupt Key bits

When the correct key (0x4E) is written, a software NMI is generated. The status is indicated by the GNMI bit (RNMICON[19]).

bit 23-13 Unimplemented: Read as '0'

bit 12 MVEC: Multi-vector Configuration bit

1 = Interrupt Controller configured for Multi-vector mode

0 = Interrupt Controller configured for Single Vector mode

bit 11 Unimplemented: Read as '0'

bit 10-8 TPC[2:0]: Interrupt Proximity Timer Control bits

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

bit 7-5 Unimplemented: Read as '0'

bit 4 INT4EP: External Interrupt 4 Edge Polarity Control bit

1 = Rising edge

0 = Falling edge

bit 3 INT3EP: External Interrupt 3 Edge Polarity Control bit

1 = Rising edge

0 = Falling edge

bit 2 INT2EP: External Interrupt 2 Edge Polarity Control bit

1 = Rising edge

0 = Falling edge

bit 1 INT1EP: External Interrupt 1 Edge Polarity Control bit

1 = Rising edge

0 = Falling edge

bit 0 INTOEP: External Interrupt 0 Edge Polarity Control bit

1 = Rising edge

0 = Falling edge

REGISTER 8-2: PRISS: PRIORITY SHADOW SELECT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PRI7SS[3:0](1)PRI6SS[3:0](1)
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PRI5SS[3:0](1)PRI4SS[3:0](1)
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PRI3SS[3:0] PRI2SS[3:0](1)
7:0R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 R/W-0
PRI1SS[3:0](1)— —SS0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-28 PRI7SS[3:0]: Interrupt with Priority Level 7 Shadow Set bits ^(1)

1xxx = Reserved (by default, an interrupt with a priority level of 7 uses Shadow Set 0)

0111 = Interrupt with a priority level of 7 uses Shadow Set 7

0110 = Interrupt with a priority level of 7 uses Shadow Set 6

.

0001 = Interrupt with a priority level of 7 uses Shadow Set 1

0000 = Interrupt with a priority level of 7 uses Shadow Set 0

bit 27-24 PRI6SS[3:0]: Interrupt with Priority Level 6 Shadow Set bits ^(1)

1xxx = Reserved (by default, an interrupt with a priority level of 6 uses Shadow Set 0)

0111 = Interrupt with a priority level of 6 uses Shadow Set 7

0110 = Interrupt with a priority level of 6 uses Shadow Set 6

.

.

0001 = Interrupt with a priority level of 6 uses Shadow Set 1

0000 = Interrupt with a priority level of 6 uses Shadow Set 0

bit 23-20 PRI5SS[3:0]: Interrupt with Priority Level 5 Shadow Set bits ^(1)

1xxx = Reserved (by default, an interrupt with a priority level of 5 uses Shadow Set 0)

0111 = Interrupt with a priority level of 5 uses Shadow Set 7

0110 = Interrupt with a priority level of 5 uses Shadow Set 6

.

0001 = Interrupt with a priority level of 5 uses Shadow Set 1

0000 = Interrupt with a priority level of 5 uses Shadow Set 0

bit 19-16 PRI4SS[3:0]: Interrupt with Priority Level 4 Shadow Set bits ^(1)

1xxx = Reserved (by default, an interrupt with a priority level of 4 uses Shadow Set 0)

0111 = Interrupt with a priority level of 4 uses Shadow Set 7

0110 = Interrupt with a priority level of 4 uses Shadow Set 6

.

0001 = Interrupt with a priority level of 4 uses Shadow Set 1

0000 = Interrupt with a priority level of 4 uses Shadow Set 0

Note 1: These bits are ignored if the MVEC bit (INTCON[12]) = 0.

REGISTER 8-2: PRISS: PRIORITY SHADOW SELECT REGISTER (CONTINUED)
bit 15-12 PRI3SS[3:0]: Interrupt with Priority Level 3 Shadow Set bits ^(1) 1xxx = Reserved (by default, an interrupt with a priority level of 3 uses Shadow Set 0) 0111 = Interrupt with a priority level of 3 uses Shadow Set 7 0110 = Interrupt with a priority level of 3 uses Shadow Set 6 : : 0001 = Interrupt with a priority level of 3 uses Shadow Set 1 0000 = Interrupt with a priority level of 3 uses Shadow Set 0

bit 11-8 PRI2SS[3:0]: Interrupt with Priority Level 2 Shadow Set bits ^(1) 1xxx = Reserved (by default, an interrupt with a priority level of 2 uses Shadow Set 0) 0111 = Interrupt with a priority level of 2 uses Shadow Set 7 0110 = Interrupt with a priority level of 2 uses Shadow Set 6 : : 0001 = Interrupt with a priority level of 2 uses Shadow Set 1 0000 = Interrupt with a priority level of 2 uses Shadow Set 0

bit 7-4 PRI1SS[3:0]: Interrupt with Priority Level 1 Shadow Set bits ^(1) 1xxx = Reserved (by default, an interrupt with a priority level of 1 uses Shadow Set 0) 0111 = Interrupt with a priority level of 1 uses Shadow Set 7 0110 = Interrupt with a priority level of 1 uses Shadow Set 6 : : 0001 = Interrupt with a priority level of 1 uses Shadow Set 1 0000 = Interrupt with a priority level of 1 uses Shadow Set 0

bit 3-1 Unimplemented: Read as ‘0’

bit 0 SS0: Single Vector Shadow Register Set bit 1 = Single vector is presented with a shadow set 0 = Single vector is not presented with a shadow set

Note 1: These bits are ignored if the MVEC bit (INTCON[12]) = 0.

REGISTER 8-3: INTSTAT: INTERRUPT STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — —
15:8U-0 U-0U-0 U-0 U-0 R-0R-0 R-0
— — —— —SRIPL[2:0](1)
7:0R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
SIRQ[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 x = Bit is unknown

bit 31-11 Unimplemented: Read as '0'

bit 10-8 SRIPL[2:0]: Requested Priority Level bits for Single Vector mode bits ^(1)

111-000 = The priority level of the latest interrupt presented to the CPU

bit 7-6 Unimplemented: Read as '0'

bit 7-0 SIRQ[7:0]: Last Interrupt Request Serviced Status bits

11111111-00000000 = The last interrupt request number serviced by the CPU

Note 1: This value must only be used when the Interrupt Controller is configured for Single Vector mode.

REGISTER 8-4: IPTMR: INTERRUPT PROXIMITY TIMER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
IPTMR[31:24]
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
IPTMR[23:16]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
IPTMR[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
IPTMR[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 x = Bit is unknown

bit 31-0 IPTMR[31:0]: Interrupt Proximity Timer Reload bits

Used by the interrupt proximity timer as a reload value when the interrupt proximity timer is triggered by an interrupt event.

REGISTER 8-5: IFSx: INTERRUPT FLAG STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IFS31 IFS30 IFS29 IFS28IFS27 IFS26 IFS25 IFS24
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IFS23 IFS22 IFS21 IFS20IFS19 IFS18 IFS17 IFS16
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IFS15 IFS14 IFS13 IFS12IFS11 IFS10 IFS9 IFS8
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IFS7IFS6IFS5IFS4IFS3IFS2IFS1IFS0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-0 IFS31-IFS0: Interrupt Flag Status bits

1 = Interrupt request has occurred
0 = No interrupt request has occurred

Note: This register represents a generic definition of the IFSx register. Refer to Table 8-2 for the exact bit definitions.

REGISTER 8-6: IECx: INTERRUPT ENABLE CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
IEC31 IEC30 IEC29 IEC28IEC27 IEC26IEC25IEC24
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
IEC23 IEC22 IEC21 IEC20IEC19 IEC18IEC17IEC16
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
IEC15 IEC14 IEC13 IEC12IEC11 IEC10IEC9EC8
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
IEC7IEC6IEC5IEC4IEC3IEC2IEC1IEC0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-0 IEC31-IEC0: Interrupt Enable bits

1 = Interrupt is enabled
0 = Interrupt is disabled

Note: This register represents a generic definition of the IFSx register. Refer to Table 8-2 for the exact bit definitions.

REGISTER 8-7: IPCx: INTERRUPT PRIORITY CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 R/W-0 R/W0 R/W-0 R/W-0R/W-0
— — —IP3[2:0] IS3[1:0]
23:16U-0 U-0U-0 R/W-0 R/W0 R/W-0 R/W-0R/W-0
— — —IP2[2:0] IS2[1:0]
15:8U-0 U-0U-0 R/W-0 R/W0 R/W-0 R/W-0R/W-0
— — —IP1[2:0] IS1[1:0]
7:0U-0 U-0U-0 R/W-0 R/W0 R/W-0 R/W-0R/W-0
— — —IP0[2:0] ISO[1:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-29 Unimplemented: Read as '0'

bit 28-26 IP3[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 25-24 IS3[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 23-21 Unimplemented: Read as '0'

bit 20-18 IP2[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 17-16 IS2[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 15-13 Unimplemented: Read as '0'

bit 12-10 IP1[2:0]: Interrupt Priority bits

111 = Interrupt priority is 7

:

010 - Interrupt priority is 2 001 - Interrupt priority is 1

001 - interrupt priority is 1 002 - interrupt is disabled

000 - interrupt is disabled

Note: This register represents a generic definition of the IPCx register. Refer to Table 8-2 for the exact bit definitions.

REGISTER 8-7: IPCx: INTERRUPT PRIORITY CONTROL REGISTER (CONTINUED)

bit 9-8 IS1[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-5 Unimplemented: Read as '0'

bit 4-2 IP0[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-0 ISO[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 8-2 for the exact bit definitions.

REGISTER 8-8: OFFx: INTERRUPT VECTOR ADDRESS OFFSET REGISTER (x = 0-168)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0U-0 U-0
—— ——— — —
23:16U-0 U-0U-0 U-0 U-0R/W-0R/W-0
—— ——— —VOFF[17:16]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
VOFF[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0U-0
VOFF[7:1]

Legend:

R = Readable bitW = Writable bit U = 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 17-1 VOFF[17:1]: Interrupt Vector 'x' Address Offset bits

bit 0 Unimplemented: Read as '0'

Note: x may not be continuous. Refer to Table 8-2 for available registers.

9.0 PREFETCH MODULE

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 9. "Prefetch Module for Devices with L1 CPU Cache" (DS60001649) in the "PIC32MZ W1 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The prefetch module is a performance enhancing module that is included in the PIC32MZ1025W104 family of devices. When running at high-clock rates, Wait states must be inserted into Program Flash Memory (PFM) read transactions to meet the access time of the PFM. Wait states can be hidden to the core by prefetching and storing instructions in a temporary holding area that the CPU can access quickly. Although the data path to the CPU is 32 bits wide, the data path to the PFM is 256 bits wide. This wide data path provides the same bandwidth to the CPU as a 32-bit path running at eight times the frequency.

The prefetch module holds a subset of PFM in temporary holding spaces known as lines. Each line contains a tag and data field. Normally, the lines hold a copy of what is currently in memory to make instructions or data available to the CPU without Flash Wait states.

The following are key features of the prefetch module:

  • 12x32 byte fully associative lines
    • 4 lines for CPU instructions
    • 4 lines for CPU data
    • 4 lines for peripheral data
    • 32 byte cache lines (256 bits) parallel memory fetch
    • True/pseudo LRU replacement policy
  • Configurable predictive prefetch
  • Flash ECC support

A simplified block diagram of the prefetch module is shown in the figure below.

FIGURE 9-1: PREFETCH MODULE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - PREFETCH MODULE - 1

flowchart
graph TD
    CPU --> BusControl["Bus Control"]
    BusControl --> PrefetchBuffer["Prefetch Buffer"]
    PrefetchBuffer --> LineControl["Line Control"]
    BusControl --> Tag["Tag"]
    BusControl --> Data["Data"]
    BusControl --> CPU["CPU"]
    CPU --> ProgramFlashMemory["Program Flash Memory"]
    SysCLK --> BusControl
    BusControl --> Tag
    BusControl --> Data

9.1 Prefetch Control Registers

TABLE 9-1: PREFETCH REGISTER MAP

Virtual Address(BF81_#)Register Name(?)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
2400PRECON31:16PERCHEENDCHEENICHEENPERCHEINVDCHEINVICHEINVPERCHECOHDCHECOHICHECOH0000
15:00CHEPERFENPFMAWSENPFMSECENPREFEN[1:0]PFMWS[3:0]0007
2410PRESTAT31:16PFMDEDPFMSEC0000
15:00PFMSECCNT[7:0]0000
2420PREHIT31:16CHEHIT[31:16]0000
15:00CHEHIT[15:0]0000
2430PREMIS31:16CHEMIS[31:16]0000
15:00CHEMIS[15:0]0000

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 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 9-1: PRECON: PREFETCH MODULE CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 R/W-1R/W-1 R/W-1 R/W-1
— — —— — PERCHEENDCHEEN ICHEEN
23:16U-0R/S/HC-0R/S/HC-0R/S/HC-0U-0R/W-0R/W-0R/W-0
PERCHEINVDCHEINVICHEINVPERCHECOHDCHECOHICHECOH
15:8U-0 U-0U-0R/W-0U-0 U-0 U-0R/W-1
CHEPERFENPFMAWSEN
7:0R/W-0U-0R/W-0R/W-0U-0R/W-1R/W-1R/W-1
PFMSECENPREFEN[1:0]PFMWS[3:0](1)
Legend:HC = Hardware ClearedHS = Hardware Set
R = Readable bitW = Writable bit U = Unimplemented bit, read as ‘0’
S = Settable bit‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown

bit 31-27 Unimplemented: Read as '0'

bit 26, PERCHEEN: Peripheral Data Cache Enable bit

1 = Caching enabled

0 = Caching disabled (and all lines invalidated)

bit 25 DCHEEN: Data Cache Enable bit

1 = Caching enabled

0 = Caching disabled (and all lines invalidated)

bit 24 ICHEEN: Instruction Cache Enable bit

1 = Caching enabled

0 = Caching disabled (and all lines invalidated)

bit 23 Unimplemented: Read as '0'

bit 22 PERCHEINV: Manual Invalidate Control for Peripheral Data Cache

1 = Force invalidate cache/invalidate busy

0 = Cache invalidation follows CHECOH/invalid complete

Note 1: PFB is included with iCache invalidate.

2: Hardware auto clears this bit when cache invalidate completes. Bits may clear at different times.

bit 21 DCHEINV: Manual Invalidate Control for Data Cache

1 = Force invalidate cache/invalidate busy

0 = Cache invalidation follows CHECOH/invalid complete

Note 1: PFB is included with iCache invalidate.

2: Hardware auto clears this bit when cache invalidate completes. Bits may clear at different times.

bit 20 ICHEINV: Manual Invalidate Control for Instruction Cache

1 = Force invalidate cache/invalidate busy

0 = Cache invalidation follows CHECOH/invalid complete

Note 1: PFB is included with iCache invalidate.

2: Hardware auto clears this bit when cache invalidate completes. Bits may clear at different times.

bit 19 Unimplemented: Read as '0'

Note 1: For the Wait states to SYSCLK relationship, refer to Section 41.0 "Electrical Specifications".

REGISTER 9-1: PRECON: PREFETCH MODULE CONTROL REGISTER (CONTINUED)
bit 18 PERCHECOH: Auto Cache Coherency Control for Peripheral Data Cache 1 = Auto invalidate cache on a programming event 0 = No auto invalidated cache on a programming event Note: CHECOH must be stable before initiation of programming to ensure correct invalidation of data.

bit 17 DCHECOH: Auto Cache Coherency Control for Data Cache 1 = Auto invalidate cache on a programming event 0 = No auto invalidated cache on a programming event Note: CHECOH must be stable before initiation of programming to ensure correct invalidation of data.

bit 16 ICHECOH: Auto Cache Coherency Control for Instruction Cache 1 = Auto invalidate cache on a programming event 0 = No auto invalidated cache on a programming event Note: CHECOH must be stable before initiation of programming to ensure correct invalidation of data.

bit 15-13 Unimplemented: Read as '0'

bit 12 CHEPERFEN: Cache Performance Counters Enable 1 = Performance counters is enabled 0 = Performance counters is disabled Note: Performance counters are reset on 0 to 1 transition of this bit.

bit 11-9 Unimplemented: Read as '0'

bit 8 PFMAWSEN: Address Wait State Enable Total Flash wait states are ADRWS + PFMWS. 1 = Add 1 address Wait state - allowing for higher clock frequencies 0 = Add 0 address Wait states - allowing for higher performance at lower clock frequencies

bit 7 PFMSECEN: Flash Single-bit Error Corrected (SEC) Interrupt Enable bit 1 = Generate an interrupt when PFMSEC is set 0 = Do not generate an interrupt when PFMSEC is set

bit 6 Unimplemented: Read as '0'

bit 5-4 PREFEN[1:0]: Instruction Predictive Prefetch Enable 01 = Instruction predictive prefetch enabled for cacheable regions only 00 = Instruction predictive prefetch disabled Other values are unavailable.

bit 3-0 PFMWS[3:0]: PFM Access Time Defined in Terms of SYSCLK Wait States bits(1) Total Flash Wait states are ADRWS + PFMWS. 1111 = Fifteen Wait states 1110 = Fourteen Wait states ... 0001 = One Wait state 0000 = Zero Wait state Note: This is not the Wait state seen by the CPU.

Note 1: For the Wait states to SYSCLK relationship, refer to Section 41.0 "Electrical Specifications".

REGISTER 9-2: PRESTAT: PREFETCH MODULE STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0U-0 HS/HC/R/W-0HS/HC/R/W-0 U-0U-0
—— — — —PFMDED PFMSEC — —
23:16U-0 U-0 U-0U-0 U-0U-0U-0U-0
—— — — ——— — — —
15:8U-0 U-0 U-0U-0 U-0U-0U-0U-0
—— — — ——— — — —
7:0HS/HC/R/W-0HS/HC/R/W-0HS/HC/R/W-0HS/HC/R/W-0HS/HC/R/W-0HS/HC/R/W-0HS/HC/R/W-0HS/HC/R/W-0
PFMSECCNT[7:0]
Legend:HC = Hardware ClearedHS = Hardware Set
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
S = Settable bit‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-28 Unimplemented: Read as '0'

bit 27 PFMDED: Flash Double-bit Error Detected (DED) Status bit

1 = An error has occurred

0 = An error has not occurred

Note: DED errors are reported in-band with the data using the bus error protocol. When reported for CPU reads they are seen as bus exception errors by the CPU.

bit 26 PFMSEC: Flash Single-bit Error Corrected (SEC) Status bit

1 = A SEC error occurred when PFMSECCNT[7:0] was equal to zero

0 = A SEC error has not occurred

Note: The error event is reported to the CPU via using the prefetch module interrupt event.

bit 25-8 Unimplemented: Read as '0'

bit 7-0 PFMSECCNT[7:0]: Flash SEC Count bits

Decrements (by 1) its count value each time an SEC error occurs. Holds at zero. When an SEC error occurs when PFMSECCNT is zero, the PFMSEC status is set. If PFMSECEN is also set, a pCache interrupt event is generated.

Note: This field counts all SEC errors and is not limited to SEC errors on unique addresses.

REGISTER 9-3: PREHIT: PREFETCH MODULE HIT STATISTICS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/H/C-0 R/HH/C-0 R/H/C-0R/H/C-0 R/H/C-0R/H/C-0 R/H/C-0C-0 R/H/C-0
CHEHIT[31:24]
23:16R/H/C-0 R/HH/C-0 R/H/C-0R/H/C-0 R/H/C-0R/H/C-0 R/H/C-0C-0 R/H/C-0
CHEHIT[23:16]
15:8R/H/C-0 R/HH/C-0 R/H/C-0R/H/C-0 R/H/C-0R/H/C-0 R/H/C-0C-0 R/H/C-0
CHEHIT[15:8]
7:0R/H/C-0 R/HH/C-0 R/H/C-0R/H/C-0 R/H/C-0R/H/C-0 R/H/C-0C-0 R/H/C-0
CHEHIT[7:0]

Legend: HC = Hardware Cleared HS = Hardware Set R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' S = Settable bit '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 CHEHIT[31:0]: Instruction Cache Hit Count bits

When CHECON.CHEPERF = 1, CHEHIT increments once per iCache or PFB hit.

Note: CHEHIT is reset on '0' to '1' transition of CHECON.CHEPERF.

REGISTER 9-4: PREMIS: PREFETCH MODULE MISS STATISTICS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/H/C-0 R/H/C-0R/C-0 R/H/C-0R/H/C-0 R/H/C-0R/H/C-0 R/H/C-0C-0 R/H/C-0
CHEMIS[31:24]
23:16R/H/C-0 R/H/C-0R/C-0 R/H/C-0R/H/C-0 R/H/C-0R/H/C-0 R/H/C-0C-0 R/H/C-0
CHEMIS[23:16]
15:8R/H/C-0 R/H/C-0R/C-0 R/H/C-0R/H/C-0 R/H/C-0R/H/C-0 R/H/C-0C-0 R/H/C-0
CHEMIS[15:8]
7:0R/H/C-0 R/H/C-0R/C-0 R/H/C-0R/H/C-0 R/H/C-0R/H/C-0 R/H/C-0C-0 R/H/C-0
CHEMIS[7:0]

Legend: HC = Hardware Cleared HS = Hardware Set R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' S = Settable bit '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 CHEMIS[31:0]: Instruction Cache Miss Count bits

When CHECON.CHEPERF = 1, CHEMIS increments once per iCache or PFB miss.

Note: CHEMIS is reset on '0' to '1' transition of CHECON.CHEPERF.

10.0 DIRECT MEMORY ACCESS (DMA) CONTROLLER

Note: This data sheet summarizes the features of the PIC32MZ1025W104 device. 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", which is available from the Microchip website (www.microchip.com/PIC32).

The DMA Controller is a bus manager 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 device such as SPI, UART, and so on, or memory itself. Peripherals like SQI, ADC, and so on with dedicated DMA can also access the generic system DMA.

The following are key features of the DMA Controller:

• Eight identical channels:

- 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

• 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
  • Up to 2-byte 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 error 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
  • CRC module is highly configurable

Note: The Program Flash is not accessible by DMA.

FIGURE 10-1: DMA BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - DIRECT MEMORY ACCESS (DMA) CONTROLLER - 1

flowchart
graph TD
    A["System IRQINT Controller"] --> B["Address Decoder"]
    B --> C["Channel 0 Control"]
    C --> D["Channel 1 Control"]
    D --> E["Channel n Control"]
    E --> F["Channel Priority Arbitration"]
    F --> G["Bus Interface"]
    G --> H["System Bus + Bus Arbitration"]
    I["Peripheral Bus"] --> B
    J["Global Control (DMACON)"] --> B
    K["DMA"] --> L["SysCLK"]
    M["Channel 0 Control"] --> N["SEL"]
    O["Channel 1 Control"] --> P["Y"]
    Q["Channel n Control"] --> R["I1"]
    S["Channel Priority Arbitration"] --> T["I2"]
    U["Channel 0 Control"] --> V["I3"]
    W["Channel 1 Control"] --> X["I4"]
    Y["Channel n Control"] --> Z["I5"]

10.1 DMA Control Registers

TABLE 10-1: DMA GLOBAL REGISTER MAP

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. Sea Section 13.3 "CLR, SET and INV Registers" for more information.

TABLE 10-2: DMA CRC REGISTER MAP

Virtual Address (BF-B1_#)RegisterNameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
1030DCRCCON31:16BYTE[1:0]WBOBITO0000
15:0PLEN[4:0]CRCENCRCAPPCRCTYPCRCCH[2:0]0000
1040DCRCDATA31:16DCRCDATA[31:16]0000
15:0DCRCDATA[15:0]0000
1050DCRCXOR31:16DCRCXOR[31:16]0000
15:0DCRCXOR[15:0]0000

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 10-3: DMA CHANNEL 0 THROUGH CHANNEL 7 REGISTER MAP

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 10-3: DMA CHANNEL 0 THROUGH CHANNEL 7 REGISTER MAP (CONTINUED)

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 10-3: DMA CHANNEL 0 THROUGH CHANNEL 7 REGISTER MAP (CONTINUED)

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 10-3: DMA CHANNEL 0 THROUGH CHANNEL 7 REGISTER MAP (CONTINUED)

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 10-3: DMA CHANNEL 0 THROUGH CHANNEL 7 REGISTER MAP (CONTINUED)

Virtual Address (BFB1,#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
14A0DCH5DPTR31:16
15:0 CHDPTR[15:0] 0000
14B0DCH5CSIZ31:16
15:0 CHCSIZ[15:0] 0000
14C0DCH5CPTR31:16
15:0 CHCPTR[15:0] 0000
14D0DCH5DAT31:16
15:0 CHPDAT[15:0] 0000
14E0DCH6CON31:16CHPIGN[7:0]
15:0 CHBUSYCHPIGNENCHPATLENCHCHNSCHENCHAEDCHCHNCHAENCHEDETCHPRI[1:0]0000
14F0DCH6ECON31:16CHAIRQ[7:0]0000
15:0CHSIRQ[7:0]CFORCECABORTPATENSIRQENAIRQEN2200
1500DCH6INT31:16CHSDIECHSHIECHDDIECHDHIECHBCIECHCCIECHTAIECHERIE0000
15:0CHSDIFCHSHIFCHDDIFCHDHIFCHBCIFCHCCIFCHTAIFCHERIF0000
1510DCH6SSA31:16CHSSA[31:16] 0000
15:0CHSSA[15:0]0000
1520DCH6DSA31:16CHDSA[31:16] 0000
15:0CHDSA[15:0]0000
1530DCH6SSIZ31:16
15:0 CHSSIZ[15:0] 00000000
1540DCH6DSIZ31:16
15:0 CHDSIZ[15:0] 0000
1550DCH6SPTR31:16
15:0 CHSPTR[15:0] 0000
1560DCH6DPTR31:16
15:0 CHDPTR[15:0] 0000
1570DCH6CSIZ31:16
15:0 CHCSIZ[15:0] 0000
1580DCH6CPTR31:16
15:0 CHCPTR[15:0] 0000
1590DCH6DAT31:16
15:0 CHPDAT[15:0] 0000
15A0DCH7CON31:16CHPIGN[7:0]
15:0 CHBUSYCHPIGNENCHPATLENCHCHNSCHENCHAEDCHCHNCHAENCHEDETCHPRI[1:0] 0000

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 10-3: DMA CHANNEL 0 THROUGH CHANNEL 7 REGISTER MAP (CONTINUED)

Virtual Address (BF81_#)Register Name(f)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
31:16——————CHAIRQ[7:0] 00:FF
15B0DCH7ECON15:0CHSIRQ[7:0]CFORCECABORTPATENSIRQENAIRQENFF00
15C0DCH7INT31:16CHSDIECHSHIECHDDIECHDHIECHBCIECHCCIECHTAIECHERIE0000
15:0CHSDIFCHSHIFCHDDIFCHDHIFCHBCIFCHCCIFCHTAIFCHERIF0000
15D0DCH7SSA31:16CHSSA[31:16]0000
15:0CHSSA[15:0]0000
15E0DCH7DSA31:16CHDSA[31:16]0000
15:0CHDSA[15:0]0000
15F0DCH7SSIZ31:16————————————————————————————————
15:0CHSSIZ[15:0]0000
1600DCH7DSIZ31:16——————————————————————————————
15:0CHDSIZ[15:0]0000
1610DCH7SPTR31:16——————————————————————————————
15:0CHSPTR[15:0]0000
1620DCH7DPTR31:16——————————————————————————————
15:0CHDPTR[15:0]0000
1630DCH7CSIZ31:16——————————————————————————————
15:0CHCSIZ[15:0]0000
1640DCH7CPTR31:16——————————————————————————————
15:0CHCPTR[15:0]0000
1650DCH7DAT31:16——————————————————————————————
15:0CHPDAT[15:0]0000

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 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 10-1: DMACON: DMA CONTROLLER CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8R/W-0 U-0U-0 R/W-0 R/W-0U-0 U-0U-0
ONSUSPENDDMABUSY
7:0U-0 U-0U-0 U-0 U-0 U-0U-0U-0
— — —— — — — —

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15 ON: DMA On bit

1 = DMA module is enabled
0 = DMA module is disabled

bit 14-13 Unimplemented: Read as '0'

bit 12 SUSPEND: DMA Suspend bit

1 = DMA transfers are suspended to allow CPU uninterrupted access to data bus
0 = DMA operates normally

bit 11 DMABUSY: DMA Module Busy bit

1 = DMA module is active and is transferring data
0 = DMA module is disabled and not actively transferring data

bit 10-0 Unimplemented: Read as '0'

REGISTER 10-2: DMASTAT: DMA STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
RDWR— — —— — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
7:0U-0 U-0 U-0 U-0 U-0 R-0R-0 R-0
— — —DMACH[2:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31 RDWR: Read/Write Status bit

1 = Last DMA bus access when an error was detected was a read
0 = Last DMA bus access when an error was detected was a write

bit 30-3 Unimplemented: Read as '0'

bit 2-0 DMACH[2:0]: DMA Channel bits

These bits contain the value of the most recent active DMA channel when an error is detected.

REGISTER 10-3: DMAADDR: DMA ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
DMAADDR[31:24]
23:16R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
DMAADDR[23:16]
15:8R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
DMAADDR[15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
DMAADDR[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 x = Bit is unknown

bit 31-0 DMAADDR[31:0]: DMA Module Address bits

These bits contain the address of the most recent DMA access when an error is detected.

Note: The DMAEADDR register will be cleared when its contents are read. If more than one error occurs at the same time, the read transaction will be recorded. Additional later transfers with an error will not update this register until it has been read or cleared.

REGISTER 10-4: DCRCCON: DMA CRC CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 R/W-0 R/W-0 R/W-0 U-0 U-0 R/W-0
— — BYTO[1:0] WBO(1)— —BI
23:16U-0U-0U-0U-0U-0U-0U-0U-0
15:8U-0U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0
— —PLEN[4:0]
7:0R/W-0R/W-0R/W-0U-0U-0R/W-0R/W-0R/W-0
CRCENCRCAPP(1)CRCTYPCRCCH[2:0]

Legend:

R = Readable bitW = Writable bit U = 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

11 = Endian byte swap on half-word boundaries (in other words, source half-word order with reverse source byte order per half-word)
10 = Swap half-words on word boundaries (in other words, reverse source half-word order with source byte order per half-word)
01 = Endian byte swap on word boundaries (in other words, reverse source byte order)
00 = No swapping (i.e., source byte order)

bit 27 WBO: CRC Write Byte Order Selection bit ^(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

bit 26-25 Unimplemented: Read as '0'

bit 24 BITO: CRC Bit Order Selection bit

When CRCTYP (DCRCCON[5]) = 1 (CRC module is in IP Header mode):

1 = The IP header checksum is calculated Least Significant bit (LSb) first (in other words, reflected)
0 = The IP header checksum is calculated Most Significant bit (MSb) first (in other words, not reflected)

When CRCTYP (DCRCCON[5]) = 0 (CRC module is in LFSR mode):

1 = The LFSR CRC is calculated Least Significant bit first (in other words, reflected)
0 = The LFSR CRC is calculated Most Significant bit first (in other words, not reflected)

bit 23-13 Unimplemented: Read as '0'

bit 12-8 PLEN[4:0]: Polynomial Length bits ^(1)

When CRCTYP (DCRCCON[5]) = 1 (CRC module is in IP Header mode):

These bits are unused.

When CRCTYP (DCRCCON[5]) = 0 (CRC module is in LFSR mode):

Denotes the length of the polynomial - 1.

bit 7 CRCEN: 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.

REGISTER 10-4: DCRCCON: DMA CRC CONTROL REGISTER (CONTINUED)

bit 6 CRCAPP: CRC Append Mode bit (1)

1 = 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 = DMA transfers data from the source through the CRC obeying WBO as it writes the data to the destination.

bit 5 CRCTYP: CRC Type Selection bit

1 = The CRC module calculates an IP header checksum
0 = The CRC module calculates a LFSR CRC

bit 4-3 Unimplemented: Read as '0'

bit 2-0 CRCCH[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.

REGISTER 10-5: DCRCDATA: DMA CRC DATA REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
DCRCDATA[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
DCRCDATA[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
DCRCDATA[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
DCRCDATA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 DCRCDATA[31:0]: CRC Data Register bits

Writing to this register will seed the CRC generator. Reading from this register returns the current value of the CRC. Bits greater than PLEN will return '0' on any read.

When CRCTYP (DCRCCON[5]) = 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 (in other words, current IP header checksum value).

When CRCTYP (DCRCCON[5]) = 0 (CRC module is in LFSR mode):

Bits greater than PLEN returns '0' on any read.

REGISTER 10-6: DCRCXOR: DMA CRCXOR ENABLE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W0 R/W-0 R/W-0R/W-0 R/W-0 R/W-0 R/W-0
DCRCXOR[31:24]
23:16R/W-0 R/W0 R/W-0 R/W-0R/W-0 R/W-0 R/W-0 R/W-0
DCRCXOR[23:16]
15:8R/W-0 R/W0 R/W-0 R/W-0R/W-0 R/W-0 R/W-0 R/W-0
DCRCXOR[15:8]
7:0R/W-0 R/W0 R/W-0 R/W-0R/W-0 R/W-0 R/W-0 R/W-0
DCRCXOR[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 DCRCXOR[31:0]: CRC XOR Register bits

When CRCTYP (DCRCCON[5]) = 1 (CRC module is in IP Header mode):

This register is unused.

When CRCTYP (DCRCCON[5]) = 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

REGISTER 10-7: DCHxCON: DMA CHANNEL x CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHPIGN[7:0]
23:16U-0U-0U-0U-0U-0U-0U-0U-0
15:8R/W-0U-0R/W-0U-0R/W-0U-0U-0R/W-0
CHBUSYCHIPGNENCHPATLEN CHCHNS^(1)
7:0R/W-0R/W-0R/W-0R/W-0U-0R-0R/W-0R/W-0
CHEN^(2) CHAEDCHCHNCHAENCHEDETCHPRI[1:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-24 CHPIGN[7:0]: Channel Register Data bits

Pattern Terminate mode:

Any byte matching these bits during a pattern match may be ignored during the pattern match determination when the CHPIGNEN bit is set. If a byte is read that is identical to this data byte, the pattern match logic will treat it as a "don't care" when the pattern matching logic is enabled and the CHPIGEN bit is set.

bit 23-16 Unimplemented: Read as '0'

Note 1: The chain selection bit takes effect when chaining is enabled (in other words, CHCHN = 1).

2: When the channel is suspended by clearing this bit, the user application must 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 10-7: DCHxCON: DMA CHANNEL x CONTROL REGISTER (CONTINUED)

bit 15 CHBUSY: Channel Busy bit

1 = Channel is active or enabled
0 = Channel is inactive or disabled

bit 14 Unimplemented: Read as '0'

bit 13 CHPIGNEN: Enable Pattern Ignore Byte bit

1 = Treat any byte that matches the CHPIGN[7:0] bits as a "don't care" when pattern matching is enabled
0 = Disable this feature

bit 12 Unimplemented: Read as '0'

bit 11 CHPATLEN: Pattern Length bit

1 = 2 byte length
0 = 1 byte length

bit 10-9 Unimplemented: Read as '0'

bit 8 CHCHNS: Chain Channel Selection bit (1)

1 = Chain to channel lower in natural priority (CH1 is enabled by CH2 transfer complete)
0 = Chain to channel higher in natural priority (CH1 is enabled by CH0 transfer complete)

bit 7 CHEN: Channel Enable bit (2)

1 = Channel is enabled
0 = Channel is disabled

bit 6 CHAED: Channel Allow Events If Disabled bit

1 = Channel start/abort events are registered, even if the channel is disabled
0 = Channel start/abort events are ignored if the channel is disabled

bit 5 CHCHN: Channel Chain Enable bit

1 = Allow channel to be chained
0 = Do not allow channel to be chained

bit 4 CHAEN: Channel Automatic Enable bit

1 = Channel is continuously enabled, and not automatically disabled after a block transfer is complete
0 = Channel is disabled on block transfer complete

bit 3 Unimplemented: Read as '0'

bit 2 CHEDET: Channel Event Detected bit

1 = An event has been detected
0 = No events have been detected

bit 1-0 CHPRI[1:0]: Channel Priority bits

11 = Channel has priority 3 (highest)
10 = Channel has priority 2
01 = Channel has priority 1
00 = Channel has priority 0

Note 1: The chain selection bit takes effect when chaining is enabled (in other words, CHCHN = 1).

2: When the channel is suspended by clearing this bit, the user application must 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 10-8: DCHxECON: DMA CHANNEL x EVENT CONTROL REGISTER

Legend:S = Settable bit
R = Readable bitW = Writable bit U = 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 23-16 CHAIRQ[7:0]: Channel Transfer Abort IRQ bits ^(1)

11111111 = Interrupt 255 aborts any transfers in progress and set CHAIF flag

00000001 = Interrupt 1 aborts any transfers in progress and set CHAIF flag
00000000 = Interrupt 0 aborts any transfers in progress and set CHAIF flag 

bit 15-8 CHSIRQ[7:0]: Channel Transfer Start IRQ bits ^(1)

11111111 = Interrupt 255 initiates a DMA transfer

00000001 = Interrupt 1 initiates a DMA transfer
00000000 = Interrupt 0 initiates a DMA transfer 

bit 7 CFORCE: 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 6 CABORT: DMAAbort Transfer bit

1 = A DMA transfer is aborted when this bit is written to a '1'
0 = This bit always reads '0' 

bit 5 PATEN: Channel Pattern Match Abort Enable bit

1 = Abort transfer and clear CHEN on pattern match
0 = Pattern match is disabled 

bit 4 SIRQEN: 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 3 AIRQEN: 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-0 Unimplemented: Read as '0'

Note 1: See Table 8-2 for the list of available interrupt IRQ sources.

REGISTER 10-9: DCHxINT: DMA CHANNEL x INTERRUPT CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHSDIECHSHIECHDDIECHDHIECHBCIECHCCIECHTAIECHERIE
15:8U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHSDIFCHSHIFCHDDIFCHDHIFCHBCIFCHCCIFCHTAIFCHERIF

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-24 Unimplemented: Read as '0'

bit 23 CHSDIE: Channel Source Done Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 22 CHSHIE: Channel Source Half Empty Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 21 CHDDIE: Channel Destination Done Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 20 CHDHIE: Channel Destination Half Full Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 19 CHBCIE: Channel Block Transfer Complete Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 18 CHCCIE: Channel Cell Transfer Complete Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 17 CHTAIE: Channel Transfer Abort Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 16 CHERIE: Channel Address Error Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 15-8 Unimplemented: Read as '0'

bit 7 CHSDIF: Channel Source Done Interrupt Flag bit

1 = Channel Source Pointer has reached end of source (CHSPTR = CHSSIZ)
0 = No interrupt is pending

bit 6 CHSHIF: Channel Source Half Empty Interrupt Flag bit

1 = Channel Source Pointer has reached midpoint of source (CHSPTR = CHSSIZ/2)
0 = No interrupt is pending

bit 5 CHDDIF: Channel Destination Done Interrupt Flag bit

1 = Channel Destination Pointer has reached end of destination (CHDPTR = CHDSIZ)
0 = No interrupt is pending

REGISTER 10-9: DCHxINT: DMA CHANNEL x INTERRUPT CONTROL REGISTER (CONTINUED)

bit 4 CHDHIF: Channel Destination Half Full Interrupt Flag bit

1 = Channel Destination Pointer has reached midpoint of destination (CHDPTR = CHDSIZ/2)
0 = No interrupt is pending

bit 3 CHBCIF: Channel Block Transfer Complete Interrupt Flag bit

1 = A block transfer has been completed (the larger of CHSSIZ/CHDSIZ bytes has been transferred), or a pattern match event occurs
0 = No interrupt is pending

bit 2 CHCCIF: Channel Cell Transfer Complete Interrupt Flag bit

1 = A cell transfer has been completed (CHCSIZ bytes have been transferred)
0 = No interrupt is pending

bit 1 CHTAIF: Channel Transfer Abort Interrupt Flag bit

1 = An interrupt matching CHAIRQ has been detected and the DMA transfer has been aborted
0 = No interrupt is pending

bit 0 CHERIF: Channel Address Error Interrupt Flag bit

1 = A channel address error has been detected; either the source or the destination address is invalid
0 = No interrupt is pending

REGISTER 10-10: DCHxSSA: DMA CHANNEL x SOURCE START ADDRESS REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
CHSSA[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
CHSSA[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
CHSSA[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
CHSSA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0

CHSSA[31:0] Channel Source Start Address bits

Note: This must be the physical address of the source.

REGISTER 10-11: DCHxDSA: DMA CHANNEL x DESTINATION START ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHDSA[31:24]
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHDSA[23:16]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHDSA[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHDSA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 CHDSA[31:0]: Channel Destination Start Address bits

Note: This must be the physical address of the destination.

REGISTER 10-12: DCHxSSIZ: DMA CHANNEL x SOURCE SIZE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
———————
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
———————
15:8R/W-0 R/W-0 R/W-0 R/W-0R/W-0R/W-0R/W-0 R/W-0
CHSSIZ[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0R/W-0R/W-0R/W-0 R/W-0
CHSSIZ[7:0]

Legend:

R = Readable bitW = Writable bit U = 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-0 CHSSIZ[15:0]: Channel Source Size bits

11111111111111111 = 65,535 byte source size

.
.
.
0000000000000010 = 2 byte source size
000000000000001 = 1 byte source size
000000000000000 = 65,536 byte source size

REGISTER 10-13: DCHxDSIZ: DMA CHANNEL x DESTINATION SIZE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0U-0U-0U-0U-0U-0U-0U-0
23:16U-0U-0U-0U-0U-0U-0U-0U-0
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHDSIZ[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHDSIZ[7:0]

Legend:

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 CHDSIZ[15:0]: Channel Destination Size bits

1111111111111111 = 65,535 byte destination size
.
.
0000000000000010 = 2 byte destination size
0000000000000001 = 1 byte destination size
0000000000000000 = 65,536 byte destination size

REGISTER 10-14: DCHxSPTR: DMA CHANNEL x SOURCE POINTER REGISTER

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 CHSPTR[15:0]: Channel Source Pointer bits

11111111111111111 = Points to byte 65,535 of the source

0000000000000001 = Points to byte 1 of the source

00000000000000000 = Points to byte 0 of the source

Note: When in Pattern Detect mode, this register is reset on a pattern detect.

REGISTER 10-15: DCHxDPTR: DMA CHANNEL x DESTINATION POINTER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0U-0U-0U-0U-0U-0U-0U-0
23:16U-0U-0U-0U-0U-0U-0U-0U-0
15:8R-0R-0R-0R-0R-0R-0R-0R-0
CHDPTR[15:8]
7:0R-0R-0R-0R-0R-0R-0R-0R-0
CHDPTR[7:0]

Legend:

R = Readable bit W = 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-0 CHDPTR[15:0]: Channel Destination Pointer bits

11111111111111111 = Points to byte 65,535 of the destination

0000000000000001 = Points to byte 1 of the destination

00000000000000000 = Points to byte 0 of the destination

REGISTER 10-16: DCHxCSIZ: DMA CHANNEL x CELL-SIZE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ———
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——— ———
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHCSIZ[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHCSIZ[7:0]

Legend:

R = Readable bitW = Writable bit U = 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-0 CHCSIZ[15:0]: Channel Cell-Size bits

11111111111111111 = 65,535 bytes transferred on an event

.

.
000000000000010 = 2 bytes transferred on an event
000000000000001 = 1 byte transferred on an event
00000000000000000 = 65,536 bytes transferred on an event

REGISTER 10-17: DCHxCPTR: DMA CHANNEL x CELL POINTER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0U-0U-0 U-0 U-0 U-0U-0
— — —— — — —
23:16U-0 U-0 U-0U-0U-0 U-0 U-0 U-0U-0
— — —— — — —
15:8R-0 R-0 R-0R-0R-0 R-0 R-0 R-0R-0
CHCPTR[15:8]
7:0R-0 R-0 R-0R-0R-0 R-0 R-0 R-0R-0
CHCPTR[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 x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 CHCPTR[15:0]: Channel Cell Progress Pointer bits

1111111111111111 = 65,535 bytes have been transferred since the last event

.

.

000000000000001 = 1 byte has been transferred since the last event

00000000000000000 = 0 bytes have been transferred since the last event

Note: When in Pattern Detect mode, this register is reset on a pattern detect.

REGISTER 10-18: DCHxDAT: DMA CHANNEL x PATTERN DATA REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 CHPDAT[15:0]: Channel Data Register bits

Pattern Terminate mode:

Data to be matched must be stored in this register to allow terminate on match.

All other modes:

Unused.

11.0 OSCILLATOR CONFIGURATION

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 42. “Oscillators with Enhanced PLL” (DS60001250) in the “PIC32 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

The PIC32MZ1025W104 oscillator system has the following modules and features:

  • Four external and internal oscillator options as clock sources
  • Four on-chip PLLs 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
    • Dedicated on-chip PLL for USB, Wi-Fi/Ethernet and Bluetooth modules
  • Flexible reference clock output
  • Multiple clock branches for peripherals for better performance flexibility
  • Clock switch/slew control with output divider

A block diagram of the oscillator system is shown in Figure 11-1. The clock distribution is provided in Table 11-1.

FIGURE 11-1: PIC32MZ1025W104 FAMILY OSCILLATOR DIAGRAM
Microchip PIC32MZ1025W104132 - OSCILLATOR CONFIGURATION - 1

flowchart
graph TD
    subgraph Power Components
        A["POS C"] --> B["EWICLK"]
        B --> C["EWPLL/ETHPLL"]
        C --> D["FRC"]
        D --> E["POSC"]
        E --> F["USB PLL"]
        F --> G["POSC"]
        G --> H["SPILLCLK"]
        H --> I["Primary Oscillator (POSC)"]
        I --> J["C1"]
        J --> K["Xba_in"]
        J --> L["Xba_rml"]
        J --> M["SOSC"]
        J --> N["SOSC"]
        J --> O["SOSC"]
        J --> P["SOSC"]
        J --> Q["SOSC"]
        J --> R["SOSC"]
        J --> S["SOSC"]
        J --> T["SOSC"]
        J --> U["SOSC"]
        J --> V["SOSC"]
        J --> W["SOSC"]
        J --> X["SOSC"]
        J --> Y["SOSC"]
        J --> Z["SOSC"]
        J --> AA["SOSC"]
    end

    subgraph Power Components
        AB["FWEL"] --> AC["FWEL"]
        AC --> AD["FWELREFDIV"]
        AD --> AE["FWEL"]
        AE --> AF["FWELFBDIV"]
        AF --> AG["FWEL"]
        AG --> AH["FWELPOSTDIV1"]
        AH --> AI["FWELPOSTDIV2"]
        AI --> AJ["FWELPOSTDIV1"]
        AJ --> AK["FWELPOSTDIV1"]
        AK --> AL["FWELPOSTDIV1"]
        AL --> AM["FWELPOSTDIV1"]
        AM --> AN["FWELPOSTDIV1"]
    end

    subgraph Power Components
        AO["FWEL"] --> AP["FWEL"]
        AP --> AQ["FWEL"]
        AQ --> AR["FWEL"]
        AR --> AS["FWEL"]
        AS --> AT["FWEL"]
        AT --> AU["FWEL"]
        AU --> AV["FWEL"]
    end

    subgraph Power Components
        AW["FWEL"] --> AX["FWEL"]
        AX --> AY["FWEL"]
        AY --> AZ["FWEL"]
        AZ --> BA["FWEL"]
        BA --> BB["FWEL"]
        BB --> BC["FWEL"]
    end

    subgraph Power Components
        BD["FWEL"] --> BE["FWEL"]
        BE --> BF["FWEL"]
        BF --> BG["FWEL"]
        BG --> BH["FWEL"]
        BH --> BI["FWEL"]
    end

    subgraph Power Components
        BJ["FWEL"] --> BK["FWEL"]
        BK --> BL["FWEL"]
        BL --> BM["FWEL"]
        BM --> BN["FWEL"]
    end

    subgraph Power Components
        BO["FWEL"] --> BP["FWEL"]
        BP --> BQ["FWEL"]
        BQ --> BR["FWEL"]
        BR --> BS["FWEL"]
    end

    subgraph Power Components
        BT["FWEL"] --> BU["FWEL"]
        BU --> BV["FWEL"]
        BV --> BW["FWEL"]
    end

    subgraph Power Components
        BX["FWEL"] --> BY["FWEL"]
        BY --> BZ["FWEL"]
        BZ --> CA["FWEL"]
    end

    subgraph Power Components
        CB["FWEL"] --> CC["FWEL"]
        CC --> CD["FWEL"]
        CD --> CE["FWEL"]
    end

    subgraph Power Components
        CF["FWEL"] --> CG["FWEL"]
        CG --> CH["FWEL"]
        CH --> CI["FWEL"]
    end

    subgraph Power Components
        CJ["FWEL"] --> CK["FWEL"]
        CK --> CL["FWEL"]
        CL --> CM["FWEL"]
    end

    subgraph Power Components
        CN["FWEL"] --> CO["FWEL"]
        CO --> CP["FWEL"]
        CP --> CQ["FWEL"]
    end

    subgraph Power Components
        CR["FWEL"] --> CS["FWEL"]
        CS --> CT["FWEL"]
        CT --> CU["FWEL"]
    end

    subgraph Power Components
        DU["FWEL"] --> DV["FWEL"]
        DV --> DW["FWEL"]
    end

    subgraph Power Components
        DX["FWEL"] --> DXB["FWEL"]
        DXB --> DXC["FWEL"]
    end

    subgraph Power Components
        DXC --> DXD["FWEL"]

    subgraph Power Components
        DXD --> DXE["FWEL"]

    subgraph Power Components
        DXE --> DXF["FWEL"]

    subgraph Power Components
        DXF --> DXG["FWEL"]

    subgraph Power Components
        DXG --> DXH["FWEL"]

    subgraph Power Components
        DXH --> DXI["FWEL"]

    subgraph Power Components
        DXI --> DXJ["FWEL"]

    subgraph Power Components
        DXJ --> DXK["FWEL"]

    subgraph Power Components
        DXK --> DXL["FWEL"]

    subgraph Power Components
        DXL --> DXM["FWEL"]

    subgraph Power Components
        DXM --> DXN["FWEL"]

    subgraph Power Components
        DXN --> DXO["FWEL"]

    subgraph Power Components
        DXO --> DXP["FWEL"]

    subgraph Power Components
        DXP --> DXQ["FWEL"]

    subgraph Power Components
        DXQ --> DXR["FWEL"]

    subgraph Power Components
        DXR --> DXS["FWEL"]

    subgraph Power Components
        DXS --> DXT["FWEL"]

    subgraph Power Components
        DXT --> DXU["FWEL"]

    subgraph Power Components
        DXU --> DXV["FWEL"]

    subgraph Power Components
        DXV --> DXW["FWEL"]

    subgraph Power Components
        DXW --> DXX["FWEL"]

    subgraph Power Components
        DXX --> DXY["FWEL"]

    subgraph Power Components
        DXY --> DXZ["FWEL"]

    subgraph Power Components
        DXZ --> DXR

    subgraph Power Components
        DXR --> DXS

    end

    subgraph Power Components
        DXS --> DXT

    subgraph Power Components
        DXT --> DXU

    end

    subgraph Power Components
        DXU --> DXV

    subgraph Power Components
        DXV --> DXW

    subgraph Power Components
        DXW --> DXZ

    end

    subgraph Power Components
        DXZ --> DXT

    subgraph Power Components
        DXT --> DXU

    subgraph Power Components
        DXU --> DXV

    end

    subgraph Power Components
        DXV --> DXW

    subgraph Power Components
        DXW --> DXZ

    end

    subgraph Power Components
        DXZ --> DXT

    subgraph Power Components
        DXT --> DXU

    subgraph Power Components
        DXU --> DXV

    end

    subgraph Power Components
        DXV --> DXW

    subgraph Power Components
        DXW --> DXZ

    subgraph Power Components
        DXZ --> DXT

    end

    subgraph Power Components
        DXT <-->|Timer1, RTCC, WDT| LR
    end

    subgraph Power Components
        DXT <-->|Timer1, RTCC| LR

    end

    style Power Components fill:#f9f9f9,stroke:#333,stroke-width:2px

Notes: 1. A series resistor, Rs, may be required for AT strip cut crystals, or to eliminate clipping.
2. The internal feedback resistor, R F, is typically 1 MW.
3. Refer to Oscillators with Enhanced PLL (DS60001250) in the "PIC32 Family Reference Manual" for help in determining the best oscillator components.
4: Refer to Section 42.0 "Packaging Information" for frequency limitations.
5: A parallel resistor R P is added to adjust the oscillator gain and ensure start-up.

TABLE 11-1: SYSTEM AND PERIPHERAL CLOCK DISTRIBUTION (1)

PeripheralClock Source
BTPLLETHPLLFRCLPRCPB1_CLKPB2_CLKPB3_CLKPB4_CLKPB5_CLKPB6_CLKPOSCREFO1REFO2REFO3REFO4SOSCSYSCLKUPLL
ADCXXXX
Asymmetric CryptoX
BORX
BT-CLKOUTX
CANX
CAN-FDXX
CPUX
CVDXXXX
DMAX
DMTX
DSCONX
DSWDTXX
EthernetXX
EVICX
Flash ControllerXX
I2C1X
I2C2X
ICAP1X
ICAP2X
ICAP3X
ICAP4X
ICDX
OCMP1X
OCMP2X
OCMP3X
OCMP4X
PMUXX
PORT AX
PORT BX
PORT CX
PORT KX
PPSX
Prefetch CacheX
PTGXXXX
RTCCXXX
SPI1XX
SPI2XX
SQIXX
Symmetric CryptoX
Timer 1XXX
Timer 2X
Timer 3X
Timer 4X
Timer 5X
Timer 6X
Timer 7X
UART1XXXX
UART2XXXX
UART3XXXX
USBXX
WDTXX
Wi-FiXXXXXX
TRNGX

Note 1: The timer clocks represented in this table are not the standard clock. Refer to the corresponding module chapters for the standard timer clock support.

11.1 Oscillator Control Registers

TABLE 11-2: OSCILLATOR CONFIGURATION REGISTER MAP

Virtual Address(BF60_#)RegistNameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
1200OSCCON31:16FRCDIV[2:0]DRMENWAKE2SPD2000
15:0COSC[3:0]NOSC[3:0]CLKLOCKSLPENCFUFRCENSOSCENOSWEN0000
1210OSCTUN31:162000
15:0TUN[5:0]0000
1220SPLLCON31:16SPLL_BYPSPLLICLKSPLLREFDIV[5:0]SPLLFBDIV[9:0]2000
15:0SPLLFBDIV[9:0]SPLLRSTSPLL-FLOCKSPLLPOSTDIV[5:0]SPLLPWDNSPLLBSWSEL[2:0]0000
1230UPLLCON31:16UPLL_BYPUPLLREFDIV[5:0]UPLLFBDIV[9:0]2000
15:0UPLLFBDIV[9:0]UPLLRSTUPLL-FLOCKUPLLPOSTDIV[5:0]UPLLPWDNUPLLBSWSEL[2:0]0000
1240BTPLLCON31:16BTPLL_BYPBTPLLICLKBTCLKOUTENBTPLLREFDIV[5:0]BTPLLFBDIV[9:0]2000
15:0BTPLLFBDIV[9:0]BTPLLRSTBTPLL-FLOCKBTPLLPOSTDIV[5:0]BTPLLPWDNBTPLLBSWSEL[2:0]0000
1250EWPLLCON31:16EWPLL_BYPEWPLLICLKETHICLKOUTENEWPLLREFDIV[5:0]EWPLLFBDIV[9:0]2000
15:0EWPLLFBDIV[9:0]EWPLLRSTEWPLL-FLOCKEWPLLPOSTDIV[5:0]EWPLLPWDNEWPLLBSWSEL[2:0]0000
12A0REFO1CON31:16RODIV[14:0]2000
15:0ONSIDLOERSLPDIVSWENACTIVEROSEL[3:0]0000
12B0REFO1TRIM31:16ROTRIM[8:0]2000
15:00000
12C0REFO2CON31:16RODIV[14:0]2000
15:0ONSIDLOERSLPDIVSWENACTIVEROSEL[3:0]0000
12D0REFO2TRIM31:16ROTRIM[8:0]2000
15:00000
12E0REFO3CON31:16RODIV[14:0]2000
15:0ONSIDLOERSLPDIVSWENACTIVEROSEL[3:0]0000
12F0REFO3TRIM31:16ROTRIM[8:0]2000
15:00000
1300REFO4CON31:16RODIV[14:0]2000
15:0ONSIDLOERSLPDIVSWENACTIVEROSEL[3:0]0000
1310REFO4TRIM31:16ROTRIM[8:0]2000
15:00000
1320PB1DIV31:160000
15:0PB1DIVONPBDIVRDYPBDIV[0:0]0000

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 13.3 "CLR, SET and INV Registers" for more
information.
2: Reset values are dependent on the CFGCONx Configuration bits and the type of Reset.

TABLE 11-2: OSCILLATOR CONFIGURATION REGISTER MAP (CONTINUED)

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, 0x5 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: Reset values are dependent on the CFGCONx Configuration bits and the type of Reset.

REGISTER 11-1: OSCCON: CRU OSCILLATOR CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 RW/L-0 R/W/L-0R/W/L-0
— — —— — FRCDIV[2:0]
23:16R/W/L-0U-0R/W/L-1U-0U-0U-0U-0U-0
DRMEN2SPDSLP
15:8R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
COSC[3:0]NOSC[3:0]
7:0R/W/L-0U-0U-0R/W/L-0R/W/HS/L-0R/W/L-1R/W/L-1R/W/HC/L-1
CLKLOCKSLPENCFUFRCENSOSCENOSWEN

Legend: HC = Hardware Cleared HS = Hardware Set

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

L = Value set from Configuration bits on POR

bit 31-27 Unimplemented: Read as '0'

bit 26-24 FRCDIV[2:0]: Fast RC Clock Divider bits

000 = FRC divided by 1 (default value)

001 = FRC divided by 2

010 = FRC divided by 4

011 = FRC divided by 8

100 = FRC divided by 16

101 = FRC divided by 32

110 = FRC divided by 64

111 = FRC divided by 256

bit 23 DRMEN: Enable Dream Mode bit

1 = When SLPEN = 1, DMA transfer complete causes Sleep mode to be entered

0 = DMA transfer has no effect

bit 22 Unimplemented: Read as '0'

bit 21 WAKE2SPD: 2-Speed startup enabled in Sleep mode bit

1 = When the device exits Sleep mode, the SYS_CLK is from FRC until the selected clock is ready

0 = When the device exits Sleep mode, the SYS_CLK is from the selected clock

bit 20-16 Unimplemented: Read as '0'

bit 15-12 COSC[3:0]: Current Oscillator Selection bits (Read-only)

0000 = Fast RC Oscillator (FRC) divided by OSCCON.FRCDIV (supports FRC/16 and FRC/1)

0001 = System PLL (SPLL module) (input clock and divider set by SPLLCON)

0010 = Primary Oscillator (POSC)

0011 = USB PLL (UPLL module) (input clock and divider set by UPLLCON)

0100 = Secondary Oscillator (SOSC)

0101 = Low-Power RC Oscillator (LPRC)

0110 = BT PLL (input clock and divider set by BTPLLCON)

0111 = EWPLL Ethernet clock (input clock and divider set by EWPLLCON)

1000 = EWPLL Wi-Fi clock (input clock and divider set by EWPLLCON)

Note 1: Loaded with NOSC[3:0] at the completion of a successful clock switch.

2: Set to FRC value (0000) when FSCM detects a failure and switches clock to FRC.

Note: The system unlock sequence must be done before this register can be written.

REGISTER 11-1: OSCCON: CRU OSCILLATOR CONTROL REGISTER (CONTINUED)

bit 11-8 NOSC[3:0]: New Oscillator Selection bits

0000 = FRC divided by OSCCON. FRCDIV (supports FRC/16 and FRC/1)
0001 = SPLL module (input clock and divider set by SPLLCON)
0010 = POSC
0011 = UPLL mode (input clock divider set by UPLLCON), was POSC with PLL
0100 = SOSC
0101 = LPRC
0110 = BT PLL (input clock and divider set by BTPLLCON)
0111 = EWPLL Ethernet clock (input clock and divider set by EWPLLCON)
1000 = EWPLL Wi-Fi clock (input clock and divider set by EWPLLCON) 

bit 7 CLKLOCK: Clock Lock Enabled bit

1 = All clock and PLL configuration registers are locked. These include OSCCON, OSCTRIM, SPLLCON, UPLLCON, and PBxDIV.
0 = Clock and PLL selection registers are not locked, configurations may be modified 

Note 1: Once set, this bit can only be cleared via a device Reset.

2: When active, this bit prevents writes to the following registers: NOSC[3:0], and OSWEN.

bit 6-5 Unimplemented: Read as '0'

bit 4 SLPEN: Enable Sleep Mode bit

1 = When a WAIT instruction is executed, device enters Sleep mode
0 = When a WAIT instruction is executed, device enters Idle mode 

bit 3 CF: Clock Fail Detect bit (readable/writable/clearable by application)

1 = FSCM detects clock failure
0 = FSCM does not detect clock failure 

Note 1: Writing a '1' to this bit causes a clock switching sequence to be initiated by the clock switch state machine.

2: Reset when a valid clock switching sequence is initiated by the clock switch state machine.

3: This bit is set when clock fail event detected.

bit 2 UFRCEN: USB FRC Clock Enable bit

1 = Enable FRC as the clock source for the USB clock source
0 = Use the primary oscillator or UPLL as the USB clock source 

bit 1 SOSCEN: 32 kHz Secondary (LP) Oscillator Enable bit

1 = Enable SOSC
0 = Disable SOSC 

bit 0 OSWEN: Oscillator Switch Enable bit

1 = Request oscillator switch to selection specified by NOSC[3:0] bits
0 = Oscillator switch is complete 

Note 1: A Write of value '0' has no effect.

2: This bit is cleared by hardware after a successful clock switch; after redundant clock switch (NOSC = COSC) and when FSCM switches the oscillator to Fail-Safe Clock Source (FRC).

Note: The system unlock sequence must be done before this register can be written.

REGISTER 11-2: OSCTUN: FRC TUNING REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0U-0 U-0 U-0
— — —— —— —
23:16U-0 R-0U-0 U-0 U-0U-0 U-0 U-0
— — —— —— —
15:8U-0 R-0U-0 U-0 U-0U-0 U-0 U-0
— — —— —— —
7:0U-0 U-0R/W/L-0
— —TUN[5:0]
Legend:L = 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-6 Unimplemented: Read as '0'

bit 5-0 TUN[5:0]: Internal FRC Oscillator Tuning bits

This bit field specifies the user tuning capability for the internal FRC oscillator.

011111 = Center frequency +2%

011110 =

000001 =

000000 = Center frequency, oscillator is running at calibrated frequency (8MHz)

111111 =

111110 =

.

100001 =

100000 = Center frequency -2%

Note 1: The system unlock sequence must be done before this register can be written.

2: OSCTUN functionality has been provided to help customers compensate for temperature effects on the FRC frequency over a wide range of temperatures. The tuning step size is an approximation, and is neither characterized nor tested.

REGISTER 11-3: SPLLCON: SPLL CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-1 R/WW/L-1 U-0 U-0R/W-0 R/W/L-0R/W-0 R/W-0
SPLL_BYP SSPLLICLK— — SPLLREFDIV[5:2]
23:16R/W/L-0 R/WW/L-0 R/W/L-0R/W/L-0 R/W/L-0R/W/L-0 R/W/L-0W/L-0 R/W/L-0
SPLLREFDIV[1:0] SPLLFBDIV[9:4]
15:8R/W/L-0 R/WW/L-0 R/W/L-0R/W/L-0 R/W/L-0-1 R/W/L-0 R/WW/L-0 R/W/L-0
SPLLFBDIV[3:0]SPLLRSTSPLLFLOCKSPLLPOSTDIV1[5-4]
7:0R/W/L-0 R/WW/L-0 R/W/L-0R/W/L-0 R/W/L-0-1 R/W/L-0 R/WW/L-0 R/W/L-0
SPLLPOSTDIV1[3:0]SPLLPWDNSPLLBSWSEL[2:0]
Legend:L = 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 SPLL_BYP: SPLL Bypass bit; when this bit is set, the input clock REF bypasses PLL to PLLOUTx.

Note: Recommendation is to setup SPLL first before setting up other PLLs especially when using SYS-PLL for generating main system clock. Reset value must be 1, because PLL needs setup in SW for generating desired frequency.

bit 30 SPLLICLK: Source Input Clock Selection bit:

0 = POSC is the SPLL input clock source

1 = FRC is the SPLL input clock source

Note: The Reset value must be 1, because the POSC is not available upon Reset.

bit 29-28 Unimplemented: Read as '0'

bit 27-22 SPLLREFDIV[5:0]: Reference Frequency Divide bit. The recommended value of SPLLREFDIV is 5 for deriving the system clock of 200 MHz.

bit 21-12 SPLLFBDIV[9:0]: PLL Feedback Divider bit. The recommended value of SPLLFBDIV is 0x96 for deriving system clock of 200 MHz.

bit 11 SPLLRST: System PLL Reset bit

1 = Assert the Reset to the SPLL

0 = De-assert the Reset to the SPLL

bit 10 SPLLFLOCK: System PLL Force Lock bit

1 = Force the SPLL lock signal to be asserted

0 = Do not force the SPLL lock signal to be asserted

bit 9-4 SPLLPOSTDIV1[5:0]: First Post Divide Value bit. The recommended value of SPLLPOSTDIV is 6 for deriving system clock of 200 MHz.

bit 3 SPLLPWDN: PLL Power Down Register bit

1 = PLL is powered down

0 = PLL is active

bit 2-0 SPLLBSWSEL[2:0]: PLL Bandwidth Select bit

Use the frequency range that matches the PLL closed loop bandwidth as based on the reference frequency divided by REFDIV to be set to allow the PLL loop filter to work with the post-reference divider frequency. The recommended value of SPLLBSWSEL is 1 for deriving system clock of 200 MHz.

Note 1: The system unlock sequence must be done before this register can be written.

2: Using unrecommended values for these register bits may result invalid behavior of the device.

3: To reduce the system clock frequency from 200 MHz, it is recommended to change only the SPLLPOST-DIV values

REGISTER 11-4: UPLLCON: UPLL CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-1 U-0U-0 U-0 R/W-0 R/W/L-0R/W-0 R/W-0
UPLL_BYP— — —UPLLREFDIV[5:2]
23:16R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
UPLLREFDIV[1:0]UPLLFBDIV[9:4]
15:8R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-1R/W/L-0R/W/L-0R/W/L-0
UPLLFBDIV[3:0]UPLLRSTUPLLFLOCKUPLLPOSTDIV1[5-4]
7:0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-1R/W/L-0R/W/L-0R/W/L-0
UPLLPOSTDIV1[3:0]USPLLPWDNUPLLBSWSEL[2:0]
Legend:L = 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 UPLL_BYP: UPLL Bypass; when this bit is set, the input clock REF bypasses PLL to PLLOUTx.

Note: Recommendation is to setup SPLL first before setting up other PLLs especially when using SYS-PLL for generating main system clock. Reset value must be 1, because PLL needs setup in SW for generating desired frequency.

bit 30-28 Unimplemented: Read as '0'

bit 29-28 Unimplemented: Read as '0'

bit 27-22 UPLLREFDIV[5:0]: Reference Frequency Divide, 1 ≤ UPLLDIVR ≤ 63 , value of 0 is unused

bit 21-12 UPLLFBDIV[9:0]: PLL Feedback Divider, 16 ≤ UPLLFBDIV ≤ 1023, values of 0 to 15 are unused

bit 11 UPLLRST: USB PLL Reset

1 = Assert the reset to the UPLL

0 = De-assert the reset to the UPLL

bit 10 UPLLFLOCK: USB PLL Force Lock

1 = Force the UPLL lock signal to be asserted

0 = Do not force the UPLL lock signal to be asserted

bit 9-4 UPLLPOSTDIV1[5:0]: First Post Divide Value, 1 ≤ UPLLPOSTDIV1 ≤ 63 , value of 0 is unused

bit 3 UPLLPWDN: PLL Power Down Register bit

1 = PLL is powered down

0 = PLL is active

bit 2-0 UPLLBSWSEL[2:0]: PLL Bandwidth Select

Use the frequency range that matches the PLL closed loop bandwidth as based on the reference frequency divided by REFDIV to be set to allow the PLL loop filter to work with the post-reference divider frequency.

Note: The system unlock sequence must be done before this register can be written.

REGISTER 11-5: BTPLLCON: BTPLL CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-1 R/W/L-1 U-0 R/WW/L-0 R/W-0 RW/L-0 R/W-0 R/W-0
BTPLL_BYPBTPLLICLK— BTCLKOUTEN BTPLLREFDIV[5:2]
23:16R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
BTPLLREFDIV[1:0]BTPLLFBDIV[9:4]
15:8R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-1R/W/L-0R/W/L-0R/W/L-0
BTPLLFBDIV[3:0]BTPLLRSTBTPLLFLOCKBTPLLPOSTDIV[5-4]
7:0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-1R/W/L-0R/W/L-0R/W/L-0
BTPLLPOSTDIV1[3:0]BTPLLPWDNBTPLLBSWSEL[2:0]
Legend:L = 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 BTPLL_BYP: BTPLL Bypass; when this bit is set, the input clock REF bypasses PLL to PLLOUTx.

Note: Recommendation is to setup SPLL first before setting up other PLLs especially when using SYS-PLL for generating main system clock. Reset value must be 1, because PLL needs setup in SW for generating desired frequency.

bit 30 BTPLLICLK: Source Input Clock Selection bit:

0 = POSC is the BTPLL input clock source

1 = FRC is the BTPLL input clock source

Note: The Reset value must be 1, because the POSC is not available upon Reset.

bit 29 Unimplemented: Read as '0'

bit 28 BTCLKOUTEN: BT Clock Out pin Enable bit

1 = BT_CLK_OUT Pin is enabled

0 = BT_CLK_OUT Pin is disabled

bit 27-22 BTPLLREFDIV[5:0]: Reference Frequency Divide, 1 ≤ BTPLLDIVR ≤ 63 , value of 0 is unused

bit 21-12 BTPLLFBDIV[9:0]: PLL Feedback Divider, 16 ≤ BTPLLFBDIV ≤ 1023, values of 0 to 15 are unused

bit 11 BTPLLRST: BT PLL Reset

1 = Assert the reset to the BTPLL

0 = De-assert the reset to the BTPLL

bit 10 BTPLLFLOCK: BT PLL Force Lock

1 = Force the BTPLL lock signal to be asserted

0 = Do not force the BTPLL lock signal to be asserted

bit 9-4 BTPLLPOSTDIV1[5:0]: First Post Divide Value, 1 ≤ BTPLLPOSTDIV1 ≤ 63, value of 0 is unused

bit 3 BTPLLPWDN: PLL Power Down Register bit

1 = PLL is powered down

0 = PLL is active

bit 2-0 BTPLLBSWSEL[2:0]: PLL Bandwidth Select

Use the frequency range that matches the PLL closed loop bandwidth as based on the reference frequency divided by REFDIV to be set to allow the PLL loop filter to work with the post-reference divider frequency.

Note: The system unlock sequence must be done before this register can be written.

REGISTER 11-6: EWPLLCON: EWPLL CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-1 R/WW/L-1 U-0 R/WL-0 R/W-0 R/WW/L-0 R/W-0 R/W-00
EWPLL_BYPEWPLLICLK— ETHCLKOUTEN EWPLLLREFDIV[5:2]
23:16R/W/L-0 R/WW/L-0 R/W/L-0R/W/L-0 R/W/L-0R/W/L-0 R/W/L-0R/W/L-0 R/W/L-0
EWPLLREFDIV[1:0]EWPLLFBDIV[9:4]
15:8R/W/L-0 R/WW/L-0 R/W/L-0R/W/L-0 R/W/L-1R/W/L-0 R/W/L-0R/W/L-0 R/W/L-0
EWPLLFBDIV[3:0]EWPLLRSTEWPLLFLOCKEWPLLPOSTDIV1[5-4]
7:0R/W/L-0 R/WW/L-0 R/W/L-0R/W/L-0 R/W/L-1R/W/L-0 R/W/L-0R/W/L-0 R/W/L-0
EWPLLPOSTDIV1[3:0]EWPLLPWDNEWPLLBSWSEL[2:0]
Legend:L = 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 EWPLL_BYP: EWPLL Bypass; when this bit is set, the input clock REF bypasses PLL to PLLOUTx.

Note: Set up the SPLL first before setting up other PLLs, especially when using the SYSPLL for generating the main system clock. The Reset value must be '1' because the PLL needs to be set up in SW for generating the desired frequency.

bit 30 EWPLLICLK: Source Input Clock Selection bit:

0 = POSC is the EWPLL input clock source

1 = FRC is the EWPLL input clock source

Note: The Reset value must be '1' because the POSC is not available upon Reset. For Wi-Fi operation, this bit must be set to '0'. For Ethernet, when providing the reference clock to the external PHY, this bit must be set to '0'.

bit 29 Unimplemented: Read as '0'

bit 28 ETHCLKOUTEN: Ethernet Clock Out pin Enable bit

1 = ETH_CLK_OUT pin is enabled

0 = ETH_CLK_OUT pin is disabled

bit 27-22 EWPLLREFDIV[5:0]: Reference Frequency Divide, 1 ≤ EWPLLDIVR ≤ 63, value of 0 is unused

bit 21-12 EWPLLFBDIV[9:0]: PLL Feedback Divider, 16 ≤ EWPLLFBDIV ≤ 1023 , values of 0 to 15 are unused

1 = Assert the reset to the EWPLL

0 = De-assert the reset to the EWPLL

1 = Force the EWPLL lock signal to be asserted

0 = Do not force the EWPLL lock signal to be asserted

bit 9-4 EWPLLPOSTDIV1[5:0]: First Post Divide Value, 1 ≤ EWPLLPOSTDIV1 ≤ 63 , value of 0 is unused

bit 3 EWPLLPWDN: PLL Power Down Register bit

1 = PLL is powered down

0 = PLL is active

bit 2-0 EWPLLBSWSEL[2:0]: PLL Bandwidth Select

Use the frequency range that matches the PLL closed loop bandwidth as based on the reference frequency divided by REFDIV to be set to allow the PLL loop filter to work with the post-reference divider frequency.

Note: The system unlock sequence must be done before this register can be written.

REGISTER 11-7: REFOxCON: REFERENCE OSCILLATOR 1 CONTROL REGISTER (x = 1-4)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— RODIV[14:8]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
RODIV[7:0]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 H C/ R/W-0 HS/H C/ R-0
ONSIDLOER
7:0U-0U-0U-0U-0R/W-0R/W-0R/W-0R/W-0
ROSEL[3:0]
Legend:HC = Hardware ClearedHS = Hardware Set
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31 Unimplemented: Read as '0'

Reserved for expansion of RODIV[15]

bit 30-16 RODIV[14:0] Reference Clock Divider bits

Specifies 1/2 period of reference clock in the source clocks.

1111111111111111 = REFO clock is base clock frequency divided by 65,534 (32,767 *2)

111111111111110 = REFO clock is base clock frequency divided by 65,532 (32,766 * 2)

000000000000011 = REFO clock is base clock frequency divided by 6 (3*2)
000000000000010 = REFO clock is base clock frequency divided by 4 (2*2)
000000000000001 = REFO clock is base clock frequency divided by 2 (1*2)
000000000000000 = REFO clock is same frequency as base clock (no divider) 

Note: RODIV values (up to 0x1000) are used when trying to divide a highly loaded clock source.

bit 15 ON: Output Enable bit

1 = Reference oscillator module enabled
0 = Reference oscillator module disabled 

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Peripheral Stop in Idle Mode bit

1 = Discontinue module operation when device enters Idle mode
0 = Continue module operation in Idle mode 

bit 12 OE: Reference Clock Output Enable bit

1 = Reference clock is driven out on REFO pin
0 = Reference clock is not driven out on REFO pin 

bit 11 RSLP: Reference Oscillator Run in Sleep bit

1 = Reference oscillator output continues to run in Sleep mode
0 = Reference oscillator output is disabled in Sleep mode 

Note: This bit is ignored when ROSEL[3:0] = (0000 or 0001).

bit 10 Unimplemented: Read as '0'

bit 9 DIVSWEN: Clock RODIV/ROTRIM switch enabled

1 = Clock divider switching currently in progress
0 = Clock divider switching is completed 

bit 8 ACTIVE: Reference Clock Request Status bit

1 = Reference clock request is active (user must not update this REFOCON register)
0 = Reference clock request is not active (user can update this REFOCON register) 

bit 7-4 Unimplemented: Read as '0'

Note 1: REFOCON.ROSEL must not be written while the REFOCON.ACTIVE bit is '1' – Undefined behavior will result.
2: REFOCON must not be written when REFOCON[ON] != REFOCON[ACTIVE] – Undefined behavior will result. 

REGISTER 11-7: REFOXCON: REFERENCE OSCILLATOR 1 CONTROL REGISTER (x = 1-4) (CONTINUED)

bit 3-0 ROSEL[3:0]: Reference Clock Source Select bits

Select one of various clock sources to be used as the reference clock.

1100 - 1111 = Reserved
1011 = RE F I P i n
1010 = BTPLL clock(2)
1001 = EWPLL Wi-Fi clock
1000 = EWPLL Ethernet clock
0111 = System PLL
0110 = USB PLL
0101 = SOSC
0100 = L P R C
0011 = F R C
0010 = POSC
0001 = Peripheral clock (reference clock reflects any peripheral clock switching)
0000 = System clock (reference clock reflects any device clock switching) 

Note 1: REFOCON.ROSEL must not be written while the REFOCON.ACTIVE bit is '1' – Undefined behavior will result.

2: REFOCON must not be written when REFOCON[ON] != REFOCON[ACTIVE] - Undefined behavior will result..

REGISTER 11-8: REFOxTRIM: REFERENCE OSCILLATOR 1 TRIM REGISTER (x = 1-4)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
ROTRIM[8:1]
23:16R/W-0 U-0U-0 U-0 U-0U-0 U-0
ROTRIM[0]— — —— — —
15:8U-0 R-0 U-0U-0 U-0U-0 U-0
— — —— — —
7:0U-0 U-0 U-0U-0 U-0U-0 U-0
— — —— — —

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-23 ROTRIM[8:0] Trim bits - Provides fractional additive to RODIV value for 1/2 period of REFO1 clock

0000_0000_0 = 0/512 (0.0) divisor added to RODIV value
0000_0000_1 = 1/512 (0.001953125) divisor added to RODIV value
0000_0001_0 = 2/512 (0.00390625) divisor added to RODIV value 
100000000 = 256/512 (0.5000) divisor added to RODIV value
1111_1111_0 = 510/512 (0.99609375) divisor added to RODIV value
1111_1111_1 = 511/512 (0.998046875) divisor added to RODIV value 

Note: ROTRIM values greater than zero are only valid when RODIV values are greater than 0.

bit 22-0 Unimplemented: Read as '0'

Note: REFOxTRIM must not be written when REFOxCON[ON] != REFOxCON[ACTIVE] - Undefined behavior will result.

REGISTER 11-9: PBxDIV: PERIPHERAL BUS 'x' CLOCK DIVISOR CONTROL REGISTER (x = 1-6)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8R-1 U-0U-0 U-0 R-1 U-0U-0 U-0
PBxDIVON— — —PBDIVRDY— —
7:0U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-1
PBDIV[6:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15 PBxDIVON: Peripheral Bus 'x' Output Clock Enable bit

1 = Output clock is enabled

0 = Output clock is disabled

Note 1: PB1DIV[PB1DIVON] bit cannot be written to a '0', as this clock is used by CRU.

2: PB6DIV[PB6DIVON] bit cannot be written to a '0', as this clock is used by CPU.
3: PB3DIV[PB3DIVON] bit cannot be written to a '0', as this clock is used by Wi-Fi subsystem.
4: PB4DIV[PB4DIVON] bit cannot be written to a '0', as this clock is used by Deep Sleep Controller.

bit 14-12 Unimplemented: Read as '0'

bit 11 PBDIVRDY: Peripheral Bus 'x' Clock Divisor Ready bit

1 = Clock divisor logic is not switching divisors and the PBxDIV[6:0] bits may be written
0 = Clock divisor logic is currently switching values and the PBxDIV[6:0] bits cannot be written

bit 10-7 Unimplemented: Read as '0'

bit 6-0 PBDIV[6:0]: Peripheral Bus 'x' Clock Divisor Control bits

1111111 = PBCLKx is SYSCLK divided by 128

1111110 = PBCLKx is SYSCLK divided by 127

0000011 = PBCLKx is SYSCLK divided by 4

0000010 = PBCLKx is SYSCLK divided by 3

0000001 = PBCLKx is SYSCLK divided by 2

0000000 = PBCLKx is SYSCLK divided by 1

Note 1: The system unlock sequence must be done before this register can be written.

2: The PB4_CLK frequency must be less than 25 MHz for reliable device operation.

REGISTER 11-10: SLEWCON: SLEW RATE CONTROL FOR CLOCK SWITCHING REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 R/W-cfgR/W-cfg R/W-cfg R/W-cfg
SLWDLY[3:0]
23:16U-0 U-0U-0 U-0 R/W-cfgR/W-cfg R/W-cfg R/W-cfg
— — —SYSDIV[3:0]
15:8U-0 U-0U-0 U-0 U-0R/W-cfgR/W-cfg R/W-cfg
— — —— —SLWDIV[2:0]
7:0U-0 U-0U-0 U-0 U-0R/W-cfgR/W-cfg R/W-cfg
UPENDNENBUSY
Legend:cfg- Configurable at 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-28 Unimplemented: Read as '0'

bit 27-24 SLWDLY[3:0]: Number of clocks generated at each slew step for a clock switch

0000 = 1 clock is generated at each slew step

0001 = 2 clocks is generated at each slew step

1111 = 16 clocks is generated at each slew step

bit 19-16 SYSDIV[3:0]: PBx Peripheral Clock Divisor Control bit

1111 = SYSCLK is divided by 16

1110 = SYSCLK is divided by 15

0010 = SYSCLK is divided by 3

0001 = SYSCLK is divided by 2

0000 = SYSCLK is not divided

bit 15-11 Unimplemented: Read as '0'.

bit 10-8 SLWDIV[2:0]: Slew Divisor Steps Control bits

These bits control the maximum division steps used when slewing during a frequency change.

111 = Steps are divided by 128, 64, 32, 16, 8, 4, 2, and then no divisor 110 = Steps are divided by 64, 32, 16, 8, 4, 2, and then no divisor

101 = Steps are divided by 32, 16, 8, 4, 2, and then no divisor

100 = Steps are divided by 16, 8, 4, 2, and then no divisor

011 = Steps are divided by 8, 4, 2, and then no divisor

010 = Steps are divided by 4, 2, and then no divisor

001 = Steps are divided by 2, and then no divisor

000 = No divisor is used during slewing

Note: Each divisor step lasts 4 clocks.

bit 7-3 Unimplemented: Read as '0'

Note 1: The system unlock sequence must be done before this register can be written.

2: Updates to this register do not take affect until OSCCON[OSWEN] is set.

REGISTER 11-10: SLEWCON: SLEW RATE CONTROL FOR CLOCK SWITCHING REGISTER (CONTINUED)

bit 2 UPEN: Upward Slew Enable bit

Enable clock slew for switching up to faster clocks

1 = Slewing enabled for switching to a higher frequency

0 = Slewing disabled for switching to a higher frequency

bit 1 DNEN: Downward Slew Enable bit

Enable clock slew for switching down to slower clocks

1 = Slewing enabled for switching to a lower frequency

0 = Slewing disabled for switching to a lower frequency

bit 0 BUSY: Clock Switch Slewing Active Status bit (Read-only)

0 = Clock switch has reached its final value

1 = Clock frequency is actively slewed

Note 1: The system unlock sequence must be done before this register can be written.

2: Updates to this register do not take affect until OSCCON[OSWEN] is set.

REGISTER 11-11: CLKSTAT: CLOCK STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0U-0 U-0U-0 U-0
— — —— — —
23:16U-0 U-0U-0 U-0U-0 U-0U-0 U-0
— — —— — —
15:8U-0U-0U-0U-0R/HS/HC-0R/HS/HC-0R/HS/HC-0R/HS/HC-0
SYSCLKRDYPB1CLKRDYSPLLALTRDYWIFICLKRDY
7:0R/HS/HC-0R/HS/HC-0R/HS/HC-0R/HS/HC-0R/HS/HC-0R/HS/HC-0R/HS/HC-0R/HS/HC-0
ETHPLLRDYBTPLLRDYLPRCRDYSOSCRDYUPLLRDYPOSCRDYSPLLRDYFRCRDY
Legend:HC = Hardware SetHC = Hardware Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-12 Unimplemented: Read as '0'

bit 11 SYSCLKRDY: System Clock Ready Status bit

0 = SYSCLK is not stable and not ready
1 = SYSCLK is stable and ready

bit 10 PB1CLKRDY: PB1 Clock Ready Status bit

0 = PB1CLK is not stable and not ready
1 = PB1CLK is stable and ready

bit 9 SPLLALTRDY: System PLL Ready Status bit

0 = SPLL alternate output is not stable and not ready
1 = SPLL alternate output is stable and ready

bit 8 WIFICLKRDY: Wi-Fi Clock Ready Status bit

0 = WIFICCLK is not stable and not ready
1 = WIFICCLK is stable and ready

bit 7 ETHPLLRDY: ETHPLL Ready Status bit

0 = ETHPLL is not stable and not ready
1 = ETHPLL is stable and ready

bit 6 BTPLLRDY: Bluetooth PLL Ready Status bit

0 = BTPLL is not stable and not ready
1 = BTPLL is stable and ready

bit 5 LPRCRDY: LPRC Ready Status bit

0 = LPRC is not stable and not ready
1 = LPRC is stable and ready

bit 4 SOSCRDY: SOSC Ready Status bit

0 = SOSC is not stable and not ready
1 = SOSC is stable and ready

bit 3 UPLLRDY: USB PLL Ready Status bit

0 = UPLL is not stable and not ready
1 = UPLL is stable and ready

REGISTER 11-11: CLKSTAT: CLOCK STATUS REGISTER (CONTINUED)

bit 2 POSCRDY: Primary Oscillator Ready Status bit

0 = POSC is not stable and not ready

1 = POSC is stable and ready

bit 1 SPLLRDY: System PLL Ready Status bit

0 = SPLL Primary output is not stable and not ready

1 = SPLL Primary output is stable and ready

bit 0 FRCRDY: FRC Ready Status bit

0 = FRC is not stable and not ready

1 = FRC is stable and ready

REGISTER 11-12: CLKDIAG: USER CLOCK DIAGNOSTICS CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
7:0U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
ETHPLLSTOPUPLLSTOPSPLLSTOPLPRCSTOPFRCSTOPSOSCSTOPPOSCSTOP

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-15 Unimplemented: Read as '0'

bit 6 ETHPLLSTOP: ETHPLL Clock Stop Control bit

0 = ETHPLL clock source runs as normal
1 = ETHPLL clock source is stopped

bit 5 UPLLSTOP: UPLL Clock Stop Control bit

0 = UPLL clock source runs as normal
1 = UPLL clock source is stopped

bit 4 SPLLSTOP: SPLL Clock Stop Control bit

0 = SPLL clock source runs as normal
1 = SPLL clock source is stopped

bit 3 LPRCSTOP: LPRC Clock Stop Control bit

0 = LPRC clock source runs as normal
1 = LPRC clock source is stopped

bit 2 FRCSTOP: FRC Clock Stop Control bit

0 = FRC clock source runs as normal
1 = FRC clock source is stopped

bit 1 SOSCSTOP: SOSC Clock Stop Control bit

0 = SOSC clock source runs as normal
1 = SOSC clock source is stopped

bit 0 POSCSTOP: POSC Clock Stop Control bit

0 = POSC clock source runs as normal
1 = POSC clock source is stopped

Note: The system unlock sequence must be done before this register can be written.

12.0 FULL-SPEED USB ON-THE-GO (OTG)

Note 1: This data sheet summarizes the features of the PIC32MZ W1 of family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 27. "USB On-The-Go (OTG)" (DS61126) of the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

2: Some registers and associated bits described in this section may not be available on all devices. Refer to Section 6.0 "Memory Organization" in this data sheet for device-specific register and bit information.

The Universal Serial Bus (USB) module contains analog and digital components to provide a USB 2.0 full-speed and low-speed embedded host, full-speed device, and OTG implementation with minimum external components. This module in Host mode is intended for use as an embedded host and therefore does not implement a UHCI or OHCI controller.

The USB module consists of the following:

  • Clock generator
    • USB voltage comparators
  • Transceiver
  • Serial Interface Engine (SIE)
  • USB DMA controller
    • Pull-up and pull-down resistors
  • Register interface

The interface diagram of the PIC32 USB OTG module is illustrated in Figure 12-1.

The clock generator provides the 48 MHz clock required for USB full-speed and low-speed communication. The voltage comparators monitor the voltage on the V_BUS pin to determine the state of the bus. The transceiver provides the analog translation between the USB bus and the digital logic. The SIE is a state machine that transfers data to and from the endpoint buffers, and generates the hardware protocol for data transfers. The USB DMA controller transfers data between the data buffers in RAM and the SIE. The integrated pull-up and pull-down resistors eliminate the need for external signaling components. The register interface allows the CPU to configure and communicate with the module.

The PIC32 USB module has the following features:

  • USB full-speed support for host and device
  • Low-speed host support
  • USB OTG support
  • Integrated signaling resistors
  • Integrated analog comparators for VBUS monitoring
  • Integrated USB transceiver
  • Transaction handshaking performed by hardware
  • Endpoint buffering anywhere in system RAM
  • Integrated DMA to access system RAM and Flash

Note: The implementation and use of the USB specifications, as well as other third-party specifications or technologies, may require licensing; including, but not limited to, USB Implementers Forum, Inc. (USB-IF). The user is fully responsible for investigating and satisfying any applicable licensing obligations.

FIGURE 12-1: PIC32 USB INTERFACE DIAGRAM
Microchip PIC32MZ1025W104132 - FULL-SPEED USB ON-THE-GO (OTG) - 1

flowchart
graph TD
    subgraph Inputs
        A["XTAL_IN"] --> B["Primary Oscillator (POSC)"]
        C["XTAL_OUT"] --> D["SRP Charge"]
        E["V_BUS"] --> F["SRP Discharge"]
        G["D+(1)"] --> H["Host Pull-down"]
        I["D-(1)"] --> J["Host Pull-down"]
        K["ID(7)"] --> L["ID Pull-up"]
        M["V_BUSON(7)"] --> N["Transceiver"]
        O["V_USB"] --> P["Transceiver Power 3.3V"]
    end

    subgraph Outputs
        Q["USB Suspend"] --> R["USB VOLTAGE COMPARATORS"]
        S["Not POSC"] --> T["AND"]
        U["Sleep"] --> V["AND"]
        W["Div x"] --> X["UFIN(4)"]
        Y["UPLLIDIV(5)"] --> Z["PLL"]
        AA["Div 2"] --> AB["DIV"]
        AC["UPLLEN(5)"] --> AD["UPLENN(5)"]
        AE["UFRCEN(2)"] --> AF["UFRCEN(2)"]
    end

    subgraph Outputs
        AG["48 MHz USB Clock(6)"] --> AH["SIE"]
        AI["Registers and Control Interface"] --> AJ["DMA"]
        AK["System RAM"] --> AL["System RAM"]
    end

    A --> Q
    C --> Q
    D --> Q
    E --> Q
    F --> Q
    H --> Q
    J --> Q
    K --> Q
    L --> Q
    N --> Q
    P --> Q
    Q --> AH
    Q --> AI
    Q --> AK
    Q --> AL

Note 1: Pins can be used as digital inputs when USB is not enabled.
2: This bit field is contained in the OSCCON register.
3: This bit field is contained in the OSCTRM register.
4: USB PLL UF IN requirements: 4 MHz.
5: This bit field is contained in the CFGCON0 register.
6: A 48 MHz clock is required for proper USB operation.
7: Pins can be used as GPIO when the USB module is disabled.

12.1 USB OTG Control Registers

TABLE 12-1: USB REGISTERS MAP (1)

Legend: x = unknown value on Reset, — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: Except where 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 13.3 "CLR, SET and INV

Registers" for more information.

2: This register does not have associated CLR, SET, and INV registers.

3: All bits in this register are read-only; therefore, CLR, SET, and INV registers are not supported.

4: The Reset value for this bit is undefined.

TABLE 12-1: USB REGISTERS MAP ^(1) (CONTINUED)

Legend: x = unknown value on Reset, — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: Except where 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 13.3 "CLR, SET and INV
Registers" for more information.
2: This register does not have associated CLR, SET, and INV registers.
3: All bits in this register are read-only; therefore, CLR, SET, and INV registers are not supported.
4: The Reset value for this bit is undefined.

TABLE 12-1: USB REGISTERS MAP ^(1) (CONTINUED)

Legend: x = unknown value on Reset, — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: Except where 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 13.3 "CLR, SET and INV Registers" for more information.
2: This register does not have associated CLR, SET, and INV registers.
3: All bits in this register are read-only; therefore, CLR, SET, and INV registers are not supported.
4: The Reset value for this bit is undefined.

REGISTER 12-1: U1OTGIR: USB OTG INTERRUPT STATUS REGISTER

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bitK = Write '1' to clear-n = Bit Value at POR: (0, 1, x = unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 IDIF: ID State Change Indicator bit

Write a '1' to this bit to clear the interrupt.

1 = Change in ID state detected

0 = No change in ID state detected

bit 6 T1MSECIF: 1 Millisecond Timer bit

Write a '1' to this bit to clear the interrupt.

1 = 1 millisecond timer has expired

0 = 1 millisecond timer has not expired

bit 5 LSTATEIF: Line State Stable Indicator bit

Write a '1' to this bit to clear the interrupt.

1 = USB line state is stable for 1 ms, but different from last time

0 = USB line state is not stable for 1 ms

bit 4 ACTVIF: Bus Activity Indicator bit

Write a '1' to this bit to clear the interrupt.

1 = Activity on the D+, D-, ID or V_BUS pins has caused the device to wake up

0 = Activity has not been detected

bit 3 SESVDIF: Session Valid Change Indicator bit

Write a '1' to this bit to clear the interrupt.

1 = V_BUS voltage has dropped below the session end level

0 = V_BUS voltage has not dropped below the session end level

bit 2 SESENDIF: B-Device V_BUS Change Indicator bit

Write a '1' to this bit to clear the interrupt.

1 = A change on the session end input was detected

0 = No change on the session end input was detected

bit 1 Unimplemented: Read as '0'

bit 0 VBUSVDIF: A-Device V_BUS Change Indicator bit

Write a '1' to this bit to clear the interrupt.

1 = Change on the session valid input detected

0 = No change on the session valid input detected

REGISTER 12-2: U1OTGIE: USB OTG INTERRUPT ENABLE REGISTER

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 IDIE: ID Interrupt Enable bit

1 = ID interrupt enabled

0 = ID interrupt disabled

bit 6 T1MSECIE: 1 Millisecond Timer Interrupt Enable bit

1 = 1 millisecond timer interrupt enabled

0 = 1 millisecond timer interrupt disabled

bit 5 LSTATEIE: Line State Interrupt Enable bit

1 = Line state interrupt enabled

0 = Line state interrupt disabled

bit 4 ACTVIE: Bus Activity Interrupt Enable bit

1 = Bus activity interrupt enabled

0 = Bus activity interrupt disabled

bit 3 SESVDIE: Session Valid Interrupt Enable bit

1 = Session valid interrupt enabled

0 = Session valid interrupt disabled

bit 2 SESENDIE: B-Session End Interrupt Enable bit

1 = B-session end interrupt enabled

0 = B-session end interrupt disabled

bit 1 Unimplemented: Read as '0'

bit 0 VBUSVDIE: A- V_BUS Valid Interrupt Enable bit

1 = A-V_BUS valid interrupt enabled

0 = A - V_BUS valid interrupt disabled

REGISTER 12-3: U1OTGSTAT: USB OTG STATUS REGISTER

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 ID: ID Pin State Indicator bit

1 = No cable is attached or a type B cable has been plugged into the USB receptacle 0 = A "type A" OTG cable has been plugged into the USB receptacle

bit 6 Unimplemented: Read as '0'

bit 5 LSTATE: Line State Stable Indicator bit

1 = USB line state (U1CON[SE0] and U1CON[JSTATE]) has been stable for the last 1 ms 0 = USB line state (U1CON[SE0] and U1CON[JSTATE]) has not been stable for the last 1 ms

bit 4 Unimplemented: Read as '0'

bit 3 SESVD: Session Valid Indicator bit

1 = V_BUS voltage is above Session Valid on the A or B device 0 = V_BUS voltage is below Session Valid on the A or B device

bit 2 SESEND: B-Session End Indicator bit

1 = V_BUS voltage is below Session Valid on the B device 0 = V_BUS voltage is above Session Valid on the B device

bit 1 Unimplemented: Read as '0'

bit 0 VBUSVD: A- V_BUS Valid Indicator bit

1 = V_BUS voltage is above Session Valid on the A device 0 = V_BUS voltage is below Session Valid on the A device

REGISTER 12-4: U1OTGCON: USB OTG STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
15:8U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DPPULUPDMPULUPDPPULDWNDMPULDWNVBUSONOTGENVBUSCHGVBUSDIS

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 DPPULUP: D+ Pull-Up Enable bit

1 = D+ data line pull-up resistor is enabled

0 = D+ data line pull-up resistor is disabled

bit 6 DMPULUP: D- Pull-Up Enable bit

1 = D- data line pull-up resistor is enabled

0 = D- data line pull-up resistor is disabled

bit 5 DPPULDWN: D+ Pull-Down Enable bit

1 = D+ data line pull-down resistor is enabled

0 = D+ data line pull-down resistor is disabled

bit 4 DMPULDWN: D- Pull-Down Enable bit

1 = D- data line pull-down resistor is enabled

0 = D- data line pull-down resistor is disabled

bit 3 VBUSON: V_BUS Power-on bit

1 = V_BUS line is powered

0 = V_BUS line is not powered

bit 2 OTGEN: OTG Functionality Enable bit

1 = DPPULUP, DMPULUP, DPPULDWN and DMPULDWN bits are under software control

0 = DPPULUP, DMPULUP, DPPULDWN and DMPULDWN bits are under USB hardware control

bit 1 VBUSCHG: V_BUS Charge Enable bit

1 = V_BUS line is charged through a pull-up resistor

0 = V_BUS line is not charged through a resistor

bit 0 VBUSDIS: V_BUS Discharge Enable bit

1 = V_BUS line is discharged through a pull-down resistor

0 = V_BUS line is not discharged through a resistor

REGISTER 12-5: U1PWRC: USB POWER CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0U-0 U-0 U-0U-0 U-0
— — — —— — — —
23:16U-0 U-0 U-0U-0 U-0 U-0U-0 U-0
— — — —— — — —
15:8U-0 U-0 U-0U-0 U-0 U-0U-0 U-0
— — — —— — — —
7:0HS,HC-x U-0U-0 R/W-0R/W-0R/W-0R/W-0
UACTPND— —USLPGRDUSBBUSY ^(1) USUSPENDUSBPWR

Legend:

HC = Cleared by hardwareHS = Set by hardware
R = Readable bitW = Writable bitP = Programmable bit r = Reserved bit
U = Unimplemented bitK = Write '1' to clear-n = Bit Value at POR: (0, 1, x = unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 UACTPND: USB Activity Pending bit

1 = USB bus activity has been detected; but an interrupt is pending, it has not been generated yet

0 = An interrupt is not pending

bit 6-5 Unimplemented: Read as '0'

bit 4 USLPGRD: USB Sleep Entry Guard bit

1 = Sleep entry is blocked if USB bus activity is detected or if a notification is pending

0 = USB OTG module does not block Sleep entry

bit 3 USBBUSY: USB OTG module Busy bit ^(1)

1 = USB OTG module is active or disabled, but not ready to be enabled

0 = USB OTG module is not active and is ready to be enabled

Note: When USBPWR = 0 and USBBUSY = 1, status from all other registers is invalid and writes to all USB OTG module registers produce undefined results.

bit 2 Unimplemented: Read as '0'

bit 1 USUSPEND: USB Suspend Mode bit

1 = USB OTG module is placed in Suspend mode

(The 48 MHz USB clock is gated off. The transceiver is placed in a low-power state.)

0 = USB OTG module operates normally

bit 0 USBPWR: USB Operation Enable bit

1 = USB OTG module is turned on

0 = USB OTG module is disabled

(Outputs held inactive, device pins not used by USB, analog features are shut down to reduce power consumption.)

Note 1: This bit is not available on all devices. Refer to the specific device data sheet for details.

REGISTER 12-6: U1IR: USB INTERRUPT REGISTER

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bitK = Write '1' to clear-n = Bit Value at POR: (0, 1, x = unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 STALLIF: STALL Handshake Interrupt bit

Write a '1' to this bit to clear the interrupt.

1 = In Host mode, a STALL handshake was received during the handshake phase of the transaction. In Device mode, a STALL handshake was transmitted during the handshake phase of the transaction.

0 = STALL handshake has not been sent

bit 6 ATTACHIF: Peripheral Attach Interrupt bit ^(1)

Write a '1' to this bit to clear the interrupt.

1 = Peripheral attachment was detected by the USB OTG module

0 = Peripheral attachment was not detected

bit 5 RESUMEIF: Resume Interrupt bit ^(2)

Write a '1' to this bit to clear the interrupt.

1 = K-State is observed on the D+ or D- pin for 2.5 μs

0 = K-State is not observed

bit 4 IDLEIF: Idle Detect Interrupt bit

Write a '1' to this bit to clear the interrupt.

1 = Idle condition detected (constant Idle state of 3 ms or more)

0 = No Idle condition detected

bit 3 TRNIF: Token Processing Complete Interrupt bit ^(3)

Write a '1' to this bit to clear the interrupt.

1 = Processing of current token is complete; a read of the U1STAT register provides endpoint information

0 = Processing of current token not complete

bit 2 SOFIF: SOF Token Interrupt bit

Write a '1' to this bit to clear the interrupt.

1 = SOF token received by the peripheral or the SOF threshold reached by the host

0 = SOF token was not received nor threshold reached

Note 1: This bit is valid only if the HOSTEN bit is set (see Register 12-11), there is no activity on the USB for 2.5 s, and the current bus state is not SE0.

2: When not in Suspend mode, this interrupt must be disabled.

3: Clearing this bit will cause the STAT FIFO to advance.

4: Only error conditions enabled through the U1EIE register will set this bit.

5: Device mode.

6: Host mode.

REGISTER 12-6: U1IR: USB INTERRUPT REGISTER (CONTINUED)

bit 1 UERRIF: USB Error Condition Interrupt bit (4)

Write a '1' to this bit to clear the interrupt.

1 = Unmasked Error condition has occurred
0 = Unmasked Error condition has not occurred

bit 0 URSTIF: USB Reset Interrupt bit (Device mode) (5)

1 = Valid USB Reset has occurred
0 = No USB Reset has occurred

DETACHIF: USB Detach Interrupt bit (Host mode) ^(6)

1 = Peripheral detachment was detected by the USB OTG module
0 = Peripheral detachment was not detected

Note 1: This bit is valid only if the HOSTEN bit is set (see Register 12-11), there is no activity on the USB for 2.5 s, and the current bus state is not SE0.

2: When not in Suspend mode, this interrupt must be disabled.
3: Clearing this bit will cause the STAT FIFO to advance.
4: Only error conditions enabled through the U1EIE register will set this bit.
5: Device mode.
6: Host mode.

REGISTER 12-7: U1IE: USB INTERRUPT ENABLE REGISTER (1)

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 STALLIE: STALL Handshake Interrupt Enable bit

1 = STALL interrupt enabled

0 = STALL interrupt disabled

bit 6 ATTACHIE: ATTACH Interrupt Enable bit

1 = ATTACH interrupt enabled

0 = ATTACH interrupt disabled

bit 5 RESUMEIE: RESUME Interrupt Enable bit

1 = RESUME interrupt enabled

0 = RESUME interrupt disabled

bit 4 IDLEIE: Idle Detect Interrupt Enable bit

1 = Idle interrupt enabled

0 = Idle interrupt disabled

bit 3 TRNIE: Token Processing Complete Interrupt Enable bit

1 = TRNIF interrupt enabled

0 = TRNIF interrupt disabled

bit 2 SOFIE: SOF Token Interrupt Enable bit

1 = SOFIF interrupt enabled

0 = SOFIF interrupt disabled

bit 1 UERRIE: USB Error Interrupt Enable bit

1 = USB Error interrupt enabled

0 = USB Error interrupt disabled

bit 0 URSTIE: USB Reset Interrupt Enable bit ^(2)

1 = URSTIF interrupt enabled

0 = URSTIF interrupt disabled

DETACHIE: USB Detach Interrupt Enable bit(3)

1 = DATTCHIF interrupt enabled

0 = DATTCHIF interrupt disabled

Note 1: For an interrupt to propagate to the USBIF bit (IFS1[25]), the UERRIE bit (U1IE[1]) must be set.

2: Device mode.

3: Host mode.

REGISTER 12-8: U1EIR: USB ERROR INTERRUPT STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
7:0R/K-0R/K-0R/K-0R/K-0R/K-0R/K-0R/K-0R/W-0
BTSEFBMXEFDMAEF(1)BTOEF(2)DFN8EFCRC16EFCRC5EF(3,4)PIDEF
EOFEF(5)

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bitK = Write '1' to clear-n = Bit Value at POR: ('0', '1', x = unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 BTSEF: Bit Stuff Error Flag bit

Write a '1' to this bit to clear the interrupt.

1 = Packet rejected due to bit stuff error

0 = Packet accepted

bit 6 BMXEF: Bus Matrix Error Flag bit

Write a '1' to this bit to clear the interrupt.

1 = The base address of the BDT or the address of an individual buffer pointed to by a BDT entry, is invalid.

0 = No address error

bit 5 DMAEF: DMA Error Flag bit ^(1)

Write a '1' to this bit to clear the interrupt.

1 = USB DMA error condition detected

0 = No DMA error

bit 4 BTOEF: Bus Turnaround Time-Out Error Flag bit ^(2)

Write a '1' to this bit to clear the interrupt.

1 = Bus turnaround time-out has occurred

0 = No bus turnaround time-out

bit 3 DFN8EF: Data Field Size Error Flag bit

Write a '1' to this bit to clear the interrupt.

1 = Data field received is not an integral number of bytes

0 = Data field received is an integral number of bytes

Note 1: This type of error occurs when the module's request for the DMA bus is not granted in time to service the module's demand for memory, resulting in an overflow or underflow condition, and/or the allocated buffer size is not sufficient to store the received data packet causing it to be truncated.

2: This type of error occurs when more than 16-bit-times of Idle from the previous End-of-Packet (EOP) has elapsed.

3: This type of error occurs when the module is transmitting or receiving data and the SOF counter has reached zero.

4: Device mode.

5: Host mode.

REGISTER 12-8: U1EIR: USB ERROR INTERRUPT STATUS REGISTER (CONTINUED)

bit 2 CRC16EF: CRC16 Failure Flag bit

Write a '1' to this bit to clear the interrupt.

1 = Data packet rejected due to CRC16 error

0 = Data packet accepted

bit 1 CRC5EF: CRC5 Host Error Flag bit (3,4)

Write a '1' to this bit to clear the interrupt.

1 = Token packet rejected due to CRC5 error

0 = Token packet accepted

EOFEF: EOF Error Flag bit ^(5)

1 = EOF error condition detected

0 = No EOF error condition

bit 0 PIDEF: PID Check Failure Flag bit

1 = PID check failed

0 = PID check passed

Note 1: This type of error occurs when the module's request for the DMA bus is not granted in time to service the module's demand for memory, resulting in an overflow or underflow condition, and/or the allocated buffer size is not sufficient to store the received data packet causing it to be truncated.

2: This type of error occurs when more than 16-bit-times of Idle from the previous End-of-Packet (EOP) has elapsed.

3: This type of error occurs when the module is transmitting or receiving data and the SOF counter has reached zero.

4: Device mode.

5: Host mode.

REGISTER 12-9: U1EIE: USB ERROR INTERRUPT ENABLE REGISTER (1)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — — —
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BTSEEBMXEEDMAEEBTOEEDFN8EECRC16EECRC5EE ^(2) PIDEE
EOFEE ^(3)

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 BTSEE: Bit Stuff Error Interrupt Enable bit

1 = BTSEF interrupt enabled
0 = BTSEF interrupt disabled

bit 6 BMXEE: Bus Matrix Error Interrupt Enable bit

1 = BMXEF interrupt enabled
0 = BMXEF interrupt disabled

bit 5 DMAEE: DMA Error Interrupt Enable bit

1 = DMAEF interrupt enabled
0 = DMAEF interrupt disabled

bit 4 BTOEE: Bus Turnaround Time-Out Error Interrupt Enable bit

1 = BTOEF interrupt enabled
0 = BTOEF interrupt disabled

bit 3 DFN8EE: Data Field Size Error Interrupt Enable bit

1 = DFN8EF interrupt enabled
0 = DFN8EF interrupt disabled

bit 2 CRC16EE: CRC16 Failure Interrupt Enable bit

1 = CRC16EF interrupt enabled
0 = CRC16EF interrupt disabled

bit 1 CRC5EE: CRC5 Host Error Interrupt Enable bit ^(2)

1 = CRC5EF interrupt enabled
0 = CRC5EF interrupt disabled

EOFEE: EOF Error Interrupt Enable bit ^(3)

1 = EOF interrupt enabled
0 = EOF interrupt disabled

Note 1: For an interrupt to propagate USBIF bit (IFS1[25]), the UERRIE bit (U1IE[1]) must be set.

2: Device mode.
3: Host mode.

REGISTER 12-9: U1EIE: USB ERROR INTERRUPT ENABLE REGISTER (1) (CONTINUED)

bit 0 PIDEE: PID Check Failure Interrupt Enable bit

1 = PIDEF interrupt enabled
0 = PIDEF interrupt disabled

Note 1: For an interrupt to propagate USBIF bit (IFS1[25]), the UERRIE bit (U1IE[1]) must be set.

2: Device mode.

3: Host mode.

REGISTER 12-10: U1STAT: USB STATUS REGISTER ^(1)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
15:8U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
7:0R-xR-xR-xR-xR-xR-xU-0U-0
ENDPT[3:0]DIRPPBI

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7-4 ENDPT[3:0]: Encoded Number of Last Endpoint Activity bits (Represents the number of the BDT, updated by the last USB transfer.)

1111 = Endpoint 15

1110 = Endpoint 14

0001 = Endpoint 1

0000 = Endpoint 0

bit 3 DIR: Last BD Direction Indicator bit

1 = Last transaction was a TX

0 = Last transaction was a RX

bit 2 PPBI: Ping-pong BD Pointer Indicator bit

1 = Last transaction was to the ODD BD bank

0 = Last transaction was to the EVEN BD bank

bit 1-0 Unimplemented: Read as '0'

Note 1: The U1STAT register is a window into a 4 byte FIFO maintained by the USB OTG module. U1STAT value is only valid when the TRNIF bit (U1IR[3]) is active. Clearing the TRNIF bit (U1IR[3]) advances the FIFO. Data in register is invalid when the TRNIF bit (U1IR[3]) = 0.

REGISTER 12-11: U1CON: USB CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
7:0R-xR-xR/W-0R/W-0R/W-0R/W-0R/W-0U-0
JSTATESE0 PKTDIS^(4) USBRST HOSTEN^(2) RESUME^(3) PPBRST USBEN^(4)
TOKBUSY^(1,5) SOFEN^(5)

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 JSTATE: Live Differential Receiver JSTATE flag bit

1 = JSTATE detected on the USB

0 = No JSTATE detected

bit 6 SEO: Live Single-Ended Zero flag bit

1 = Single-Ended Zero detected on the USB

0 = No Single-Ended Zero detected

bit 5 PKTDIS: Packet Transfer Disable bit ^(4)

1 = Token and packet processing disabled (set upon SETUP token received)

0 = Token and packet processing enabled

TOKBUSY: Token Busy Indicator bit ^(1,5)

1 = Token being executed by the USB OTG module

0 = No token being executed

bit 4 USBRST: Module Reset bit ^(5)

1 = USB Reset generated

0 = USB Reset terminated

bit 3 HOSTEN: Host Mode Enable bit ^(2)

1 = USB host capability enabled

0 = USB host capability disabled

bit 2 RESUME: RESUME Signaling Enable bit ^(3)

1 = RESUME signaling activated

0 = RESUME signaling disabled

Note 1: Software is required to check this bit before issuing another token command to the U1TOK register, see Register 12-15.

2: All host control logic is reset any time that the value of this bit is toggled.

3: Software must set RESUME for 10 ms if the part is a function, or for 25 ms if the part is a host, and then clear it to enable remote wake-up. In Host mode, the USB OTG module will append a low-speed EOP to the RESUME signaling when this bit is cleared.

4: Device mode.

5: Host mode.

REGISTER 12-11: U1CON: USB CONTROL REGISTER (CONTINUED)

bit 1 PPBRST: Ping-Pong Buffers Reset bit

1 = Reset all Even/Odd buffer pointers to the EVEN BD banks
0 = Even/Odd buffer pointers not being Reset

bit 0 USBEN: USB OTG Module Enable bit (4)

1 = USB OTG module and supporting circuitry enabled
0 = USB OTG module and supporting circuitry disabled

SOFEN: SOF Enable bit ^(5)

1 = SOF token sent every 1 ms
0 = SOF token disabled

Note 1: Software is required to check this bit before issuing another token command to the U1TOK register, see Register 12-15.

2: All host control logic is reset any time that the value of this bit is toggled.
3: Software must set RESUME for 10 ms if the part is a function, or for 25 ms if the part is a host, and then clear it to enable remote wake-up. In Host mode, the USB OTG module will append a low-speed EOP to the RESUME signaling when this bit is cleared.
4: Device mode.
5: Host mode.

REGISTER 12-12: U1ADDR: USB ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0
23:16U-0 U-0 U-0 U-0 U-0 U-0
15:8U-0 U-0 U-0 U-0 U-0 U-0
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
LSPDENDEVADDR[6:0]

Legend:

R = Readable bit W = Writable bit P = Programmable bit r = Reserved bit

U = Unimplemented bit -n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 LSPDEN: Low-Speed Enable Indicator bit

1 = Next token command to be executed at low-speed
0 = Next token command to be executed at full-speed

bit 6-0 DEVADDR[6:0]: 7-bit USB Device Address bits

REGISTER 12-13: U1FRML: USB FRAME NUMBER LOW REGISTER

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: (‘0’, ‘1’, x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7-0 FRML[7:0]: 11-bit Frame Number Lower bits

The register bits are updated with the current frame number whenever a SOF TOKEN is received.

REGISTER 12-14: U1FRMH: USB FRAME NUMBER HIGH REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0U-0U-0U-0U-0U-0U-0U-0
23:16U-0U-0U-0U-0U-0U-0U-0U-0
15:8U-0U-0U-0U-0U-0U-0U-0U-0
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
FRMH[2:0]

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-3 Unimplemented: Read as '0'

bit 2-0 FRMH[2:0]: Upper 3 bits of the Frame Number bits

The register bits are updated with the current frame number whenever a SOF TOKEN is received.

REGISTER 12-15: U1TOK: USB TOKEN REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
7:0R/W-0 R/WR/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
PID[3:0](1)EP[3:0]

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7-4 PID[3:0]: Token Type Indicator bits ^(1)

0001 = OUT (TX) token type transaction

1001 = IN (RX) token type transaction

1101 = SETUP (TX) token type transaction

Note: All other values are reserved and must not be used.

bit 3-0 EP[3:0]: Token Command Endpoint Address bits

The four bit value must specify a valid endpoint.

Note 1: All other values are reserved and must not be used.

REGISTER 12-16: U1SOF: USB SOF THRESHOLD REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— —— ——
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— —— ——
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— —— ——
7:0R/W-0 R/WV-0 R/W-0 R/W0 R/W-0 R/W-0R/W-0 R/W-0
CNT[7:0]

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7-0 CNT[7:0]: SOF Threshold Value bits

Typical values of the threshold are:

0100 1010 = 64-byte packet

0010 1010 = 32-byte packet

0001 1010 = 16-byte packet

0001 0010 = 8-byte packet

REGISTER 12-17: U1BDTP1: USB BDT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
7:0R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0R/W-0 U-0
BDTPTRL[15:9]

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7-1 BDTPTRL[15:9]: BDT Base Address Low bits

This 7-bit value provides address bits 15 through 9 of the BDT base address, which defines the BDT's starting location in the system memory.

The 32-bit BDT base address is 512 byte aligned.

bit 0 Unimplemented: Read as '0'

REGISTER 12-18: U1BDTP2: USB BDT PAGE 2 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0U-0 U-0 U-0 U-0U-0
— — —— — —— —
23:16U-0 U-0U-0U-0 U-0 U-0 U-0U-0
— — —— — —— —
15:8U-0 U-0U-0U-0 U-0 U-0 U-0U-0
— — —— — —— —
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BDTPTRH[23:16]

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7-0 BDTPTRH[23:16]: BDT Base Address High bits

This 8-bit value provides address bits 23 through 16 of the BDT base address, which defines the BDT's starting location in the system memory.

The 32-bit BDT base address is 512 byte aligned.

REGISTER 12-19: U1BDTP3: USB BDT PAGE 3 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — —
7:0R/W-0 R/WR/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
BDTPTRU[31:24]

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7-0 BDTPTRU[31:24]: BDT Base Address Upper bits

This 8-bit value provides address bits 31 through 24 of the BDT base address, which defines the BDT's starting location in the system memory.

The 32-bit BDT base address is 512 byte aligned.

REGISTER 12-20: U1CNFG1: USB CONFIGURATION 1 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
7:0R/W-0R/W-0R/W-0R/W-0U-0U-0U-0R/W-0
UTEYEUOEMONUSBFRZUSBSIDL———UASUSPND

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 UTEYE: USB Eye-Pattern Test Enable bit

1 = Eye-Pattern test enabled

0 = Eye-Pattern test disabled

bit 6 UOEMON: USB OE Monitor Enable bit

1 = OE signal is active; it indicates intervals during which the D+/D- lines are driving

0 = OE signal is inactive

bit 5 USBFRZ: Freeze in Debug Mode bit

1 = When emulator is in Debug mode, module freezes operation

0 = When emulator is in Debug mode, module continues operation

bit 4 USBSIDL: Stop in Idle Mode bit

1 = Discontinue module operation when device enters Idle mode

0 = Continue module operation in Idle mode

bit 3-1 Unimplemented: Read as '0'

bit 0 UASUSPND: Automatic Suspend Enable bit

1 = USB OTG module automatically suspends upon entry to Sleep mode. See the USUSPEND bit (U1PWRC[1]) in Register 12-5.

0 = USB OTG module does not automatically suspend upon entry to Sleep mode. Software must use the USUSPEND bit (U1PWRC[1]) to suspend the module, including the USB 48 MHz clock

REGISTER 12-21: U1EP0-U1EP15: USB ENDPOINT CONTROL REGISTERS

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U
——————
23:16U-0 U-0U-0 U
——————
15:8U-0 U-0U-0 U
——————
7:0R/W-0 R/W-0 U-0 R/W-0R/W-0 R/W-0 R/W-0 R/W-0
LSPD RETRYDIS— EPCONDIS EPRXENEPTXENEPSTALLEPHSHK

Legend:

R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-8 Unimplemented: Read as '0'

bit 7 LSPD: Low-Speed Direct Connection Enable bit (Host mode and U1EP0 only)

1 = Direct connection to a low-speed device enabled

0 = Direct connection to a low-speed device disabled; hub required with PRE_PID

bit 6 RETRYDIS: Retry Disable bit (Host mode and U1EP0 only)

1 = Retry NAK'd transactions disabled

0 = Retry NAK'd transactions enabled; retry done in hardware

bit 5 Unimplemented: Read as '0'

bit 4 EPCONDIS: Bidirectional Endpoint Control bit

If EPTXEN = 1 and EPRXEN = 1:

1 = Disable endpoint n for control transfers; only TX and RX transfers are allowed

0 = Enable endpoint n for control (SETUP) transfers; TX and RX transfers are also allowed

Otherwise, this bit is ignored.

bit 3 EPRXEN: Endpoint Receive Enable bit

1 = Endpoint n receive enabled

0 = Endpoint n receive disabled

bit 2 EPTXEN: Endpoint Transmit Enable bit

1 = Endpoint n transmit enabled

0 = Endpoint n transmit disabled

bit 1 EPSTALL: Endpoint Stall Status bit

1 = Endpoint n is stalled

0 = Endpoint n is not stalled

bit 0 EPHSHK: Endpoint Handshake Enable bit

1 = Endpoint handshake enabled

0 = Endpoint handshake disabled (typically used for isochronous endpoints)

13.0 I/O PORTS

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 12. “I/O Ports” (DS60001120) in the “PIC32 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

General purpose I/O pins allow the PIC32MZ1025W104 family of devices to monitor and control other devices. To add flexibility and functionality, some pins are multiplexed with alternate function(s). These functions depend on which peripheral

features are on the device. In general, when a peripheral is functioning, that pin may not be used as a GPIO pin.

Some of the key features of the I/O ports are:

  • Individual output pin open-drain enable/disable
  • Individual input pin weak pull-up and pull-down
  • Monitor selective inputs and generate interrupt when change in pin state is detected
    • Operation during Sleep and Idle modes
  • Fast bit manipulation using CLR, SET and INV registers

The figure below illustrates a block diagram of a typical multiplexed I/O port.

FIGURE 13-1: BLOCK DIAGRAM OF A TYPICAL MULTIPLEXED PORT STRUCTURE
Microchip PIC32MZ1025W104132 - I/O PORTS - 1

flowchart
graph TD
    A["Peripheral Module"] --> B["Peripheral Output Enable"]
    A --> C["Peripheral Output Data"]
    D["PIO Module"] --> E["RD ODC"]
    D --> F["Data Bus"]
    D --> G["PB2_CLK"]
    D --> H["WR ODC"]
    D --> I["RD TRIS"]
    J["PPS Control"] --> K["PB2_CLK"]
    L["I/O Cell"] --> M["I/O Pin"]
    N["Output Multiplexers"] --> O["0-1"]
    P["Synchronization"] --> Q["Q-D"]
    P --> R["Q-CK"]
    S["Peripheral Input"] --> T["Peripheral Input Buffer"]
    U["WR LAT"] --> V["WR PORT"]
    W["RD LAT"] --> X["RD PORT"]
    Y["Sleep"] --> Z["PB2_CLK"]
    AA["Peripheral Input"] --> AB["R"]
    AC["0"] --> AD["0"]
    AE["1"] --> AF["1"]
    AG["0"] --> AH["0"]
    AI["0"] --> AJ["0"]
    AK["0"] --> AL["0"]
    AM["0"] --> AN["0"]
    AO["0"] --> AP["0"]
    AQ["0"] --> AR["0"]
    AS["0"] --> AT["0"]
    AU["0"] --> AV["0"]
    AW["0"] --> AX["0"]
    AY["Peripheral Module Enable"] --> AZ["Peripheral Output Enable"]
    style A fill:#f9f,stroke:#333
    style D fill:#ccf,stroke:#333
    style J fill:#cfc,stroke:#333
    style L fill:#fcc,stroke:#333

Legend: R = Peripheral input buffer types may vary. Refer to Table 3 for peripheral details.
Note: This block diagram is a general representation of a shared port/peripheral structure for illustration purposes only. The actual structure for any specific port/peripheral combination may be different than it is shown here.

13.1 Parallel I/O (PIO) Ports

All port pins have up to 14 registers directly associated with their operation as digital I/O. The data direction register (TRISx) determines whether the pin is an input or an output. If the data direction bit is a '1', then the pin is an input. All port pins are defined as inputs after a Reset. Reads from the latch (LATx) read the latch. Writes to the latch write the latch. Reads from the port (PORTx) read the port pins, while writes to the port pins write the latch.

13.1.1 OPEN-DRAIN CONFIGURATION

In addition to the PORTx, LATx, and TRISx registers for data control, some port pins can also be individually configured for either digital or open-drain output. This is controlled by the Open-Drain Control register, ODCx, associated with each port. Setting any of the bits configures the corresponding pin to act as an open-drain output.

13.1.2 CONFIGURING ANALOG AND DIGITAL PORT PINS

The ANSELx register controls the operation of the analog port pins. The port pins that are to function as analog inputs must have their corresponding ANSEL and TRIS bits set. In order to use port pins for I/O functionality with digital modules, such as timers, UARTs, and so on, the corresponding ANSELx bit must be cleared.

The ANSELx register has a default value of 0xFFFF; therefore, all pins that share analog functions are analog (not digital) by default.

If the TRIS bit is cleared (output) while the ANSELx bit is set, the digital output level (VOH or VOL) is converted by an analog peripheral, such as the ADC module or Comparator module.

When the PORT register is read, all pins configured as analog input channels are read as cleared (a low level).

Pins configured as digital inputs do not convert an analog input. Analog levels on any pin defined as a digital input (including the ANx pins) can cause the input buffer to consume current that exceeds the device specifications.

13.1.3 I/O PORT WRITE/READ TIMING

One instruction cycle is required between a port direction change or port write operation and a read operation of the same port. Typically this instruction would be an NOP.

13.1.4 INPUT CHANGE NOTIFICATION

The input change notification function of the I/O ports allows the PIC32MZ1025W104 family of devices to generate interrupt requests to the processor in response to a change-of-state on selected input pins. This feature can detect input change-of-states even in Sleep mode, when the clocks are disabled. Every I/O port pin can be selected (enabled) for generating an interrupt request on a change-of-state.

Seven control registers are associated with the Change Notice (CN) functionality of each I/O port. The CNENx/CNNEx registers contain the CN interrupt enable control bits for each of the input pins. Setting any of these bits enables a CN interrupt for the corresponding pins. CNENx enables a mismatch CN interrupt condition when the EDGEDETECT bit (CNCONx[11]) is not set. When the EDGEDETECT bit is set, CNNEx controls the negative edge while CNENx controls the positive.

The CNSTATx/CNFx registers indicate the status of change notice based on the setting of the EDGEDETECT bit. If the EDGEDETECT bit is set to '0', the CNSTATx register indicates whether a change occurred on the corresponding pin since the last read of the PORTx bit. If the EDGEDETECT bit is set to '1', the CNFx register indicates whether a change has occurred and through the CNNEx/CNENx registers the edge type of the change that occurred is also indicated.

Each I/O pin also has a weak pull-up and a weak pull-down connected to it. The pull-ups act as a current source or sink source connected to the pin, and eliminate the need for external resistors when push-button or keypad devices are connected. The pull-ups and pull-downs are enabled separately using the CNPUx and the CNPDx registers, which contain the control bits for each of the pins. Setting any of the control bits enables the weak pull-ups and/or pull-downs for the corresponding pins.

Note: Pull-ups and pull-downs on change notification pins must always be disabled when the port pin is configured as a digital output.

An additional control register (CNCONx) is shown in Register 13-3.

13.2 Registers for Slew Rate Control

Some I/O pins can be configured for various types of slew rate control on its associated port. This is controlled by the Slew Rate Control bits in the SRCON1x and SRCON0x registers that are associated with each I/O port. The slew rate control is configured using the corresponding bit in each register, as shown in the table below.

As an example, writing 0x0001, 0x0000 to SRCON1A and SRCON0A, respectively, will enable slew rate control on the RA0 pin and sets the slew rate to the slow edge rate.

TABLE 13-1: SLEW RATE CONTROL BIT SETTINGS ^(1)

SRCON1xSRCON0xDescription
11Slew rate control is enabled and is set to the slowest edge rate.
10Slew rate control is enabled and is set to the slow edge rate.
01Slew rate control is enabled and is set to the medium edge rate.
00Slew rate control is disabled and is set to the fastest edge rate.

Note 1: By default, all of the port pins are set to the fastest edge rate.

13.3 CLR, SET and INV Registers

Every I/O module register has a corresponding CLR (clear), SET (set) and INV (invert) register designed to provide fast atomic bit manipulations. As the name of the register implies, a value written to a SET, CLR or INV register effectively performs the implied operation, but only on the corresponding base register and only bits specified as '1' are modified. Bits specified as '0' are not modified.

Reading SET, CLR and INV registers return undefined values. To see the affects of a write operation to a SET, CLR or INV register, the base register must be read.

13.4 Peripheral Pin Select (PPS)

A major challenge in general purpose devices is providing the largest possible set of peripheral features while minimizing the conflict of features on I/O pins. The challenge is even greater on low pin-count devices. In an application where more than one peripheral needs to be assigned to a single pin, inconvenient workarounds in application code or a complete redesign may be the only option.

PPS configuration provides an alternative to these choices by enabling peripheral set selection and their placement on a wide range of I/O pins. By increasing the pinout options available on a particular device, users can better tailor the device to their entire application, rather than trimming the application to fit the device.

The PPS configuration feature operates over a fixed subset of digital I/O pins. Users may independently map the input and/or output of most digital peripherals to these I/O pins. PPS is performed in software and generally does not require the device to be reprogrammed. Hardware safeguards are included that prevent accidental or spurious changes to the peripheral mapping once it has been established.

13.4.1 AVAILABLE PINS

The number of available pins is dependent on the particular device and its pin count. Pins that support the PPS feature include the designation "RPn" in their full pin designation, where "RP" designates a remappable peripheral and "n" is the remappable port number.

13.4.2 AVAILABLE PERIPHERALS

The peripherals managed by the PPS are all digital-only peripherals. These include general serial communications (UART, SPI, and CAN), general purpose timer clock inputs, timer-related peripherals (input capture and output compare), interrupt-on-change inputs, and reference clocks (input and output).

In comparison, some digital-only peripheral modules are never included in the PPS feature. This is because the peripheral's function requires special I/O circuitry on a specific port and cannot be easily connected to multiple pins. These modules include I^2C among others. A similar requirement excludes all modules with analog inputs, such as the ADC.

A key difference between remappable and non-remappable peripherals is that remappable peripherals are not associated with a default I/O pin. The peripheral must always be assigned to a specific I/O pin before it can be used. In contrast, non-remappable peripherals are always available on a default pin, assuming that the peripheral is active and not conflicting with another peripheral.

When a remappable peripheral is active on a given I/O pin, it takes priority over all other digital I/O and digital communication peripherals associated with the pin. Priority is given regardless of the type of peripheral that is mapped. Remappable peripherals never take priority over any analog functions associated with the pin.

13.4.3 CONTROLLING PERIPHERAL PIN SELECT

PPS features are controlled through two sets of SFRs: one to map peripheral inputs, and one to map outputs. As they are separately controlled, a particular peripheral's input and output (if the peripheral has both) can be placed on any selectable function pin without constraint.

The association of a peripheral to a peripheral-selectable pin is handled in two different ways, depending on whether an input or output is being mapped.

13.4.4 INPUT MAPPING

The inputs of the PPS options are mapped on the basis of the peripheral. That is, a control register associated with a peripheral dictates the pin it will be mapped to. The [pin name]R registers, where [pin name] refers to the peripheral pins listed in Table 13-2, are used to configure peripheral input mapping (see Register 13-1). Each register contains set of 4-bit fields. Programming these bit fields with an appropriate value maps the RPn pin with the corresponding value to that peripheral. For any given device, the valid range of values for any bit field is shown in Table 13-2.

For example, the figure below illustrates the remappable pin selection for the U1RX input.

FIGURE 13-2: REMAPPABLE INPUT EXAMPLE FOR U1RX
Microchip PIC32MZ1025W104132 - INPUT MAPPING - 1

flowchart
graph TD
    A["RPA2"] --> B["U1RXR[3:0"]]
    C["RPA10"] --> B
    D["RPB2"] --> B
    E["RPn"] --> B
    B --> F["U1RX input to peripheral"]
    style B fill:#f9f,stroke:#333
    note right of B: Note: For input only, PPS functionality does not have priority over TRISx settings. Therefore, when configuring RPN pin for input, the corresponding bit in the TRISx register must also be configured for input (set to '1').

13.4.5 VIRTUAL INPUT PINS

Included in the input pin mappings are special inputs taken from nodes within the device. These nodes include outputs from built-in digital noise filters. These inputs may be used to filter a pin input before presenting that signal to another module like a ICAP or UART input.

This is accomplished by configuring a particular module to use PTG30 or PTG31 (which come from the PTG module) instead of a device pin, using the mapping.

TABLE 13-2: INPUT PIN SELECTION

Peripheral Pin[pin name]R SFR[pin name]R bits[pin name]R Value to RPn Pin Selection
INT4 INT4R INT4R[3:0] 4'b0000 = RPA04'b0001 = RPA44'b0010 = RPA124'b0011 = RPB04'b0100 = RPB44'b0101 = RPB84'b0110 = RPB124'b0111 = RPC04'b1000 = RPC44'b1001 = RPC94'b1010 = RPC134'b1011 = RPK04'b1100 = RPK44'b1100 = RPK84'b1101 = RPK124'b1111 = Reserved
INT0 INT0R INT0R[3:0]
T1CK T1CKR T1CKR[3:0]
T5CK T5CKR T5CKR[3:0]
IC4 IC4R IC4R[3:0]
U3RXU3RXRU3RXR[3:0]
SDI1SDI1RSDI1R[3:0]
ECOLECOLR ECOLR[3:0]
ETXCLKETXCLKRETXCLKR[3:0]
REFIREFIRREFIR[3:0]
OCFDOCFDROCFDR[3:0]
INT3 INT3R INT3R[3:0] 4'b0000 = RPA14'b0001 = RPA54'b0010 = RPA134'b0011 = RPB14'b0100 = RPB54'b0101 = RPB94'b0110 = RPB134'b0111 = RPC14'b1000 = RPC54'b1001 = RPC104'b1010 = RPC144'b1011 = RPK14'b1100 = RPK54'b1100 = RPK94'b1101 = RPK134'b1111 = Reserved
T2CK T2CKR T2CKR[3:0]
T6CK T6CKR T6CKR[3:0]
IC3 IC3R IC3R[3:0]
U1CTSU1CTSRU1CTSR[3:0]
U2RXU2RXRU2RXR[3:0]
SDI2SDI2RSDI2R[3:0]
ERXD3ERXD3RERXD3R[3:0]
OCFCOCFCROCFCR[3:0]
INT2 INT2R INT2R[3:0] 4'b0000 = RPA24'b0001 = RPA104'b0010 = RPA144'b0011 = RPB24'b0100 = RPB64'b0101 = RPB104'b0110 = RB144'b0111 = RPC24'b1000 = RPC64'b1001 = RPC114'b1010 = RPC154'b1011 = RPK24'b1100 = RPK64'b1100 = RPK104'b1101 = RPK144'b1111 = PTG30
T3CK T3CKR T3CKR[3:0]
T7CK T7CKR T7CKR[3:0]
IC1 IC1R IC1R[3:0]
U1RXU1RXRU1RXR[3:0]
U2CTSnU2CTSnRU2CTSnR[3:0]
C1RXC1RXRC1RXR[3:0]
ECRSECRSRECRSR[3:0]
ERXD2ERXD2RERXD2R[3:0]
SS1SS1RSS1R[3:0]
OCFBOCFBROCFBR[3:0]
INT1 INT1R INT1R[3:0] 4'b0000 = RPA34'b0001 = RPA114'b0010 = RPA154'b0011 = RPB34'b0100 = RPB74'b0101 = RPB114'b0110 = Reserved4'b0111 = RPC34'b1000 = RPC74'b1001 = RPC84'b1010 = RPC124'b1011 = RPK34'b1100 = RPK74'b1100 = RPK114'b1101 = Reserved4'b1111 = PTG31
T4CK T4CKR T4CKR[3:0]
IC2 IC2R IC2R[3:0]
U3CTSn U3CTSnR U3CTSnR[3:0]
SS2 SS2R SS2R[3:0]
C2RX C2RXRC2RXR[3:0]
OCFAOCFAROCFAR[3:0]

13.4.6 OUTPUT MAPPING

In contrast to inputs, the outputs of the PPS options are mapped on the basis of the pin. In this case, a control register associated with a particular pin dictates the peripheral output to be mapped. The RPnR registers (Register 13-2) are used to control output mapping. Like the [pin name]R registers, each register contains set of 4-bit fields. The value of the bit field corresponds to one of the peripherals, and that peripherals output is mapped to the pin (see Table 13-3 and the figure below).

A null output is associated with the output register Reset value of '0'. This is done to ensure that remappable outputs remain disconnected from all output pins by default.

13.4.7.1 Control Register Lock

Under normal operation, writes to the RPnR and [pin name]R registers are not allowed. Attempted writes appear to execute normally, but the contents of the registers remain unchanged. To change these registers, they must be unlocked in hardware. The register lock is controlled by the IOLOCK Configuration bit (CFGCON0[13]). Setting IOLOCK prevents writes to the control registers; clearing IOLOCK allows writes.

Note: To set or clear the IOLOCK bit, an unlock sequence must be executed. Refer to Section 42. "Oscillators with Enhanced PLL" in the "PIC32 Family Reference Manual" for details.

FIGURE 13-3: EXAMPLE OF
MULTIPLEXING OF REMAPPABLE OUTPUT FOR RPA0
RPA0R[3:0] Default U1TX Output U2RTS Output Output Data REFCLKO1 14 15

13.4.7 CONTROLLING CONFIGURATION CHANGES

Some restrictions on peripheral remapping are needed to prevent accidental configuration changes as the peripheral remapping can be changed during run time. The PIC32MZ1025W104 family of devices include two features to prevent alterations to the peripheral map:

• Control register lock sequence
- Configuration bit select lock

TABLE 13-3: OUTPUT PIN SELECTION

RPn Port Pin RPnR SFR RPnR bits RPnR Value to Peripheral Selection
RPA0 RPA0R RPA0R[4:0] 5'b00000 = No Connect5'b00001 = U1TX5'b00010 = U2RTS5'b00011 = SDO15'b00100 = SDO25'b00101 = OC15'b00110 = C1TX5'b10010 = REFO15'b10011 = PTG28
RPA4 RPA4R RPA4R[4:0]
RPA12 RPA12R RPA12R[4:0]
RPB0RPB0RRPB0R[4:0]
RPB4RPB4RRPB4R[4:0]
RPB8RPB8RRPB8R[4:0]
RPB12RPB12RRPB12R[4:0]
RPC0RPC0RRPC0R[4:0]
RPC4RPC4RRPC4R[4:0]
RPK0RPK0RRPK0R[4:0]
RPK4RPK4RRPK4R[4:0]
RPK8RPK8RRPK8R[4:0]
RPK12RPK12RRPK12R[4:0]
RPC9RPC9RRPC9R[4:0]
RPC13RPC13RRPC13R[4:0]
RPA1 RPA1R RPA1R[4:0] 5'b00000 = No Connect5'b00001 = U3TX5'b00011 = SDO15'b00100 = SDO25'b00101 = OC25'b00110 = C2TX5'b10010 = REFO25'b10011 = PTG295'b10110 = ETXERR
RPA5 RPA5R RPA5R[4:0]
RPA13 RPA13R RPA13R[4:0]
RPB1RPB1RRPB1R[4:0]
RPB5RPB5RRPB5R[4:0]
RPB9RPB9RRPB9R[4:0]
RPB13RPB13RRPB13R[4:0]
RPC1RPC1RRPC1R[4:0]
RPC5RPC5RRPC5R[4:0]
RPK1RPK1RRPK1R[4:0]
RPK5RPK5RRPK5R[4:0]
RPK9RPK9RRPK9R[4:0]
RPK13RPK13RRPK13R[4:0]
RPC10RPC10RRPC10R[4:0]
RPC14RPC14RRPC14R[4:0]
RPn Port PinRPnR SFRRPnR bitsRPnR Value to Peripheral Selection
RPA2 RPA2R RPA2R[4:0] 5'b00000 = No Connect5'b00010 = U3RTS5'b00011 = SS15'b00101 = OC35'b10010 = REFO35'b10011 = PTG305'b10110 = ETXD3
RPA10 RPA10R RPA10RRPA10R[4:0]
RPA14RPA14RRPA14R[4:0]
RPB2 RPB2R RPB2R[4:0]
RPB6 RPB6R RPB6R[4:0]
RPB10 RPB10R RPB10RR[4:0]
RPB14 RPB14R RPB14RR[4:0]
RPC2 RPC2R RPC2R[4:0]
RPC6 RPC6R RPC6R[4:0]
RPK2 RPK2R RPK2R[4:0]
RPK6 RPK6R RPK6R[4:0]
RPK10 RPK10R RPK10RR[4:0]
RPK14 RPK14R RPK14RR[4:0]
RPC11 RPC11R RPC11RR[4:0]
RPC15RPC15RRPC15R[4:0]
RPA3 RPA3R RPA3R[4:0] 5'b00000 = No Connect5'b00001 = U1RTS5'b00010 = U2TX5'b00100 = SS25'b00101 = OC45'b10010 = REFO45'b10011 = PTG315'b10110 = ETXD2
RPA11RPA11RRPA11R[4:0]
RPA15RPA15RRPA15R[4:0]
RPB3 RPB3R RPB3R[4:0]
RPB7 RPB7R RPB7R[4:0]
RPB11 RPB11R RPB11RR[4:0]
RPC3 RPC3R RPC3R[4:0]
RPC7 RPC7R RPC7R[4:0]
RPC8 RPC8R RPC8R[4:0]
RPK3 RPK3R RPK3R[4:0]
RPK7 RPK7R RPK7R[4:0]
RPK11RPK11RRPK11R[4:0]
RPC12RPC12RRPC12R[4:0]

13.5 Function Priority for Device Pins

Device pins have an associated priority order in which functionality is brought out on it. Availability of PPS functionality is impacted by this priority order. For example, if high-speed UART is enabled, pins PA6, PA7, PA8, and PA9 are given priority to be used as UART pins instead of PORT pins.

Refer to the following tables for the priority in which functions are brought out on each device pin.

Refer to Section 2.0 "PIC32MZ1025W104 SoC Description" for the mapping of device pin name to package pin numbers.

Note: Refer to the corresponding reference peripheral chapter for functionality details.

TABLE 13-4: PRIORITY FOR DEVICE PINS PA(N) (N = 0-15)

Pin Name Functions inPriority Order Reference Peripheral
PA0 SQICS0 SQI
CVDT17 CVD
RPA0 PPS
IOCA0 Change Notification
RA0 Port I/O
PA1 RPA1 PPS
1/CS1/FSYNC1 SPI
IOCA1 Change Notification
RA1 Port I/O
PA2 RPA2 PPS
SCL2 I2C
IOCA2 Change Notification
RA2 Port I/O
PA3 RPA3 PPS
SDA2I2C
IOCA3 Change Notification
RA3 Port I/O
PA4 RPA4 PPS
SCL1 I2C
IOCA4 Change Notification
RA4 Port I/O
PA5 RPA5 PPS
SDA1I2C
IOCA5 Change Notification
RA5 Port I/O
PA6 U1CTSn UART/USART
IOCA6 Change Notification
RA6 Port I/O
PA7 U1RTSn/U1BCLKUART/USART
IOCA7 Change Notification
RA7 Port I/O
PA8 U1RXUART/USART
IOCA8 Change Notification
RA8 Port I/O
Pin NameFunctions in Priority OrderReference Peripheral
PA9 U1TX UART/USART
IOCA9 Change Notification
RA9 Port I/O
PA10 AN17 ADC
CVD17 CVD
CVDR17 CVD
RPA10 PPS
CTRTM0 Timer
INT0 Edge Interrupt
IOCA10 Change Notification
RA10 Port I/O
PA11RPA11PPS
SCK2SPI
IOCA11Change Notification
RA11Port I/O
PA12 AN16 ADC
CVD16 CVD
CVDR16 CVD
RPA12 PPS
CTRTM1 Timer
IOCA12 Change Notification
RA12 Port I/O
PA13 AN15 ADC
ANN1ADC (Differential)
CVD15 CVD
CVDR15 CVD
RPA13 PPS
IOCA13 Change Notification
RA13 Port I/O
PA14 AN14 ADC
ANN0ADC (Differential)
CVD14 CVD
CVDR14 CVD
RPA14 PPS
IOCA14 Change Notification
RA14 Port I/O
PA15 AN13 ADC
CVD13 CVD
CVDR13 CVD
RPA15 PPS
IOCA15 Change Notification
RA15 Port I/O

TABLE 13-5: PRIORITY FOR DEVICE PINS PB(N) (N = 0-15)

Pin Name Functions in Priority Order Reference Peripheral
PB0 AN0 ADC
RPB0 PPS
IOCB0 Change Notification
RB0 Port I/O
PB1 AN1 ADC
CVD1 CVD
CVDR1 CVD
CVDT6 CVD
ETH_EXCLK_OUT Ethernet/Clock
RPB1 PPS
VBUSON USB
IOCB1 Change Notification
RB1 Port I/O
PB2 PGD1/EMUD1ICD
AN2 ADC
CVD2 CVD
CVDR2 CVD
CVDT5 CVD
RPB2 PPS
USBIDUSB
IOCB2 Change Notification
RB2 Port I/O
PB3 PGC1/EMUC1ICD
AN3 ADC
CVD3 CVD
CVDR3 CVD
CVDT4 CVD
RPB3 PPS
USBOENUSB
IOCB3 Change Notification
RB3 Port I/O
PB4 PGC2/EMUC2ICD
AN4 ADC
CVD4 CVD
CVDR4 CVD
CVDT3 CVD
RPB4 PPS
IOCB4 Change Notification
RB4 Port I/O
Pin NameFunctions in Priority OrderReference Peripheral
PB5 PGD2/EMUD2 ICD
AN5 ADC
CVD5 CVD
CVDR5 CVD
CVDT2 CVD
RTCC RTCC
RPB5 PPS
IOCB5 Change Notification
RB5 Port I/O
PB6 TMS JTAG
AN6 ADC
CVD6 CVD
CVDR6 CVD
CVDT1 CVD
RPB6 PPS
IOCB6 Change Notification
RB6 Port I/O
PB7 TDO JTAG
AN7 ADC
CVD7 CVD
CVDR7 CVD
CVDT0 CVD
RPB7 PPS
IOCB7 Change Notification
RB7 Port I/O
PB8 PGC4/EMUC4 ICD
TCK JTAG
AN8 ADC
CVD8 CVD
CVDR8 CVD
RPB8 PPS
IOCB8 Change Notification
RB8 Port I/O
PB9 PGD4/EMUD4 ICD/Test Entry
TDIJTAG
AN9 ADC
CVD9 CVD
CVDR9 CVD
RPB9 PPS
IOCB9 Change Notification
RB9 Port I/O
PB10 AN10 ADC
CVD10 CVD
CVDR10 CVD
LVDIN LVD Voltage Reference
RPB10 PPS
IOCB10 Change Notification
RB10 Port I/O
PB11 ANB0 ADC (Alternate)
RPB11 PPS
IOCB11 Change Notification
RB11 Port I/O
PB12 ANA0 ADC (Alternate)
RPB12 PPS
IOCB12 Change Notification
RB12 Port I/O
PB13 AN11 ADC
CVD11 CVD
CVDR11 CVD
RPB13 PPS
IOCB13 Change Notification
RB13 Port I/O
PB14 AN12 ADC
CVD12 CVD
CVDR12 CVD
RPB14 PPS
IOCB14 Change Notification
RB14 Port I/O
PB15 SOSCI Secondary Oscillator Input

TABLE 13-6: PRIORITY FOR DEVICE PIN PC(N) (N = 0-15)

Pin NameFunctions in Priority OrderReference Peripheral
PC0SQICS1SQI
CVDT18CVD
RPC0PPS
IOCC0Change Notification
RC0Port I/O

TABLE 13-6: PRIORITY FOR DEVICE PIN PC(N) (N = 0-15)

Pin NameFunctions in Priority OrderReference Peripheral
PC1 SQID3 SQI
CVDT19 CVD
RPC1 PPS
IOCC1 Change Notification
RC1 Port I/O
PC2 SQID2 SQI
CVDT20 CVD
RPC2 PPS
IOCC2 Change Notification
RC2 Port I/O
PC3 SQID1 SQI
CVDT21 CVD
RPC3 PPS
IOCC3 Change Notification
RC3 Port I/O
PC4 SCLKI Secondary Oscillator - Digital
SQID0 SQI
CVDT22 CVD
RPC4 PPS
IOCC4 Change Notification
RC4 Port I/O
PC5 SQICLK SQI
CVDT23 CVD
RPC5 PPS
IOCC5 Change Notification
RC5 Port I/O
PC6 RPC6 PPS
SCK1 SPI
IOCC6 Change Notification
RC6 Port I/O
PC7 RPC7 PPS
SDI1 SPI
IOCC7 Change Notification
RC7 Port I/O
PC8 RPC8 PPS
SDO1 SPI
IOCC8 Change Notification
RC8 Port I/O

TABLE 13-6: PRIORITY FOR DEVICE PIN PC(N) (N = 0-15)

Pin NameFunctions in Priority OrderReference Peripheral
PC9 CVDT7 CVD
ERXERR Ethernet
RPC9 PPS
IOCC9 Change Notification
RC9 Port I/O
PC10 CVDT8 CVD
ERXD1 Ethernet
RPC10 PPS
IOCC10 Change Notification
RC10 Port I/O
PC11 CVDT9 CVD
ERXD0 Ethernet
RPC11PPS
IOCC11Change Notification
RC11Port I/O
PC12 CVDT10CVD
ETH_CLK_OUTClock/Ethernet
ERXCLKEthernet
RPC12 PPS
IOCC12 Change Notification
RC12 Port I/O
PC13 CVDT11CVD
ETXEN Ethernet
RPC13 PPS
IOCC13 Change Notification
RC13 Port I/O
PC14 CVDT12CVD
ETXD1Ethernet
RPC14 PPS
IOCC14 Change Notification
RC14 Port I/O
PC15 CVDT13CVD
ETXD0Ethernet
RPC15 PPS
IOCC15 Change Notification
RC15 Port I/O

TABLE 13-7: PRIORITY FOR DEVICE PIN PK(N) (N = 0-15)

Pin Name Functions inPriority Order Reference Peripheral
PK0 RF_FE_3 Wi-Fi
RPK0 PPS
IOCK0 Change Notification
RK0 Port I/O
PK1 RF_FE_4 Wi-Fi
RPK1 PPS
IOCK1 Change Notification
RK1 Port I/O
PK2 RF_FE_1 Wi-Fi
AN19 ADC
CVD19 CVD
CVDR19 CVD
RPK2 PPS
IOCK2 Change Notification
RK2 Port I/O
PK3 RF_FE_2 Wi-Fi
AN18 ADC
CVD18 CVD
CVDR18 CVD
RPK3 PPS
IOCK3 Change Notification
RK3 Port I/O
PK4 VREGCTRL0Wi-Fi
BT_CLK_OUTOscillator
SCANDIAG8ATPG Scan
RPK4 PPS
IOCK4 Change Notification
RK4 Port I/O
PK5 VREGCTRL1Wi-Fi
PTA_WLAN_ACTIVEWi-Fi
RPK5 PPS
IOCK5 Change Notification
RK5 Port I/O
PK6 PTA_BT_PRIOWi-Fi
RPK6 PPS
IOCK6 Change Notification
RK6 Port I/O
PK7 PTA_BT_ACTIVEWi-Fi
RPK7 PPS
IOCK7 Change Notification
RK7 Port I/O
Pin NameFunctions in Priority OrderReference Peripheral
PK8 RF_FE_7 Wi-Fi
RPK8 PPS
IOCK8 Change Notification
RK8 Port I/O
PK9 RF_FE_8 Wi-Fi
RPK9 PPS
IOCK9 Change Notification
RK9 Port I/O
PK10 RF_FE_6 Wi-Fi
RPK10 PPS
IOCK10 Change Notification
RK10 Port I/O
PK11 RF_FE_5 Wi-Fi
RPK11 PPS
IOCK11 Change Notification
RK11 Port I/O
PK12 CVDT14CVD
ERXDV Ethernet
RPK12 PPS
IOCK12 Change Notification
RK12 Port I/O
PK13 CVDT15CVD
EMDIOEthernet
RPK13 PPS
IOCK13 Change Notification
RK13 Port I/O
PK14 CVDT16CVD
EMDCEthernet
RPK14 PPS
IOCK14 Change Notification
RK14 Port I/O
PK15 SOSCOSecondary Oscillator Output
RPK15 Port Input Only

13.6 I/O Ports Control Registers

TABLE 13-8: PERIPHERAL PIN SELECT OUTPUT REGISTER MAP

Legend: x = Unknown value on Reset; — = Unimplemented, read as 'c'; Reset values are shown in hexadecimal.

TABLE 13-9: PERIPHERAL PIN SELECT INPUT REGISTER MAP

Legend: x = Unknown value on Reset; — = Unimplemented, read as '0'; Reset values are shown in hexadecimal.

TABLE 13-9: PERIPHERAL PIN SELECT INPUT REGISTER MAP (CONTINUED)

Legend: x = Unknown value on Reset; — = Unimplemented, read as '0'; Reset values are shown in hexadecimal.

TABLE 13-10: PORTA REGISTER MAP

Virtual Address (BF82_#)Register Name(1)Bit RangeBitsAll Resets
31/15 3014 29/13 2812 27/11 2610 25/9 248 23/7 22/621/5 20/4 193 18/2 17/116/0
0000ANSELA31:160000
15:0ANSA15ANSA14ANSA13ANSA12ANSA100000
0010TRISA31:160000
15:0TRISA15TRISA14TRISA13TRISA12TRISA11TRISA10TRISA0TRISA8TRISA7TRISA6TRISA5TRISA4TRISA3TRISA2TRISA1TRISA00000
0020PORTA31:160000
15:0RA15RA14RA13RA12RA11RA10RA9RA8RA7RA6RA5RA4RA3RA2RA1RA02000
0030LATA31:160000
15:0LATA15LATA14LATA13LATA12LATA11LATA10LATA9LATA8LATA7LATA6LATA5LATA4LATA3LATA2LATA1LATA03000
0040ODCA31:160000
15:0ODCA15ODCA14ODCA13ODCA12ODCA11ODCA10ODCA9ODCA8ODCA7ODCA6ODCA5ODCA4ODCA3ODCA2ODCA1ODCA03000
0050CNPUA31:160000
15:0CNPUA15CNPUA14CNPUA13CNPUA12CNPUA11CNPUA10CNPUA9CNPUA8CNPUA7CNPUA6CNPUA5CNPUA4CNPUA3CNPUA2CNPUA1CNPUA03000
0060CNPDA31:160000
15:0CNPDA15CNPDA14CNPDA13CNPDA12CNPDA11CNPDA10CNPDA9CNPDA8CNPDA7CNPDA6CNPDA5CNPDA4CNPDA3CNPDA2CNPDA1CNPDA03000
0070CNCONA31:160000
15:0 ONEDGEDE- TECT0000
0080CNENA31:162000
15:0CNIEA15CNIEA14CNIEA13CNIEA12CNIEA11CNIEA10CNIEA9CNIEA8CNIEA7CNIEA6CNIEA5CNIEA4CNIEA3CNIEA2CNIEA1CNIEA03000
0090CNSTATA31:162000
15:0CNSTA- TA15CNSTA- TA14CNSTATA13CNSTA- TA12CNSTA- TA11CNSTA- TA10CNSTA- TA9CNSTATA8CNSTATA7CNSTA- TA6CNSTA- TA5CNSTATA4CNSTA- TA3CNSTA- TA2CNSTA- TA1CNSTA- TA00000
00A0CNNEA31:162000
15:0CNNEA15CNNEA14CNNEA13CNNEA12CNNEA11CNNEA10CNNEA9CNNEA8CNNEA7CNNEA6CNNEA5CNNEA4CNNEA3CNNEA2CNNEA1CNNEA03000

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 13-10: PORTA REGISTER MAP (CONTINUED)

Virtual Address (BF82_#)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
D0B0CNFA31:16————————0.050
15:0CNFA15CNFA14CNFA13CNFA12CNFA11CNFA10CNFA9CNFA8CNFA7CNFA6CNFA5CNFA4CNFA3CNFA2CNFA1CNFA0D0B0
00C0SRCON0A31:16————————0.050
15:0SR0A0D000
00D0SRCON1A31:16————————0.050
15:0SR1A0D000

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 13-11: PORTB REGISTER MAP

Virtual Address (BF82_#)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
0100ANSELB31:160000
15:0ANSB14ANSB13ANSB12ANSB11ANSB10ANSB9ANSB6ANSB7ANSB6ANSB5ANSB4ANSB3ANSB2ANSB1ANSB00000
0110TRISB31:160000
15:0TRISB15TRISB14TRISB13TRISB12TRISB11TRISB10TRISB9TRISB8TRISB7TRISB6TRISB5TRISB4TRISB3TRISB2TRISB1TRISB00000
0120PORTB31:160000
15:0RB15RB14RB13RB12RB11RB10RB9RB8RB7RB6RB5RB4RB3RB2RB1RB00000
0130LATB31:160000
15:0LATB15LATB14LATB13LATB12LATB11LATB10LATB9LATB5LATB7LATB5LATB5LATB4LATB3LATB2LATB1LATB00000
0140ODCB31:160000
15:0ODCB14ODCB13ODCB12ODCB11ODCB10ODCB9ODCB8ODCB7ODCB6ODCB5ODCB4ODCB3ODCB2ODCB1ODCB00000

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 13-11: PORTB REGISTER MAP (CONTINUED)

Virtual Address(BF82_#)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
0150CNPUB31:16————————0300
15:0CNPUB14CNPUB13CNPUB12CNPUB11CNPUB10CNPUB9CNPUB6CNPUB7CNPUB6CNPUB5CNPUB4CNPUB3CNPUB2CNPUB1CNPUB00000
0160CNPDB31:16————————0300
15:0CNPDB14CNPDB13CNPDB12CNPDB11CNPDB10CNPDB9CNPDB6CNPDB7CNPDB6CNPDB5CNPDB4CNPDB3CNPDB2CNPDB1CNPDB00000
0170CNCONB31:16————————0300
15:0 ON——EDGEDE-TECT——————0300
0180CNENB31:16————————0300
15:0CNIEB14CNIEB13CNIEB12CNIEB11CNIEB10CNIEB9CNIEB8CNIEB7CNIEB6CNIEB5CNIEB4CNIEB3CNIEB2CNIEB1CNIEB00000
0190CNSTATB31:16————————0300
15:0CNSTATB14CNSTATB13CNSTATB12CNSTATB11CNSTATB10CNSTATB9CNSTATB8CNSTATB7CNSTATB6CNSTATB5CNSTATB4CNSTATB3CNSTATB2CNSTATB1CNSTATB00000
01A0CNNEB31:16————————0300
15:0CNNEB14CNNEB13CNNEB12CNNEB11CNNEB10CNNEB9CNNEB6CNNEB7CNNEB6CNNEB5CNNEB4CNNEB3CNNEB2CNNEB1CNNEB00000
01B0CNFB31:16————————0300
15:0CNFB14CNFB13CNFB12CNFB11CNFB10CNFB9CNFB8CNFB7CNFB6CNFB5CNFB4CNFB3CNFB2CNFB1CNFB00000

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 13-12: PORTC REGISTER MAP

Legend: x = Unknown value on Reset; — = Unimplemented, read as 'c'; 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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 13-12: PORTC REGISTER MAP (CONTINUED)

Virtual Address (BF02,#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
02C0SRCONDC31:16——————
15:0SR0C15SR0C14SR0C13SR0C5SR0C4SR0C3SR0C2SR0C1SR0C0J000
02D0SRCON1C31:16——————
15:0SR1C15SR1C14SR1C13SR1C5SR1C4SR1C3SR1C2SR1C1SR1C0J000

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 13-13: PORTK REGISTER MAP

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 13-13: PORTK REGISTER MAP (CONTINUED)

Virtual Address (BF82_#)Register Name(1)Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
0350ONPUK31:163000
15:0CNPUK14CNPUK13CNPUK12CNPUK11CNPUK10CNPUK9CNPUK8CNPUK7CNPUK6CNPUK5CNPUK4CNPUK3CNPUK2CNPUK1CNPUK00000
0360ONPDK31:163000
15:0CNPDK14CNPDK13CNP-DK12CNPDK11CNPDK10CNPDK9CNPDK8CNPDK7CNPDK6CNPDK5CNPDK4CNPDK3CNP-DK2CNP-DK1CNP-DK00000
0370CNCONK31:163000
15:0 ONEDGEDE-TECT0000
0380CNENK31:163000
15:0CNIEK14CNIEK13CNIEK12CNIEK11CNIEK10CNIEK9CNIEK8CNIEK7CNIEK6CNIEK5CNIEK4CNIEK3CNIEK2CNIEK1CNIEK00000
0390CNSTATK31:163000
15:0CNSTATK14CNSTATK13CNSTATK12CNSTATK11CNSTATK10CNSTATK9CNSTATK8CNSTATK7CNSTATK5CNSTATK5CNSTATK4CNSTATK3CNSTATK2CNSTATK1CNSTATK00000
03A0CNNEK31:163000
15:0CNNEK14CNNEK13CNNEK12CNNEK11CNNEK10CNNEK9CNNEK8CNNEK7CNNEK6CNNEK5CNNEK4CNNEK3CNNEK2CNNEK1CNNEK00000
03B0CNFK31:163000
15:0CNFK14CNFK13CNFK12CNFK11CNFK10CNFK9CNFK8CNFK7CNFK5CNFK5CNFK4CNFK3CNFK2CNFK1CNFK03000
03C0SRCONOK31:163000
15:0SROK14SROK130000
03D0SRCON1K31:163000
15:0SR1K14SR1K130000

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 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 13-1: [pin name]R: PERIPHERAL PIN SELECT INPUT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
7:0U-0 U-0U-0 U-0 R/W-0R/W-0R/W-0R/W-0
[pin name]R[4:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-4 Unimplemented: Read as '0'

bit 3-0 [pin name]R[4:0]: Peripheral Pin Select Input bits

Where [pin name] refers to the pins that are used to configure the peripheral input mapping. See Table 13-2 for the input pin selection values.

Note: Register values can only be changed if the IOLOCK Configuration bit (CFGCON[13]) = 0.

REGISTER 13-2: RPnR: PERIPHERAL PIN SELECT OUTPUT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
7:0U-0U-0 U-0U-0 W-0W-0 W-0 W-0 W-0
— — —RPnR[4:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-4 Unimplemented: Read as '0'

bit 3-0 RPnR[4:0]: Peripheral Pin Select Output bits ^(1)

See Table 13-3 for output pin selection values.

Note: All remappable output configuration registers (RPA, RPB, RPC and RPK) are write-only registers and always read as '0'.

Note: Register values can only be changed if the IOLOCK Configuration bit (CFGCON[13]) = 0.

REGISTER 13-3: CNCONx: CHANGE NOTICE CONTROL FOR PORTx REGISTER (x = A/B/C/K)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0 U-0
— — —— — — —
15:8R/W-0U-0 U-0U-0R/W-0 U-0 U-0U-0
ONEDGEDETECT
7:0U-0 U-0U-0 U-0 U-0 U-0U-0 U-0 U-0
— — —— — — —

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15 ON: CN Control ON bit

1 = CN is enabled

0 = CN is disabled

bit 14-12 Unimplemented: Read as '0'

bit 11 EDGEDETECT: Change Notification Style bit

1 = Edge style. Detect edge transitions (CNFx used for CN event).
0 = Mismatch style. Detect change from last PORTx read (CNSTATx used for CN event).

bit 10-0 Unimplemented: Read as '0'

14.0 PERIPHERAL TRIGGER GENERATOR (PTG)

The PTG provides a means to schedule complex high-speed peripheral operations that would be difficult to achieve using software. The PIC32MZ W1 device has single PTG module. The PTG module uses thirty-two 8-bit commands, called as step, that the user writes to the PTG Queue registers (PTGQUE0-PTGQUE7). Each 8-bit step is made up of a four bit command code and a four bit parameter field. The commands perform operations such as wait for an input trigger signal, generate an output trigger signal, and wait for the timer.

PTG does not synchronize its clock sources. Use the same clock source for coordinated operation of PTG with another module (for example, ADC).

PTG module has the following key features:

  • Multiple clock sources
    • Four 16-bit general purpose timers
  • Two 16-bit general limit counters
  • Configurable for rising or falling edge triggering
  • PTG generated processor interrupts include:

  • Four configurable processor interrupts

  • Interrupt on a step event in Single Step Ping mode
  • Interrupt on a PTG WDT time-out

- Receives trigger signals from following peripherals:

  • ADC
  • I C A P
  • O CMP

- Generates trigger or synchronize to following peripherals:

  • ADC
  • I C A P
  • O CMP

FIGURE 14-1: PTG BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - PERIPHERAL TRIGGER GENERATOR (PTG) - 1

flowchart
graph TD
    A["PTGHOLD"] --> B["PTGADJ"]
    B --> C["PTGBTE[15:0"]]
    C --> D["PTGCST[15:0"]]
    D --> E["PTGCON[15:0"]]
    E --> F["PTGDIV[4:0"]]
    F --> G["PTGCLK[2:0"]]
    G --> H["Clock Inputs"]
    H --> I["PTGControl Logic"]
    I --> J["PTGLO[15:0"]]
    I --> K["PTGTxLIM[15:0"]]
    I --> L["PTGCxLIM[15:0"]]
    I --> M["PTGSDLIM[15:0"]]
    I --> N["PTGGeneral Purpose Timerx"]
    I --> O["PTGLoop Counter x"]
    I --> P["PTGStep Delay Timer"]
    I --> Q["PTGOP9 PTGO12 PTGO13 PTGO14 PTGO15 PTG28 PTG29 PTG30 PTG31"]
    Q --> R["PTGOP9 PTGO12 PTGO13 PTGO14 PTGO15 PTG28 PTG29 PTG30 PTG31"]
    I --> S["PTGOP9 PTGO12 PTGO13 PTGO14 PTGO15 PTG28 PTG29 PTG30 PTG31"]
    S --> T["PTGOP9 PTGO12 PTGO13 PTGO14 PTGO15 PTG28 PTG29 PTG30 PTG31"]
    U["ptg_clk"] --> V["Clock Inputs"]
    W["cru_sys_clk"] --> V
    X["frc_clk"] --> V
    Yeref_clk_output] --> V
    Z["tmr1_clk"] --> V
    AA["tmr3_clk"] --> V
    AB["tmr5_clk"] --> V
    AC["tmr7_clk"] --> V
    AD["pb_clk"] --> V
    AE["ocmp1_out"] --> AF["Trigger Inputs"]
    AG["ocmp2_out"] --> AF
    AH["ocmp3_out"] --> AF
    AI["ocmp4_out"] --> AF
    AJ["icap_intr[1"]] --> AF
    AK["icap_intr[2"]] --> AF
    AL["icap_intr[3"]] --> AF
    AM["icap_intr[4"]] --> AF
    AN["upbs_adc_event[99"]] --> AF
    AO["upbs_adc_event[100"]] --> AF
    AP["upbs_adc_event[101"]] --> AF
    AQ["1'b0"] --> AF
    AR["1'b0"] --> AF
    AS["1'b0"] --> AF
    AT["PTGQPTR[4:0"]] --> AF
    AU["PTGQUE0"] --> AV["Command Decoder"]
    AW["PTGQUE1"] --> AV
    AX["PTGQUE2"] --> AV
    AY["PTGQUE3"] --> AV
    AZ["PTGQUE4"] --> AV
    BA["PTGQUE5"] --> AV
    BB["PTGQUE6"] --> AV
    BC["PTGQUE7"] --> AV
    AD --> AD
    AE --> AD
    AF --> AD
    AG --> AD
    AH --> AD
    AI --> AD
    AJ --> AD
    AK --> AD
    AL --> AD
    AM --> AD
    AN --> AD
    AU --> AD
    AV --> AD
    AV --> AD
    AD --> AD_Steps_Output
    AD_Steps_Output --> AD_Steps_Days_Output
    AD_Steps_Days_Output --> AD_Steps_Peak_Output
    AD_Steps_Peak_Output --> AD_Steps_Rate_Output
    AD_Steps_Rate_Output --> AD_Steps_Terap_Output
    AD_Steps_Terap_Output --> AD_Steps_Ur/Yr_Output
    AD_Steps_Ur/Yr_Output --> AD_Steps_Terap_Terap_Output
    AD_Steps_Terap_Terap_Output --> AD_Steps_Rate_Terap_Terap_Output
    AD_Steps_Rate_Terap_Terap_Output --> AD_Steps_Terap_Terap_Terap_Output
    AD_Steps_Terap_Terap_Terap_Output --> AD_Steps_Rate_Terap_Terap_Terap_Output
    AD_Steps_Rate_Terap_Terap_Terap_Output --> AD_Steps_Rate_Terap_Terap_Terap_Output
    AD_Steps_Rate_Terap_Terap_Terap_Output --> AD_Steps_Rate_Terap_Terap_Terap_Output
    AD_Steps_Rate_Terap_Terap_Terap_Output --> AD_Steps_Rate_Terap_Terap_Terap_Output

Note 1: This is a dedicated WDT for the PTG module and is independent of the device WDT.

14.1 PTG Control Registers

TABLE 14-1: PTG CONTROL REGISTER MAP

Virtual Address (BF80 #)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/11126/1025/924/823/722/621/520/419/318/217/116/0
1C00PTGCON31:16PTGCLK[2:0]PTGDIV[4:0]PTGPWD[3:0]PTGWDT[2:0]0000
15:0PTGONPTGSIDLPTGTOGLPTGSWTPTGSSENPTGIVISPTGSTRTPTGWDTOPTGBUSYPTGITM[1:0]0000
1C10PTGBTE31:16PTGBTE[31:16]0000
15:0PTGBTE[15:0]0000
1C20PTGHOLD31:160000
15:0PTGHOLD[15:0]0000
1C30PTGTOLIM31:160000
15:0PTGTOLIM[15:0]0000
1C40PTGT1LIM31:160000
15:0PTGT1LIM[15:0]0000
1C50PTGSDLIM31:160000
15:0PTGSDLIM[15:0]0000
1C60PTGCOLIM31:160000
15:0PTGCOLIM[15:0]0000
1C70PTGC1LIM31:160000
15:0PTGC1LIM[15:0]0000
1C80PTGADJ31:160000
15:0PTGADJ[15:0]0000
1C90PTGL031:160000
15:0PTGL0[15:0]0000
1CA0PTGQPTR31:160000
15:0PTGQPTR[5:0]0000
1CC0PTGQUE031:16STEP3[7:0]STEP2[7:0]0000
15:0STEP1[7:0]STEP0[7:0]0000
1CD0PTGQUE131:16STEP7[7:0]STEP6[7:0]0000
15:0STEP5[7:0]STEP4[7:0]0000
1CE0PTGQUE231:16STEP11[7:0]STEP10[7:0]0000
15:0STEP9[7:0]STEP8[7:0]0000
1CFOPTGQUE331:16STEP16[7:0]STEP14[7:0]0000
15:0STEP13[7:0]STEP12[7:0]0000
1D00PTGQUE431:16STEP19[7:0]STEP18[7:0]0000
15:0STEP17[7:0]STEP16[7:0]0000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers have corresponding CLR, SET and INV registers at its virtual address, plus an offset of 0x4, 0x8, and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.

TABLE 14-1: PTG CONTROL REGISTER MAP (CONTINUED)

Virtual Address (BF80_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
1D10PTGQUE531:16STEP23[7:0]STEP22[7:0]0000
15:0TEP21[7:0]STEP20[7:0]0000
1D20PTGQUE631:16STEP27[7:0]STEP26[7:0]0000
15:0TEP25[7:0]STEP24[7:0]0000
1D30PTGQUE731:16STEP31[7:0]STEP30[7:0]0000
15:0$TEP29[7:0]STEP28[7:0]0000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers have corresponding CLR, SET and INV registers at its virtual address, plus an offset of 0x4, 0x8, and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 14-1: PTGCON: PTG CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/WW-0 R/W-0 R/W0 R/W-0 R/W-0R/W-0 R/W-0
PTGCLK[2:0](1)PTGDIV[4:0](1)
23:16R/W-0 R/WW-0 R/W-0 R/W0 U-0 R/W-0 RR/W-0 R/W-0
PTGPWD[3:0](1)— PTGWDT[2:0] (1)
15:8R/W-0 R/WW-0 R/W-0 R/W0 U-0 R/W-0,HC R/W-0 R/W-0
PTGONPTGSIDLPTGTOGL(1)RSVDPTGSWTPTGSSEN(3)PTGIVIS(1)
7:0R/W-0, HCPTGWDTO(1)R-0, HS/HCU-0U-0U-0R-0R-0
PTGSTRTPTGBUSYPTGITM[1:0](1)
Legend:HC = Hardware ClearedHS = Hardware 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-29 PTGCLK[2:0]: PTG Module Clock Source Select bits ^(1)

111 = PTG module clock source will be REF_CLK

110 = PTG module clock source will be TMR7_CLK

101 = PTG module clock source will be TMR5_CLK

100 = PTG module clock source will be TMR3_CLK

011 = PTG module clock source will be TMR1_CLK

010 = PTG module clock source will be FRC_CLK

001 = PTG module clock source will be SYS_CLK

000 = PTG module clock source will be PB1_CLK

bit 28-24 PTGDIV[4:0]: PTG Module Clock Prescaler (Divider) bits ^(1)

11111 = Divide by 32

11110 = Divide by 31

00001 = Divide by 2

00000 = Divide by 1

bit 23-20 PTGPWD[3:0]: PTG Trigger Output Pulse Width bits ^(1)

1111 = All trigger outputs are 16 PTG clock cycles wide

1110 = All trigger outputs are 15 PTG clock cycles wide

0001 = All trigger outputs are 2 PTG clock cycles wide

0000 = All trigger outputs are 1 PTG clock cycle wide

bit 19 Unimplemented: Read as '0'

Note 1: These bits are read only when the module is executing step command (PTGSTRT = 1).

2: The PTGSSEN bit may only be written when in Debug mode, and will otherwise always read '0'. The PTGSSEN bit (internal) value is preserved independent of Debug mode.

REGISTER 14-1: PTGCON: PTG CONTROL REGISTER (CONTINUED)

bit 18-16 PTGWDT[2:0]: PTG Watchdog Time-Out Count Value Select bits ^(1)

111 = Watchdog will timeout after 512 PTG clocks
110 = Watchdog will timeout after 256 PTG clocks
101 = Watchdog will timeout after 128 PTG clocks
100 = Watchdog will timeout after 64 PTG clocks
011 = Watchdog will timeout after 32 PTG clocks
010 = Watchdog will timeout after 16 PTG clocks
001 = Watchdog will timeout after 8 PTG clocks
000 = Watchdog disabled

bit 15 PTGON: Module Enable bit

1 = PTG module is enabled
0 = PTG module is disabled

bit 14 Unimplemented: Read as '0'

bit 13 PTGSIDL: Stop in Idle Mode bit

1 = Discontinue module operation when device enters Idle mode (act as if in Sleep mode)
0 = Continue module operation when device enters Idle mode

bit 12 PTGTOGL: TRIG Output Toggle Mode bit (1)

1 = Toggle state of the PTGOx for each execution of the PTGTRIG command
0 = Each execution of the PTGTRIG command will generate a single PTGOx pulse determined by the value in the PTGPWDx bits

bit 11 Unimplemented: Read as '0'

bit 10 PTGSWT: Software Trigger bit

This control bit enables the application software to interact with the PTG module via the "Wait for software trigger" step commands (PTGCTRL SWTRGE or PTGCTRL SWTRGL). The PTGCTRL SWTRGE command is only sensitive to a 0 to 1 transition of the PTGSWT bit that occurs during execution of the command. The PTGCTRL SWTRGL command is sensitive to a logic 1 state of the PTGSWT bit that is present prior to and during, or occurs during, execution of the command.

1 = If the PTG state machine is executing the PTGCTRL SWTRGE command and PTGSWT = 0 prior to the bit set operation, the command will complete and execution will continue. If PTGSWT = 1 prior to the bit set operation, no action.

If the PTG state machine is executing the PTGCTRL SWTRGL command, the command will complete and execution will continue irrespective of when the bit set operation occurred. 0 = No action other than to clear the bit ^(2) .

Note 1: Software may write '1' to the PTGSWT bit to initiate the software trigger. Writing '0' (at any time) will have no effect.

2: PTGSWT is automatically cleared by hardware when the PTGCTRL SWTRGE command completes after the associated step delay, if any (when the subsequent command starts). PTGSWT is not automatically cleared by hardware when the PTGCTRL SWTRGL command completes.
3: PTGSWT is cleared when PTGON = 0.
4: If executing the SWTRGE command consecutively, the hardware does not clear the PTGSWT bit. The user application must use any other command or NOP command in between two SWTRGE commands.

bit 9 PTGSSEN: Enable Single Step bit (2)

If in Debug mode:

1 = Enable command Single Step mode

0 = Disable command Single Step mode

Otherwise, the PTGSSEN bit will have no effect.

Note: The PTGSSEN bit may only be written when in Debug mode, and will otherwise always read '0'.

REGISTER 14-1: PTGCON: PTG CONTROL REGISTER (CONTINUED)

Note 1: These bits are read only when the module is executing step command (PTGSTRT = 1).

2: The PTGSSEN bit may only be written when in Debug mode, and will otherwise always read '0'. The PTGSSEN bit (internal) value is preserved independent of Debug mode.

bit 8 PTGIVIS: Counter/Timer Internal Visibility Control bit ^(1)

1 = SFR read of the PTGSDLIM, PTGCnLIM or PTGTnLIM registers will yield the contents of the corresponding internal timer/counter (PTGSD, PTGCn or PTGTn, respectively)

0 = SFR read of the PTGSDLIM, PTGCnLIM or PTGTnLIM registers will yield the contents of the associated SFR register, and represents the value previously written to the target register.

The register read will be either the UPB or internal register as determined by the PTGSTART bit.

Note 1: The PTGIVIS bit enables the user to "debug" the setup and operation of the PTG module in an application.

bit 7 PTGSTRT: Start PTG Sequencer bit

If not in Single Step mode:

1 = Start PTG sequencer and sequentially execute commands (Continuous mode)

0 = Stop PTG sequencer and place in Halt state

If in Single Step mode:

1 = Start PTG sequencer and execute one step command, and then halt

Note: Single step enable must be set (PTGSSEN = 1) prior to the bit set operation of PTGSTRT.

0 = Stop PTG sequencer and place in HALT state

Note 1: In Single Step mode (PTGSSEN = 1), PTGSTRT is automatically cleared by hardware when the target command completes after the associated step delay, if any (when the subsequent command starts).

2: The PTGSTRT bit is not hardware cleared when the PTGON bit is disabled. The user must ensure to clear PTGSTRT bit before clearing (disable) the PTGON bit. Not following the above sequence to clear these register bits can cause the device to behave incorrectly when the PTG is re-enabled.

3: This bit can be hardware clearable by the PTG WDT.

bit 6 PTGWDTO: PTG State Machine Watchdog Timeout Status bit ^(1)

1 = PTG state machine watchdog has timed out

0 = PTG state machine watchdog has not timed out

Note: PTGWDTO is automatically set by hardware but must be cleared by the user or by disabling the module (PTGON = 0).

bit 5 PTGBUSY: PTG State Machine Busy bit

1 = PTG state machine is running on the selected PTG clock source instructions - No SFR writes are allowed to PTGCLK and PTBDIV bit fields.

0 = PTG state machine is NOT running.

Note: PTGBUSY is asserted when PTGON = 1 to indicate PTG is busy running, it will be cleared by HW once sequencer has completed all the tasks when PTGON is cleared.

bit 4-2 Unimplemented: Read as '0'

bit 1-0 PTGITM[1:0]: Selects PTG Input Trigger Command Operating Mode bits ^(1)

11 = Test input state once per step delay, exit when (level) true and complete command without step delay.

10 = Test input state once per step delay, exit when (level) true to step delay prior to command completion.

01 = Test input state continuously, exit when valid edge detected (during execution) and complete command without step delay.

00 = Test input state continuously, exit to step delay when valid edge detected (during execution), prior to command completion.

Note 1: These bits are read only when the module is executing step command (PTGSTRT = 1).

2: The PTGSSEN bit may only be written when in Debug mode, and will otherwise always read '0'. The PTGSSEN bit (internal) value is preserved independent of Debug mode.

REGISTER 14-2: PTGBTE: PTG BROADCAST TRIGGER ENABLE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
PTGBTE[31:24](1)
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
PTGBTE[23:16](1)
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
PTGBTE[15:8](1)
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
PTGBTE[7:0](1)

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 PTGBTE[31:0]: Broadcast Trigger Enable Register bits ^(1)

Each bit corresponds to a individual trigger output. If a bit is set in the PTGBTE register, the corresponding individual trigger output will be generated if a step broadcast command is executed.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-3: PTGHOLD: PTG HOLD REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGHOLD[15:8](1)
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGHOLD[7:0](1)
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-0 PTGHOLD[15:0]: General Purpose Hold Register bits ^(1)

Preserves a copy of user supplied data for re-initializing one of the following registers, PTGT0LIM, PTGT1LIM, PTGC0LIM, PTGC1LIM, PTGSDLIM, and PTGL0 via a step command.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-4: PTGT0LIM: PTG TIMER0 LIMIT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
15:8R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
PTGTOLIM[15:8](1)
7:0R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1R/W-1
PTGTOLIM[7:0](1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 PTGTOLIM[15:0]: PTG (GP) Timer0 Limit Register bits ^(1)

General Purpose Timer0 Limit register (effective only with a "Wait for GP Timer0" step command).

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-5: PTGT1LIM: PTG TIMER1 LIMIT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGT1LIM[15:8](1)
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGT1LIM[7:0](1)
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 31-0 PTGT1LIM[15:0]: PTG (GP) Timer1Limit Register bits ^(1)

General Purpose Timer1 Limit register (effective only with a "Wait for GP Timer1" step command).

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-6: PTGSDLIM: PTG STEP DELAY LIMIT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGSDLIM[15:8](1)
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGSDLIM[7:0](1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-6 Unimplemented: Read as '0'
bit 15-0 PTGSDLIM[15:0]: PTG Step Delay Limit Register bits ^(1)

Holds a PTG step delay value representing the number of additional PTG clocks between the start of a step command, and the completion of the step command.

A base delay of a command is one PTG clock period, and the PTG step delay value is added to this minimum command delay to create the total step command duration. That is, if PTGSDLIM = 0x0006, the resultant step command duration will be 7 PTG clocks.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-7: PTGC0LIM: PTG COUNTER '0' LIMIT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGCOLIM[15:8](1)
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGCOLIM[7:0](1)
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-0 PTGC0LIM[15:0]: PTG Counter '0' Limit Register bits ^(1)

These bits can be used to specify the loop count for the PTGJMPC0 step command, or as a general purpose counter limit register.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-8: PTGC1LIM: PTG COUNTER '1' LIMIT REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 31-0 PTGC1LIM[31:0]: PTG Counter '1' Limit Register bits ^(1)

These bits can be used to specify the loop count for the PTGJMPC1 step command, or as a general purpose counter limit register.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-9: PTGADJ: PTG ADJUST REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
——————
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
——————
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGADJ[15:8](1)
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGADJ[7:0](1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 PTGADJ[15:0]: PTG Adjust Register bits ^(1)

A register that is used by the PTGADD step command to adjust the contents of one of the following registers, PTGT0LIM, PTGT1LIM, PTGC0LIM, PTGC1LIM, PTGSDLIM, and PTGL0. The PTGADD step command adds the contents of the PTGADJ[15:0] register to the target register, and then writes it back to the target register.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-10: PTGL0: PTG LITERAL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGL0[15:8](1)
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PTGL0[7:0](1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 PTGL0[15:0]: PTG Literal Register bits ^(1)

This register holds the 16-bit literal value that is strobed when the PTGCTRL STRBL0 command is executed.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-11: PTGQPTR: PTG STEP QUEUE POINTER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
15:8U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
7:0U-0 U-0 U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
—— —PTGQPTR[4:0] (1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-5 Unimplemented: Read as '0'

bit 4-0 PTGQPTR[4:0]: PTG Step Queue Pointer Register bits ^(1)

This register points to the currently active step command in the step queue.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

REGISTER 14-12: PTGQUEn: PTG STEP QUEUE 'n' REGISTER ('n' = 0-7)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
STEP3[15:8]^(1)
23:16R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
STEP2[7:0]^(1)
15:8R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
STEP1[15:8]^(1)
7:0R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
STEP0[7:0]^(1)

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-24 STEP[4n+3][7:0]: STEP[4n+3] Command Byte bits ^(1)

A queue location for storage of the STEP[4n+3] command byte.

bit 23-16 STEP[4n+2][7:0]: STEP[4n+2] Command Byte bits ^(1)

A queue location for storage of the STEP[4n+2] command byte.

bit 15-8 STEP[4n+1][7:0]: STEP[4n+1] Command Byte bits ^(1)

A queue location for storage of the STEP[4n+1] command byte.

bit 7-0 STEP[4n][7:0]: STEP[4n] Command Byte bits ^(1)

A queue location for storage of the STEP command byte.

Note 1: These bits are read only when the module is executing step commands (PTGSTRT = 1).

TABLE 14-2: PTG OUTPUT DESCRIPTION

PTG Output Number PTG Output Description
PTGO0 Reserved
PTGO1 Reserved
PTGO2 Reserved
PTGO3 Reserved
PTGO4 Reserved
PTGO5 Reserved
PTGO6 Reserved
PTGO7 Reserved
PTGO8 Reserved
PTGO9 To CVD
PTGO10 Reserved
PTGO11 Reserved
PTGO12 Sample Trigger for ADC
PTGO13 Sample Trigger for ADC
PTGO14 Sample Trigger for ADC
PTGO15 Sample Trigger for ADC
PTGO16 Reserved
PTGO17 Reserved
PTGO18 Reserved
PTGO19 Reserved
PTGO20 Reserved
PTGO21 Reserved
PTGO22 Reserved
PTGO23 Reserved
PTGO24 Reserved
PTGO25 Reserved
PTGO26 Reserved
PTGO27 Reserved
PTGO28 Output Buffer Data
PTGO29 Output Buffer Data
PTGO30 Output Buffer Data
PTGO31 Output Buffer Data

Note: PTGO28 to PTGO31 are available on PPS. Refer to Table 13-3.

15.0 TIMER1

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 14. “Timers” (DS60001105) in the “PIC32 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

The PIC32MZ1025W104 device features one synchronous/asynchronous 16-bit timer that can operate as a free-running interval timer for various timing applications and counting external events. This timer can also be used with the low-power SOSC for real-time clock applications.

The following modes are supported by Timer1:

  • Synchronous Internal Timer mode
  • Synchronous Internal Gated Timer mode
  • Synchronous External Timer mode
  • Asynchronous External Timer mode

Timer1 has the following key features:

  • Selectable clock prescaler
  • Timer operation during Sleep and Idle modes
  • Fast bit manipulation using CLR, SET and INV registers
  • Asynchronous mode can be used with the SOSC to function as a real-time clock
  • ADC (CVD) event trigger
  • Timer1 can be used as a wake up source from the Sleep mode

FIGURE 15-1: TIMER1 BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - TIMER1 - 1

flowchart
graph TD
    A["Trigger to ADC"] --> B["0 1"]
    C["Equal"] --> D["16-bit Comparator"]
    D --> E["TMR1"]
    F["T1IF Event Flag"] --> G["TGATE"]
    G --> H["TECS"]
    H --> I["Q/Q"]
    I --> J["Gate Sync"]
    J --> K["×1"]
    K --> L["Transistor"]
    M["TSYNC"] --> N["1 0"]
    O["Sync"] --> P["0"]
    Q["SOSCO"] --> R["SOSCEN(1)"]
    S["SOSCI"] --> T["SOSCEN(1)"]
    U["TGATE"] --> V["Q/Q"]
    W["TECS"] --> X["0 1"]
    Y["Gate Sync"] --> Z["×1"]
    AA["PB1_CLK"] --> AB["0 0"]
    AC["PR1"] --> AD["16-bit Comparator"]
    AE["Reset"] --> AF["TMR1"]
    AG["TSYNCS"] --> AH["1 0"]
    AI["TGATE"] --> AJ["0 1"]
    AK["TCS"] --> AL["ON"]
    AM["Prescaler 1,8,64,256"] --> AN["2 TCKPS[1:0"]]

Note 1: The default state of the SOSCEN bit (OSCCON[1]) during a device Reset is controlled by the SOSCEN bit in Configuration Word and CFGCON4.

15.1 Timer1 Control Register

TABLE 15-1: TIMER1 REGISTER MAP

Virtual Address(BF80_#)Register Name 1 Bit RangeBitsAll Resets
31/15 3014 29/1328/12 27/1126/10 25/924/8 23/722/6 21/5204 19/3 18/217/1 16/0
2000T1CON31:16— —— —— —— —— C000
15:0 ONSIDLTWDISTWIPTECS[1:0]TGATETCKPS[1:0]TSYNCTCS0000
2010TMR131:16TMR1[31:16]0000
15:0TMR1[15:0]0000
2020PR131:16PR1[31:16]0000
15:0PR1[15:0]FFFF

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 13.3 "CLR, SET and INV Registers" for more information.
2: Continuous CPU write operations to the TMR1 register within 4 PBCLK cycles are restricted.

REGISTER 15-1: T1CON: TYPE A TIMER CONTROL REGISTER

R = Readable bitW = Writable bit U = 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 ON: TMR1 bit

1 = TMR1 is enabled

0 = TMR1 is disabled

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Mode bit

1 = Discontinue operation when device enters Idle mode

0 = Continue operation even in Idle mode

bit 12 TWDIS: Asynchronous Timer Write Disable bit

1 = Writes to TMR1 are ignored until pending write operation completes

0 = Back-to-back writes are enabled (legacy asynchronous timer functionality)

bit 11 TWIP: Asynchronous Timer Write in Progress bit

In Asynchronous Timer mode:

1 = Asynchronous write to TMR1 register in progress

0 = Asynchronous write to TMR1 register complete

In Synchronous Timer mode:

This bit is read as '0'.

bit 10 Unimplemented: Read as '0'

bit 9-8 TECS[1:0]: TMR1 Extended Clock Select bits

11= Reserved

10=LPRC

01=T1CK pin

00=SOSC

bit 7 TGATE: Timer Gated Time Accumulation Enable bit

When TCS = 1:

This bit is ignored.

When TCS = 0:

1 = Gated time accumulation is enabled

0 = Gated time accumulation is disabled

bit 6 Unimplemented: Read as '0'

REGISTER 15-1: T1CON: TYPE A TIMER CONTROL REGISTER (CONTINUED)

bit 5-4 TCKPS[1:0]: Timer Input Clock Prescale Select bits

11 = 1:256 prescale value
10 = 1:64 prescale value
01 = 1:8 prescale value
00 = 1:1 prescale value

bit 3 Unimplemented: Read as '0'

bit 2 TSYNC: Timer External Clock Input Synchronization Selection bit

When TCS = 1:

1 = External clock input is synchronized

0 = External clock input is not synchronized

When TCS = 0:

This bit is ignored.

bit 1 TCS: Timer Clock Source Select bit

1 = External clock from TECS
0 = Internal peripheral clock

bit 0 Unimplemented: Read as '0'

16.0 TIMER2/3, TIMER4/5, AND TIMER6/7

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 14. "Timers" (DS60001105) of the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The PIC32MZ1025W104 family of devices features six synchronous 16-bit timers (default) that can operate as a free-running interval timer for various timing applications and counting external events.

The following modes are supported:

  • Synchronous Internal 16-bit Timer mode
  • Synchronous Internal 16-bit Gated Timer mode
  • Synchronous External 16-bit Timer mode

Three 32-bit synchronous timers are available by combining Timer2 with Timer3, Timer4 with Timer5, Timer6 with Timer7.

The 32-bit timers can operate in one of three modes:

  • Synchronous Internal 32-bit Timer mode
  • Synchronous Internal 32-bit Gated Timer mode
  • Synchronous External 32-bit Timer mode

These timers have the following key features:

  • Selectable clock prescaler
  • Timers operational during CPU Idle mode
  • Time base for input capture and output compare modules (Timer2 Through Timer7 only)
  • ADC event trigger (Timer3 and Timer5 only)
  • Fast bit manipulation using CLR, SET, and INV registers

FIGURE 16-1: TIMER2 THROUGH TIMER7 BLOCK DIAGRAM (16-BIT)
Microchip PIC32MZ1025W104132 - TIMER2/3, TIMER4/5, AND TIMER6/7 - 1

flowchart
graph TD
    A["Trigger to ADC"] --> B["Equal"]
    B --> C["TMRx"]
    C --> D["Comparator x 16"]
    D --> E["PRx"]
    E --> F["TGATE"]
    F --> G["Gate Sync"]
    G --> H["x1"]
    H --> I["ON"]
    I --> J["TCS"]
    J --> K["ON"]
    K --> L["Prescaler 1, 2, 4, 8, 16, 32, 64, 256"]
    L --> M["TCKPS"]
    N["TxIF Event Flag"] --> O["0/1 TGATE"]
    O --> P["Q/Q̅"]
    P --> Q["TGATE"]
    R["TxCK"] --> S["NOT"]
    S --> T["AND Gate"]
    T --> U["Gate Sync"]
    U --> V["AND Gate"]
    V --> W["AND Gate"]
    W --> X["AND Gate"]
    X --> Y["AND Gate"]
    Y --> Z["AND Gate"]
    Z --> AA["AND Gate"]
    AA --> AB["AND Gate"]
    AB --> AC["AND Gate"]
    AC --> AD["AND Gate"]
    AD --> AE["AND Gate"]
    AE --> AF["AND Gate"]
    AF --> AG["AND Gate"]
    AG --> AH["AND Gate"]
    AH --> AI["AND Gate"]
    AI --> AJ["AND Gate"]
    AJ --> AK["AND Gate"]
    AK --> AL["AND Gate"]
    AL --> AM["AND Gate"]
    AM --> AN["AND Gate"]
    AN --> AO["AND Gate"]
    AO --> AP["AND Gate"]
    AP --> AQ["AND Gate"]
    AQ --> AR["AND Gate"]
    AR --> AS["AND Gate"]
    AS --> AT["AND Gate"]
    AT --> AU["AND Gate"]
    AU --> AV["AND Gate"]
    AV --> AW["AND Gate"]
    AW --> AX["AND Gate"]
    AX --> AY["AND Gate"]
    AY --> AZ["AND Gate"]
    AZ --> BA["AND Gate"]
    BA --> BB["AND Gate"]
    BB --> BC["AND Gate"]
    BC --> BD["AND Gate"]
    BD --> BE["AND Gate"]
    BE --> BF["AND Gate"]
    BF --> BG["AND Gate"]
    BG --> BH["AND Gate"]
    BH --> BI["AND Gate"]
    BI --> BJ["AND Gate"]
    BJ --> BK["AND Gate"]
    BK --> BL["AND Gate"]
    BL --> BM["AND Gate"]
    BM --> BN["AND Gate"]
    BN --> BO["AND Gate"]
    BO --> BP["AND Gate"]
    BP --> BQ["TXCKP"]

FIGURE 16-2: TIMER2/3, TIMER4/5, AND TIMER6/7, BLOCK DIAGRAM (32-BIT)
Microchip PIC32MZ1025W104132 - TIMER2/3, TIMER4/5, AND TIMER6/7 - 2

flowchart
graph TD
    A["ADC Event Trigger"] --> B["0"]
    B --> C["TGATE"]
    C --> D["Q"]
    D --> E["Q̅"]
    E --> F["Gate Sync"]
    F --> G["PB1_CLK"]
    G --> H["10"]
    H --> I["×1"]
    I --> J["TXCK(1)"]
    J --> K["TCKPS"]
    K --> L["Prescaler 1, 2, 4, 8, 16, 32, 64, 256"]
    L --> M["TGATE"]
    M --> N["TCS"]
    N --> O["ON"]
    O --> P["3"]
    P --> Q["TCKPS"]
    Q --> R["Reset"]
    R --> S["TMRy(1)"]
    S --> T["TMRx(1)"]
    T --> U["Sync"]
    U --> V["32-bit Comparator"]
    V --> W["Equal"]
    W --> X["MS Half Word"]
    X --> Y["LS Half Word"]
    Y --> Z["PRy(1)"]
    Z --> AA["PRx (1)"]
    AA --> AB["TyIF Event Flag(1)"]

Note 1: In this diagram, 'x' represents Timer2, 4, or 6, and 'y' represents Timer3, 5, or 7.

16.1 Timer2-Timer7 Control Registers

TABLE 16-1: TIMER2 THROUGH TIMER7 REGISTER MAP

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 16-1: TIMER2 THROUGH TIMER7 REGISTER MAP (CONTINUED)

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 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 16-1: TxCON: TYPE B TIMER CONTROL REGISTER (x = 2-7)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8R/W-0 U-0R/W-0 U-0U-0 U-0 U-0
ON^(1) SIDL^(2) — — —— —
7:0R/W-0R/W-0R/W-0R/W-0R/W-0U-0R/W-0U-0
TGATE^(1) TCKPS[2:0]^(1) T32^(3) TCS^(1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15 ON: Timer On bit(1)

1 = Module is enabled

0 = Module is disabled

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Mode bit ^(2)

1 = Discontinue operation when device enters Idle mode

0 = Continue operation even in Idle mode

bit 12-8 Unimplemented: Read as '0'

bit 7 TGATE: Timer Gated Time Accumulation Enable bit ^(1)

When TCS = 1:

This bit is ignored and is read as '0'.

When TCS = 0:

1 = Gated time accumulation is enabled

0 = Gated time accumulation is disabled

bit 6-4 TCKPS[2:0]: Timer Input Clock Prescale Select bits ^(1)

111 = 1:256 prescale value

110 = 1:64 prescale value

101 = 1:32 prescale value

100 = 1:16 prescale value

011 = 1:8 prescale value

010 = 1:4 prescale value

001 = 1:2 prescale value

000 = 1:1 prescale value

bit 3 T32: 32-Bit Timer Mode Select bit ^(3)

1 = Odd numbered and even numbered timers form a 32-bit timer

0 = Odd numbered and even numbered timers form separate 16-bit timers

bit 2 Unimplemented: Read as '0'

Note 1: While operating in 32-bit mode, this bit has no effect for odd numbered timers (Timer1, Timer3, Timer5, and Timer7). All timer functions are set through the even numbered timers.

2: While operating in 32-bit mode, this bit must be cleared on odd numbered timers to enable the 32-bit timer in Idle mode.

3: This bit is available only on even numbered timers (Timer2, Timer4, and Timer6).

REGISTER 16-1: TxCON: TYPE B TIMER CONTROL REGISTER (x = 2-7) (CONTINUED)

bit 1 TCS: Timer Clock Source Select bit (1)

1 = External clock from TxCK pin

0 = Internal peripheral clock

bit 0 Unimplemented: Read as '0'

Note 1: While operating in 32-bit mode, this bit has no effect for odd numbered timers (Timer1, Timer3, Timer5, and Timer7). All timer functions are set through the even numbered timers.
2: While operating in 32-bit mode, this bit must be cleared on odd numbered timers to enable the 32-bit timer in Idle mode.
3: This bit is available only on even numbered timers (Timer2, Timer4, and Timer6).

17.0 DEADMAN TIMER (DMT)

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 9. "Watchdog, Deadman, and Power-up Timers" (DS60001114) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The primary function of DMT is to reset the processor in the event of a software malfunction. The DMT is a free-running instruction fetch timer, which is clocked whenever an instruction fetch occurs until a count match occurs. Instructions are not fetched when the processor is in Sleep mode.

The DMT consists of a 32-bit counter with a time-out count match value as specified by the DMTCNT[4:0] bits in the CFGCON2 Configuration register.

The DMT is typically used in mission critical and safety critical applications, where any single failure of the software functionality and sequencing must be detected.

The DMT is enabled by setting the CFGCON2.DMTEN Configuration register bit or DMTCON.ON register bit. A device Reset is required to disable the DMT.

DMT has the following key features:

  • 32-bit configurable count-limit based upon counting instructions fetched
    • Hardware and software enabled
  • Two instruction sequence to clear timer
    • 32-bit configurable window to clear timer

FIGURE 17-1: DMT BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - DEADMAN TIMER (DMT) - 1

flowchart
graph TD
    A["Improper Sequence Flag"] --> B["AND"]
    C["Instruction Fetched Strobe"] --> D["NOT"]
    E["System Reset"] --> F["NOT"]
    B --> G["OR"]
    D --> G
    F --> G
    G --> H["Force DMT Event"]
    H --> I["Counter Initialization Value"]
    I --> J["32-bit Counter"]
    J --> K["(COUNTER) = DMT Max Count^(1)"]
    K --> L["(COUNTER) ≥ DMT Window Interval^(2)"]
    L --> M["Window Interval Open"]
    N["Proper Clear Sequence Flag"] --> O["AND"]
    P["System Reset"] --> Q["NOT"]
    O --> R["DMT Count Reset Load"]
    Q --> R
    R --> S["32"]
    S --> J
    T["ON"] --> U["AND"]
    V["ON"] --> W["AND"]
    X["ON"] --> Y["AND"]
    Z["ON"] --> AA["AND"]
    AB["ON"] --> AC["AND"]
    AD["ON"] --> AE["AND"]
    AF["ON"] --> AG["AND"]
    AH["ON"] --> AI["AND"]
    AJ["ON"] --> AK["AND"]
    AL["ON"] --> AM["AND"]
    AN["ON"] --> AO["AND"]
    AP["DMT Event to NMI^(3)"] --> AQ["OR"]
    AQ --> AR["32-bit Counter"]
    AR --> S

Note 1: DMT Max Count is controlled by the DMTCNT[4:0] bits in the CFGCON2 Configuration register.
2: DMT Window Interval is controlled by the DMTINTV[2:0] bits in the CFGCON2 Configuration register.
3: Refer to Section 7.0 "Resets" for more information.

17.1 DMT Control Registers

TABLE 17-1: DMT REGISTER MAP

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.

REGISTER 17-1: DMTCON: DEADMAN TIMER CONTROL REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8R/W-y U-0U-0 U-0 U-0 U-0U-0 U-0
ON ^(1) — — —— — —
7:0U-0 U-0U-0 U-0 U-0 U-0U-0 U-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-16 Unimplemented: Read as '0'

bit 15 ON: DMT Module Enable bit ^(1)

1 = DMT module is enabled

0 = DMT module is disabled

The Reset value of this bit is determined by the setting of the DMTEN bit (CFGCON2[3]).

bit 13-0 Unimplemented: Read as '0'

Note 1: This bit only has control when DMTEN (CFGCON2[3]) = 0.

REGISTER 17-2: DMTPRECLR: DEADMAN TIMER PRECLEAR REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0U-0 U-0
— — —— — — —
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
STEP1[7:0]
7:0U-0 U-0U-0 U-0U-0 U-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-8 STEP1[7:0]: Preclear Enable bits

01000000 = Enables the DMT preclear (Step 1)

All other write patterns = Set BAD1 flag.

These bits are cleared when a DMT Reset event occurs. STEP1[7:0] is also cleared if the STEP2[7:0] bits are loaded with the correct value in the correct sequence.

bit 7-0 Unimplemented: Read as '0'

REGISTER 17-3: DMTCLR: DEADMAN TIMER CLEAR REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-8

Unimplemented: Read as '0'

bit 7-0

STEP2[7:0]: Clear Timer bits

00001000 = Clears STEP1[7:0], STEP2[7:0] and the DMT if, and only if, preceded by correct loading of STEP1[7:0] bits in the correct sequence. The write to these bits may be verified by reading DMTCNT and observing the counter being reset.

All other write patterns = Set BAD2 bit, the value of STEP1[7:0] will remain unchanged, and the new value being written STEP2[7:0] will be captured. These bits are also cleared when a DMT Reset event occurs.

If the STEP2[7:0] bits are written without preceding with a correct loading of STEP1[7:0] bits, the BAD1 bit is set.

REGISTER 17-4: DMTSTAT: DEADMAN TIMER STATUS REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — —
23:16U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — —
15:8U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — —
7:0R-0, HC, HSR-0, HC, HSR-0, HC, HSU-0U-0U-0U-0R-0, HC, HS
BAD1BAD2DMTEVENTWINOPN
Legend:HC = Hardware Cleared HS = Hardware Set
R = Readable bitW = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown

bit 31-8 Unimplemented: Read as '0'

bit 7 BAD1: Bad STEP1[7:0] Value Detect bit

1 = Incorrect STEP1[7:0] value or out of sequence write to STEP2[7:0] is detected
0 = Incorrect STEP1[7:0] value is not detected

bit 6 BAD2: Bad STEP2[7:0] Value Detect bit

1 = Incorrect STEP2[7:0] value is detected
0 = Incorrect STEP2[7:0] value is not detected

bit 5 DMTEVENT: DMT Event bit

1 = DMT event is detected (counter expired or bad STEP1[7:0] or STEP2[7:0] value is entered prior to counter increment)
0 = DMT even is not detected

bit 4-1 Unimplemented: Read as '0'

bit 0 WINOPN: DMT Clear Window bit

1 = DMT clear window is open
0 = DMT clear window is not open

REGISTER 17-5: DMTCNT: DEADMAN TIMER COUNT REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0
COUNTER[31:24]
23:16R-0 R-0 R-0 R-0 R-0 R-0
COUNTER[23:16]
15:8R-0 R-0 R-0 R-0 R-0 R-0
COUNTER[15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0
COUNTER[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 COUNTER[31:0]: Read current contents of DMT counter

REGISTER 17-6: DMTPSCNT: POST STATUS CONFIGURE DMT COUNT STATUS REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R-0 R-0R-0 R-0R-0 R-0
PSCNT[31:24]
23:16R-0 R-0R-0 R-0R-0 R-0
PSCNT[23:16]
15:8R-0 R-0R-0 R-0R-0 R-0
PSCNT[15:8]
7:0R-0 R-0R-0 R-yR-y R-yR-y
PSCNT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 PSCNT[31:0]: DMT Instruction Count Value Configuration Status bits

This is always the value of the DMTCNT[4:0] bits in the CFGCON2 Configuration register.

REGISTER 17-7: DMTPSINTV: POST STATUS CONFIGURE DMT INTERVAL STATUS REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0
PSINTV[31:24]
23:16R-0 R-0 R-0 R-0 R-0 R-0
PSINTV[23:16]
15:8R-0 R-0 R-0 R-0 R-0 R-0
PSINTV[15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-y
PSINTV[7:0]
Legend: y = Value set from Configuration bits on POR
R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31-0

PSINTV[31:0]: DMT Window Interval Configuration Status bits

This is always the value of the DMTINTV[2:0] bits in the CFGCON2 Configuration register.

18.0 WATCHDOG TIMER (WDT)

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 9. "Watchdog, Deadman, and Power-up Timers" (DS60001114) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

When enabled, the WDT operates from the internal LPRC clock source and can be used to detect system software malfunctions by resetting the device if the WDT is not clear. Sed periodically in software. Various WDT time-out periods can be selected using the WDT postscaler. The WDT can also be used to wake the device from Sleep or Idle mode.

The key features of the WDT module are:

  • Configuration or software controlled
  • Up to 32 configurable time-out periods
  • Can wake the device from Sleep or Idle mode
  • Independent Run and Sleep mode counters
  • WDT may use alternate clock source and postscaler for Run mode counter
  • Independent 5-bit postscalers for Run and Sleep mode counters

• Hardware and software enabled

- Two clock sources

- Windowed WDT

Note: When the CPU is running on the same clock or clock frequency as the WDT (LPRC), the lowest pre-scale values may not allow the CPU to have enough time to reset the WDT before it expires.

FIGURE 18-1: WDT BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - WATCHDOG TIMER (WDT) - 1

flowchart
graph TD
    A["LPRC"] --> B["AND"]
    C["PB1_CLK"] --> B
    B --> D["ON"]
    D --> E["AND"]
    F["WDTCLRKEY[15:0"] = 0x5743] --> G["AND"]
    H["ON"] --> G
    I["Wake"] --> G
    J["ON"] --> G
    K["Reset Event"] --> G
    G --> L["WDT Counter Reset"]
    L --> M["32-bit Counter"]
    M --> N["32"]
    N --> O["Decoder"]
    O --> P["0"]
    O --> Q["1"]
    P --> R["WDT Event to NMI(1)"]
    Q --> S["Power Save"]
    S --> T["RUNDIV[4:0"] (WDTCON["12:8"])]
    T --> U["Reset Event"]

Note 1: Refer to Section 7.0 "Resets" for more information.

18.1 WDT Configuration

The WDT is configured using the following config register bits/fields:

  • Window size (CFGCON2.FWINSZ[1:0])
  • Windowing disable (CFGCON2.WINDIS)
    • Post-scaler selection (CFGCON2.WDTPS[4:0])

18.2 WDT Control Registers

TABLE 18-1: WDT REGISTER MAP

Virtual Address (BF80_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
0800WDTCON(1)31:16WDTCLRKEY[15:0]0000
15:0ONRUNDIV[4:0]WDTWINENxx00

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 13.0 "I/O Ports" for more information.

REGISTER 18-1: WDTCON: WATCHDOG TIMER CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24W-0W-0W-0W-0W-0W-0W-0W-0
WDTCLRKEY[15:8]
23:16W-0W-0W-0W-0W-0W-0W-0W-0
WDTCLRKEY[7:0]
15:8R/W-yU-0U-0R-yR-yR-yR-yR-y
ON(1)RUNDIV[4:0]
7:0U-0U-0U-0U-0U-0U-0U-0R/W-0
WDTWINEN
Legend:y = Values 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-16 WDTCLRKEY[16:0]: Watchdog Timer Clear Key bits

To clear the WDT to prevent a time-out, software must write the value 0x5743 to this location using a single 16-bit write.

bit 15 ON: Watchdog Timer Enable bit ^(1)

1 = WDT is enabled

0 = WDT is disabled

bit 14-13 Unimplemented: Read as '0'

bit 12-8 RUNDIV[4:0]: Watchdog Timer Postscaler Value bits

On Reset, these bits are set to the values of the WDTPS[4:0] Configuration bits in CFGCON2.

bit 7-1 Unimplemented: Read as '0'

bit 0 WDTWINEN: Watchdog Timer Window Enable bit

1 = Enable windowed WDT

0 = Disable windowed WDT

Note 1: This bit only has control when the WDTEN bit (CFGCON2[23]) = 0.

19.0 INPUT CAPTURE

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 15. "Input Capture" (DS60001122) of the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The input capture module is useful in applications requiring frequency (period) and pulse measurement.

This module captures the 16-bit value of the selected Time Base registers when an event occurs at the ICx pin.

The input capture module has the following features:

• Capture every rising and falling edge
• Capture every 4 ^th and 16 ^th rising edge
- Capture timer values based on internal or external clocks
• TMR2 or TMR3 time-based selection
- Device wakes up from capture pin during Sleep and Idle modes
- Interrupt on input capture event
- 4-word FIFO buffer for capture values; interrupt optionally generated after 1, 2, 3, or 4 buffer locations are filled
- Input capture can also be used to provide additional sources of external interrupts
- Capability to trigger PTG

FIGURE 19-1: INPUT CAPTURE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - INPUT CAPTURE - 1

flowchart
graph TD
    A["FEDGE"] --> B["Specified/Every Edge Mode"]
    B --> C["Prescaler Mode (16th Rising Edge)"]
    C --> D["Prescaler Mode (4th Rising Edge)"]
    D --> E["Rising Edge Mode"]
    E --> F["Falling Edge Mode"]
    F --> G["Edge Detection Mode"]
    G --> H["Sleep/Idle Wake-up Mode"]
    H --> I["ICx(1)"]
    I --> J["ICM[2:0"]]
    J --> K["ICXBUF(1)"]
    K --> L["ICI[1:0"]]
    L --> M["/N"]
    M --> N["001 111"]
    N --> O["Set Flag ICxIF(1) (In IFSx Register)"]
    P["TimerX(2)"] --> Q["FIFO Control"]
    R["TimerY(2)"] --> Q
    Q --> S["To CPU/PTG"]
    T["PB3_CLK"] --> U["PB3_CLK"]
    V["C32/ICTMR"] --> Q
    W["Capture Event"] --> Q

Note 1: An 'x' in a signal, register or bit name denotes the number of the capture channel.
2: See Table 19-1 for TimerX and TimerY selections.

The timer source for each input capture module depends on the setting of the IC_ACLK bit in the CFGCON0 register. The available configurations are shown in the table below.

When IC_ACLK = 0, all ICAP may choose between the same 2 timer sources. When IC_ACLK = 1, groups of ICAP may choose between a variation of timer sources.

TABLE 19-1: ICAP CLOCK SOURCES

IC_ACLK ICAP instanceX (MSB) clock/dataY (MSB) clock/data
0 ICAP1-4 TMR3 TMR2
1 ICAP1-2 TMR5 TMR4
ICAP3-4 TMR7 TMR6

19.1 Input Capture Control Registers

TABLE 19-2: INPUT CAPTURE 1 THROUGH INPUT CAPTURE 9 REGISTER MAP

Virtual Address (BF84,#)Register NameBit RangeBitsAll Resets
31/15 3014 29/1328/12 27/1126/10 25/924/8 23/722/6 21/5 2014 19/3 18/217/1 16/0
1000C1CON (1)31:160000
15:0ONSIDLFEDGEC32ICTMRICI[1:0]ICOVICBNEICM[2:0]0000
1010IC1BUF31:16IC1BUF[31:16]xxxxx
15:0IC1BUF[16:0]xxxxx
1200C2CON (1)31:160000
15:0ONSIDLFEDGEC32ICTMRICI[1:0]ICOVICBNEICM [2:0]0000
1210IC2BUF31:16IC2BUF[31:16]xxxxx
15:0IC2BUF[16:0]xxxxx
1400C3CON (1)31:160000
15:0ONSIDLFEDGEC32ICTMRICI[1:0]ICOVICBNEICM(2:0]0000
1410IC3BUF31:16IC3BUF[31:16]xxxxx
15:0IC3BUF[16:0]xxxxx
1600C4CON (1)31:160000
15:0ONSIDLFEDGEC32ICTMRICI[1:0]ICOVICBNEICM 2 : 0 0000
1610IC4BUF31:16IC4BUF[31:16]xxxxx
15:0IC4BUF[16:0]xxxxx

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 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 19-1: ICxCON: INPUT CAPTURE x CONTROL REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit
-n = Bit Value at POR: ('0', '1', x = unknown)P = Programmable bit r = Reserved bit

bit 31-16 Unimplemented: Read as '0'

bit 15 ON: Input Capture Module Enable bit

1 = Module is enabled

0 = Disable and Reset module, disable clocks, disable interrupt generation and allow SFR modifications

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Control bit

1 = Halt in CPU Idle mode

0 = Continue to operate in CPU Idle mode

bit 12-10 Unimplemented: Read as '0'

bit 9 FEDGE: First Capture Edge Select bit (only used in mode 6, ICM[2:0] = 110)

1 = Capture rising edge first

0 = Capture falling edge first

bit 8 C32: 32-bit Capture Select bit

1 = 32-bit timer resource capture

0 = 16-bit timer resource capture

bit 7 ICTMR: Timer Select bit (Does not affect timer selection when C32 (ICxCON[8]) is '1') ^(1)

0 = Timery is the counter source for capture

1 = Timerx is the counter source for capture

bit 6-5 ICI[1:0]: Interrupt Control bits

11 = Interrupt on every fourth capture event

10 = Interrupt on every third capture event

01 = Interrupt on every second capture event

00 = Interrupt on every capture event

bit 4 ICOV: Input Capture Overflow Status Flag bit (read-only)

1 = Input capture overflow is occurred

0 = No input capture overflow is occurred

bit 3 ICBNE: Input Capture Buffer Not Empty Status bit (read-only)

1 = Input capture buffer is not empty; at least one more capture value can be read

0 = Input capture buffer is empty

bit 2-0 ICM[2:0]: Input Capture Mode Select bits

111 = Interrupt-Only mode (only supported while in Sleep mode or Idle mode)

110 = Simple Capture Event mode - every edge, specified edge first and every edge thereafter

101 = Prescaled Capture Event mode - every sixteenth rising edge

100 = Prescaled Capture Event mode - every fourth rising edge

011 = Simple Capture Event mode - every rising edge

010 = Simple Capture Event mode - every falling edge

001 = Edge Detect mode - every edge (rising and falling)

000 = Input Capture module is disabled

Note 1: Refer to Table 19-1 for TimerX and TimerY selections.

20.0 OUTPUT COMPARE

Note: This data sheet summarizes the features of the PIC32MZ1025W104 device. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 16. "Output Compare" (DS60001111) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The output compare module is used to generate a single pulse or a train of pulses in response to selected time base events.

For all modes of operation, the output compare module compares the values stored in the OCxR and/or the OCxRS registers to the value in the selected timer. When a match occurs, the output compare module generates an event based on the selected mode of operation.

The output compare module has the following features:

  • Multiple output compare modules in a device
  • Programmable interrupt generation on compare event
  • Single and Dual Compare modes
  • Single and continuous output pulse generation
  • Glitchless Pulse Width Modulation (PWM) mode
  • with fault protection input
  • without fault protection input

  • Interrupt on output compare/PWM event

  • Interrupt on PWM fault detect condition
  • Programmable selection of 16-bit or 32-bit time bases

- Can operate from either of two available 16-bit time bases or a single 32-bit time base

- ADC event trigger

- Capability to trigger PTG

Operating modes are determined by setting the OCxM bits. Note that the OCxM bits must be switched through the OCxM = 000, before the next mode is selected.

FIGURE 20-1: OUTPUT COMPARE MODULE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - OUTPUT COMPARE - 1

flowchart
graph TD
    A["OCxRS(1)"] --> B["Comparator"]
    C["OCxR(1)"] --> B
    D["TimerX(2)"] --> E["OCTSEL"]
    F["TimerY(2)"] --> E
    G["TimerX(2) Rollover"] --> H["0 1"]
    I["TimerY(2) Rollover"] --> J["0 1"]
    K["Set Flag bit OCxIF(1)"] --> L["Output Logic"]
    M["Trigger to PTG/Trigger to ADC"] --> N["OCx(1)"]
    O["OCFA OCFB OCFC OCFD"] --> P["Output Enable Logic"]
    Q["OCXRS(1)"] --> R["Comparator"]
    S["OCXR(1)"] --> R
    T["OCM[2:0"] Mode Select] --> U["0 1"]
    V["3"] --> W["Output Enable Logic"]
    X["16"] --> Y["TimerX(2)"]
    X --> Z["TimerY(2)"]

Note 1: Where 'x' is shown, reference is made to the registers associated with the respective output compare channels, 1 through 4.

2: Refer to Table 20-1 for TimerX and TimerY selections.

The timer source for each output compare module depends on the setting of the OC_ACLK bit in the CFGCON0 register. The available configurations are shown in the table below.

When OC_ACLK = 0, all OCMP may choose between the same 2 timer sources. When OC_ACLK = 1, groups of OCMP may choose between a variation of timer sources.

TABLE 20-1: OCMP CLOCK SOURCES

OC_ACLK OCMPInstanceX (MSB)Clock/DataY (MSB)Clock/Data
0 OCMP1-4 TMR3 TMR2
1 OCMP1-2 TMR5 TMR4
OCMP3-4 TMR7 TMR6

20.1 Output Compare Control Registers

TABLE 20-2: OUTPUT COMPARE 1 THROUGH OUTPUT COMPARE 4 REGISTER MAP

Virtual Address(BFB4_#)RegistrarNameBit RangeBitsAll Resets
31/15 30/14 29/1328/12 27/1126/10 25/924/8 23/722/6 21/5 20/4 19/3 18/217/1 16/0
2000OC1CON31:16————————————2000
15:0 ONSIDLOC32OCFLTOCTSELOCM[2:0]0000
2010OC1R31:16OC1R[31:16]xxxxx
15:0OC1R[15:0]xxxxx
2020OC1RS31:16OC1RS[31:16]xxxxx
15:0OC1RS[15:0]xxxxx
2200OC2CON31:16————————————2000
15:0 ONSIDLOC32OCFLTOCTSELOCM[2:0]0000
2210OC2R31:16OC2R[31:16]xxxxx
15:0OC2R[15:0]xxxxx
2220OC2RS31:16OC2RS[31:16]xxxxx
15:0OC2RS[15:0]xxxxx
2400OC3CON31:16————————————2000
15:0 ONSIDLOC32OCFLTOCTSELOCM[2:0]0000
2410OC3R31:16OC3R[31:16]xxxxx
15:0OC3R[15:0]xxxxx
2420OC3RS31:16OC3RS[31:16]xxxxx
15:0OC3RS[15:0]xxxxx
2600OC4CON31:16————————————2000
15:0 ONSIDLOC32OCFLTOCTSELOCM[2:0]0000
2610OC4R31:16OC4R[31:16]xxxxx
15:0OC4R[15:0]xxxxx
2620OC4RS31:16OC4RS[31:16]xxxxx
15:0OC4RS[15:0]xxxxx

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 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 20-1: OCxCON: OUTPUT COMPARE 'x' CONTROL REGISTER (x=1-4)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8R/W-0 U-0R/W-0U-0 U-0 U-0 U-0U-0U-0
ONSIDL— — —— —
7:0U-0U-0R/W-0R-0R/W-0R/W-0R/W-0R/W-0
OC32 OCFLT^(1) OCTSEL^(2) OCM[2:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15 ON: Output Compare Peripheral On bit

1 = Output compare peripheral is enabled
0 = Output compare peripheral is disabled

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Mode bit

1 = Discontinue operation when CPU enters Idle mode
0 = Continue operation in Idle mode

bit 12-6 Unimplemented: Read as '0'

bit 5 OC32: 32-bit Compare Mode bit

1 = OCxR[31:0] and/or OCxRS[31:0] are used for comparisons to the 32-bit timer source
0 = OCxR[15:0] and OCxRS[15:0] are used for comparisons to the 16-bit timer source

bit 4 OCFLT: PWM Fault Condition Status bit ^(1)

1 = PWM Fault condition has occurred (cleared in hardware only)
0 = No PWM Fault condition has occurred

bit 3 OCTSEL: Output Compare Timer Select bit ^(2)

1 = TimerX is the clock source for this output compare module
0 = TimerY is the clock source for this output compare module

bit 2-0 OCM[2:0]: Output Compare Mode Select bits

111 = PWM mode on OCx; fault pin is enabled
110 = PWM mode on OCx; fault pin is disabled
101 = Initialize OCx pin low; generate continuous output pulses on OCx pin
100 = Initialize OCx pin low; generate single output pulse on OCx pin
011 = Compare event toggles OCx pin
010 = Initialize OCx pin high; compare event forces OCx pin low
001 = Initialize OCx pin low; compare event forces OCx pin high
000 = Output compare peripheral is disabled but continues to draw current

Note 1: This bit is only used when OCM[2:0] = '111'. It is read as '0' in all other modes.

2: Refer to Table 20-1 for TimerX and TimerY selections.

21.0 SERIAL PERIPHERAL INTERFACE (SPI) AND INTER-IC SOUND (I²S)

Note: This data sheet summarizes the features of the PIC32MZ1025W104 device. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 23. "Serial Peripheral Interface (SPI)" (DS60001106) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

SPI/I ^2 S module is a synchronous serial interface that is useful for communicating with external peripherals and other MCU devices, as well as digital audio devices. These peripheral devices may be Serial EEPROMs, Shift registers, display drivers, ADCs, and so on.

SPI1 has two paths to device pins. One using PPS (slower operation) and another using dedicated pins (faster operation). The dedicated pins can operate at a maximum of 40 MHz whereas PPS pins (slower SPI) can operate up to 20 MHz. SPI2 supports single path to device pins using PPS.

The following are key features of the SPI module:

  • Native 32-bit peripheral bus architecture, scalable to 16-bit and 8-bit access
  • Host and Client mode support
    • Full-duplex operation with 8/16/32-bit communication
  • Status bit to indicate activity of SPI
  • Four different clock formats
  • Interrupt event on every byte/half-word/word received
  • Separate transmit and receive buffer events
  • Framed SPI protocol support
  • DMA support
  • SDO pin disable option
    • 16 byte deep enhanced buffer operation
  • Persistent Interrupt events based on internal status bits
    • Enhanced FSYNC operation
    • Audio CODEC support
  • I²S protocol
  • Left justified
  • Right justified
  • PCM
  • I²S protocol
  • Left justified
  • Right justified
  • PCM

Note: Set the CFGCON1.HSSPIEN register bit to enable the High-speed mode on SPI1.

FIGURE 21-1: SPI/I ^2 S MODULE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - SERIAL PERIPHERAL INTERFACE (SPI) AND INTER-IC SOUND (I²S) - 1

flowchart
graph TD
    A["SPIxBUF"] -->|WriteRead| B["FIFOs Share Address SPIxBUF"]
    B --> C["SPIxRSR"]
    C -->|bit 0| D["Client Select and Frame Sync Control"]
    C --> E["Clock Control"]
    C --> F["Edge Select"]
    F --> G["Baud Rate Generator"]
    G --> H["MCLKSEL"]
    H --> I["REFCLKO1"]
    H --> J["PB3_CLK"]
    K["SCKx"] --> C
    L["SSx/FSYNC"] --> C
    M["SDIx"] --> C
    N["SDOx"] --> C
    O["SDIx"] --> C
    P["Transmit"] --> C
    Q["Client Select and Frame Sync Control"] --> C
    R["Shift Control"] --> C
    S["WriteRead"] --> T["SPIxRXB FIFO"]
    U["SPIxTXB FIFO"] --> T
    V["Send Data Bus"] <--> W["Internal Data Bus"]

21.1 SPI Control Registers

TABLE 21-1: SPI1 AND SPI2 REGISTER MAP

Virtual Address(BF84.#)Register Name[1]Bit RangeBitsAll Resets
31/15 3014 29/13 2812 27/1126/10 25/9 224/8 23/7 22/621/5 20/419/3 18/217/1 16/0
OC00SPI1CON31:16FRMENFRMSYNCFRMPOLMSSENFRMSYPWFRMCNT[2:0]MCLKSELSPIFEENHBUFC000
15:0ONSIDLDISSDOMODE32MODE16SMPCKESSENCKPMSTENDISSDISTXISEL[1:0]SRXISEL[1:0]0000
OC10SPI1STAT31:16RXBUFELM[4:0]TXBUFELM[4:0]0000
15:0FRMERRSPIBUSYSPITURSRMTSPIROVSPIRBESPITBESPITBFSPIRBF0000
OC20SPI1BUF31:16DATA[31:16]C000
15:0DATA[15:0]C000
OC30SPI1BRG31:160000
15:0BRG[12:0]0000
OC40SPI1CON231:160000
15:0SPISGNEXTFRMERRENSPIROVENSPITURENIGNROVIGNTURAUDENAUDMONOAUDMOD[1:0]0000
OE00SPI2CON31:16FRMENFRMSYNCFRMPOLMSSENFRMSYPWFRMCNT[2:0]MCLKSELSPIFEENHBUFC000
15:0ONSIDLDISSDOMODE32MODE16SMPCKESSENCKPMSTENDISSDISTXISEL[1:0]SRXISEL[1:0]0000
OE10SPI2STAT31:16RXBUFELM[4:0]TXBUFELM[4:0]0000
15:0FRMERRSPIBUSYSPITURSRMTSPIROVSPIRBESPATBESPITBFSPIRBF0000
OE20SPI2BUF31:16DATA[31:0]0000
15:0C000
OE30SPI2BRG31:160000
15:0BRG[8:0]0000
OE40SPI2CON231:160000
15:0SPISGNEXTFRMERRENSPIROVENSPITURENIGNROVIGNTURAUDENAUDMONO-AUDMOD[1:0]0000

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 Section 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 21-1: SPIxCON: SPI CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FRMEN FRMSYNC FRMPOL MSSEN FRMSYPW FRMCNT[2:0]
23:16R/W-0U-0U-0U-0U-0U-0R/W-0R/W-0
MCLKSEL^(1) SPIFE ENHBUF^(1)
15:8R/W-0 U-0R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0
ONSIDL DISSDO^(4) MODE32 MODE16MP CKE(2)
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SSEN CKP(3)MSTENDISSDI^{(4)}$ STXISEL[1:0]SRXISEL[1:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31 FRMEN: Framed SPI Support bit

1 = Framed SPI support is enabled (SSx pin used as FSYNC input/output)

0 = Framed SPI support is disabled

bit 30 FRMSYNC: Frame Sync Pulse Direction Control on pin bit (Framed SPI mode only)

1 = Frame sync pulse input (Client mode)

0 = Frame sync pulse output (Host mode)

bit 29 FRMPOL: Frame Sync/Client Select Polarity bit (Framed SPI or Host Transmit modes only)

1 = Frame pulse or SSx pin is active-high

0 = Frame pulse or SSx is active-low

bit 28 MSSEN: Host Mode Client Select Enable bit

1 = Client select SPI support is enabled. The pin is automatically driven during transmission in Host mode. Polarity is determined by the FRMPOL bit.

0 = Client select SPI support is disabled.

bit 27 FRMSYPW: Frame Sync Pulse Width bit

1 = Frame sync pulse is one character wide

0 = Frame sync pulse is one clock wide

bit 26-24 FRMCNT[2:0]: Frame Sync Pulse Counter bits. Controls the number of data characters transmitted per pulse. This bit is only valid in Framed mode.

111 = Reserved

110 = Reserved

101 = Generates a frame sync pulse on every 32 data characters

100 = Generates a frame sync pulse on every 16 data characters

011 = Generates a frame sync pulse on every 8 data characters

010 = Generates a frame sync pulse on every 4 data characters

001 = Generates a frame sync pulse on every 2 data characters

000 = Generates a frame sync pulse on every data character

bit 23 MCLKSEL: Host Clock Enable bit ^(1)

1 = REFCLKO1 is used by the Baud Rate Generator

0 = PBCLK3 is used by the Baud Rate Generator

bit 22-18 Unimplemented: Read as '0'

Note 1: This bit can only be written when the ON bit = 0. Refer to Section 41.0 “Electrical Specifications” for maximum clock frequency requirements.

2: This bit is not used in the Framed SPI mode. The user must program this bit to '0' for the Framed SPI mode (FRMEN = 1).

3: When AUDEN = 1, the SPI/I²S module functions as if the CKP bit is equal to '1', regardless of the actual value of the CKP bit.

4: This bit present for legacy compatibility and is superseded by PPS functionality on these devices (see Section 13.4 "Peripheral Pin Select (PPS)" for more information).

REGISTER 21-1: SPIxCON: SPI CONTROL REGISTER (CONTINUED)

bit 17 SPIFE: Frame Sync Pulse Edge Select bit (Framed SPI mode only)

1 = Frame synchronization pulse coincides with the first bit clock
0 = Frame synchronization pulse precedes the first bit clock

bit 16 ENHBUF: Enhanced Buffer Enable bit (1)

1 = Enhanced Buffer mode is enabled
0 = Enhanced Buffer mode is disabled

bit 15 ON: SPI/I ^2 S Module On bit

1 = SPI/I 2S module is enabled
0 = SPI/I 2S module is disabled

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Mode bit

1 = Discontinue operation when CPU enters in Idle mode
0 = Continue operation in Idle mode

bit 12 DISSDO: Disable SDOx pin bit (4)

1 = SDOx pin is not used by the module. Pin is controlled by associated PORT register.
0 = SDOx pin is controlled by the module

bit 11-10 MODE[32,16]: 32/16-Bit Communication Select bits

When AUDEN = 1:

MODE32 MODE16 Communication

1124-bit Data, 32-bit FIFO, 32-bit Channel/64-bit Frame
1032-bit Data, 32-bit FIFO, 32-bit Channel/64-bit Frame
0116-bit Data, 16-bit FIFO, 32-bit Channel/64-bit Frame
0016-bit Data, 16-bit FIFO, 16-bit Channel/32-bit Frame

When AUDEN = 0:

MODE32 MODE16 Communication

1x32-bit
0116-bit
008-bit

bit 9 SMP: SPI Data Input Sample Phase bit

Host mode (MSTEN = 1):

1 = Input data sampled at end of data output time

0 = Input data sampled at middle of data output time

Client mode (MSTEN = 0):

SMP value is ignored when SPI is used in Client mode. The module always uses SMP = 0.

bit 8 CKE: SPI Clock Edge Select bit (2)

1 = Serial output data changes on transition from active clock state to Idle clock state (see CKP bit)
0 = Serial output data changes on transition from Idle clock state to active clock state (see CKP bit)

bit 7 SSEN: Client Select Enable (Client mode) bit

1 = SSx pin is used for Client mode
0 = pin is not used for Client mode, pin is controlled by the port function.

bit 6 CKP: Clock Polarity Select bit (3)

1 = Idle state for clock is a high level; active state is a low level
0 = Idle state for clock is a low level; active state is a high level

bit 5 MSTEN: Host Mode Enable bit

1 = Host mode
0 = Client mode

Note 1: This bit can only be written when the ON bit = 0. Refer to Section 41.0 “Electrical Specifications” for maximum clock frequency requirements.

2: This bit is not used in the Framed SPI mode. The user must program this bit to '0' for the Framed SPI mode (FRMEN = 1).
3: When AUDEN = 1, the SPI/I²S module functions as if the CKP bit is equal to '1', regardless of the actual value of the CKP bit.
4: This bit present for legacy compatibility and is superseded by PPS functionality on these devices (see Section 13.4 "Peripheral Pin Select (PPS)" for more information).

REGISTER 21-1: SPIxCON: SPI CONTROL REGISTER (CONTINUED)

bit 4 DISSDI: Disable SDI bit (4)

1 = SDI pin is not used by the SPI module (pin is controlled by PORT function)

0 = SDI pin is controlled by the SPI module

bit 3-2 STXISEL[1:0]: SPI Transmit Buffer Empty Interrupt Mode bits

11 = Interrupt is generated when the buffer is not full (has one or more empty elements)

10 = Interrupt is generated when the buffer is empty by one-half or more

01 = Interrupt is generated when the buffer is completely empty

0.0 = Interrupt is generated when the last transfer is shifted out of SPISR and transmit operations are complete

bit 1-0 SRXISEL[1:0]: SPI Receive Buffer Full Interrupt Mode bits

11 = Interrupt is generated when the buffer is full

10 = Interrupt is generated when the buffer is full by one-half or more

01 = Interrupt is generated when the buffer is not empty

00 = Interrupt is generated when the last word in the receive buffer is read (in other words buffer is empty)

Note 1: This bit can only be written when the ON bit = 0. Refer to Section 41.0 "Electrical Specifications" for maximum clock frequency requirements.

2: This bit is not used in the Framed SPI mode. The user must program this bit to '0' for the Framed SPI mode (FRMEN = 1).

3: When AUDEN = 1, the SPI/I²S module functions as if the CKP bit is equal to '1', regardless of the actual value of the CKP bit.

4: This bit present for legacy compatibility and is superseded by PPS functionality on these devices (see Section 13.4 "Peripheral Pin Select (PPS)" for more information).

REGISTER 21-2: SPIxCON2: SPI CONTROL REGISTER 2

R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15 SPISGNEXT: Sign Extend Read Data from the RX FIFO bit

1 = Data from RX FIFO is sign extended
0 = Data from RX FIFO is not sign extended

bit 14-13 Unimplemented: Read as '0'

bit 12 FRMERREN: Enable Interrupt Events via FRMERR bit

1 = Frame error overflow generates error events
0 = Frame error does not generate error events

bit 11 SPIROVEN: Enable Interrupt Events via SPIROV bit

1 = Receive overflow generates error events
0 = Receive overflow does not generate error events

bit 10 SPITUREN: Enable Interrupt Events via SPITUR bit

1 = Transmit underrun generates error events
0 = Transmit underrun does not generate error events

bit 9 IGNROV: Ignore Receive Overflow bit (for audio data transmissions)

1 = A ROV is not a critical error; during ROV data in the FIFO is not overwritten by receive data
0 = A ROV is a critical error which stop SPI operation

bit 8 IGNTUR: Ignore Transmit Underrun bit (for audio data transmissions)

1 = A TUR is not a critical error and zeros are transmitted until the SPIxTXB is not empty
0 = A TUR is a critical error which stop SPI operation

bit 7 AUDEN: Enable Audio CODEC Support bit ^(1)

1 = Audio protocol is enabled
0 = Audio protocol is disabled

bit 6-5 Unimplemented: Read as '0'

bit 3 AUDMONO: Transmit Audio Data Format bit ^(1,2)

1 = Audio data is mono (each data word is transmitted on both left and right channels)
0 = Audio data is stereo

bit 2 Unimplemented: Read as '0'

bit 1-0 AUDMOD[1:0]: Audio Protocol Mode bit ^(1,2)

11 = PCM/DSP mode
10 = Right Justified mode
01 = Left Justified mode
00 = I²S mode

Note 1: This bit can only be written when the ON bit = 0.

2: This bit is only valid for AUDEN = 1.

Legend:C = Clearable bit HS = Set in hardware
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-29 Unimplemented: Read as '0'

bit 28-24 RXBUFELM[4:0]: Receive Buffer Element Count bits (valid only when ENHBUF = 1)

bit 23-21 Unimplemented: Read as '0'

bit 20-16 TXBUFELM[4:0]: Transmit Buffer Element Count bits (valid only when ENHBUF = 1)

bit 15-13 Unimplemented: Read as '0'

bit 12 FRMERR: SPI Frame Error status bit

1 = Frame error is detected

0 = No Frame error is detected

This bit is only valid when FRMEN = 1.

bit 11 SPIBUSY: SPI Activity Status bit

1 = SPI peripheral is currently busy with some transactions

0 = SPI peripheral is currently idle

bit 10-9 Unimplemented: Read as '0'

bit 8 SPITUR: Transmit Under Run bit

1 = Transmit buffer has encountered an Underrun condition

0 = Transmit buffer has no Underrun condition

This bit is only valid in Framed Sync mode; the Underrun condition must be cleared by disabling/re-enabling the module.

bit 7 SRMT: Shift Register Empty bit (valid only when ENHBUF = 1)

1 = When SPI module shift register is empty

0 = When SPI module shift register is not empty

bit 6 SPIROV: Receive Overflow Flag bit

1 = A new data is completely received and discarded. The user software has not read the previous data in the SPIxBUF register.

0 = No overflow has occurred

This bit is set in hardware; can only be cleared (= 0) in software.

bit 5 SPIRBE: RX FIFO Empty bit (valid only when ENHBUF = 1)

1 = RX FIFO is empty (CRPTR = SWPTR)

0 = RX FIFO is not empty (CRPTR ≠ SWPTR)

bit 4 Unimplemented: Read as '0'

REGISTER 21-3: SPIxSTAT: SPI STATUS REGISTER (CONTINUED)

bit 3 SPITBE: SPI Transmit Buffer Empty Status bit

1 = Transmit buffer, SPIxTXB is empty

0 = Transmit buffer, SPIxTXB is not empty

Automatically set in hardware when SPI transfers data from SPIxTXB to SPIxSR.

Automatically cleared in hardware when SPIxBUF is written to, loading SPIxTXB.

bit 2 Unimplemented: Read as '0'

bit 1 SPITBF: SPI Transmit Buffer Full Status bit

1 = Transmit is not yet started, SPITXB is full

0 = Transmit buffer is not full

Standard Buffer mode:

Automatically set in hardware when the core writes to the SPIBUF location, loading SPITXB.

Automatically cleared in hardware when the SPI module transfers data from SPITXB to SPISR.

Enhanced Buffer mode:

Set when CWPTR + 1 = SRPTR; cleared otherwise

bit 0 SPIRBF: SPI Receive Buffer Full Status bit

1 = Receive buffer, SPIxRXB is full

0 = Receive buffer, SPIxRXB is not full

Standard Buffer mode:

Automatically set in hardware when the SPI module transfers data from SPIxSR to SPIxRXB.

Automatically cleared in hardware when SPIxBUF is read from, reading SPIxRXB.

Enhanced Buffer mode:

Set when SWPTR + 1 = CRPTR; cleared otherwise

22.0 SERIAL QUAD INTERFACE (SQI)

Note: This data sheet summarizes the features of the PIC32MZ1025W104 device. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 46. "Serial Quad Interface (SQI)" (DS60001244) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The SQI module is a synchronous serial interface that provides access to serial Flash memories and other serial devices. The SQI module supports Single Lane (identical to SPI), Dual Lane, and Quad Lane modes.

The following are key features of the SQI module:

• Supports Single, Dual, and Quad Lane modes
• Supports Single Data Rate (SDR) mode
- Programmable command sequence
- Does not support Execute-in-Place (XIP) over SQL interface
- Data transfer:

- Programmed I/O mode (PIO)

- Buffer descriptor DMA

• Supports SPI Mode 0 and Mode 3
- Programmable Clock Polarity (CPOL) and Clock Phase (CPHA) bits
• Supports up to two chip selects
• Supports up to four bytes of Flash address
- Programmable interrupt thresholds
• 32-byte transmit data buffer
• 32-byte receive data buffer
• 4-word controller buffer

FIGURE 22-1: SQI MODULE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - SERIAL QUAD INTERFACE (SQI) - 1

flowchart
graph TD
    A["PB3_CLK(2)"] --> B["REFCLKO2(1) (Tbc)"]
    B --> C["Bus Target"]
    C --> D["Control and Status Registers (PIO)"]
    D --> E["Transmit Buffer"]
    E --> F["SQI Host Interface"]
    F --> G["Control Buffer"]
    G --> H["SQID0"]
    F --> I["SQID1"]
    F --> J["SQID2"]
    F --> K["SQID3"]
    F --> L["SQICLK"]
    F --> M["SQICS0"]
    F --> N["SQICS1"]
    O["Bus Initiator"] --> P["DMA"]
    P --> Q["Receive Buffer"]
    Q --> F
    R["System Bus"] --> S["Up arrow"]
    S --> A

Note 1: When configuring the REFCLKO2 clock source, a value of '0' for the ROTRIM[8:0] bits must be selected. The user need to configure CFGCON3.SPLLPOSTDIV2 when SPLL is selected as clock source for REFCLKO2 (as REFCLKO2 is connected to the auxiliary second PLL clock).
2: This clock source is only used for SQI Special Function Register (SFR) access.

22.1 SQI Control Registers

Note 1: After a Reset, the first access to the SQI SFRs must be a write.

2: The REFCLKO2 must be enabled before reading the registers from the SQI peripheral.

TABLE 22-1: SERIAL QUADRATURE INTERFACE (SQI) REGISTER MAP

Virtual Address (BFBE_#)Register NameBit RangeBitsAll Resets
31/15 3014 29/13 2812 27/11 2610 25/9 248 23/7 22/621/5 20/4 193 18/2 17/116/0
1008SQI1CFG31:16CSEN[1:0]SQIENDATAEN[1:0]CONBU-FRSTRXBU-FRSTTXBU-FRSTRESET0000
15:0BURSTENHOLDWPLSBFCPOLCPHAMODE[2:0]0000
100CSQI1CON31:16SCHECKDASSERTDEVSEL[1:0]LANEMODE[1:0]CMDINIT[1:0]0000
15:0TXRXCOUNT[15:0]0000
1010SQI1 CLKCON31:16CLKDIV[10:8]0000
15:0CLKDIV[7:0]STABLEEN0000
1014SQI1 CMDTHR31:160000
15:0TXCMDTHR[7:0]RXCMDTHR[7:0]0000
1018SQI1 INTTHR31:160000
15:0TXINTTHR[7:0]RXINTTHR[7:0]0000
101CSQI1 INTEN31:160000
15:0DMAEIEPKT COMPIEBD DONEIECON THRIECON EMPTYIECON FULLIERX THRIERX FULLIERX EMPTYIETX THRIETX FULLIETX EMPTYIETX THRIETX FULLIETX FULLIETX EMPTYIE0000
1020SQI1 INTSTAT31:160000
15:0DMAEIFPKT COMPIFBD DONEIFCON THRIFCON EMPTYIFCON FULLIFRX THRIFRX FULLIFRX EMPTYIFTX THRIFTX FULLIFTX EMPTYIFTX THRIFTX FULLIFTX FULLIFTX EMPTYIF0000
1024SQI1 TXDATA31:16TXDATA[31:16]0000
15:0TXDATA[15:0]0000
1028SQI1 RXDATA31:16RXDATA[31:16]0000
15:0RXDATA[15:0]0000
102CSQI1 STAT131:16TXFIFOFREE[7:0]0000
15:0RXFIFOCNT[7:0]0000
1030SQI1 STAT231:16CMDSTAT[1:0]0000
15:0CONAVAIL[4:0]SDID3SDID2SDID1SDID0RXUNTXOV0000
1034SQI1 BDCON31:160000
15:0STARTPOLLENDMAEN0000
1038SQI1BD CURADD31:16BDCURRADDR[31:16]0000
15:0BDCURRADDR[15:0]0000
1040SQI1BD BASEADD31:16BDADDR[31:16]0000
15:0BDADDR[15:0]0000
Virtual Address (BF8E_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
1044SQI1BD STAT31:16— —— — —— — — BDSTATE[3:0]DMA STARTDMAACTV0000
15:0BDCON[15:0] 00:00
1048SQI1BD POLLCON31:16— —— — —— — —— — —C000
15:0POLLCON[15:0] 00:00
104CSQI1BD TXDSTAT31:16TXSTATE[3:0]TXBUFCNT[4:0]0000
15:0— —— — —— TXCURBUFLEN[7:0]0000
1050SQI1BD RXDSTAT31:16RXSTATE[3:0]RXCURBUFLEN[7:0]0000
15:0
1054SQI1THR31:16— —— — —— — —C000
15:0THRES[4:0]0000
1058SQI1INT SIGEN31:16— —— — —— — —C000
15:0DMAFISEPKT DONEISEBD DONEISECON THRISECON EMPTYISECON FULLISERX THRISERX FULLISERX EMPTYISETX THRISETX FULLISETX EMPTYISETX EMPTYISE0000
105CSQI1 TAPCON31:16— —— — —— — —C000
15:0CLKINDLY[5:0]DATAOUTDLY[3:0]CLKOUTDLY[3:0]0000
1060SQI1 MEMSTAT31:16STATPOSTYPESTAT[1:0]STATBYTES[1:0]0000
15:0STATDATA[15:0]0000

REGISTER 22-1: SQI1CFG: SQI CONFIGURATION REGISTER (1)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0R/W-0 R/W-0
— — —— — —CSEN[1:0]
23:16R/W-0U-0R/W-0R/W-0R/W-0, HCR/W-0, HCR/W-0, HCR/W-0, HC
SQIENDATAEN[1:0]CONBUFRSTRXBUFRSTTXBUFRSTRESET
15:8U-0r-0r-0R/W-0r-0R/W-0R/W-0U-0
— — —BURSTEN(1)HOLDWP
7:0U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
LSBFCPOLCPHAMODE[2:0]
Legend:HC = Hardware Clearedr = Reserved
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-26 Unimplemented: Read as '0'

bit 25-24 CSEN[1:0]: Chip Select Output Enable bits

11 = Chip Select 0 and Chip Select 1 are used
10 = Chip Select 1 is used (Chip Select 0 is not used)
01 = Chip Select 0 is used (Chip Select 1 is not used)
00 = Chip Select 0 and Chip Select 1 are not used

bit 23 SQIEN: SQI Enable bit

1 = SQI module is enabled
0 = SQI module is disabled

Note: Do not use the SQI1CFGbits.SQIEN = 0 instruction to enable the SQI. Instead, use the SQI1CFGCLR = _SQICFG_SQIEN_MASK instruction.

bit 22 Unimplemented: Read as '0'

bit 21-20 DATAEN[1:0]: Data Output Enable bits

11 = Reserved
10 = SQID3-SQID0 outputs are enabled
01 = SQID1 and SQID0 data outputs are enabled
00 = SQID0 data output is enabled

bit 19 CONFIFORST: Control FIFO Reset bit

1 = A reset pulse is generated clearing the control FIFO
0 = A reset pulse is not generated

bit 18 RXFIFORST: Receive FIFO Reset bit

1 = A reset pulse is generated clearing the receive FIFO
0 = A reset pulse is not generated

bit 17 TXFIFORST: Transmit FIFO Reset bit

1 = A reset pulse is generated clearing the transmit FIFO
0 = A reset pulse is not generated

bit 16 RESET: Software Reset Select bit

This bit is automatically cleared by the SQI module. All of the internal state machines and FIFO pointers are reset by this reset pulse.

1 = A reset pulse is generated
0 = A reset pulse is not generated

bit 15 Unimplemented: Read as '0'

Note 1: The SQI1CFG register must be programmed to 2'b01 (CPU mode) in the peripheral initialization code if the SQI peripheral is used.

REGISTER 22-1: SQI1CFG: SQI CONFIGURATION REGISTER (1) (CONTINUED)

bit 14-13 Reserved: Must be programmed as '0'

bit 12 BURSTEN: Burst Configuration bit (1)

1 = Burst is enabled

0 = Burst is not enabled

Note 1: This bit must be programmed as '1'.

bit 11 Reserved: Must be programmed as '0'

bit 10 HOLD: Hold bit

In Single Lane or Dual Lane mode, this bit is used to drive the SQID3 pin, which can be used for devices with a HOLD input pin. The meaning of the values for this bit will depend on the device to which SQID3 is connected.

bit 9 WP: Write Protect bit

In Single Lane or Dual Lane mode, this bit is used to drive the SQID2 pin, which can be used with devices with a write-protect pin. The meaning of the values for this bit will depend on the device to which SQID2 is connected.

bit 8-6 Unimplemented: Read as '0'

bit 5 LSBF: Data Format Select bit

1 = LSB is sent or received first

0 = MSB is sent or received first

bit 4 CPOL: Clock Polarity Select bit

1 = Active-low SQICLK (SQICLK high is the Idle state)

0 = Active-high SQICLK (SQICLK low is the Idle state)

bit 3 CPHA: Clock Phase Select bit

1 = SQICLK starts toggling at the start of the first data bit

0 = SQICLK starts toggling at the middle of the first data bit

bit 2-0 MODE[2:0]: Mode Select bits

111 = Reserved

-

100 = Reserved

011 = Reserved

010 = DMA mode is selected

001 = CPU mode is selected (the module is controlled by the CPU in PIO mode.

000 = Reserved

Note 1: The SQI1CFG register must be programmed to 2'b01 (CPU mode) in the peripheral initialization code if the SQI peripheral is used.

REGISTER 22-2: SQI1CON: SQI CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0r-0 R/W-0
— — —— — — —SCHECK
23:16U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DASSERTDEVSEL[1:0]LANEMODE[1:0]CMDINIT[1:0]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
TXRXCOUNT[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
TXRXCOUNT[7:0]
Legend:r = Reserved
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-26 Unimplemented: Read as '0'

bit 25 Reserved: Must be programmed as '0'

bit 24 SCHECK: Flash Status Check bit

1 = Check the status of the Flash

0 = Do not check the status of the Flash

bit 23 Unimplemented: Read as '0'

bit 22 DASSERT: Chip Select Assert bit

1 = Chip Select is deasserted after transmission or reception of the specified number of bytes

0 = Chip Select is not deasserted after transmission or reception of the specified number of bytes

bit 21-20 DEVSEL[1:0]: SQL Device Select bits

11 = Reserved

10 = Reserved

01 = Select Device 1

00 = Select Device 0

bit 19-18 LANEMODE[1:0]: SQI Lane Mode Select bits

11 = Reserved

10 = Quad Lane mode

01 = Dual Lane mode

00 = Single Lane mode

bit 17-16 CMDINIT[1:0]: Command Initiation Mode Select bits

If it is Transmit, commands are initiated based on a write to the transmit register or the contents of TX FIFO. If CMDINIT is Receive, commands are initiated based on reads to the read register or RX FIFO availability.

11 = Reserved

10 = Receive

01 = Transmit

00 = Idle

bit 15-0 TXRXCOUNT[15:0]: Transmit/Receive Count bits

These bits specify the total number of bytes to transmit or receive (based on CMDINIT).

REGISTER 22-3: SQI1CLKCON: SQI CLOCK CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0R/W-0
— — —— —CLKDIV[10:8](1)
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CLKDIV[7:0](1)
7:0U-0 U-0 U-0 U-0 U-0 U-0R-0R/W-0
STABLEEN

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-19 Unimplemented: Read as '0'

bit 18-8 CLKDIV[10:0]: SQI Clock Tsq Frequency Select bit ^(1)

10000000000 = Base clock TBC is divided by 2048

01000000000 = Base clock TBC is divided by 1024

00100000000 = Base clock TBC is divided by 512

00010000000 = Base clock TBC is divided by 256

00001000000 = Base clock TBC is divided by 128

00000100000 = Base clock TBC is divided by 64

00000010000 = Base clock TBC is divided by 32

00000001000 = Base clock TBC is divided by 16

00000000100 = Base clock TBC is divided by 8

00000000010 = Base clock TBC is divided by 4

00000000001 = Base clock TBC is divided by 2

00000000000 = Base clock TBC

Setting these bits to '00000000000' specifies the highest frequency of the SQI clock.

bit 7-2 Unimplemented: Read as '0'

bit 1 STABLE: T_{SQI} Clock Stable Select bit

This bit is set to '1' when the SQI clock, Tsqi, is stable after writing a '1' to the EN bit.

1 = Tsq clock is stable

0 = Tsq clock is not stable

bit 0 EN: TSQI Clock Enable Select bit

When clock oscillation is stable, the SQI module will set the STABLE bit to '1'.

1 = Enable the SQI clock (TsqI) (when clock oscillation is stable, the SQI module sets the STABLE bit to '1')

0 = Disable the SQI clock (TsqI) (the SQI module must stop its clock to enter a low power state); SFRs can still be accessed, as they use PB3_CLK

Note 1: Refer to 41.0 "Electrical Specifications" for the maximum clock frequency specifications.

REGISTER 22-4: SQI1CMDTHR: SQI COMMAND THRESHOLD REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
15:8U-0 U-0 U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
TXCMDTHR[7:0]
7:0U-0 U-0 U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
RXCMDTHR[7:0]^(1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-13 Unimplemented: Read as '0'

bit 15-8 TXCMDTHR[7:0]: Transmit Command Threshold bits

In transmit initiation mode, the SQI module performs a transmit operation when transmit command threshold bytes are present in the TX FIFO. These bits must usually be set to '1' for normal Flash commands and set to a higher value for page programming. For 16-bit mode, the value must be a multiple of 2.

bit 7-0 RXCMDTHR[7:0]: Receive Command Threshold bits ^(1)

In receive initiation mode, the SQI module attempts to perform receive operations to fetch the receive command threshold number of bytes in the receive buffer. If space for these bytes is not present in the FIFO, the SQI will not initiate a transfer. For 16-bit mode, the value must be a multiple of 2.

If software performs any reads, thereby reducing the FIFO count, hardware would initiate a receive transfer to make the FIFO count equal to the value in these bits. If software would not like any more words latched into the FIFO, command initiation mode needs to be changed to Idle before any FIFO reads by software.

Note 1: These bits must only be programmed when a receive is not active (i.e., during Idle mode or a transmit).

REGISTER 22-5: SQI1INTTHR: SQI INTERRUPT THRESHOLD REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 U-0 U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
TXINTTHR[7:0]
7:0U-0 U-0 U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
RXINTTHR[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 x = Bit is unknown

bit 31-13 Unimplemented: Read as '0'

bit 15-8 TXINTTHR[7:0]: Transmit Interrupt Threshold bits

A transmit interrupt is set when the transmit FIFO has more space than the set number of bytes. For 16-bit mode, the value must be a multiple of 2.

bit 7-0 RXINTTHR[7:0]: Receive Interrupt Threshold bits

A receive interrupt is set when the receive FIFO count is larger than or equal to the set number of bytes. For 16-bit mode, the value must be multiple of 2.

REGISTER 22-6: SQI1INTEN: SQI INTERRUPT ENABLE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0U-0 U-0 U-0U-0 U-0
— — — —— — — — —
23:16U-0 U-0 U-0U-0 U-0 U-0U-0 U-0
— — — —— — — — —
15:8U-0U-0U-0U-0R/W-0R/W-0R/W-0R/W-0
— — — — —DMAEIEPKTCOMPIEBDDONEIECONTHRIE
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CONEMPTYIECONFULLIERXTHRIERXFULLIERXEMPTYIETXTHRIETXFULLIETXEMPTYIE
Legend:HS = Hardware 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-12 Unimplemented: Read as '0'

bit 11 DMAEIE: DMA Bus Error Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 10 PKTCOMPIE: DMA Buffer Descriptor Packet Complete Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 9 BDDONEIE: DMA Buffer Descriptor Done Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 8 CONTHRIE: Control Buffer Threshold Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 7 CONEMPTYIE: Control Buffer Empty Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 6 CONFULLIE: Control Buffer Full Interrupt Enable bit

This bit enables an interrupt when the receive FIFO buffer is full.

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 5 RXTHRIE:Receive Buffer Threshold Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 4 RXFULLIE: Receive Buffer Full Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 3 RXEMPTYIE: Receive Buffer Empty Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 2 TXTHRIE: Transmit Threshold Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 1 TXFULLIE: Transmit Buffer Full Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

bit 0 TXEMPTYIE: Transmit Buffer Empty Interrupt Enable bit

1 = Interrupt is enabled
0 = Interrupt is disabled

REGISTER 22-7: SQI1INTSTAT: SQI INTERRUPT STATUS REGISTER

Legend:HS = Hardware Set
R = Readable bitW = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown

bit 31- Unimplemented: Read as '0'

12

bit 11 DMAEIF: DMA Bus Error Interrupt Flag bit

1 = DMA bus error has occurred
0 = DMA bus error has not occurred

bit 10 PKTCOMPIF: DMA Buffer Descriptor Processor Packet Completion Interrupt Flag bit

1 = DMA BD packet is complete
0 = DMA BD packet is in progress

bit 9 BDDONEIF: DMA Buffer Descriptor Done Interrupt Flag bit

1 = DMA BD process is done
0 = DMA BD process is in progress

bit 8 CONTHRIF: Control Buffer Threshold Interrupt Flag bit

1 = The control buffer has more than THRES words of space available
0 = The control buffer has less than THRES words of space available

bit 7 CONEMPTYIF: Control Buffer Empty Interrupt Flag bit

1 = Control buffer is empty
0 = Control buffer is not empty

bit 6 CONFULLIF: Control Buffer Full Interrupt Flag bit

1 = Control buffer is full
0 = Control buffer is not full

bit 5 RXTHRIF: Receive Buffer Threshold Interrupt Flag bit ^(1)

1 = Receive buffer has more than RXINTTHR words of space available
0 = Receive buffer has less than RXINTTHR words of space available

bit 4 RXFULLIF: Receive Buffer Full Interrupt Flag bit

1 = Receive buffer is full
0 = Receive buffer is not full

bit 3 RXEMPTYIF: Receive Buffer Empty Interrupt Flag bit

1 = Receive buffer is empty
0 = Receive buffer is not empty

Note 1: This bit will be set to a '1', immediately after a POR until a read request on the System Bus is received.

2: The bits in the register are cleared by writing a '1' to the corresponding bit position.

REGISTER 22-7: SQI1INTSTAT: SQI INTERRUPT STATUS REGISTER (CONTINUED)

bit 2 TXTHRIF: Transmit Buffer Threshold Interrupt Flag bit

1 = Transmit buffer has more than TXINTTHR words of space available
0 = Transmit buffer has less than TXINTTHR words of space available

bit 1 TXFULLIF: Transmit Buffer Full Interrupt Flag bit

1 = The transmit buffer is full
0 = The transmit buffer is not full

bit 0 TXEMPTYIF: Transmit Buffer Empty Interrupt Flag bit

1 = The transmit buffer is empty
0 = The transmit buffer has content

Note 1: This bit will be set to a '1', immediately after a POR until a read request on the System Bus is received.

2: The bits in the register are cleared by writing a '1' to the corresponding bit position.

REGISTER 22-8: SQI1TXDATA: SQI TRANSMIT DATA BUFFER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
TXDATA[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
TXDATA[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
TXDATA[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
TXDATA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 TXDATA[31:0]: Transmit Command Data bits

Data is loaded into this register before being transmitted. Prior to the data transfer, the data in TXDATA is loaded into the shift register (SFDR).

Multiple writes to TXDATA can occur while a transfer is in progress. There can be a maximum of eight commands that can be queued.

REGISTER 22-9: SQI1RXDATA: SQI RECEIVE DATA BUFFER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0R-0R-0R-0R-0R-0R-0R-0
RXDATA[31:24]
23:16R-0R-0R-0R-0R-0R-0R-0R-0
RXDATA[23:16]
15:8R-0R-0R-0R-0R-0R-0R-0R-0
RXDATA[15:8]
7:0R-0R-0R-0R-0R-0R-0R-0R-0
RXDATA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 RXDATA[31:0]: Receive Data Buffer bits

At the end of a data transfer, the data in the shift register is loaded into the RXDATA register. This register works like a FIFO. The depth of the receive buffer is eight words.

REGISTER 22-10: SQI1STAT1: SQI STATUS REGISTER 1

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-22 Unimplemented: Read as '0'

bit 21-16 TXFIFOFREE[5:0]: Transmit FIFO Available Word Space bits

bit 15-6 Unimplemented: Read as '0'

bit 5-0 RXFIFOCNT[5:0]: Number of words of read data in the FIFO

REGISTER 22-11: SQI1STAT2: SQI STATUS REGISTER 2

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0U-0 U-0 U-0U-0 U-0
— — — —— — — —
23:16U-0 U-0 U-0U-0 U-0 U-0R-0 R-0
— — — —— — CMDSTAT[1:0]
15:8U-0 U-0 U-0U-0 R-0 R-0R-0 R-0
— — — —CONAVAIL[4:1]
7:0R-0 R-0 R-0R-0 R-0 U-0R-0 R-0
CONAVAIL[0]SQID3SQID2SQID1SQID0RXUNTXOV

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-18 Unimplemented: Read as '0'

bit 17-16 CMDSTAT[1:0]: Current Command Status bits

These bits indicate the current command status.

11 = Reserved

10 = Receive

01 = Transmit

00 = Idle

bit 15-12 Unimplemented: Read as '0'

bit 11-7 CONAVAIL[4:0]: Control FIFO Space Available bits

These bits indicate the available control Word space.

11111 = 32 bytes are available

11110 = 31 bytes are available

-

-

00001 = 1 byte is available

00000 = No bytes are available

bit 6 SQID3: SQID3 Status bit

1 = Data is present on SQID3

0 = Data is not present on SQID3

bit 5 SQID2: SQID2 Status bit

1 = Data is present on SQID2

0 = Data is not present on SQID2

bit 4 SQID1: SQID1 Status bit

1 = Data is present on SQID1

0 = Data is not present on SQID1

bit 3 SQID0: SQID0 Status bit

1 = Data is present on SQID0

0 = Data is not present on SQID0

bit 2 Unimplemented: Read as '0'

bit 1 RXUN: Receive FIFO Underflow Status bit

1 = Receive FIFO Underflow has occurred

0 = Receive FIFO underflow has not occurred

bit 0 TXOV: Transmit FIFO Overflow Status bit

1 = Transmit FIFO overflow has occurred

0 = Transmit FIFO overflow has not occurred

REGISTER 22-12: SQI1BDCON: SQI BUFFER DESCRIPTOR CONTROL REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-3 Unimplemented: Read as '0'

bit 2 START: Buffer Descriptor Processor Start bit

1 = Start the buffer descriptor processor
0 = Disable the buffer descriptor processor

bit 1 POLLEN: Buffer Descriptor Poll Enable bit

1 = BDP poll is enabled
0 = BDP poll is not enabled

bit 0 DMAEN: DMA Enable bit

1 = DMA is enabled
0 = DMA is disabled

REGISTER 22-13: SQI1BDCURADD: SQI BUFFER DESCRIPTOR CURRENT ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0R-0 R-0R-0 R-0
BDCURRADDR[31:24]
23:16R-0 R-0 R-0 R-0R-0 R-0R-0 R-0
BDCURRADDR[23:16]
15:8R-0 R-0 R-0 R-0R-0 R-0R-0 R-0
BDCURRADDR[15:8]
7:0R-0 R-0 R-0 R-0R-0 R-0R-0 R-0
BDCURRADDR[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 x = Bit is unknown

bit 31-0 BDCURRADDR[31:0]: Current Buffer Descriptor Address bits

These bits contain the address of the current descriptor being processed by the Buffer Descriptor Processor.

REGISTER 22-14: SQI1BDBASEADD: SQI BUFFER DESCRIPTOR BASE ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
BDADDR[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
BDADDR[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
BDADDR[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
BDADDR[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 BDADDR[31:0]: DMA Base Address bits

These bits contain the physical address of the root buffer descriptor. This register must be updated only when the DMA is idle.

REGISTER 22-15: SQI1BDSTAT: SQI BUFFER DESCRIPTOR STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0U-0U-0U-0U-0U-0U-0U-0
23:16U-0U-0R-xR-xR-xR-xR-xR-x
BDSTATE[3:0]DMASTARTDMAACTV
15:8R-xR-xR-xR-xR-xR-xR-xR-x
BDCON[15:8]
7:0R-xR-xR-xR-xR-xR-xR-xR-x
BDCON[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 x = Bit is unknown

bit 31-22 Unimplemented: Read as '0'

bit 21-18 BDSTATE[3:0]: DMA Buffer Descriptor Processor State Status bits

These bits return the current state of the buffer descriptor processor:

5 = Fetched buffer descriptor is disabled

4 = Descriptor is done

3 = Data phase

2 = Buffer descriptor is loading

1 = Descriptor fetch request is pending

0 = Idle

bit 17 DMASTART: DMA Buffer Descriptor Processor Start Status bit

1 = DMA has started

0 = DMA has not started

bit 16 DMAACTV: DMA Buffer Descriptor Processor Active Status bit

1 = Buffer Descriptor Processor is active

0 = Buffer Descriptor Processor is idle

bit 15-0 BDCON[15:0]: DMA Buffer Descriptor Control Word bits

These bits contain the current buffer descriptor control word.

REGISTER 22-16: SQI1BDPOLLCON: SQI BUFFER DESCRIPTOR POLL CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
POLLCON[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
POLLCON[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 x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 POLLCON[15:0]: Buffer Descriptor Processor Poll Status bits

These bits indicate the number of cycles the BDP would wait before refetching the descriptor control word if the previous descriptor fetched was disabled.

REGISTER 22-17: SQI1BDTXDSTAT: SQI BUFFER DESCRIPTOR DMA TRANSMIT STATUS REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-29 Unimplemented: Read as '0'

bit 28-25 TXSTATE[3:0]: Current DMA Transmit State Status bits

These bits provide information on the current DMA receive states.

bit 24-21 Unimplemented: Read as '0'

bit 20-16 TXBUFCNT[4:0]: DMA Buffer Byte Count Status bits

These bits provide information on the internal FIFO space.

bit 15-8 Unimplemented: Read as '0'

bit 7-0 TXCURBUFLEN[7:0]: Current DMA Transmit Buffer Length Status bits

These bits provide the length of the current DMA transmit buffer.

REGISTER 22-18: SQI1BDRXDSTAT: SQI BUFFER DESCRIPTOR DMA RECEIVE STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 R-x R-x R-xR-x U-0
— — — RXSTATE[3:0] —
23:16U-0 U-0 U-0 R-x R-x R-xR-x R-x
— — — RXBUFCNT[4:0]
15:8U-0 U-0 U-0 U-0 U-0U-0U-0
7:0R-xR-xR-x R-x R-x R-x R-x
RXCURBUFLEN[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 x = Bit is unknown

bit 31-29 Unimplemented: Read as '0'

bit 28-25 RXSTATE[3:0]: Current DMA Receive State Status bits

These bits provide information on the current DMA receive states.

bit 24-21 Unimplemented: Read as '0'

bit 20-16 RXBUFCNT[4:0]: DMA Buffer Byte Count Status bits

These bits provide information on the internal FIFO space.

bit 15-8 Unimplemented: Read as '0'

bit 7-0 RXCURBUFLEN[7:0]: Current DMA Receive Buffer Length Status bits

These bits provide the length of the current DMA receive buffer.

REGISTER 22-19: SQI1THR: SQI THRESHOLD CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0U-0
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0U-0
15:8U-0 U-0 U-0 U-0 U-0 U-0U-0U-0
7:0U-0U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0
— — —THRES[4:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-5 Unimplemented: Read as '0'

bit 4-0 THRES[4:0]: SQI Control Threshold Value bits

The SQI control threshold interrupt is asserted when the amount of space indicated by THRES[4:0] is available in the SQI control buffer.

REGISTER 22-20: SQI1INTSIGEN: SQI INTERRUPT SIGNAL ENABLE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
23:16U-0 U-0 U-0 U-0 U-0U-0 U-0
—— ——— — —
15:8U-0U-0U-0U-0R/W-0R/W-0R/W-0R/W-0
—— —DMAEISEPKT DONEISEBD DONEISECON THRISE
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CON EMPTYISECON FULLISERX THRISERX FULLISERX EMPTYISETX THRISETX FULLISETX EMPTYISE

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-12 Unimplemented: Read as '0'

bit 11 DMAEISE: DMA Bus Error Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 10 PKTDONEISE: Receive Error Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 9 BDDONEISE: Transmit Error Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 8 CONTHRISE: Control Buffer Threshold Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 7 CONEMPTYISE: Control Buffer Empty Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 6 CONFULLISE: Control Buffer Full Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 5 RXTHRISE: Receive Buffer Threshold Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 4 RXFULLISE: Receive Buffer Full Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 3 RXEMPTYISE: Receive Buffer Empty Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 2 TXTHRISE: Transmit Buffer Threshold Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 1 TXFULLISE: Transmit Buffer Full Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

bit 0 TXEMPTYISE: Transmit Buffer Empty Interrupt Signal Enable bit

1 = Interrupt signal is enabled

0 = Interrupt signal is disabled

REGISTER 22-21: SQI1TAPCON: SQI TAP CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
15:8U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
——CLKINDLY[5:0]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
DATAOUTDLY[3:0]CLKOUTDLY[3:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-14 Unimplemented: Read as '0'

bit 13-8 CLKINDLY[5:0]: SQI Clock Input Delay bits

These bits are used to add fractional delays to SQI Clock Input while sampling the incoming data.

111111 = 64 taps added on clock input

111110 = 63 taps added on clock input

000001 = 2 taps added on clock input

000000 = 1 tap added on clock input

bit 7-4 DATAOUTDLY[3:0]: SQI Data Output Delay bits

These bits are used to add fractional delays to SQI Data Output while writing the data to the Flash.

1111 = 16 taps added on clock output

1110 = 15 taps added on clock output

0001 = 2 taps added on clock output

0000 = 1 tap added on clock output

bit 3-0 CLKOUTDLY[3:0]: SQI Clock Output Delay bits

These bits are used to add fractional delays to SQI Clock Output while writing the data to the Flash.

1111 = 16 taps added on clock output

1110 = 15 taps added on clock output

0001 = 2 taps added on clock output

0000 = 1 tap added on clock output

REGISTER 22-22: SQI1MEMSTAT: SQI MEMORY STATUS REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-21 Unimplemented: Read as '0'

bit 20 STATPOS: Status Bit Position in Flash bit

Indicates the BUSY bit position in the Flash Status register. This bit is added to support all Flash types (with BUSY bit at 0 and at 7).

1 = BUSY bit position is bit 7 in status register
0 = BUSY bit position is bit 0 in status register

bit 19-18 STATTYPE[1:0]: Status Command/Read Lane Mode bits

11 = Reserved
10 = Status command and read are executed in Quad Lane mode
01 = Status command and read are executed in Dual Lane mode
00 = Status command and read are executed in Single Lane mode

bit 17-16 STATBYTES[1:0]: Number of Status Bytes bits

11 = Reserved
10 = Status command/read is 2 bytes long
01 = Status command/read is 1 byte long
00 = Reserved

bit 15-8 STATDATA[7:0]: Status Data bits

These bits contain the status value of the Flash device

bit 7-0 STATCMD[7:0]: Status Command bits

The status check command is written into these bits

23.0 INTER-INTEGRATED CIRCUIT (I²C)

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 24. “Inter-Integrated Circuit (I2C)” (DS60001116) in the “PIC32 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

The I^2C module provides complete hardware support for both Client and Multi-Host modes of the I^2C serial communication standard.

Each I²C module has a 2-pin interface:

  • SCLx pin is clock
  • SDAx pin is data

Each I^2C module offers the following key features:

  • I ^2 C interface supporting both host and client operation
  • I ^2 C Client mode supports 7-bit and 10-bit addressing
  • I ^2 C Host mode supports 7-bit and 10-bit addressing
  • I ^2 C port allows bidirectional transfers between host and clients
  • Serial clock synchronization for the I ^2 C Port can be used as a handshake mechanism to Suspend and Resume Serial Transfer (SCLREL control)
  • I ^2 C supports multi-host operation; detects bus collision and arbitrates accordingly
  • Provides support for Client mode address bit masking
  • SMbus support
    • Supports up to 1 MHz operation

TABLE 23-1: I ^2 C PB CLOCK MAPPING

I2C Instance PB Clock
I2C1 PB2_CLK
I2C2 PB3_CLK

Figure 23-1 illustrates the I^2C module connection diagram.

FIGURE 23-1: I ^2 C CONNECTION DIAGRAM
Microchip PIC32MZ1025W104132 - INTER-INTEGRATED CIRCUIT (I²C) - 1

flowchart
graph TD
    A["I2CxRCV"] --> B["Shift Clock"]
    C["I2CxRSR"] --> D["Match Detect"]
    D --> E["Address Match"]
    E --> F["I2CxMSK"]
    F --> G["Write"]
    F --> H["Read"]
    I["SCLx"] --> J["Shift Clock"]
    K["SDAx"] --> L["Match Detect"]
    L --> M["I2CxADD"]
    M --> N["Start and Stop Bit Detect"]
    N --> O["Start and Stop Bit Generation"]
    O --> P["Collision Detect"]
    P --> Q["Acknowledge Generation"]
    Q --> R["Clock Stretching"]
    R --> S["I2CxTRN"]
    S --> T["Shift Clock"]
    U["Reload Control"] --> V["BRG Down Counter"]
    W["PB2_CLK/PB3_CLK"] --> X["PB2_CLK/PB3_CLK"]
    Y["I2CxSTAT"] --> Z["Write"]
    Y --> AA["Read"]
    AB["I2CXCON"] --> AC["Write"]
    AB --> AD["Read"]
    AE["I2CBrG"] --> AF["Write"]
    AE --> AG["Read"]
    AH["Internal Data Bus"] --> AI["Read"]
    AJ["LSB"] --> AK["Address Match"]
    AL["LSB"] --> AM["Address Match"]
    AN["LSB"] --> AO["Address Match"]
    AP["LSB"] --> AQ["Address Match"]
    AR["LSB"] --> AS["Address Match"]
    AT["LSB"] --> AU["Address Match"]
    AV["LSB"] --> AW["Address Match"]
    AX["LSB"] --> AY["Address Match"]
    AZ["LSB"] --> BA["Address Match"]
    BB["LSB"] --> BC["Address Match"]
    BD["I2CxADD"] --> BE["Control Logic"]
    BF["I2CxSTAT"] --> BG["Control Logic"]
    BH["I2CxCON"] --> BI["Control Logic"]
    BJ["I2CxBRG"] --> BK["Control Logic"]

23.1 I ^2 C Control Registers

TABLE 23-2: I ^2 C1 REGISTER MAP

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 Section 13.3 "CLR, SET and INV Registers" for more information.

TABLE 23-3: I ^2 C2 REGISTER MAP

Virtual Address (BF84_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
0400I2C2CON31:16PCIESCIEBOENSDAHTSBCDEAHENDHEN0000
15:0 CNSIDLSCLRELSTRICTA10MDISSLWSMENGCENSTRENACKDTACKENRCENPENRSENSEN1000
0410I2C2STAT31:160000
15:0 ACKSTATTRSTATACKTIMBCLGCSTATADD10IWCOLI2COVD/APSR/WRBFTBF0000
0420I2C2ADD31:160000
15:0I2CADD (Address Register)0000

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 Section 13.3 "CLR, SET and INV Registers" for more information.

TABLE 23-3: I²C2 REGISTER MAP (CONTINUED)

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 Section 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 23-1: I2CxCON: I ^2 C CONTROL REGISTER

Legend:HC = Hardware Cleared
R = Readable bitW = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown

bit 31-23 Unimplemented: Read as '0'

bit 22 PCIE: Stop Condition Interrupt Enable bit (I²C Client mode only)

1 = Enable interrupt on detection of Stop condition

0 = Stop detection interrupts are disabled

bit 21 SCIE: Start Condition Interrupt Enable bit ( I^2C Client mode only)

1 = Enable interrupt on detection of Start or Restart conditions

0 = Start detection interrupts are disabled

bit 20 BOEN: Buffer Overwrite Enable bit (I²C Client mode only)

1 = I2CxRCV is updated and ACK is generated for a received address/data byte, ignoring the state of the I2COV bit (I2CxSTAT[6]) only if the RBF bit (I2CxSTAT[2]) = 0

0 = I2CxRCV is only updated when the I2COV bit (I2CxSTAT[6]) is clear

bit 19 SDAHT: SDA Hold Time Selection bit

1 = Minimum of 300 ns hold time on SDA after the falling edge of SCL

0 = Minimum of 100 ns hold time on SDA after the falling edge of SCL

Note: This bit is not supported for 1 MHz.

bit 18 SBCDE: Client Mode Bus Collision Detect Enable bit (I²C Client mode only)

1 = Enable client bus collision interrupts

0 = Client bus collision interrupts are disabled

bit 17 AHEN: Address Hold Enable bit (Client mode only)

1 = Following the 8th falling edge of SCL for a matching received address byte; SCKREL bit will be cleared and the SCL will be held low.

0 = Address holding is disabled

bit 16 DHEN: Data Hold Enable bit (I²C Client mode only)

1 = Following the 8th falling edge of SCL for a received data byte; client hardware clears the SCKREL bit and SCL is held low

0 = Data holding is disabled

bit 15 ON: I²C Enable bit

1 = Enables the I²C module and configures the SDA and SCL pins as serial port pins

0 = Disables the I²C module; all I²C pins are controlled by PORT functions

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Mode bit

1 = Discontinue module operation when device enters Idle mode

0 = Continue module operation in Idle mode

REGISTER 23-1: I2CxCON: I ^2 C CONTROL REGISTER (CONTINUED)
bit 12 SCLREL: SCLx Release Control bit (when operating as I²C client) In I2C Client mode only; module reset and (ON = 0) sets SCLREL = 1. If STREN = 0: 1 = Release clock 0 = Force clock low (clock stretch) Bit is automatically cleared to '0' at beginning of client transmission. If STREN = 1: 1 = Release clock 0 = Holds clock low (clock stretch) User may program this bit to '0' to force a clock stretch at the next SCLx low. Bit is automatically cleared to '0' at beginning of client transmission; automatically cleared to '0' at end of client reception.

bit 11 STRICT: Strict I ²C Reserved Address Rule Enable bit 1 = Strict reserved addressing is enforced. Device does not respond to reserved address space or generate addresses in reserved address space. 0 = Strict I²C reserved address rule is not enabled

bit 10 A10M: 10-bit Client Address bit 1 = I2CxADD is a 10-bit client address 0 = I2CxADD is a 7-bit client address

bit 9 DISSLW: Disable Slew Rate Control bit 1 = Slew rate control is disabled 0 = Slew rate control is enabled

bit 8 SMEN: SMBus Input Levels bit 1 = Enable I/O pin thresholds compliant with SMBus specification 0 = Disable SMBus input thresholds

bit 7 GCEN: General Call Enable bit (when operating as I ²C client) 1 = Enable interrupt when a general call address is received in the I2CxRSR (module is enabled for reception) 0 = General call address is disabled

bit 6 STREN: SCLx Clock Stretch Enable bit (when operating as I²C client) Used in conjunction with SCLREL bit. 1 = Enable software or receive clock stretching 0 = Disable software or receive clock stretching

bit 5 ACKDT: Acknowledge Data bit (when operating as I²C host, applicable during host receive) Value that is transmitted when the software initiates an Acknowledge sequence. 1 = Send NACK during acknowledge 0 = Send ACK during acknowledge

bit 4 ACKEN: Acknowledge Sequence Enable bit (when operating as I²C host, applicable during host receive) 1 = Initiate Acknowledge sequence on SDAx and SCLx pins and transmit ACKDT data bit. Hardware cleared at end of host Acknowledge sequence. 0 = Acknowledge sequence not in progress

bit 3 RCEN: Receive Enable bit (when operating as I ²C host) 1 = Enables Receive mode for I²C. Hardware cleared at end of eighth bit of host receive data byte. 0 = Receive sequence not in progress

bit 2 PEN: Stop Condition Enable bit (when operating as I²C host) 1 = Initiate Stop condition on SDAx and SCLx pins. Hardware clear at end of host Stop sequence. 0 = Stop condition not in progress

bit 1 RSEN: Repeated Start Condition Enable bit (when operating as I²C host) 1 = Initiate repeated Start condition on SDAx and SCLx pins. Hardware cleared at end of host repeated Start sequence. 0 = Repeated Start condition not in progress

bit 0 SEN: Start Condition Enable bit (when operating as I²C host) 1 = Initiate Start condition on SDAx and SCLx pins. Hardware cleared at end of host Start sequence. 0 = Start condition not in progress

REGISTER 23-2: I2CxSTAT: I ^2 C STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0U-0 U-0 U-0 U-0U-0
— — — —— — — —
23:16U-0 U-0 U-0U-0 U-0 U-0 U-0U-0
— — — —— — — —
15:8R-0, HS, HC R-0, HS, HCR/C-0, HS, HCU-0 U-0 RC-0, HSR-0, HS, HC R-0, HS, HC
ACKSTATTRSTATACKTIMBCLGCSTATADD10
7:0R/C-0, HS, SCR/C-0, HS, SCR-0, HS, HCR/C-0, HS, HCR/C-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HC
IWCOLI2COVD_APSR_WRBFTBF
Legend:HS = Hardware SetHC = Hardware ClearedSC = Software Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedC = Clearable bit

bit 31-16 Unimplemented: Read as '0'

bit 15 ACKSTAT: Acknowledge Status bit

(when operating as I^2C host, applicable to host transmit operation)

1 = NACK received from client

0 = ACK received from client

Hardware set or cleared at the end of client acknowledge.

bit 14 TRSTAT: Transmit Status bit (when operating as I²C host, applicable to host transmit operation)

1 = Host transmit is in progress (8 bits + ACK)

0 = Host transmit is not in progress

Hardware set at the beginning of host transmission. Hardware cleared at the end of client acknowledge.

bit 13 ACKTIM: Acknowledge Time Status bit (Valid in I²C Client mode only)

1 = I^2C bus is in an Acknowledge sequence, set on the eight falling edge of SCL clock

0 = Not an Acknowledge sequence, cleared on 9th rising edge of SCL clock

bit 12-11 Unimplemented: Read as '0'

bit 10 BCL: Host Bus Collision Detect bit

1 = A bus collision is detected during a host operation

0 = No collision

Hardware set at detection of bus collision.

bit 9 GCSTAT: General Call Status bit

1 = General call address is received

0 = General call address is not received

Hardware set when address matches general call address. Hardware cleared at stop detection.

bit 8 ADD10: 10-bit Address Status bit

1 = 10-bit address is matched

0 = 10-bit address is not matched

Hardware set at match of 2nd byte of matched 10-bit address. Hardware cleared at stop detection.

bit 7 IWCOL: Write Collision Detect bit

1 = An attempt to write the I2CxTRN register failed because the I²C module is busy

0 = No collision

Hardware set at occurrence of write to I2CxTRN while busy (cleared by software).

bit 6 I2COV: Receive Overflow Flag bit

1 = A byte is received while the I2CxRCV register is still holding the previous byte

0 = No overflow

Hardware set at attempt to transfer I2CxRSR to I2CxRCV (cleared by software).

REGISTER 23-2: I2CxSTAT: I ^2 C STATUS REGISTER (CONTINUED)

bit 5 D_A: Data/Address bit (when operating as I ^2 C client)

1 = Indicates that the last byte received is data
0 = Indicates that the last byte received is device address
Hardware cleared at device address match. Hardware set by reception of client byte.

bit 4 P: Stop bit

1 = Indicates that a Stop bit is detected last
0 = Stop bit is not detected last
Hardware set or cleared when start, repeated start or stop detected.

bit 3 S: Start bit

1 = Indicates that a start (or repeated start) bit is detected last
0 = Start bit is not detected last
Hardware set or cleared when start, repeated start or stop detected.

bit 2 R_W: Read/Write Information bit (when operating as I ^2 C client)

1 = Read - Indicates data transfer is output from client
0 = Write - Indicates data transfer is input to client
Hardware set or cleared after reception of I ^2 C device address byte.

bit 1 RBF: Receive Buffer Full Status bit

1 = Receive complete, I2CxRCV is full
0 = Receive not complete, I2CxRCV is empty
Hardware set when I2CxRCV is written with received byte. Hardware cleared when software reads I2CxRCV.

bit 0 TBF: Transmit Buffer Full Status bit

1 = Transmit in progress, l2CxTRN is full
0 = Transmit complete, I2CxTRN is empty
Hardware set when software writes I2CxTRN. Hardware cleared at completion of data transmission.

To compute the Baud Rate Generator (BRG) reload value, use the formula in the equation below:

EQUATION 23-1: BRG RELOAD VALUE CALCULATION

$$ I 2 C x B R G = \left[ \left(\frac {1}{(2 . F _ {S C K})} - T _ {P G D}\right) \cdot P B C L K \right] - 2 $$

TABLE 23-4: I ^2 C CLOCK RATE WITH BRG

PBCLK (MHz)I2CxBRGPGD(1)(ns)Approximate F_SCK (two rollovers of BFG) (kHz)
50 0x037104 400
50 0x0F3104 100
40 0X02C104 400
40 0X0C2104 100
30 0X020104 400
30 0X091104 100
20 0X015104 400
20 0X060104 100
10 0X009104 400
10 0X02F104 100
Note 1: The typical value of the Pulse Gobbler Delay (PGD) is 104 ns. Refer to the I2Cx Bus Data Timing Requirements in Table 41-31 and Table 41-32 for more information.

Note: Equation 23-1 and Table 23-4 are provided as design guidelines. Due to system-dependent parameters, the actual baud rate may differ slightly. Testing is required to confirm that the actual baud rate meets the system requirements. Otherwise, the value of the I2Cx-BRG register may need to be adjusted.

24.0 UART

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 21. "UART" (DS60001107) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The Universal Asynchronous Receiver Transmitter (UART) module is one of the serial I/O modules available in the PIC32MZ1025W104 family of devices. The UART is a full-duplex, asynchronous communication channel that communicates with peripheral devices and personal computers through protocols, such as RS-232, RS-485, LIN, and IrDA ^® . The module also supports the hardware flow control option, with UxCTS and UxRTS pins, and also includes an IrDA encoder and decoder.

The device has three UART modules (UART1-3). UART1 supports high-speed operation up to 10 Mbps on non-PPS pins. On PPS pins UART (1-3) speed is limited to 5 Mbps. All three UARTs are capable of 2-pin (UxTX, UxRX) or 4-pin (UxRX, UxTX, UxRTS, UxCTS) operation.

To enable High-speed mode on UART1, the CFGCON1.HSUARTEN register bit needs to be set. This enables UART1 on non-PPS pins. To enable UART1 on PPS pins, CFGCON1.HSUARTEN must be set to '0'. UART2 and UART3 are only available through PPS pads (I/O remap), thus, can achieve up to 5 Mbps speed.

The primary features of the UART module are:

• Full-duplex, 8-bit or 9-bit data transmission
• Even, odd or no parity options (for 8-bit data)
- One or two stop bits
- Hardware flow control option with and pins
- Fully integrated baud rate generator with 16-bit prescaler
• Supports Up to 10 Mbps

Note: Baud clock of 160 MHz is required to obtain 10 Mbps speed.

  • Four clock source inputs, asynchronous clocking
  • 8-character deep transmit data buffer
    • 8-character deep receive data buffer
  • Parity, framing and buffer overrun error detection
  • IrDA encoder and decoder logic
    • 16x baud clock output for IrDA support
  • Support for interrupt on address detect (when 9th bit = 1)
    • TX/RX polarity control
  • Separate transmit and receive interrupts
  • loopback mode for diagnostic support
  • hardware auto-baud support

Note 1: The FRC clock must be used as the baud clock source to use the UART2 and UART3 in high baud rate (5 Mbps) with the PPS feature.

The figure below illustrates a simplified block diagram of the UART module.

FIGURE 24-1: UART SIMPLIFIED BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - UART - 1

flowchart
graph TD
    A["PB1_CLK /PB3_CLK(1)"] --> B["Baud Rate Generator"]
    A --> C["IrDA®"]
    A --> D["Hardware Flow Control"]
    A --> E["UARTx Receiver"]
    A --> F["UARTx Transmitter"]
    B --> G["× UxRTS/BCLKx"]
    B --> H["× UxCTS"]
    C --> G
    C --> H
    D --> I["× UxRX"]
    E --> J["× UxTX"]
    F --> K["× UxTX"]

Note 1: The PB clock PB1_CLK is used by UART3. The PB clock PB3_CLK is used by UART1 and UART2.

24.1 UART Control Registers

TABLE 24-1: UART1 THROUGH UART3 REGISTER MAP

Virtual Address(BF84.#)Register NameBit RangeBitsAll Resets
31/15 30/14 29/1328/12 27/1126/10 25/924/8 23/722/6 21/520/4 19/3 182 17/1 16/0
0600U1MODE (1)31:16—— ——— —SLPEN ACTIVE—— —CLK_SEL[1:0] OVFDIS0000
15:0ONSIDLIRENRTSMDUEN[1:0]WAKELPBACKABAUDRXINVBRGHPDSEL[1:0]STSEL0000
0610U1STA(1)31:16MASK[7:0]ADDR[7:0]0000
15:0UTXISEL[1:0]UTXINVURXENUTXBRKUTXENUTXBFTRMTURXISEL[1:0]ADDENRIDLEPERRFERROERRURXDA01:0
0620U1TXREG31:16—— ——— ——— ——— ——— —0000
15:0U1TXREG[7:0]0000
0630U1RXREG31:16—— ——— ——— ——— ——— —0000
15:0U1RXREG[7:0]0000
0640U1BRG31:16U1BRG[19:16]0000
15:0U1BRG[15:0]0000
0800U2MODE (1)31:16—— ——— —SLPEN ACTIVE—— —CLK_SEL[1:0] OVFDIS0000
15:0ONSIDLIRENRTSMDUEN[1:0]WAKELPBACKABAUDRXINVBRGHPDSEL[1:0]STSEL0000
0810U2STA(1)31:16MASK[7:0]ADDR[7:0]0000
15:0UTXISEL[1:0]UTXINVURXENUTXBRKUTXENUTXBFTRMTURXISEL[1:0]ADDENRIDLEPERRFERROERRURXDA01:0
0820U2TXREG31:16—— ——— ——— ——— ——— —0000
15:0U2TXREG[7:0]0000
0830U2RXREG31:16—— ——— ——— ——— ——— —0000
15:0U2RXREG[7:0]0000
0840U2BRG31:16U2BRG[19:16]0000
15:0U2BRG[15:0]0000
1600U3MODE (1)31:16—— ——— —SLPEN ACTIVE—— —CLK_SEL[1:0] OVFDIS0000
15:0ONSIDLIRENRTSMDUEN[1:0]WAKELPBACKABAUDRXINVBGRHPDSEL[1:0]STSEL0000
1610U3STA(1)31:16MASK[7:0]ADDR[7:0]0000
15:0UTXISEL[1:0]UTXINVURXENUTXBRKUTXENUTXBFTRMTURXISEL[1:0]ADDENRIDLEPERRFERROERRURXDA01:0
1620U3TXREG31:16—— ——— ——— ——— ——— —0000
15:0U3TXREG[7:0]0000
1630U3RXREG31:16—— ——— ——— ——— ——— —0000
15:0U3RXREG[7:0]0000
1640U3BRG31:16U3BRG[19:16]0000
15:0U3BRG[15:0]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 its virtual address, plus an offset of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 24-1: UxMODE: UARTx MODE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-U-0 U-0 U-0
— — —— — — — —
23:16R/W-0 R-0HS/HCU-0 U-0 U-0U-0 U-0R/W-0
SLPENACTIVE— — —CLK_SEL[1:0] OVFDIS
15:8R/W-0U-0R/W-0R/W-0R/W-0U-0R/W-0R/W-0
ONSIDLIRENRTSMDUEN[1:0](1)
7:0R/W-0 HCR/W-0R/W-0 HCR/W-0R/W-0R/W-0R/W-0R/W-0
WAKELPBACKABAUDRXINVBRGHPDSEL[1:0]STSEL

Legend:

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set at Reset '0' = Bit is cleared at Reset
HC = Hardware ClearedHS = Hardware Set x = Bit is unknown at Reset

Example: R/W - 0 indicates the bit is both readable and writable, and reads '0' after a Reset.

bit 31-24 Unimplemented: Read as '0'

bit 23 SLPEN: Run during Sleep Enable bit

1 = UART BRG clock runs during Sleep mode
0 = UART BRG clock is turned off during Sleep mode

Note: This assumes that the UART is not driven by system clock that is turned off during sleep.

bit 22 ACTIVE: UART Running Status bit

1 = UART clock request is active
0 = UART clock request is not active

bit 21-19 Unimplemented: Read as '0'

bit 18-17 CLK_SEL: UARTx Baud Clock Selection bits

11 = UART BRG clock is the external REFO1 clock.
10 = UART BRG clock is the external FRC clock.
01 = UART BRG clock is the external SYS clock.
00 = UART BRG clock is the internal UPBM clock

Note 1: These bits can only be changed when UxMODE.ON = 0.

2: A clock frequency of 160 MHz is required for obtaining 10 Mbps speed.

bit 16 OVFDIS: Run during Overflow Condition Mode bit

1 = When OERR is detected, shift register continues to run to remain synchronized
0 = When OERR is detected, shift register stops accepting new data

bit 15 ON: UARTx Enable bit

1 = UARTx is enabled; UARTx pins are controlled by UARTx as defined by UEN[1:0] and UTXEN control bits.
0 = UARTx is disabled; all UARTx pins are controlled by corresponding bits in the control bits PORTx, TRISx and LATx registers; UARTx power consumption is minimal.

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Mode bit

1 = Discontinue module operation when device enters Idle mode
0 = Continue module operation in Idle mode

Note 1: These bits are present for legacy compatibility, and are superseded by PPS functionality on these devices. For additional information, see Section 13.4 "Peripheral Pin Select (PPS)".

REGISTER 24-1: UxMODE: UARTx MODE REGISTER (CONTINUED)

bit 12 IREN: IrDA Encoder and Decoder Enable bit

1 = IrDA enabled
0 = IrDA disabled

Note: This feature is only available for Standard mode (UxMODE.BRGH = '0').

bit 11 RTSMD: Mode Selection for UxRTS Pin bit

1 = UxRTS pin in Simplex mode
0 = UxRTS pin in Flow Control mode

bit 10 Unimplemented: Read as '0'

bit 9-8 UEN[1:0]: UARTx Enable bits (1)

11 = UxTX, UxRX and UxBCLK pins are enabled and used; UxCTS pin is controlled by corresponding bits in the PORTx register
10 = UxTX, UxRX, UxCTS and UxRTS pins are enabled and used
01 = UxTX, UxRX and UxRTS pins are enabled and used; UxCTS pin is controlled by corresponding bits in the PORTx register
0.0 = UxTX and UxRX pins are enabled and used; UxCTS and UxRTS/UxBCLK pins are controlled by corresponding bits in the PORTx register

bit 7 WAKE: Enable Wake-up on Start bit Detect During Sleep Mode bit

1 = Wake-up is enabled
0 = Wake-up is disabled

Note: Hardware clear has priority over software.

bit 6 LPBACK: UARTx Loopback Mode Enable bit

1 = Enabled
0 = Disabled

bit 5 ABAUD: Auto Baud Enable bit

1 = Enable baud rate measurement on the next character – requires reception of a SYNCH field (55h); cleared in hardware upon completion
0 = Baud rate measurement disabled or completed

bit 4 RXINV: Receive Polarity Inversion bit

1 = RX Idle state is '0'
0 = RX Idle state is '1'

bit 3 BRGH: High Baud Rate Enable bit

1 = UxBRG generates 4 shift clocks per bit period (4x baud clock, High-speed mode)
0 = UxBRG generates 16 shift clocks per bit period (16x baud clock, Standard mode)

Note: The user configurations must not exceed the maximum supported baud rate.

bit 2-1 PDSEL[1:0]: Parity and Data Selection bits

11 = 9-bit data, no parity
10 = 8-bit data, odd parity
01 = 8-bit data, even parity
00 = 8-bit data, no parity

bit 0 STSEL: Stop Selection bit

1 = 2 Stop bits
0 = 1 Stop bit

Note 1: These bits are present for legacy compatibility, and are superseded by PPS functionality on these devices.

For additional information, see Section 13.4 "Peripheral Pin Select (PPS)".

REGISTER 24-2: UxSTA: UARTx STATUS AND CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0 R/WW-0
MASK[7:0]
23:16R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0 R/WW-0
ADDR[7:0]
15:8R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0 HCR/W-0 R-0 R-1
UTXISEL[1:0] UTXIN V URXEN(1)UTXBRK U TXEN UTXBF TRMT
7:0R/W-0 R/WW-0 R/W-0R-1R-0 R-0R/C-0 R-0
URXISEL[1:0]ADDENRIDLEPERRFERROERRURXDA

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set at Reset '0' = Bit is cleared at Reset

HC = Hardware Cleared HS = Hardware Set x = Bit is unknown at Reset

Example: R/W - 0 indicates the bit is both readable and writable, and reads '0' after a Reset.

bit 31-24 MASK[7:0]: Address Match Mask bits

Used to mask the UxSTAT.ADM_ADDR[7:0] bits.

For ADM_MASK[n]:

1 = ADM_ADDR[n] is used to detect the address match

0 = ADM_ADDR[n] is not used to detect the address match

bit 23-16 ADDR[7:0]: Address Detect Task Offload bits

Used with UxSTAT.ADM_EN to offload the task of detecting the address character from the processor during Address Detect mode.

bit 15-14 UTXISEL[1:0]: Transmission Interrupt Mode Selection bits

11 = Reserved, do not use

10 = Interrupt is persistent when the transmit buffer is empty

(The Transmit Shift register may or may not be empty.)

01 = Interrupt is persistent when both the transmit buffer and Transmit Shift register are empty

(This indicates that all characters have been transmitted).

00 = Interrupt is persistent when the transmit buffer is not full

(This means there is space for at least one character in the transmit buffer).

bit 13 UTXINV: Transmit Polarity Inversion bit

If UxMODE.IREN = 0:

1 = TX Idle state is '0'

0 = TX Idle state is '1'

If UxMODE.IREN = 1:

1 = IrDA encoded TX Idle state is '1'

0 = IrDA encoded TX Idle state is '0'

bit 12 URXEN: Receive Enable bit ^(1)

1 = Receive enabled, characters seen on the RX pin and captured by the UARTx

0 = Receive disabled, the RX pin is ignored by the UARTx. RX pin is controlled by PORT.

bit 11 UTXBRK: Transmit Break bit

1 = Send SYNCH BREAK on next transmission – Start bit, followed by twelve '0' bits, followed by Stop bit; cleared by hardware upon completion

0 = SYNCH BREAK transmission disabled or completed

bit 10 UTXEN: Transmit Enable bit

1 = UARTx transmitter is enabled. UxTX pin is controlled by UARTx (if ON = 1)

0 = UARTx transmitter is disabled. Any pending transmission is aborted and buffer is reset

REGISTER 24-2: UxSTA: UARTx STATUS AND CONTROL REGISTER (CONTINUED)

bit 9 UTXBF: Transmit Buffer Full Status bit

1 = Transmit buffer is full
0 = Transmit buffer is not full, at least one more character can be written

bit 8 TRMT: Transmit Shift Register Empty bit

1 = Transmit shift register is empty and transmit buffer is empty (The last transmission has completed)
0 = Transmit shift register is not empty, a transmission is in progress or queued

bit 7-6 URXISEL[1:0]: Receive Interrupt Mode Selection bit

11 = Reserved, do not use
10 = Interrupt is persistent when the receive buffer has 6 or more data characters
01 = Interrupt is persistent when the receive buffer has 4 or more data characters
00 = Interrupt is persistent when the receive buffer has 1 or more data characters (in other words, not empty)

bit 5 ADDEN: Address Character Detect bit (Bit 8 of received data = 1)

1 = Address Detect mode is enabled. If 9-bit mode is not selected, this control bit has no effect.
0 = Address Detect mode is disabled

bit 4 RIDLE: Receiver Idle bit

1 = Receiver is idle
0 = Receiver is active

bit 3 PERR: Parity Error Status bit

1 = Parity error has been detected for the current character (Character at the top of the receive FIFO)
0 = Parity error has not been detected

bit 2 FERR: Framing Error Status bit

1 = Framing error has been detected for the current character (Character at the top of the receive FIFO)
0 = Framing error has not been detected

bit 1 OERR: Receive Buffer Overrun Error Status bit

1 = Receive buffer has overflowed
0 = Receive buffer has not overflowed

Note 1: When RUNOVF = 0, clearing a previously set OERR bit ('1' to '0' transition) resets the receiver buffer and the RSR to the empty state.
2: When RUNOVF = 1, clearing a previously set OERR bit ('1' to '0' transition) does not reset the receive buffer or RSR.

bit 0 URXDA: Receive Buffer Data Available bit

1 = Receive buffer has data, at least one more character can be read
0 = Receive buffer is empty

Note 1: Clearing UxSTAT.RXEN will not reset the receive buffer. Clearing UxMODE.ON will reset the receive buffer.

24.2 Receive and Transmit Timing for UART Module

The figures below illustrate the typical receive and transmit timing for the UART module.

FIGURE 24-2: UART RECEPTION
Microchip PIC32MZ1025W104132 - Receive and Transmit Timing for UART Module - 1

flowchart
graph TD
    A["Read to UxRXREG"] --> B["Char 1"]
    B --> C["Char 2-4"]
    C --> D["Char 5-10"]
    D --> E["Char 11-13"]

    F["UxRX"] --> G["Start 1 Stop Start 2 Stop 4 Start 5 Stop 10 Start 11 Stop 13"]

    H["RIDLE"] --> I["SS SS SS SS SS SS"]

    J["OERR"] --> K["SS SS SS SS SS"]

    L["UxRXIF URXISEL = 00"] --> M["SS SS SS SS SS"]

    N["UxRXIF URXISEL = 01"] --> O["SS SS SS SS SS"]

    P["UxRXIF URXISEL = 10"] --> Q["SS SS SS SS SS"]

FIGURE 24-3: UART TRANSMISSION (8-BIT OR 9-BIT DATA)
Microchip PIC32MZ1025W104132 - Receive and Transmit Timing for UART Module - 2

flowchart
graph TD
    A["Write to UxTXREG"] --> B["8 into TxBUF"]
    B --> C["TSR"]
    C --> D["BCLK/16 (Shift Clock)"]
    D --> E["UxTX"]
    E --> F["Pull from Buffer"]
    F --> G["StartStart BBD Bit 1 Stop"]
    G --> H["UxTXIF UTXISEL = 00"]
    H --> I["UxTXIF UTXISEL = 01"]
    I --> J["UxTXIF UTXISEL = 10"]
    J --> K["SS"]
    style A fill:#f9f,stroke:#333
    style B fill:#ccf,stroke:#333
    style C fill:#cfc,stroke:#333
    style D fill:#fcc,stroke:#333
    style E fill:#cff,stroke:#333
    style F fill:#ffc,stroke:#333
    style G fill:#cfc,stroke:#333
    style H fill:#fcc,stroke:#333
    style I fill:#ffc,stroke:#333
    style J fill:#fcc,stroke:#333
    style K fill:#ffc,stroke:#333

25.0 REAL-TIME CLOCK AND CALENDAR (RTCC)

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 29. "Real-Time Clock and Calendar (RTCC)" (DS60001125) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The RTCC module is intended for applications in which accurate time must be maintained for extended periods of time with minimal or no CPU intervention. Low-power optimization provides extended battery lifetime while keeping track of time.

The following are key features of the RTCC module:

• Time: hours, minutes, and seconds
• 24-hour format (military time)
- Visibility of one-half second period

  • Provides calendar: weekday, date, month, and year
  • Alarm intervals are configurable for half of a second, one second, 10 seconds, one minute, 10 minutes, one hour, one day, one week, one month and one year.
  • Alarm repeat with decrementing counter
  • Alarm with indefinite repeat: Chime
    • Year range: 2000-2099
  • Leap year correction
    • BCD format for smaller firmware overhead
  • Optimized for long-term battery operation
    • Fractional second synchronization
  • User calibration of the clock frequency with periodic auto-adjust
  • Calibration within ± 2.64 seconds error per month
  • Calibrates up to 260 ppm of crystal error
  • Uses external 32.768 kHz crystal or 32.768 kHz internal oscillator
  • Alarm pulse or seconds clock output on RTCC pin

The RTCC reference clock is obtained from either the SOSC or LPRC oscillator. The user is responsible to enable the oscillator using the OSCCON[SOSCEN] bit if the SOSC is used.

FIGURE 25-1: RTCC BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - REAL-TIME CLOCK AND CALENDAR (RTCC) - 1

flowchart
graph TD
    A["32.768 kHz Input from Secondary Oscillator (SOSC)"] --> B["RTCC Prescalers"]
    C["32.768 kHz Input from Internal Oscillator (LPRC)"] --> B
    B --> D["0.5 seconds"]
    D --> E["RTCC Timer"]
    E <--> F["RTCVAL"]
    F <--> G["YEAR, MTH, DAY"]
    F --> H["WKDAY"]
    F --> I["HR, MIN, SEC"]
    E --> J["Comparator"]
    J --> K["Compare Registers with Masks"]
    K --> L["ALRMVAL"]
    L <--> M["MTH, DAY"]
    L --> N["WKDAY"]
    L --> O["HR, MIN, SEC"]
    J --> P["Repeat Counter"]
    P --> Q["RTCC Interrupt Logic"]
    Q --> R["RTCC Interrupt"]
    R --> S["Alarm Pulse"]
    R --> T["Seconds Pulse"]
    S --> U["RTCOE"]
    T --> V["RTCC Pin"]
    U --> W["RTCOUTSEL[1:0"]]
    V --> X["RTCC Pin"]

25.1 RTCC Control Registers

TABLE 25-1: RTCC REGISTER MAP

Virtual Address(BF87_#)Register Name()Bit RangeBitsAll Resets
31/15 30/14 29/1328/12 27/1126/10 25/924/8 23/722/6 21/5 2020/4 19/3 181/2 17/1 160
0000RTCCON31:16CAL[9:0]0000
15:0ONSIDLRTCCLKSEL[1:0]RTCOUTSEL[1:0]RTCCLKONRTCWRENRTCSYNCHALFSECRTCOE0000
0010RTCALRM31:160000
15:0ALRMENCHIMEPIVALRMSYNCAMASK[3:0]ARPT[7:0]0000
0020RTCTIME31:16HR10[3:0]HR01[3:0]MIN10[3:0]MIN01[3:0]××××
15:0SEC10[3:0]SEC01[3:0]xx×0
0030RTCDATE31:16YEAR10[3:0]YEAR01[3:0]MONTH10[3:0]MONTH01[3:0]××××
15:0DAY10[3:0]DAY01[3:0]WDAY01[3:0]xx×0
0040ALRMTIME31:16HR10[3:0]HR01[3:0]MIN10[3:0]MIN01[3:0]××××
15:0SEC10[3:0]SEC01[3:0]xx×0
0050ALRMDATE31:16MONTH10[3:0]MONTH01[3:0]0Cxx
15:0DAY10[3:0]DAY01[3:0]WDAY01[3:0]xx×0

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 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 25-1: RTCCON: REAL-TIME CLOCK AND CALENDAR CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0U-0 U-0 U-0 R/WR/W-0R/W-0
—— — —— —CAL[ 9
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CAL[7:0]
15:8R/W-0U-0R/W-0U-0U-0R/W-0R/W-0R/W-0
ON(1)SIDLRTCCLKSEL[1:0]RTCOUTSEL[1](2)
7:0R/W-0R-0 U-0 U-0R/W-0R/W-0R-0 R-0 R/W-0
RTCOUTSEL[0](2)RTCCLKON(5)RTCWREN(3)RTCSYNCHALFSEC(4)RTCOE

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-26 Unimplemented: Read as '0'

bit 25-16 CAL[9:0]: Real-Time Clock Drift Calibration bits, which contain a signed 10-bit integer value

0111111111 = Maximum positive adjustment, adds 511 real-time clock pulses every one minute

0000000001 = Minimum positive adjustment, adds 1 real-time clock pulse every one minute

0000000000 = No adjustment

1111111111 = Minimum negative adjustment, subtracts 1 real-time clock pulse every one minute

1000000000 = Maximum negative adjustment, subtracts 512 real-time clock pulses every one minute

bit 15 ON: RTCC On bit ^(1)

1 = RTCC module is enabled

0 = RTCC module is disabled

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Mode bit

1 = Disables RTCC operation when CPU enters Idle mode

0 = Continue normal operation when CPU enters Idle mode

bit 12-11 Unimplemented: Read as '0'

bit 10-9 RTCCLKSEL[1:0]: RTCC Clock Select bits

When a new value is written to these bits, the Seconds Value register must also be written to properly reset the clock prescalers in the RTCC.

11 = Reserved

10 = Reserved

01 = RTCC uses the external 32.768 kHz SOSC

00 = RTCC uses the internal 32.768 kHz LPRC

Note 1: The ON bit is only writable when RTCWREN = 1.

2: Requires RTCOE = 1 (RTCCON[0]) for the output to be active.

3: The RTCWREN bit can be set only when the Write sequence is enabled.

4: This bit is read-only. It is cleared to '0' on a write to the seconds bit fields (RTCTIME[14:8]).

5: This bit is undefined when RTCCLKSEL[1:0] = 0.0 (LPRC is the clock source).

6: This register is reset only on a POR.

REGISTER 25-1: RTCCON: REAL-TIME CLOCK AND CALENDAR CONTROL REGISTER (CONTINUED)

bit 8-7 RTCOUTSEL[1:0]: RTCC Output Data Select bits (2)

11 = Reserved
10 = Reserved
01 = Seconds Clock is presented on the RTCC pin
00 = Alarm Pulse is presented on the RTCC pin when the alarm interrupt is triggered

bit 6 RTCCLKON: RTCC Clock Enable Status bit (5)

1 = RTCC Clock is actively running
0 = RTCC Clock is not running

bit 5-4 Unimplemented: Read as '0'

bit 3 RTCWREN: Real-Time Clock Value Registers Write Enable bit ^(3)

1 = Real-Time Clock Value registers can be written to by the user
0 = Real-Time Clock Value registers are locked out from being written to by the user

bit 2 RTCSYNC: Real-Time Clock Value Registers Read Synchronization bit

1 = Real-time clock value registers can change while reading (due to a rollover ripple that results in an invalid data read). If the register is read twice and results in the same data, the data can be assumed to be valid.
0 = Real-time clock value registers can be read without concern about a rollover ripple

bit 1 HALFSEC: Half-Second Status bit (4)

1 = Second half period of a second
0 = First half period of a second

bit 0 RTCOE: RTCC Output Enable bit

1 = RTCC output is enabled
0 = RTCC output is disabled

Note 1: The ON bit is only writable when RTCWREN = 1.

2: Requires RTCOE = 1 (RTCCON[0]) for the output to be active.
3: The RTCWREN bit can be set only when the Write sequence is enabled.
4: This bit is read-only. It is cleared to '0' on a write to the seconds bit fields (RTCTIME[14:8]).
5: This bit is undefined when RTCCLKSEL[1:0] = 0.0 (LPRC is the clock source).
6: This register is reset only on a POR.

REGISTER 25-2: RTCALRM: REAL-TIME CLOCK ALARM CONTROL REGISTER

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 ALRMEN: Alarm Enable bit ^(1,2)

1 = Alarm is enabled

0 = Alarm is disabled

bit 14 CHIME: Chime Enable bit ^(2)

1 = Chime is enabled - ARPT[7:0] is allowed to rollover from 0x00 to 0xFF

0 = Chime is disabled - ARPT[7:0] stops once it reaches 0x00

bit 13 PIV: Alarm Pulse Initial Value bit ^(2)

When ALRMEN = 0, PIV is writable and determines the initial value of the Alarm Pulse.

When ALRMEN = 1, PIV is read-only and returns the state of the Alarm Pulse.

bit 12 ALRMSYNC: Alarm Sync bit

1 = ARPT[7:0] and ALRMEN may change as a result of a half second rollover during a read. The ARPT must be read repeatedly until the same value is read twice. This must be done since multiple bits may be changing.

0 = ARPT[7:0] and ALRMEN can be read without concerns of rollover because the prescaler is more than 32 real-time clocks away from a half-second rollover

bit 11-8 AMASK[3:0]: Alarm Mask Configuration bits ^(2)

0000 = Every half-second

0001 = Every second

0010 = Every 10 seconds

0011 = Every minute

0100 = Every 10 minutes

0101 = Every hour

0110 = Once a day

0111 = Once a week

1000 = Once a month

1001 = Once a year (except when configured for February 29, once every four years)

1010 = Reserved

1011 = Reserved

11xx = Reserved

Note 1: Hardware clears the ALRMEN bit anytime the alarm event occurs, when ARPT[7:0] = 0.0 and CHIME = 0.

2: This field must not be written when the RTCC ON bit = 1 (RTCCON[15]) and ALRMSYNC = 1.

3: This register is reset only on a POR.

REGISTER 25-2: RTCALRM: REAL-TIME CLOCK ALARM CONTROL REGISTER (CONTINUED)

bit 7-0 ARPT[7:0]: Alarm Repeat Counter Value bits (2)

11111111 = Alarm will trigger 256 times

00000000 = Alarm will trigger one time

The counter decrements on any alarm event. The counter only rolls over from 0x00 to 0xFF if CHIME = 1.

Note 1: Hardware clears the ALRMEN bit anytime the alarm event occurs, when ARPT[7:0] = 0.0 and CHIME = 0.

2: This field must not be written when the RTCC ON bit = 1 (RTCCON[15]) and ALRMSYNC = 1.

3: This register is reset only on a POR.

REGISTER 25-3: RTCTIME: REAL-TIME CLOCK TIME VALUE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-x R/W-x R/W-x R/W-xR/W-x R/W-xR/W-x R/W-x
HR10[3:0] HR01[3:0]
23:16R/W-x R/W-x R/W-x R/W-xR/W-x R/W-xR/W-x R/W-x
MIN10[3:0] MIN01[3:0]
15:8R/W-x R/W-x R/W-xR/W-x R/W-xR/W-x R/W-x
SEC10[3:0] SEC01[3:0]
7:0U-0U-0U-0U-0U-0U-0U-0U-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-28 HR10[3:0]: Binary-Coded Decimal Value of Hours bits, 10 digits; contains a value from 0 to 2 bit 27-24 HR01[3:0]: Binary-Coded Decimal Value of Hours bits, 1 digit; contains a value from 0 to 9 bit 23-20 MIN10[3:0]: Binary-Coded Decimal Value of Minutes bits, 10 digits; contains a value from 0 to 5 bit 19-16 MIN01[3:0]: Binary-Coded Decimal Value of Minutes bits, 1 digit; contains a value from 0 to 9 bit 15-12 SEC10[3:0]: Binary-Coded Decimal Value of Seconds bits, 10 digits; contains a value from 0 to 5 bit 11-8 SEC01[3:0]: Binary-Coded Decimal Value of Seconds bits, 1 digit; contains a value from 0 to 9 bit 7-0 Unimplemented: Read as '0'
Note: This register is only writable when RTCWREN = 1 (RTCCON[3]).

REGISTER 25-4: RTCDATE: REAL-TIME CLOCK DATE VALUE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
YEAR10[3:0] YEAR01[3:0]
23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
MONTH10[3:0] MONTH01[3:0]
15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
DAY10[3:0] DAY01[3:0]
7:0U-0 U-0 U-0 U-0R/W-x R/W-x R/W-x R/W-x R/W-x
WDAY01[3:0]
Legend:R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-28 YEAR10[3:0]: Binary-Coded Decimal Value of Years bits, 10 digits

bit 27-24 YEAR01[3:0]: Binary-Coded Decimal Value of Years bits, 1 digit

bit 23-20 MONTH10[3:0]: Binary-Coded Decimal Value of Months bits, 10 digits; contains a value from 0 to 1

bit 19-16 MONTH01[3:0]: Binary-Coded Decimal Value of Months bits, 1 digit; contains a value from 0 to 9

bit 15-12 DAY10[3:0]: Binary-Coded Decimal Value of Days bits, 10 digits; contains a value from 0 to 3

bit 11-8 DAY01[3:0]: Binary-Coded Decimal Value of Days bits, 1 digit; contains a value from 0 to 9

bit 7-4 Unimplemented: Read as '0'

bit 3-0 WDAY01[3:0]: Binary-Coded Decimal Value of Weekdays bits, 1 digit; contains a value from 0 to 6

Note: This register is only writable when RTCWREN = 1 (RTCCON[3]).

REGISTER 25-5: ALRMTIME: ALARM TIME VALUE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-x R/W-x R/W-x R/W-xR/W-x R/W-xR/W-x R/W-x
HR10[3:0] HR01[3:0]
23:16R/W-x R/W-x R/W-x R/W-xR/W-x R/W-xR/W-x R/W-x
MIN10[3:0] MIN01[3:0]
15:8R/W-x R/W-x R/W-xR/W-x R/W-xR/W-x R/W-x
SEC10[3:0] SEC01[3:0]
7:0U-0U-0U-0U-0U-0U-0U-0U-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-28 HR10[3:0]: Binary Coded Decimal value of hours bits, 10 digits; contains a value from 0 to 2
bit 27-24 HR01[3:0]: Binary Coded Decimal value of hours bits, 1 digit; contains a value from 0 to 9
bit 23-20 MIN10[3:0]: Binary Coded Decimal value of minutes bits, 10 digits; contains a value from 0 to 5
bit 19-16 MIN01[3:0]: Binary Coded Decimal value of minutes bits, 1 digit; contains a value from 0 to 9
bit 15-12 SEC10[3:0]: Binary Coded Decimal value of seconds bits, 10 digits; contains a value from 0 to 5
bit 11-8 SEC01[3:0]: Binary Coded Decimal value of seconds bits, 1 digit; contains a value from 0 to 9
bit 7-0 Unimplemented: Read as '0'

REGISTER 25-6: ALRMDATE: ALARM DATE VALUE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16R/W-xR/W-xR/W-xR/W-xR/W-xR/W-xR/W-xR/W-x
MONTH10[3:0]MONTH01[3:0]
15:8R/W-xR/W-xR/W-xR/W-xR/W-xR/W-xR/W-xR/W-x
DAY10[1:0]DAY01[3:0]
7:0U-0U-0U-0U-0R/W-xR/W-xR/W-xR/W-x
— — — —WDAY01[3:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-24 Unimplemented: Read as '0'

bit 23-20 MONTH10[3:0]: Binary Coded Decimal value of months bits, 10 digits; contains a value from 0 to 1

bit 19-16 MONTH01[3:0]: Binary Coded Decimal value of months bits, 1 digit; contains a value from 0 to 9

bit 15-12 DAY10[3:0]: Binary Coded Decimal value of days bits, 10 digits; contains a value from 0 to 3

bit 11-8 DAY01[3:0]: Binary Coded Decimal value of days bits, 1 digit; contains a value from 0 to 9

bit 7-4 Unimplemented: Read as '0'

bit 3-0 WDAY01[3:0]: Binary Coded Decimal value of weekdays bits, 1 digit; contains a value from 0 to 6

26.0 ASYMMETRIC CRYPTO ENGINE

The Asymmetric Crypto Engine provides hardware acceleration to support Public Key (PK) cryptography functions, needed during authentication and key negotiation sessions. The PK Crypto Engine is based on a scalable array of dual-field processing elements that can be used to execute all operations and algorithms required for PK crypto-systems.

The Asymmetric Crypto Engine supports the following:

- Algorithms

  • 256/512-bit crypto engines
    • Elliptic-curve cryptography (ECC)
  • Elliptic-curve Diffie–Hellman (ECDH)
    • Elliptic Curve Digital Signature Algorithm (ECDSA)

- 256-bit Ed25519

- Applications:

- Digital signature applications

- Digital right management

  • Key exchange protocol
  • IPSec - Internet Key Exchange (IKE)
  • Transport Layer Security/Secure Sockets Layer (TLS/SSL) gateways

The following are key features of the Asymmetric Crypto Engine:

• Supports microcode based sequence
• Dedicated DMA for write back from crypto memory to shared memory
- Flexible microcode update using the crypto engine SRAM

The asymmetric crypto module interfaces with three memory modules as shown in the table below.

TABLE 26-1: ASYMMETRIC CRYPTO MEMORIES

Memory Size
Shared Crypto RAM (SCM)304 (Words) x 64 (Bits)
Microcode memory 1440 (Words) x 18 (Bits)

FIGURE 26-1: ASYMMETRIC CRYPTO ENGINE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - ASYMMETRIC CRYPTO ENGINE - 1

flowchart
graph TD
    A["Processor"] <--> B["Shared Memory"]
    B <--> C["Crypto Controller"]
    C <--> D["Tightly Coupled Memory"]
    C <--> E["Microcode SRAM"]

27.0 SYMMETRIC CRYPTO ENGINE

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 49. “Crypto Engine (CE) and Random Number Generator (RNG)” (DS60001246) in the “PIC32 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

The Symmetric Crypto Engine is intended to accelerate applications that need cryptographic functions. By executing these functions in the hardware module, software overhead is reduced and actions, such as encryption, decryption, and authentication can execute much more quickly.

The Symmetric Crypto Engine uses an internal descriptor-based DMA for efficient programming of the Security Association (SA) data and packet pointers (allowing scatter/gather data fetching). An intelligent state machine schedules the Symmetric Crypto Engines based on the protocol selection and packet boundaries. The hardware engines can perform the encryption and authentication in sequence or in parallel.

The following are key features of the Symmetric Crypto Engine:

  • Bulk ciphers and hash engines
  • Integrated CRDMA to off-load processing:
  • Buffer Descriptor (BD)-based
  • Secure association per buffer descriptor

- Some functions can execute in parallel

Bulk ciphers that are handled by the Symmetric Crypto Engine include:

• AES:

- 128-bit, 192-bit and 256-bit key sizes

- CBC, ECB, CTR, CFB and OFB modes

• DES/TDES:

- CBC, ECB, CFB and OFB modes

Authentication engines that are available through the Symmetric Crypto Engine include:

• S H A - 1

• SHA-256

• M D - 5

• AES-GCM

- AES-CBC

- HMAC operation (for all authentication engines)

• SFR interface:

- 32-bit Read/Write only

- No 8-bit or 16-bit access

The Symmetric Crypto Engine processes the data rate on the basis of the following factors:

  • Which algorithm/engine is in use
  • Whether the algorithms/engines are used in parallel or in series
  • Demand on source and destination memories by other parts of the system (CPU, DMA, and so on.)
  • The speed of PB5_CLK, which drives the Symmetric Crypto Engine

The table below shows typical performance for various engines.

TABLE 27-1: SYMMETRIC CRYPTO ENGINE PERFORMANCE

Engine/ AlgorithmPerformance Factor (Mbps/MHz)Maximum Mbps (PB5_CLK = 100 MHz)
DES 14.4 1440
TDES 6.6660
AES-128 9.0900
AES-192 7.9790
AES-256 7.2720
MD515.6 1560
SHA-113.2 1320
SHA-256 9.3930

Note: When using the engines sequentially, the throughput degrades. Throughput is also negatively affected by other bus activity, specifically if the CPU and/or peripherals have high activity to the same SRAM target as the CRDMA.

Note 1: A cryptographic operation cannot be interrupted with another. A hash is always processed completely.

2: Using the crypto DMA on an empty hash string will cause the peripheral to time out and not return a valid hash. The expectation is that it will use the fixed/known hash of the empty string.

FIGURE 27-1: SYMMETRIC CRYPTO ENGINE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - SYMMETRIC CRYPTO ENGINE - 1

flowchart
graph LR
    A["System Bus"] -->|PB5_CLK| B["INB FIFO"]
    A -->|PB5_CLK| C["DMA Controller"]
    A -->|PB5_CLK| D["OUTB FIFO"]
    B --> E["Packet RD"]
    C --> F["Crypto FSM"]
    D --> G["Packet WR"]
    E --> H["Local Bus"]
    F --> H
    G --> H
    H --> I["AES"]
    H --> J["TDES"]
    H --> K["SHA-1 SHA-256"]
    H --> L["MD5"]

27.1 Symmetric Crypto Engine Control Registers

TABLE 27-2: SYMMETRIC CRYPTO ENGINE REGISTER MAP

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.

REGISTER 27-1: CEVER: CRYPTO ENGINE REVISION, VERSION, AND ID REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0
REVISION[7:0]
23:16R-0 R-0 R-0 R-0 R-0 R-0
VERSION[7:0]
15:8R-0 R-0 R-0 R-0 R-0 R-0
ID[15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0
ID[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-24 REVISION[7:0]: Crypto Engine Revision bits

bit 23-16 VERSION[7:0]: Crypto Engine Version bits

bit 15-0 ID[15:0]: Crypto Engine Identification bits

REGISTER 27-2: CECON: CRYPTO ENGINE CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
7:0R/W-0R/W-0, HCR/W-0U-0U-0R/W-0R/W-0R/W-0
SWAPOENSWRSTSWAPENBDPCHSTBDPPLENDMAEN
Legend:HC = Hardware Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-8 Unimplemented: Read as '0'

bit 7 SWAPOEN: Swap Output Data Enable bit

1 = Output data is byte swapped when written by dedicated DMA
0 = Output data is not byte swapped when written by dedicated DMA

bit 6 SWRST: Software Reset bit

1 = Initiate a software reset of the Crypto Engine
0 = Normal operation

bit 5 SWAPEN: Input Data Swap Enable bit

1 = Input data is byte swapped when read by dedicated DMA
0 = Input data is not byte swapped when read by dedicated DMA

bit 4-3 Unimplemented: Read as '0'

bit 2 BDPCHST: Buffer Descriptor Processor (BDP) Fetch Enable bit

This bit must be enabled only after all DMA descriptor programming is completed.

1 = BDP descriptor fetch is enabled
0 = BDP descriptor fetch is disabled

bit 1 BDPPLEN: Buffer Descriptor Processor Poll Enable bit

This bit must be enabled only after all DMA descriptor programming is completed.

1 = Poll for descriptor until valid bit is set
0 = Do not poll

bit 0 DMAEN: DMA Enable bit

1 = Crypto Engine DMA is enabled
0 = Crypto Engine DMA is disabled

REGISTER 27-3: CEBDADDR: CRYPTO ENGINE BUFFER DESCRIPTOR REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
BDPADDR[31:24]
23:16R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
BDPADDR[23:16]
15:8R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
BDPADDR[15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
BDPADDR[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 BDPADDR[31:0]: Current Buffer Descriptor Process Address Status bits

These bits contain the current descriptor address that is being processed by the BDP.

REGISTER 27-4: CEBDPADDR: CRYPTO ENGINE BUFFER DESCRIPTOR PROCESSOR REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BASEADDR[31:24]
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BASEADDR[23:16]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BASEADDR[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BASEADDR[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 BASEADDR[31:0]: Buffer Descriptor Base Address bits

These bits contain the physical address of the first buffer descriptor in the buffer descriptor chain. When enabled, the Crypto DMA begins fetching buffer descriptors from this address.

REGISTER 27-5: CESTAT: CRYPTO ENGINE STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
ERRMODE[2:0]ERROP[2:0] ERRPHASE[1:0]
23:16U-0 U-0 R-0 R-0 R-0 R-0R-0 R-0
— — BDSTATE[3:0]START ACTIVE
15:8R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
BDCTRL[15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
BDCTRL[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 x = Bit is unknown

bit 31-29 ERRMODE[2:0]: Internal Error Mode Status bits

111 = Reserved

110 = Reserved

101 = Reserved

100 = Reserved

011 = CEK operation

010 = KEK operation

001 = Preboot authentication

000 = Normal operation

bit 28-26 ERROP[2:0]: Internal Error Operation Status bits

111 = Reserved

110 = Reserved

101 = Reserved

100 = Authentication

011 = Reserved

010 = Decryption

001 = Encryption

000 = Reserved

bit 25-24 ERRPHASE[1:0]: Internal Error Phase of DMA Status bits

11 = Destination data

10 = Source data

01 = Security Association (SA) access

00 = Buffer Descriptor (BD) access

bit 23-22 Unimplemented: Read as '0'

bit 21-18 BDSTATE[3:0]: Buffer Descriptor Processor State Status bits

The current state of the BDP:

1111 = Reserved

0111 = Reserved

0110 = SA fetch

0101 = Fetch BDP is disabled

0100 = Descriptor is done

0011 = Data phase

0010 = BDP is loading

0001 = Descriptor fetch request is pending

0000 = BDP is idle

bit 17 START: DMA Start Status bit

1 = DMA start has occurred

0 = DMA start has not occurred

REGISTER 27-5: CESTAT: CRYPTO ENGINE STATUS REGISTER (CONTINUED)

bit 16 ACTIVE: Buffer Descriptor Processor Status bit

1 = BDP is active
0 = BDP is idle

bit 15-0 BDCTRL[15:0]: Descriptor Control Word Status bits

These bits contain the Control Word for the current BD.

REGISTER 27-6: CEINTSRC: CRYPTO ENGINE INTERRUPT SOURCE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0 U-U-0 U-0 U-0 U-0U-0 U-0
—————— ——
15:8U-0 U-0 U-U-0 U-0 U-0 U-0U-0 U-0
—————— ——
7:0U-0 U-0 U-U-0 U-0 R-0 R-0R-0 R-0
———— AREIF PKTIFCBDIF PENDIF

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-4 Unimplemented: Read as '0'

bit 3 AREIF: Access Response Error Interrupt bit

1 = Error occurred trying to access memory outside the Crypto Engine
0 = No error has occurred

bit 2 PKTIF: DMA Packet Completion Interrupt Status bit

1 = DMA packet was completed
0 = DMA packet was not completed

bit 1 CBDIF: BD Transmit Status bit

1 = Last BD transmit was processed
0 = Last BD transmit has not been processed

bit 0 PENDIF: Crypto Engine Interrupt Pending Status bit

1 = Crypto Engine interrupt is pending (this value is the result of an OR of all interrupts in the Crypto Engine)
0 = Crypto Engine interrupt is not pending

REGISTER 27-7: CEINTEN: CRYPTO ENGINE INTERRUPT ENABLE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
15:8U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
7:0U-0 U-0 U-U-0 R/W-0 R/W-0R/W-0R/W-0
AREIEPKTIEBDPIE PENDIE^(1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-4 Unimplemented: Read as '0'

bit 3 AREIE: Access Response Error Interrupt Enable bit 1 = Access response error interrupts are enabled 0 = Access response error interrupts are not enabled

bit 2 PKTIE: DMA Packet Completion Interrupt Enable bit 1 = DMA packet completion interrupts are enabled 0 = DMA packet completion interrupts are not enabled

bit 1 BDPIE: DMA Buffer Descriptor Processor Interrupt Enable bit 1 = BDP interrupts are enabled 0 = BDP interrupts are not enabled

bit 0 PENDIE: Primary Interrupt Enable bit ^(1) 1 = Crypto Engine interrupts are enabled 0 = Crypto Engine interrupts are not enabled

Note 1: The PENDIE bit is a global enable bit and must be enabled together with the other interrupts desired.

REGISTER 27-8: CEPOLLCON: CRYPTO ENGINE POLL CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— ——
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BDPPLCON[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BDPPLCON[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 x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 BDPPLCON[15:0]: Buffer Descriptor Processor Poll Control bits

These bits determine the number of SYSCLK cycles that the crypto DMA would wait before refetching the descriptor control word if the BD fetched was disabled.

REGISTER 27-9: CEHDLEN: CRYPTO ENGINE HEADER LENGTH REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
15:8U-0 U-0 U-U-0 U-0 U-0U-0 U-0
——————
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
HDRLEN[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-8 Unimplemented: Read as '0'

bit 7-0 HDRLEN[7:0]: DMA Header Length bits

For every packet, skip this length of locations and start filling the data.

REGISTER 27-10: CETRLLEN: CRYPTO ENGINE TRAILER LENGTH REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
15:8U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
TRLRLEN[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-8 Unimplemented: Read as '0'

bit 7-0 TRLRLEN[7:0]: DMA Trailer Length bits

For every packet, skip this length of locations at the end of the current packet and start putting the next packet.

27.2 Crypto Engine Buffer Descriptors

Host software creates a linked list of BDs and the hardware updates them. The table below provides a list of the Crypto Engine BDs, followed by format descriptions of each BD (see Figure 27-2 to Figure 27-9).

TABLE 27-3: CRYPTO ENGINE BUFFER DESCRIPTORS

Name (see Note 1)Bit31/2315/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
BD_CTRL 31:24DESC_EN— CRY_MODE[2:0] — —
23:16SA_FETCH_ENLAST_BDLIFMPKT_INT_ENCBD_INT_EN
15:8BD_BUFLEN[15:8]
7:0BD_BUFLEN[7:0]
BD_SA_ADDR31:24BD_SAADDR[31:24]
23:16BD_SAADDR[23:16]
15:8BD_SAADDR[15:8]
7:0BD_SAADR[7:0]
BD_SRCADDR31:24BD_SRCADDR[31:24]
23:16BD_SRCADDR[23:16]
15:8BD_SRCADDR[15:8]
7:0BD_SRCADDR[7:0]
BD_DSTADDR31:24BD_DSTADDR[31:24]
23:16BD_DSTADDR[23:16]
15:8BD_DSTADDR[15:8]
7:0BD_DSTADDR[7:0]
BD_NXTPTR31:24BD_NXTADDR[31:24]
23:16BD_NXTADDR[23:16]
15:8BD_NXTADDR[15:8]
7:0BD_NXTADDR[7:0]
BD_UPDPTR31:24BD_UPDADDR[31:24]
23:16BD_UPDADDR[23:16]
15:8BD_UPDADDR[15:8]
7:0BD_UPDADDR[7:0]
BD_MSG_LEN31:24MSG_LENGTH[31:24]
23:16MSG_LENGTH[23:16]
15:8MSG_LENGTH[15:8]
7:0MSG_LENGTH[7:0]
BD_ENC_OFF31:24ENCR_OFFSET[31:24]
23:16ENCR_OFFSET[23:16]
15:8ENCR_OFFSET[15:8]
7:0ENCR_OFFSET[7:0]

Note 1: The BD must be allocated in memory on a 64-bit boundary.

FIGURE 27-2: FORMAT OF BD_CTRL

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24 DESC_EN — CRY_MODE[2:0]— — —
23-16SA_FETCH_EN— — LAST_BD LIFMPKT_INT_ENCBD_INT_EN
15-8BD_BUFLEN[15:8]
7-0BD_BUFLEN[7:0]

bit 31 DESC_EN: Descriptor Enable

1 = The descriptor is owned by hardware. After processing the BD, hardware resets this bit to '0'.
0 = The descriptor is owned by software

bit 30 Unimplemented: Must be written as '0'

bit 29-27 CRY_MODE[2:0]: Crypto Mode

111 = Reserved
110 = Reserved
101 = Reserved
100 = Reserved
011 = CEK operation
010 = KEK operation
001 = Preboot authentication
000 = Normal operation

bit 22 SA_FETCH_EN: Fetch Security Association From External Memory

1 = Fetch SA from the SA pointer. This bit needs to be set to '1' for every new packet.
0 = Use current fetched SA or the internal SA

bit 21-20 Unimplemented: Must be written as '0'

bit 19 LAST_BD: Last Buffer Descriptors

1 = Last BD in the chain

0 = More BDs in the chain

After the last BD, the CEBDADDR goes to the base address in CEBDPADDR.

bit 18 LIFM: Last In Frame

In case of Receive Packets (from H/W-> Host), this field is filled by the Hardware to indicate whether the packet goes across multiple BDs. In case of transmit packets (from Host -> H/W), this field indicates whether this BD is the last in the frame.

bit 17 PKT_INT_EN: Packet Interrupt Enable

Generate an interrupt after processing the current BD, if it is the end of the packet.

bit 16 CBD_INT_EN: CBD Interrupt Enable

Generate an interrupt after processing the current BD.

bit 15-0 BD_BUFLEN[15:0]: Buffer Descriptor Length

This field contains the length of the buffer and is updated with the actual length filled by the receiver.

FIGURE 27-3: FORMAT OF BD_SADDR

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24 BD_SAADDR[31:24]
23-16 BD_SAADDR[23:16]
15-8 BD_SAADDR[15:8]
7-0 BD_SAADDR[7:0]

bit 31-0 BD_SAADDR[31:0]: Security Association IP Session Address The sessions' SA pointer has the keys and IV values.

FIGURE 27-4: FORMAT OF BD_SRCADDR

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24 BD_SRCADDR[31:24]
23-16 BD_SRCADDR[23:16]
15-8 BD_SRCADDR[15:8]
7-0 BD SRCADDR[7:0]

bit 31-0 BD_SRCADDR: Buffer Source Address
The source address of the buffer that needs to be passed through the PE-CRDMA for encryption or authentication. This address must be on a 32-bit boundary.

FIGURE 27-5: FORMAT OF BD_DSTADDR

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24 BD_DSTADDR[31:24]
23-16 BD_DSTADDR[23:16]
15-8 BD_DSTADDR[15:8]
7-0 BD_DSTADDR[7:0]

bit 31-0 BD_DSTADDR: Buffer Destination Address
The destination address of the buffer that needs to be passed through the PE-CRDMA for encryption or authentication. This address must be on a 32-bit boundary.

FIGURE 27-6: FORMAT OF BD_NXTADDR

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24 BD_NXTADDR[31:24]
23-16 BD_NXTADDR[23:16]
15-8 BD_NXTADDR[15:8]
7-0 BD_NXTADDR[7:0]

bit 31-0 BD_NXTADDR: Next BD Pointer Address Has Next Buffer Descriptor

The next buffer can be a next segment of the previous buffer or a new packet. This address must be on a 64-bit boundary.

FIGURE 27-7: FORMAT OF BD_UPDPTR

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24 BD_UPDADDR[31:24]
23-16 BD_UPDADDR[23:16]
15-8 BD_UPDADDR[15:8]
7-0 BD_UPDADDR[7:0]

bit 31-0 BD_UPDADDR: UPD Address Location

The update address has the location where the CRDMA results are posted. The updated results are the ICV values, key output values as needed.

FIGURE 27-8: FORMAT OF BD_MSG_LEN

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24 MSG_LENGTH[31:24]
23-16 MSG_LENGTH[23:16]
15-8 MSG_LENGTH[15:8]
7-0 MSG_LENGTH[7:0]

bit 31-0 MSG_LENGTH: Total Message Length

Total message length for the hash and HMAC algorithms in bytes. Total number of crypto bytes in case of GCM algorithm (LEN-C).

FIGURE 27-9: FORMAT OF BD_ENC_OFF

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24 ENCR_OFFSET[31:24]
23-16 ENCR_OFFSET[23:16]
15-8 ENCR_OFFSET[15:8]
7-0 ENCR_OFFSET[7:0]

bit 31-0 ENCR_OFFSET: Encryption Offset

Encryption offset for the multi-task test cases (both encryption and authentication). The number of AAD bytes in the case of GCM algorithm (LEN-A).

27.3 Security Association Structure

Table 27-4 shows the SA structure. The Crypto Engine uses the SA to determine the settings for processing a BDP. The SA contains:

• Which algorithm to use
- Whether to use engines in parallel (for both authentication and encryption/decryption)
- The size of the key
- Authentication key
- Encryption/decryption key
- Authentication Initialization Vector (IV)
- Encryption IV

TABLE 27-4: CRYPTO ENGINE SA STRUCTURE

NameBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
SA_CTRL 31:24— —VE RIFY— NO_RX OR_EN ICVONLY
23:16LNC LOADIV FBFLAGSALGO[6]
15:8ALGO[5:0]ENCTYPEKEYSIZE[1]
7:0KEYSIZE[0]MULTITASK[2:0]CRYPTOALGO[3:0]
SA_AUTHKEY131:24AUTHKEY[31:24]
23:16AUTHKEY[23:16]
15:8AUTHKEY[15:8]
7:0AUTHKEY[7:0]
SA_AUTHKEY231:24AUTHKEY[31:24]
23:16AUTHKEY[23:16]
15:8AUTHKEY[15:8]
7:0AUTHKEY[7:0]
SA AUTHKEY331:24AUTHKEY[31:24]
23:16AUTHKEY[23:16]
15:8AUTHKEY[15:8]
7:0AUTHKEY[7:0]
SA AUTHORKEY431:24AUTHKEY[31:24]
23:16AUTHKEY[23:16]
15:8AUTHKEY[15:8]
7:0AUTHKEY[7:0]
SA AuthorKEY531:24AUTHKEY[31:24]
23:16AUTHKEY[23:16]
15:8AUTHKEY[15:8]
7:0AUTHKEY[7:0]
SA _AUTHKEY631:24AUTHKEY[31:24]
23:16AUTHKEY[23:16]
15:8AUTHKEY[15:8]
7:0AUTHKEY[7:0]
SA_AuthKEY731:24AUTHKEY[31:24]
23:16AUTHKEY[23:16]
15:8AUTHKEY[15:8]
7:0AUTHKEY[7:0]
SA_AUTHKEY831:24AUTHKEY[31:24]
23:16AUTHKEY[23:16]
15:8AUTHKEY[15:8]
7:0AUTHKEY[7:0]
SA_ENCKEY131:24ENCKEY[31:24]
23:16ENCKEY[23:16]
15:8ENCKEY[15:8]
7:0ENCKEY[7:0]
SA ENCKEY231:24ENCKEY[31:24]
23:16ENCKEY[23:16]
15:8ENCKEY[15:8]
7:0ENCKEY[7:0]
SA_ENCKEY331:24ENCKEY[31:24]
23:16ENCKEY[23:16]
15:8ENCKEY[15:8]
7:0ENCKEY[7:0]
SA_ENCKEY431:24ENCKEY[31:24]
23:16ENCKEY[23:16]
15:8ENCKEY[15:8]
7:0ENCKEY[7:0]ENCKEY[7:0]
SA_ENCKEY531:24ENCKEY[31:24]
23:16ENCKEY[23:16]
15:8ENCKEY[15:8]
7:0ENCKEY[7:0]
SA_ENCKEY631:24ENCKEY[31:24]
23:16ENCKEY[23:16]
15:8ENCKEY[15:8]
7:0ENCKEY[7:0]

TABLE 27-4: CRYPTO ENGINE SA STRUCTURE (CONTINUED)

NameBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
SA_ENCKEY7 311:24 ENCKEY[31:24]
23:16 ENCKEY[23:16]
15:8 ENCKEY[15:8]
7:0 ENCKEY[7:0]
SA_ENCKEY8 311:24 ENCKEY[31:24]
23:16 ENCKEY[23:16]
15:8 ENCKEY[15:8]
7:0 ENCKEY[7:0]
SA_AUTHIV1 3124 AUTHIV[31:24]
23:16 AUTHIV[23:16]
15:8 AUTHIV[15:8]
7:0 AUTHIV[7:0]
SA_AUTHIV2 3124 AUTHIV[31:24]
23:16 AUTHIV[23:16]
15:8 AUTHIV[15:8]
7:0 AUTHIV[7:0]
SAAUTHIV3 3124 AUTHIV[31:24]
23:16 AUTHIV[23:16]
15:8 AUTHIV[15:8]
7:0 AUTHIV[7:0]
SA AUTHIV4 3124 AUTHIV[31:24]
23:16 AUTHIV[23:16]
15:8 AUTHIV[15:8]
7:0 AUTHIV[7:0]
SA AUTHORV5 3124 AUTHIV[31:24]
23:16 AUTHIV[23:16]
15:8 AUTHIV[15:8]
7:0 AUTHIV[7:0]
SA AuthorHV6 3124 AUTHIV[31:24]
23:16 AUTHIV[23:16]
15:8 AUTHIV[15:8]
7:0 AUTHIV[7:0]
SA _ AUTHIV7 3124 AUTHIV[31:24]
23:16 AUTHIV[23:16]
15:8 AUTHIV[15:8]
7:0 AUTHIV[7:0]
SA_ AUTHIV8 3124 AUTHIV[31:24]
23:16 AUTHIV[23:16]
15:8 AUTHIV[15:8]
7:0 AUTHIV[7:0]
SA_ENCIV1 31:24 ENCIV[31:24]
23:16ENCIV[23:16]
15:8ENCIV[15:8]
7:0ENCIV[7:0]
SA_ENCIV2 31:24 ENCIV[31:24]
23:16ENCIV[23:16]
15:8ENCIV[15:8]
7:0ENCIV[7:0]
SA_ENCIV3 31:24 ENCIV[31:24]
23:16ENCIV[23:16]
15:8ENCIV[15:8]
7:0ENCIV[7:0]
GA_ENCIV4 31:24 ENCIV[31:24]
23:16ENCIV[23:16]
15:8ENCIV[15:8]
7:0ENCIV[7:0]

The figure below shows the SA control word structure.

The Crypto Engine fetches different structures for different flows and ensures that hardware fetches minimum words from SA required for processing. The structure is ready for hardware optimal data fetches.

FIGURE 27-10: FORMAT OF SA_CTRL

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31-24VERIFYNO_RXOR_ENICVONLYIRFLAG
23-16 LNC LOADIV FBFLAGS——ALGO[6]
15-8ALGO[5:0]ENCKEYSIZE[1]
7-0 KEYSIZE[0]MULTITASK[2:0]CRYPTOALGO[3:0]

bit 31-30 Reserved: Initialize to zero.

bit 29 VERIFY: NIST Procedure Verification Setting

1 = NIST procedures are to be used

0 = Do not use NIST procedures

Note: The bit value shall be zero for the device.

bit 28 Reserved: Initialize to zero.

bit 27 NO_RX: Receive DMA Control Setting

1 = Only calculate ICV for authentication calculations

0 = Normal processing

bit 26 OR_EN: OR Register Bits Enable Setting

1 = OR the register bits with the internal value of the CSR register

0 = Normal processing

bit 25 ICVONLY: Incomplete Check Value Only Flag

This affects the SHA-1 algorithm only. It has no effect on the AES algorithm.

1 = Only three words of the HMAC result are available

0 = All results from the HMAC result are available

bit 24 IRFLAG: Immediate Result of Hash Setting

This bit is set when the immediate result for hashing is requested.

1 = Save the immediate result for hashing

0 = Do not save the immediate result

bit 23 LNC: Load New Keys Setting

1 = Load a new set of keys for encryption and authentication

0 = Do not load new keys

bit 22 LOADIV: Load IV Setting

1 = Load the IV from this SA

0 = Use the next IV

bit 21 FB: First Block Setting

This bit indicates that this is the first block of data to feed the IV value.

1 = Indicates this is the first block of data

0 = Indicates this is not the first block of data

bit 20 FLAGS: Incoming/Outgoing Flow Setting

1 = SA is associated with an outgoing flow

0 = SA is associated with an incoming flow

bit 19-17 Reserved: Initialize to zero.

Figure 27-10: FORMAT OF SA_CTRL (CONTINUED)
bit 16-10 ALGO[6:0]: Type of Algorithm to Use 1xxxxxxxx = HMAC 1 x1xxxxxx = SHA-256 xx1xxxx = SHA1 xxxx1xxx = MD5 xxxx1xx = AES xxxxxx1x = TDES xxxxxx1 = DES

bit 9 ENC: Type of Encryption Setting 1 = Encryption 0 = Decryption

bit 8-7 KEYSIZE[1:0]: Size of Keys in SA_AUTHKEYx or SA_ENCKEYx 11 = Reserved; do not use 10 = 256 bits 01 = 192 bits 00 = 128 bits(1)

bit 6-4 MULTITASK[2:0]: How to Combine Parallel Operations in the Crypto Engine 111 = Parallel pass (decrypt and authenticate incoming data in parallel) 101 = Pipe pass (encrypt the incoming data, and then perform authentication on the encrypted data) 011 = Reserved 010 = Reserved 001 = Reserved 000 = Encryption or authentication or decryption (no pass)

bit 3-0 CRYPTOALGO[3:0]: Mode of operation for the Crypto Algorithm 1111 = Reserved 1110 = AES_GCM (for AES processing) 1101 = RCTR (for AES processing) 1100 = RCBC_MAC (for AES processing) 1011 = ROFB (for AES processing) 1010 = RCFB (for AES processing) 1001 = RCBC (for AES processing) 1000 = RECB (for AES processing) 0111 = TOFB (for Triple-DES processing) 0110 = TCFB (for Triple-DES processing) 0101 = TCBC (for Triple-DES processing) 0100 = TECB (for Triple-DES processing) 0011 = OFB (for DES processing) 0010 = CFB (for DES processing) 0001 = CBC (for DES processing) 0000 = ECB (for DES processing)

Note 1: This setting does not alter the size of SA_AUTHKEYx or SA_ENCKEYx in the SA, only the number of bits of SA_AUTHKEYx and SA_ENCKEYx that are used.

Note 1: IV size for AES GCM is restricted to 96 bits.

2: Supports 32-bit counter mode only.
3: IV value is expected in big endian format.

Example: 12 byte IV Value: with SA_PTR = 0x00002000

- IV value desired = 0x11223344 55667788 99aabbcc

- In the SA Structure IV will be starting at (32-bit) word offset [25]

SYSTEM ADDR: DATA:

0x00002064: 0x11223344

0x00002068: 0x55667788

0x0000206C: 0x99aabbcc

4: Hash results are posted in big endian format as below.

Example: 16 byte hash result with UPD_PTR (BD[5]) = 0x00003000

Hash actual result: 0x00010203_04050607_08090a0b_0c0d0e0f

SYSTEM ADDR: DATA

0x00003000: 0x00010203

0x00003004: 0x04050607

0x00003008: 0x08090a0b

0x0000300C: 0x0c0d0e0f

28.0 TRUE RANDOM NUMBER GENERATOR (TRNG)

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 49. “Crypto Engine (CE) and Random Number Generator (RNG)” (DS60001246) in the “PIC32 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

The Random Number Generator (RNG) core implements a thermal noise-based, TRNG and a cryptographically secure Pseudo-Random Number Generator (PRNG).

The TRNG uses multiple ring oscillators and the inherent thermal noise of integrated circuits to generate true random numbers that can initialize the PRNG.

The PRNG is a flexible Linear-Feedback Shift Register (LFSR), which is capable of displaying a maximal length LFSR of up to 64-bits.

The key features of the RNG are:

• TRNG :

  • Up to 50 Mbps of random bits
  • Multi-ring oscillator-based design
  • Built-in bias corrector

- PRNG:

  • LFSR-based
  • Up to 64-bit polynomial length
  • Programmable polynomial
  • TRNG can be seed value

To start using the PRNG, it is necessary to set the initial seed value, the length of the polynomial, and the polynomial equation.

The initial seed value is set by writing to the RNGNUMGEN1 and RNGNUMGEN2 registers, which are also the registers where the random value is read. The initial seed value can also be loaded from the TRNG by writing a '1' to the LOAD bit (RNGCON[12]). This action transfers the current value in the RNGSEEDx registers to the corresponding RNGNUMGENx registers. The polynomial length for the LFSR is set by writing the length (in bits) to the PLEN[7:0] bits (RNGCON[7:0])

RNGPOLY1 and RNGPOLY2 control the feedback taps of the polynomial. The PRNG uses a reverse shift LFSR to reverse the bit positions, and largest tap of the polynomial is assigned to bit 0. The length (PLEN[7:0] in RNGCON) defines the feedback position.

To select a 42-bit (in this case maximal length) LFSR, it is described by:

$$ x 4 2 + x 4 1 + x 2 0 + x 1 9 + 1 $$

SFR settings:

• RNGNUMGEN1 = SEED-Low
• RNGNUMGEN2 = SEED-High
• RNGPOLY1 = 0x00C0_0003
• RNGPOLY2 = 0x0000_0000
• RNGCON = 0x0000_062A

The RNG's bus clock is gated when the RNG Peripheral Module Disable (PMD) bit is set. When the PMD is set, the RNG cannot be read or written.

TABLE 28-1: RNG BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - TRUE RANDOM NUMBER GENERATOR (TRNG) - 1

flowchart
graph TD
    A["System Bus"] --> B["SFR"]
    A --> C["PRNG"]
    B --> D["TRNG"]
    C --> D
    D --> E["BIAS Corrector"]
    E --> F["Edge Comparator"]
    F --> G["Oscillator"]
    F --> H["RingRing"]
    G --> I["Oscillator"]
    H --> J["RingRing"]
    B <--> C
    C <--> D
    D <--> E
    E <--> F
    F <--> G
    G <--> H
    H <--> I
    I <--> J
    J <--> K["PB5_CLK"]

28.1 RNG Control Registers

TABLE 28-2: RNG REGISTER MAP

Virtual Address (BF8E_#)Register NameBit RangeBitsAll Resets
31/15 3014 29/1328/12 27/11 26/10 259 24/8 23/722/6 21/5 2014 19/3 182 17/1 16/0
5000RNGVER31:16ID[15:0] ××××
15:0VERSION[7:0]REVISION[7:0]××××
5004RNGCON31:160000
15:0LOADTRNGMODECONTPRNGENTRNGENPLEN[7:0]0064
5008RNGPOLY131:16POLY[31:16]PCCC
15:0POLY[15:0]0000
500CRNGPOLY231:16POLY[31:16]PCCC
15:0POLY[15:0]0000
5010RNGNUMGEN131:16RNG[31:16]PCCC
15:0RNG[15:0]0000
5014RNGNUMGEN231:16RNG[31:16]PCCC
15:0RNG[15:0]0000
5018RNGSEED131:16SEED[31:16]0000
15:0SEED[15:0]0000
501CRNGSEED231:16SEED[31:16]0000
15:0SEED[15:0]0000
5020RNGCNT31:160000
15:0RCNT[6:0]0000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.

REGISTER 28-1: RNGVER: RANDOM NUMBER GENERATOR VERSION REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0
ID[15:8]
23:16R-0 R-0 R-0 R-0 R-0 R-0
ID[7:0]
15:8R-0 R-0 R-0 R-0 R-0 R-0
VERSION[7:0]
7:0R-0 R-0 R-0 R-0 R-0 R-0
Revision[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 ID[15:0]: Block Identification bits

bit 15-8 VERSION[7:0]: Block Version bits

bit 7-0 REVISION[7:0]: Block Revision bits

REGISTER 28-2: RNGCON: RANDOM NUMBER GENERATOR CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —LOAD TRNGMODE CONTPRNGENTRNGEN
7:0R/W-0R/W-1R/W-1R/W-0R/W-0R/W-1R/W-0R/W-0
PLEN[7:0]

Legend:

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31-13 Unimplemented: Read as '0'

bit 12 LOAD: Device Select bit

This bit is self-clearing and is used to load the seed from the TRNG (random value) as a seed to the PRNG.

bit 11 TRNGMODE: TRNG Mode Selection bit

1 = Use ring oscillators with bias corrector

0 = Use ring oscillators with XOR tree

Note: Enabling this bit will generate numbers with a more even distribution of randomness.

bit 10 CONT: PRNG Number Shift Enable bit

1 = PRNG random number is shifted every cycle

0 = PRNG random number is shifted when the previous value is removed

bit 9 PRNGEN: PRNG Operation Enable bit

1 = PRNG operation is enabled

0 = PRNG operation is not enabled

bit 8 TRNGEN: TRNG Operation Enable bit

1 = TRNG operation is enabled

0 = TRNG operation is not enabled

bit 7-0 PLEN[7:0]: PRNG Polynomial Length bits

These bits contain the length of the polynomial used for the PRNG.

REGISTER 28-3: RNGPOLYx: RANDOM NUMBER GENERATOR POLYNOMIAL REGISTER 'x' ('x' = 1 or 2)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-1 R/W-1 R/W-1 R/W-1R/W-1 R/W-1R/W-1 R/W-1
POLY[31:24]
23:16R/W-1 R/W-1 R/W-1 R/W-1R/W-1 R/W-1R/W-1 R/W-1
POLY[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
POLY[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
POLY[7:0]
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31-0 POLY[31:0]: PRNG LFSR Polynomial MSB/LSB bits (RNGPOLY1 = LSB, RNGPOLY2 = MSB)

REGISTER 28-4: RNGNUMGENx: RANDOM NUMBER GENERATOR REGISTER 'x' ('x' = 1 or 2)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-1 R/W-1 R/W-1 R/W-1R/W-1 R/W-1R/W-1 R/W-1
RNG[31:24]
23:16R/W-1 R/W-1 R/W-1 R/W-1R/W-1 R/W-1R/W-1 R/W-1
RNG[23:16]
15:8R/W-1 R/W-1 R/W-1 R/W-1R/W-1 R/W-1R/W-1 R/W-1
RNG[15:8]
7:0R/W-1 R/W-1 R/W-1 R/W-1R/W-1 R/W-1R/W-1 R/W-1
RNG[7:0]
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31-0 RNG[31:0]: Current PRNG MSB/LSB Value bits (RNGNUMGEN1 = LSB, RNGNUMGEN2 = MSB)

REGISTER 28-5: RNGSEEDx: TRUE RANDOM NUMBER GENERATOR SEED REGISTER 'x' ('x' = 1 or 2)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0
SEED[31:24]
23:16R-0 R-0 R-0 R-0 R-0 R-0
SEED[23:16]
15:8R-0 R-0 R-0 R-0 R-0 R-0
SEED[15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0
SEED[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 SEED[31:0]: TRNG MSB/LSB Value bits (RNGSEED1 = LSB, RNGSEED2 = MSB)

REGISTER 28-6: RNGCNT: TRUE RANDOM NUMBER GENERATOR COUNT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
23:16U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
15:8U-0 U-0 U-0 U-0 U-0 U-0U-0 U-0
7:0U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
RCNT[6:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-7 Unimplemented: Read as '0'

bit 6-0 RCNT[6:0]: Number of Valid TRNG MSB 32 bits

29.0 12-BIT HIGH-SPEED SUCCESSIVE APPROXIMATION REGISTER (SAR) ADC

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 22. “12-bit High-Speed Successive Approximation Register (SAR) ADC” (DS60001344) in the “PIC32 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

The ADC is designed to support power conversion, and general use applications. The PIC32MZ W1 supports two 12-bit ADC modules, one dedicated ADC SARCORE and one shared ADC SARCORE.

SAR ADC includes the following key features:

  • 12-bit resolution
  • Two ADC modules with dedicated sample and hold (S&H) circuits
  • Single-ended and/or differential inputs
  • Can operate during Sleep mode
    • Supports touch sense applications
  • Two digital comparators
  • Two digital filters supporting two modes:
  • Oversampling mode
  • Averaging mode
  • Designed for general purpose applications

Note: The ADC's accuracy depends on the reference voltage ( V_REF = V_DD ), therefore, it is the designer's responsibility to implement a power supply system, where a constant reference voltage can be maintained for the ADC to achieve accurate results.

The 12-bit HS SAR ADC has one dedicated ADC module (ADC1) and one shared ADC module (ADC2). The dedicated ADC module uses a single input and is intended for high-speed and precise sampling of time-sensitive or transient inputs. The shared ADC module incorporates a multiplexer on the input to facilitate a larger group of inputs, with slower sampling, and provides flexible automated scanning option through the input scan logic.

For each ADC module, the analog inputs are connected to the S&H capacitor. The clock, sampling time, and output data resolution for each ADC module can be set independently. The ADC module performs the conversion of the input analog signal based on the configurations set in the registers. When conversion is complete, the final result is stored in the result buffer for the specific analog

input and is passed to the digital filter and digital comparator if configured to use data from this particular sample.

Basic CVD provides a touch interface based on self-capacitance touch sensing. The ADC module supports CVD feature by using the shared ADC core to perform a modified scan of all second and third class channels. The feature can be used to make single-ended or differential measurement of external capacitors. Thus the basic CVD feature provides an analog front-end for capacitive touch screen application.

The module enables the digital comparator to set its interrupt flag if the capacitance drop detected is greater than a threshold value to decide if a touch event is happening or not on pad. Then, the interrupt can wake up the CPU during idle or sleep or to signal the running software to branch to a different routine because of the touch event on the pad.

29.1 Activation Sequence

Step 1: Write all the essential ADC configuration SFRs including the ADC control clock and all ADC core clocks setup as given below:

  • ADCCON1, keeping the ON bit = 0
  • ADCCON2, especially paying attention to ADCDIV[6:0] and SAMC[9:0]
  • ADCANCON, keeping all analog enables ANENx bit = 0, WKUPCLKCNT bit = 0xA
  • ADCCON3, keeping all DIGEN5x = 0, especially paying attention to ADCSEL[1:0], and CONCLKDIV [5:0]
  • ADCxTIME, ADCDIVx[6:0], and SAMCx[9:0]
  • ADCTRGMODE, ADCIMCONx, ADCTRGSNS, ADCCSSx, ADCGIRQENx, ADCTRGx, ADCBASE

Step 2: Set the ON bit to '1', which enables the ADC control clock.

Step 3: Wait for the interrupt or polls the status bit BGVRRDY = 1, which signals that the device analog environment (band gap) is ready.

Step 4: Set the ANENx bit to '1' for each of the ADC SAR cores to be used.

Step 5: Wait for the interrupt or polls the warm-up ready bits WKRDYx = 1, which signals that the respective ADC SAR cores are ready to operate.

Step 6: Set the DIGENx bit to '1', which enables the digital circuitry to immediately begin processing incoming triggers to perform data conversions.

The throughput rate is calculated, as shown in Equation 29-1. Refer to Section 41.0 “Electrical Specifications” for more information.

EQUATION 29-1: ADC THROUGHPUT RATE

$$ F T P = \frac {T _ {A D}}{T _ {S A M P} + (T _ {C O N V})} $$

Where,

T_AD = the frequency of the individual ADC module

FIGURE 29-1: ADC BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - EQUATION 29-1: ADC THROUGHPUT RATE - 1

flowchart
graph TD
    A["Trigger"] --> B["Triggers, Scan Control Logic"]
    B --> C["ADC0A0"]
    B --> D["ADC0A23"]
    C --> E["FIFO"]
    D --> E
    E --> F["SYSTEM BUS"]
    G["ANN0"] --> H["0"]
    I["ANN1"] --> J["0"]
    K["ANN2"] --> L["0"]
    M["ANN3"] --> N["0"]
    O["AN0"] --> P["0.0"]
    Q["ANA0"] --> R["0.1"]
    S["ANB0"] --> T["1.0"]
    U["N/C"] --> V["1.1"]
    W["SHOALT [1:0"] (ADCTRGMODE["17:16"]) ] --> X["VREFSEL[2:0"]]
    Y["AVDD"] --> Z["ADC1"]
    AA["AVss"] --> AB["ADC2"]
    AC["TAD1"] --> AD["ADCDIV [6:0"] (ADC0TIME)]
    AE["TAD2"] --> AF["ADCDIV [6:0"] (ADCCON2["6:0"]) ]
    AG["PB2_CLK"] --> AH["00 01 10 11"]
    AI["FRCCLOCK"] --> AJ["CONCLKDIV [5:0"]]
    AK["REFCLK3"] --> AL["TCLK"]
    AM["SYS_CLK"] --> AN["TQ"]
    AO["TCLK"] --> AP["TAD1"]
    AQ["ADCSEL [1:0"]] --> AR["ADC2"]
    AS["ADC0TIME"] --> AT["CVD Capacitor"]
    AU["ADC1"] --> AV["ADC2"]
    AW["ADC2"] --> AX["CVD Capacitor"]
    AY["DIFF0 [1"] (ADCIMCON1["1"]) ] --> AZ["AN1"]
    BA["AN14"] --> BB["AN15"]
    BC["AN1"] --> BD["AN14"]
    BE["AN15"] --> BF["AN15"]
    BG["DIFFx [1"] x=1 to 19 (ADCIMCONy["z"]) y=1 to 2, z=3 to 31 (Odd numbers)] --> BH["CVD Capacitor"]
    BI["DICOLI [ADC0"] --> BJ["Digital Filter"]
    BK["DICOLI [ADC1"] --> BL["Digital Comparator"]
    BM["DICOLI [ADC2"] --> BN["Duplexing Capacitive Voltage Divider (CVD)"]
    BO["DICOLI [ADC3"] --> BP["Status and Control Registers"]
    BQ["DIFLO"] --> BR["FIFO"]
    BS["FIFO"] --> BT["System BUS"]
    BU["FIFO"] --> BV["FIFO"]
    BW["FIFO"] --> BX["FIFO"]
    BY["FIFO"] --> BZ["FIFO"]

FIGURE 29-2: S&H BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - EQUATION 29-1: ADC THROUGHPUT RATE - 2

flowchart
graph TD
    A["AN0"] --> B["00"]
    C["ANA0"] --> D["01"]
    E["ANB0"] --> F["10"]
    G["N/C"] --> H["11"]
    I["SHOALT[1:0"](ADCTRGMODE["1 7 : 1 6"])] --> J["SAR"]
    K["ANN0"] --> L["0"]
    M["DIFF0[1"](ADCIMCON1["1"])] --> L
    B --> J
    D --> J
    F --> J
    H --> J
    J --> S["ADC1"]

Microchip PIC32MZ1025W104132 - EQUATION 29-1: ADC THROUGHPUT RATE - 3

flowchart
graph TD
    A["ANN1"] --> B["0"]
    B --> C["CVD Capacitor"]
    C --> D["SAR"]
    D --> E["ADC2"]
    F["IVREF (AN20)"] --> G["AND"]
    H["IVTEMP (AN21)"] --> I["AND"]
    J["CVDCPL 2:0 (ADCCON2 28:26)"] --> K["AND"]
    L["CVDEN (ADCCON1 1 1)"] --> M["AND"]
    N["DIFFx 1"] --> O["AND"]
    P["AN1"] --> Q["AND"]
    R["AN2"] --> S["AND"]
    T["AN14"] --> U["AND"]
    V["AN15"] --> W["AND"]
    X["Ground"] --> Y["SAR"]

FIGURE 29-3: FIFO BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - EQUATION 29-1: ADC THROUGHPUT RATE - 4

flowchart
graph TD
    A["ADC1"] --> B["ADC0EN (ADCFSTAT<24>)"]
    B --> C["FIFO (16 Words)"]
    C --> D["Converted Data"]
    D --> E["ADCx ID"]
    E --> F["ADCID<2:0> (ADCFSTAT<2:0>)"]
    F --> G["ADCx ID"]
    D --> H["ADCFIFO"]
    H --> I["DATA<31:0>"]
    D --> J["If data available in FIFO"]
    J --> K["FRDY (ADCFSTAT<22>)"]
    J --> L["FIEN (ADCFSTAT<23>)"]
    L --> M["Interrupt"]
    J --> N["FCNT<7:0> (ADCFSTAT<15:8>) Number of data in FIFO"]
    D --> O["FEN (ADCFSTAT<31>)"]

29.2 ADC Control Registers

TABLE 29-1: ADC REGISTER MAP

Virtual Address(1F82_F)Register NameBit RangeBitsAll Resets
31/15 30/14 29/13 28/112 27/11 26/1025/9 24/8 237 22/6 21/520/4 19/3 18/217/1 16/0
1000ADCCON131:16FRACTSELRES[1:0]STRGSRC[4:0]10:00
15:0ONSIDLCVDENFSYDMAFSYUPBSCANENIRQVS[2:0]STROVLDMABL[2:0]10:00
1010ADCCON231:16BGVRRDYREFFLTEOSRDYCVDCL[2:0]SAMC[9:0]10:00
15:0BGVRIENREFLTIENEOSIENENXCN-VRTADCDIV[6:0]10:00
1020ADCCON331:16ADCSEL[1:0]CONCLKDIV[5:0]DIGEN7DIGENO10:00
15:0VREFSEL[2:0]TRGSUSPUPDIENUPDRDYSAMPRQCNVRTGLSWTRGGSWTRGADINSEL[5:0]10:00
1030ADCTRGMODE31:16SH0ALT[1:0]10:00
15:0STRGEN1SSAMPENU10:00
1040ADCIMCON131:16DIFF15SIGN15DIFF14SIGN14DIFF13SIGN13DIFF12SIGN12DIFF11SIGN11DIFF10SIGN10DIFF9SIGN9DIFF8SIGN810:00
15:0DIFF7SIGN7DIFF5SIGN5DIFF5SIGN5DIFF4SIGN4DIFF3SIGN3DIFF2SIGN2DIFF1SIGN1DIFF0SIGN010:00
1050ADCIMCON231:1610:00
15:0DIFF19SIGN19DIFF18SIGN18DIFF17SIGN17DIFF16SIGN1610:00
1080ADCGIRGEN131:16AGIEN19AGIEN18AGIEN17AGIEN1610:00
15:0AGIEN15AGIEN14AGIEN13AGIEN12AGIEN11AGIEN10AGIEN9AGIEN8AGIEN7AGIEN6AGIEN5AGIEN4AGIEN3AGIEN2AGIEN1AGIEN010:00
10A0ADCCSS131:16CSS19CSS18CSS17CSS1610:00
15:0CSS15CSS14CSS13CSS12CSS11CSS10CSS9CSS8CSS7CSS6CSS5CSS4CSS3CSS2CSS1CSS010:00
10C0ADCDSTAT131:16ARDY19ARDY18ARDY17ARDY1610:00
15:0ARDY15ARDY14ARDY13ARDY12ARDY11ARDY10ARDY9ARDY8ARDY7ARDY6ARDY5ARDY4ARDY3ARDY2ARDY1ARDY010:00
10E0ADCCMPEN131:16CMPE19CMPE18CMPE17CMPE1610:00
15:0CMPE15CMPE14CMPE13CMPE12CMPE11CMPE10CMPE9CMPE8CMPE7CMPE5CMPE5CMPE4CMPE3CMPE2CMPE1CMPE010:00
10F0ADCCMP131:16DCMPHI[15:0]10:00
15:0DCMPLO[15:0]10:00
1100ADCCMPEN231:16CMPE19CMPE18CMPE17CMPE1610:00
15:0CMPE15CMPE14CMPE13CMPE12CMPE11CMPE10CMPE8CMPE8CMPE7CMPE5CMPE5CMPE4CMPE3CMPE2CMPE1CMPE010:00
1110ADCCMP231:16DCMPHI[15:0]10:00
15:0DCMPLO[15:0]10:00
11A0ADCFLTR131:16AFENDATA16ENDFMODEOVRSAM[2:0]AFGIENAFRDYCHNLID[4:0]10:00
15:0FLTRDATA[15:0]10:00
11B0ADCFLTR231:16AFENDATA16ENDFMODEOVRSAM[2:0]AFGIENAFRDYCHNLID[4:0]10:00
15:0FLTRDATA[15:0]20:00
1200ADCTRG131:16TRGSRC3[4:0]TRGSRC2[4:0]10:00
15:0TRGSRC1[4:0]TRGSRC0[4:0]10:00
1210ADCTRG231:16TRGSRC7[4:0]TRGSRC6[4:0]10:00
15:0TRGSRC5[4:0]TRGSRC4[4:0]10:00
1280ADCCMPCON131:16CVDDATA[15:0]10:00
15:0AIND[5:0]ENDCMPDCMPGIENDCMPEDIEBTWNIEHIHIIEHILOIELOHIIELOLO10:00
Virtual Address (1R2_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
1290ADCCMPCON231:16— — — —— — — —— — — —— 2000
15:0AINID[4:0]ENDCMPDCMPGIENDCMPEDIEBTWNIEHIHIIEHILOIELOHIIELOLO0000
12E0ADCFSTAT31:16FENADC0ENFIENFRDYFWROVERR0000
15:0FCNT[7:0]FSIGNADCID[2:0]0000
12F0ADCFIFO31:16DATA[31:16]0000
15:0DATA[15:0]0000
1300ADCBASE31:16— — — —— — — —— 2000
15:0ADCBASE[15:0]0000
1310ADCDMAST31:16DMAENRBFOIENWROVRERRRBF00000
15:0DMACNTENRAFOIENRAFO0000
1320ADCCNTB31:16ADCCNTB[31:16]0000
15:0ADCCNTB[15:0]0000
1330ADCDMA831:16ADDMAB[31:16]0000
15:0ADDMAB[15:0]0000
1340ADCTRGSNS31:16— — — —— — — —— 2000
15:0LVL7LVL6LVL5LVL4LVL3LVL2LVL1LVL00000
1350ADCOTIME31:16SELRES[1:0]BCHEN0ADCDIV[6:0]0000
15:00000
1400ADCANCON31:16WKUPCLKCNT[3:0]WKIEN7WKIEN00000
15:0WKRDY7WKRDYOANEN7ANENO0000
1700ADCSYSCFG031:16AN19AN16AN17AN160000
15:0AN15AN14AN13AN12AN11AN10AN9AN8AN7AN6AN5AN4AN3AN2AN1AN00000
1A00ADCDATA031:16DATA[31:16]0000
15:0DATA[15:0]0000
1A10ADCDATA131:16DATA[31:16]0000
15:0DATA[15:0]0000
1A20ADCDATA231:16DATA[31:16]0000
15:0DATA[15:0]0000
1A30ADCDATA331:16DATA[31:16]0000
15:0DATA[15:0]0000
1A40ADCDATA431:16DATA[31:16]0000
15:0DATA[15:0]0000
1A50ADCDATA531:16DATA[31:16]0000
15:0DATA[15:0]0000
1A60ADCDATA631:16DATA[31:16]0000
15:0DATA[15:0]0000
1A70ADCDATA731:16DATA[31:16]0000
15:0DATA[15:0]0000
Virtual Address (IF82_F)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
1A80ADCDATA831:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1A90ADCDATA931:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1AA0ADCDATA1031:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1AB0ADCDATA1131:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1AC0ADCDATA1231:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1AD0ADCDATA1331:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1AE0ADCDATA1431:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1AF0ADCDATA1531:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1B00ADCDATA1631:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1B10ADCDATA1731:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1B20ADCDATA1831:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1B30ADCDATA1931:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1B40ADCDATA2031:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1B50ADCDATA2131:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1B60ADCDATA2231:16DATA[31:16] 0003
15:0DATA[15:0] 0000
1B70ADCDATA2331:16DATA[31:16] 0003
15:0DATA[15:0] 0000

Note 1: All registers in this table (with the exception of ADCDATAx) have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively.

REGISTER 29-1: ADCCON1: ADC CONTROL REGISTER 1

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16R/W-0R/W-1R/W-1R/W-0R/W-0R/W-0R/W-0R/W-0
FRACTSELRES[1:0]STRGSRC[4:0]
15:8R/W-0U-0R/W-0U-0R/W-0R/W-0R/W-0R/W-0
ONSIDLCVDENFSYDMAFSYUPBSCANEN
7:0U-0R/W-0R/W-0R/W-0R/W-0U-0U-0
IRQVS[2:0]STRGLVLDMABL[2:0]
Legend:HS = Hardware SetHC = Hardware Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-24 Unimplemented: Read as '0'

bit 23 FRACT: Fractional Data Output Format bit

1 = Fractional

0 = Integer

bit 22-21 SELRES[1:0]: Shared ADC (ADC2) Resolution bits

11 = 12 bits (default)

10 = 10 bits

01 = 8 bits

00 = 6 bits

Note: Changing the resolution of the ADC does not shift the result in the corresponding ADCDATAx register. The result will still occupy 12 bits, with the corresponding lower unused bits set to '0'. For example, a resolution of 6 bits will result in ADCDATAx[5:0] being set to '0', and ADCDATAx[11:6] holding the result.

bit 20-16 STRGSRC[4:0]: Scan Trigger Source Select bits

11111 = Reserved

.

01101 = Reserved

01100 = Comparator 2 (COUT)

01011 = Comparator 1 (COUT)

01010 = OCMP5

01001 = OCMP3

01000 = OCMP1

00111 = TMR5 match

00110 = TMR3 match

00101 = TMR1 match

00100 = INTO External interrupt

00011 = Reserved

00010 = Global level software trigger (GLSWTRG)

00001 = Global software edge trigger (GSWTRG)

00000 = No Trigger

Note 1: The STRGSRC[4:0] bits trigger source repetition rate must be greater than (sample + conversion) the sum of all ANx inputs defined in the ADCCSS1 registers. Otherwise, there is a chance that the scan list conversions defined in the ADCCSS1 register will restart without finishing the current scan list and do not generate an EOSRDY bit (ADCCON2[29]) end of scan interrupt status if a new trigger event from the STRGSRC[4:0] bits (ADCCON1[20:16]) trigger source occurs before the scan list completion on the shared ADC2 core.

REGISTER 29-1: ADCCON1: ADC CONTROL REGISTER 1 (CONTINUED)

bit 15 ON: ADC Module Enable bit

1 = ADC module is enabled

0 = ADC module is disabled

Note: The ON bit must be set only after the ADC module is configured.

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Mode bit

1 = Discontinue module operation when device enters Idle mode

0 = Continue module operation in Idle mode

bit 12 Unimplemented: Read as '0'

bit 11 CVDEN: Capacitive Voltage Division Enable bit

1 = CVD operation is enabled

0 = CVD operation is disabled

bit 10 FSYDMA: Fast Synchronous DMA System Clock bit

1 = Fast synchronous DMA system clock is enabled

0 = Fast synchronous DMA system clock is disabled

bit 9 FSYUPB: Fast Synchronous UPB Clock bit

1 = Fast synchronous UPB clock is enabled

0 = Fast synchronous UPB clock is disabled

bit 8-7 Unimplemented: Read as '0'

bit 6-4 IRQVS[2:0]: Interrupt Vector Shift bits

To determine interrupt vector address, this bit specifies the amount of left shift done to the ARDYx status bits in the ADCDSTAT1 and ADCDSTAT2 registers, prior to adding with the ADCBASE register.

Interrupt Vector Address = Read Value of ADCBASE and Read Value of ADCBASE = Value written to ADCBASE + x << IRQVS[2:0], where 'x' is the smallest active input ID from the ADCDSTAT1 or ADCDSTAT2 registers (which has highest priority).

111 = Shift x left 7 bit position

110 = Shift x left 6 bit position

101 = Shift x left 5 bit position

100 = Shift x left 4 bit position

011 = Shift x left 3 bit position

010 = Shift x left 2 bit position

001 = Shift x left 1 bit position

000 = Shift x left 0 bit position

bit 3 STRGLVL: Scan Trigger High Level/Positive Edge Sensitivity bit

1 = Scan trigger is high level sensitive. Once STRIG mode is selected (TRGSRCx[4:0] in the ADCTRGx register), the scan trigger will continue for all selected analog inputs, until the STRIG option is removed.

0 = Scan trigger is positive edge sensitive. Once STRIG mode is selected (TRGSRCx[4:0] in the ADCTRGx register), only a single scan trigger will be generated, which will complete the scan of all selected analog inputs.

bit 2-0 DMABL[2:0]: DMA to System RAM Buffer Length Size

Defines the number of locations in system memory allocated per analog input for DMA interface use.

As each output data is 16-bit wide, one location consists of 2 bytes. Therefore the actual size reserved in the system RAM follows the formula:

RAM Buffer Length in bytes = 2(DMABL+1)

REGISTER 29-2: ADCCON2: ADC CONTROL REGISTER 2

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R-0, HS, HCR-0, HS, HC R-0,HS, HC R/W-0R/W-0 R/W-0R/W-0 R/W-0
BGVRRDY REFFLT EOSRDYCVDCPL[2:0]SAMC[9:8]
23:16R/W-0 R/W-0R/W-0R/W-0R/W-0 R/W-0R/W-0 R/W-0
SAMC[7:0]
15:8R/W-0R/W-0R/W-0U-0R/W-0U-0U-0U-0
BGVRIENREFFLTIENEOSIENENXCNVRT
7:0U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
ADCDIV[6:0]
Legend:HS = Hardware SetHC = Hardware Clearedr = Reserved
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 BGVRRDY: Band Gap Voltage/ADC Reference Voltage Status bit

1 = Both band gap voltage and ADC reference voltages (VREF) are ready

0 = Either or both band gap voltage and ADC reference voltages (VREF) are not ready

Data processing is valid only after BGVRRDY is set by hardware, so the application code must check that the BGVRRDY bit is set to ensure data validity. This bit set to '0' when ON (ADCCON1[15]) = 0.

bit 30 REFFLT: Band Gap/VREF/AVDD BOR Fault Status bit

1 = Fault in band gap or the VREF voltage while the ON bit (ADCCON1[15]) was set. Most likely a band gap or VREF fault will be caused by a BOR of the analog VDD supply.

0 = Band gap and VREF voltage are working properly

This bit is cleared when the ON bit (ADCCON1[15]) = 0 and the BGVRRDY bit = 1.

bit 29 EOSRDY: End of Scan Interrupt Status bit

1 = All analog inputs considered for scanning through the scan trigger (all analog inputs specified in the ADCCSS1 register) completed scanning

0 = Scanning has not completed

This bit is cleared when ADCCON2[31:24] are read in software.

bit 28-26 CVDCPL[2:0]: Capacitor Voltage Divider (CVD) Setting bits

111 = 7 * 2.5 pF = 17.5 pF

110 = 6 * 2.5 pF = 15 pF

101 = 5 * 2.5 pF = 12.5 pF

100 = 4 * 2.5 pF = 10 pF

011 = 3 * 2.5 pF = 7.5 pF

010 = 2 * 2.5 pF = 5 pF

001 = 1 * 2.5 pF = 2.5 pF

000 = 0 * 2.5 pF = 0 pF

bit 25-16 SAMC[9:0]: Sample Time for the Shared ADC (ADC2) bits

1111111111 = 1025 TAD7

0000000001 = 3 TAD7

0000000000 = 2 TAD7

Where TAD7 = period of the ADC conversion clock for the Shared ADC (ADC2) controlled by the ADCDIV[6:0] bits.

bit 15 BGVRIEN: Band Gap/VREF Voltage Ready Interrupt Enable bit

1 = Interrupt will be generated when the BGVRDDY bit is set

0 = No interrupt is generated when the BGVRRDY bit is set

REGISTER 29-2: ADCCON2: ADC CONTROL REGISTER 2 (CONTINUED)

bit 14 REFFLTEN: Band Gap/VREF Voltage Fault Interrupt Enable bit

1 = Interrupt will be generated when the REFFLT bit is set

0 = No interrupt is generated when the REFFLT bit is set

bit 13 EOSIEN: End of Scan Interrupt Enable bit

1 = Interrupt will be generated when EOSRDY bit is set

0 = No interrupt is generated when the EOSRDY bit is set

bit 12 Unimplemented: Read as '0'

bit 11 ENXCNVRT: Enable External Conversion Request Interface

Setting this bit will enable another module (such as the PTG) to specify and request conversion of an ADC input.

Note: The external module (such as the PTG) is responsible for asserted only the proper trigger signals. This ADC module has no method to block specific trigger requests from the external module.

bit 10-7 Unimplemented: Read as '0'

bit 6-0 ADCDIV[6:0]: Division Ratio for the Shared SAR ADC Core Clock bits

1111111 = 254 * TQ = TAD2

0000011 = 6 * TQ = TAD2

0000010 = 4 * TQ = TAD2

0000001 = 2 * TQ = TAD2

0000000 = Reserved

The ADCDIV[6:0] bits divide the ADC control clock ( T_Q ) to generate the clock for the shared SAR ADC.

REGISTER 29-3: ADCCON3: ADC CONTROL REGISTER 3

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0
ADCSEL[1:0] CONCLKDIV[5:0]
23:16R/W-0 U-0U-0 U-0 U-0U-0 U-0 R/W-0
DIGEN7DIGEN0
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R-0, HS, HCR/W-0R-0, HS, HC
VREFSEL[2:0]TRGSUSPUPDIENUPDRDYSAMP(1,2,3,4)RQCNVRT
7:0R/W-0R/W-0, HCR/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
GLSWTRGGSWTRGADINSEL[5:0]
Legend:HS = Hardware SetHC = Hardware Cleared r = Reserved
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-30 ADCSEL[1:0]: Analog-to-Digital Clock Source ( T_CLK ) bits

00 = Peripheral Bus Clock

01 = FRC Clock

10 = REFO3 Clock Output

11 = System Clock (SYS_CLK)

bit 29-24 CONCLKDIV[5:0]: Analog-to-Digital Control Clock ( T_Q ) Divider bits

111111 = 64 * TCLK = TQ

000011 = 4 * TCLK = TQ

000010 = 3 * TCLK = TQ

000001 = 2 * TCLK = TQ

000000 = TCLK = TQ

bit 23 DIGEN7: Shared ADC (ADC2) Digital Enable bit

1 = ADC2 is digital enabled

0 = ADC2 is digital disabled

bit 22-17 Unimplemented: Read as '0'

bit 16 DIGEN0: ADC1 Digital Enable bit

1 = ADC1 is digital enabled

0 = ADC1 is digital disabled

bit 15-13 VREFSEL[2:0]: Voltage Reference (VREF) Input Selection bits

VREFSEL[2:0]ADREF+ADREF-
000AVDDAVss
001-111RESERVED FOR FUTURE USE

bit 12 TRGSUSP: Trigger Suspend bit

1 = Triggers are blocked from starting a new analog-to-digital conversion, but the ADC module is not disabled

0 = Triggers are not blocked

bit 11 UPDIEN: Update Ready Interrupt Enable bit

1 = Interrupt will be generated when the UPDRDY bit is set by hardware

0 = No interrupt is generated

bit 10 UPDRDY: ADC Update Ready Status bit

1 = ADC SFRs can be updated

0 = ADC SFRs cannot be updated

Note: This bit is only active while the TRGSUSP bit is set and there are no more running conversions of any ADC modules.

REGISTER 29-3: ADCCON3: ADC CONTROL REGISTER 3 (CONTINUED)

bit 9 SAMP: Class 2 and Class 3 Analog Input Sampling Enable bit ^(1,2,3,4)

1 = ADC S&H amplifier is sampling
0 = ADC S&H amplifier is holding

Note 1: The SAMP bit has the highest priority and setting this bit will keep the S&H circuit in Sample mode until the bit is cleared. Also, usage of the SAMP bit will cause settings of SAMC[9:0] bits (ADCCON2[25:16]) to be ignored.

2: The SAMP bit only connects Class 2 and Class 3 analog inputs to the shared ADC. All Class 1 analog inputs are not affected by the SAMP bit.
3: The SAMP bit is not a self-clearing bit and it is the responsibility of application software to first clear this bit and only after setting the RQCNVRT bit to start the analog-to-digital conversion.
4: Normally, when the SAMP and RQCNVRT bits are used by software routines, all TRGSRCx[4:0] bits and STRGSRC[4:0] bits must be set to '00000' to disable all external hardware triggers and prevent them from interfering with the software-controlled sampling command signal SAMP and with the software-controlled trigger RQCNVRT.

bit 8 RQCNVRT: Individual ADC Input Conversion Request bit

This bit and its associated ADINSEL[5:0] bits enable the user to individually request an analog-to-digital conversion of an analog input through software.

1 = Trigger the conversion of the selected ADC input as specified by the ADINSEL[5:0] bits
0 = Do not trigger the conversion

Note: This bit is automatically cleared in the next ADC clock cycle.

bit 7 GLSWTRG: Global Level Software Trigger bit

1 = Trigger conversion for ADC inputs that have selected the GLSWTRG bit as the trigger signal, either through the associated TRGSRC[4:0] bits in the ADCTRGx registers or through the STRGSRC[4:0] bits in the ADCCON1 register
0 = Do not trigger an analog-to-digital conversion

bit 6 GSWTRG: Global Software Trigger bit

1 = Trigger conversion for ADC inputs that have selected the GSWTRG bit as the trigger signal, either through the associated TRGSRC[4:0] bits in the ADCTRGx registers or through the STRGSRC[4:0] bits in the ADCCON1 register
0 = Do not trigger an analog-to-digital conversion

Note: This bit is automatically cleared in the next ADC clock cycle.

bit 5-0 ADINSEL[5:0]: Analog Input Select bits

These bits select the analog input to be converted when the RQCNVRT bit is set. As a general rule:

111111 = Reserved

-

101101 = Reserved

101100 = MAX AN INPUT + 2 = IVTEMP

101011 = MAX AN INPUT + 1 = IVREF

101010 = MAX_AN_INPUT = AN[MAX_AN_INPUT]

000001 = AN1

000000 = AN0

REGISTER 29-4: ADCTRGMODE: ADC TRIGGERING MODE FOR DEDICATED ADC REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0R/W-0 R/W-0
—— ——— — — SH0ALT[1:0]
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 R/W-0
—— ——— — — —ST RGE N0
7:0U-0 U-0U-0 U-0 U-0 U-0U-0 R/W-0
—— ——— — — — SSAMPEN0

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is clearedx = Bit is unknown

bit 31-26 Unimplemented: Read as '0'

bit 17-16 SH0ALT[1:0]: ADC1 Analog Input Select bits

11 = Reserved
10 = Reserved
01 = AN45
00 = AN0

bit 15-9 Unimplemented: Read as '0'

bit 8 STRGEN0: ADC1 Presynchronized Triggers bit

1 = ADC1 uses presynchronized triggers
0 = ADC1 does not use presynchronized triggers

bit 7-1 Unimplemented: Read as '0'

bit 0 SSAMPENO: ADC1 Synchronous Sampling bit

1 = ADC1 uses synchronous sampling for the first sample after being idle or disabled
0 = ADC1 does not use synchronous sampling

REGISTER 29-5: ADCIMCON1: ADC INPUT MODE CONTROL REGISTER 1

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
DIFF15 SIGN15 DIFF14 SIGN14 DIFF13 SIGN13 DIFF12 SIGN12
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
DIFF11 SIGN11 DIFF10 SIGN10 DIFF9 SIGN9 DIFF8 SIGN8
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
DIFF7 SIGN7 DIFF6 SIGN6 DIFF5 SIGN5 DIFF4 SIGN4
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
DIFF3 SIGN3 DIFF2 SIGN2 DIFF1 SIGN1 DIFF0 SIGN0

Legend:

R = Readable bit W = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR '1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31 DIFF15: AN15 Mode bit

1 = AN15 is using Differential mode

0 = AN15 is using Single-ended mode

bit 30 SIGN:15 AN15 Signed Data Mode bit

1 = AN15 is using Signed Data mode

0 = AN15 is using Unsigned Data mode

bit 29 DIFF14: AN14 Mode bit

1 = AN14 is using Differential mode

0 = AN14 is using Single-ended mode

bit 28 SIGN14: AN14 Signed Data Mode bit

1 = AN14 is using Signed Data mode

0 = AN14 is using Unsigned Data mode

bit 27 DIFF13: AN13 Mode bit

1 = AN13 is using Differential mode

0 = AN13 is using Single-ended mode

bit 26 SIGN13: AN13 Signed Data Mode bit

1 = AN13 is using Signed Data mode

0 = AN13 is using Unsigned Data mode

bit 25 DIFF12: AN12 Mode bit

1 = AN12 is using Differential mode

0 = AN12 is using Single-ended mode

bit 24 SIGN12: AN12 Signed Data Mode bit

1 = AN12 is using Signed Data mode

0 = AN12 is using Unsigned Data mode

bit 23 DIFF11: AN11 Mode bit

1 = AN11 is using Differential mode

0 = AN11 is using Single-ended mode

bit 22 SIGN11: AN11 Signed Data Mode bit

1 = AN11 is using Signed Data mode

0 = AN11 is using Unsigned Data mode

bit 21 DIFF10: AN10 Mode bit

1 = AN10 is using Differential mode

0 = AN10 is using Single-ended mode

REGISTER 29-5: ADCIMCON1: ADC INPUT MODE CONTROL REGISTER 1 (CONTINUED)

bit 20 SIGN10: AN10 Signed Data Mode bit

1 = AN10 is using Signed Data mode

0 = AN10 is using Unsigned Data mode

bit 19 DIFF9: AN9 Mode bit

1 = AN9 is using Differential mode

0 = AN9 is using Single-ended mode

bit 18 SIGN9: AN9 Signed Data Mode bit

1 = AN9 is using Signed Data mode

0 = AN9 is using Unsigned Data mode

bit 17 DIFF8: AN 8 Mode bit

1 = AN8 is using Differential mode

0 = AN8 is using Single-ended mode

bit 16 SIGN8: AN8 Signed Data Mode bit

1 = AN8 is using Signed Data mode

0 = AN8 is using Unsigned Data mode

bit 15 DIFF7: AN7 Mode bit

1 = AN7 is using Differential mode

0 = AN7 is using Single-ended mode

bit 14 SIGN7: AN7 Signed Data Mode bit

1 = AN7 is using Signed Data mode

0 = AN7 is using Unsigned Data mode

bit 13 DIFF6: AN6 Mode bit

1 = AN6 is using Differential mode

0 = AN6 is using Single-ended mode

bit 12 SIGN6: AN6 Signed Data Mode bit

1 = AN6 is using Signed Data mode

0 = AN6 is using Unsigned Data mode

bit 11 DIFF5: AN5 Mode bit

1 = AN5 is using Differential mode

0 = AN5 is using Single-ended mode

bit 10 SIGN5: AN5 Signed Data Mode bit

1 = AN5 is using Signed Data mode

0 = AN5 is using Unsigned Data mode

bit 9 DIFF4: AN4 Mode bit

1 = AN4 is using Differential mode

0 = AN4 is using Single-ended mode

bit 8 SIGN4: AN4 Signed Data Mode bit

1 = AN4 is using Signed Data mode

0 = AN4 is using Unsigned Data mode

bit 7 DIFF3: AN3 Mode bit

1 = AN3 is using Differential mode

0 = AN3 is using Single-ended mode

bit 6 SIGN3: AN3 Signed Data Mode bit

1 = AN3 is using Signed Data mode

0 = AN3 is using Unsigned Data mode

bit 5 DIFF2: AN2 Mode bit

1 = AN2 is using Differential mode

0 = AN2 is using Single-ended mode

REGISTER 29-5: ADCIMCON1: ADC INPUT MODE CONTROL REGISTER 1 (CONTINUED)

bit 4 SIGN2: AN2 Signed Data Mode bit

1 = AN2 is using Signed Data mode
0 = AN2 is using Unsigned Data mode

bit 3 DIFF1: AN1 Mode bit

1 = AN1 is using Differential mode
0 = AN1 is using Single-ended mode

bit 2 SIGN1: AN1 Signed Data Mode bit

1 = AN1 is using Signed Data mode
0 = AN1 is using Unsigned Data mode

bit 1 DIFF0: AN0 Mode bit

1 = AN0 is using Differential mode
0 = AN0 is using Single-ended mode

bit 0 SIGN0: AN0 Signed Data Mode bit

1 = AN0 is using Signed Data mode
0 = AN0 is using Unsigned Data mode

REGISTER 29-6: ADCIMCON2: ADC INPUT MODE CONTROL REGISTER 2

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
7:0R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0
DIFF19SIGN19DIFF18SIGN18DIFF17SIGN17DIFF16SIGN16

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-8 Unimplemented: Read as '0'

bit 7 DIFF19: AN19 Mode bit

1 = AN19 is using Differential mode

0 = AN19 is using Single-ended mode

bit 6 SIGN19: AN19 Signed Data Mode bit

1 = AN19 is using Signed Data mode

0 = AN19 is using Unsigned Data mode

bit 5 DIFF18: AN18 Mode bit

1 = AN18 is using Differential mode

0 = AN18 is using Single-ended mode

bit 4 SIGN18: AN18 Signed Data Mode bit

1 = AN18 is using Signed Data mode

0 = AN18 is using Unsigned Data mode

bit 3 DIFF17: AN17 Mode bit

1 = AN17 is using Differential mode

0 = AN17 is using Single-ended mode

bit 2 SIGN17: AN17 Signed Data Mode bit

1 = AN17 is using Signed Data mode

0 = AN17 is using Unsigned Data mode

bit 1 DIFF16: AN16 Mode bit

1 = AN16 is using Differential mode

0 = AN16 is using Single-ended mode

bit 0 SIGN16: AN16 Signed Data Mode bit

1 = AN16 is using Signed Data mode

0 = AN16 is using Unsigned Data mode

REGISTER 29-7: ADCGIRQEN1: ADC GLOBAL INTERRUPT ENABLE REGISTER 1

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— AGIEN19AGIEN18 AGIEN17AGIEN16
15:8R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
AGIEN15AGIEN14 AGIEN13AGIEN12 AGIEN11AGIEN10AGIEN9 AGIEN8
7:0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
AGIEN7AGIEN6 AGIEN5AGIEN4 AGIEN3AGIEN2 AGIEN1AGIEN0

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 AGIEN[19:0]: ADC Global Interrupt Enable bits

1 = Interrupts are enabled for the selected analog input. The interrupt is generated after the converted data is ready (indicated by the ARDYx bit ('x' = 31-0) of the ADCDSTAT1 register)

0 = Interrupts are disabled

REGISTER 29-8: ADCCSS1: ADC COMMON SCAN SELECT REGISTER 1

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 R/W-0R/W-0 R/W-0R/W-0
— — —— CSS19(1)CSS18CSS17CSS16
15:8R/W-0 R/W-0R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
CSS15CSS14CSS13CSS12CSS11CSS10CSS9CSS8
7:0R/W-0 R/W-0R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
CSS7CSS6CSS5CSS4CSS3CSS2CSS1CSS0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-20 Unimplemented: Read as '0'

bit 19-0 CSS[19:0]: Analog Common Scan Select bits ^(1,2)

1 = Select ANx for input scan

0 = Skip ANx for input scan

Note 1: In addition to setting the appropriate bits in this register, Class 1 and Class 2 analog inputs must select the STRIG input as the trigger source if they are to be scanned through the CSSx bits. Refer to the bit descriptions in the ADCTRGx registers for selecting the STRIG option.

2: If a Class 1 or Class 2 input is included in the scan by setting the CSSx bit to '1' and by setting the TRGS-RCx[4:0] bits to STRIG mode ('0b11), the user application must ensure that no other triggers are generated for that input using the RQCNVRT bit in the ADCCON3 register or the hardware input or any digital filter. Otherwise, the scan behavior is unpredictable.

REGISTER 29-9: ADCDSTAT1: ADC DATA READY STATUS REGISTER 1

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U
—————— —
23:16U-0 U-0U-0 U-0 R-0, HS,HC R-0, HS,HC R-0, HS, HCR-0, HS, HC
———— ARDY19 ARDY18 ARDY17ARDY16
15:8R-0, HS, HCR-0, HS, HC R-0,HS, HC R-0,S, HC R-0, HS,HC R-0, HS, HCR-0, HS, HC
ARDY15 ARRDY14 ARDY13ARDY12 ARDY11 ARDY10 ARDY9ARDY8
7:0R-0, HS, HCR-0, HS, HC R-0,HS, HC R-0,S, HC R-0, HS,HC R-0, HS, HCR-0, HS, HC
ARDY7ARDY6ARDY5ARDY4ARDY3ARDY2ARDY1ARDY0
Legend:HS = Hardware SetHC = Hardware Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-20 Unimplemented: Read as '0'

bit 19-0 ARDY[19:0]: Conversion Data Ready for Corresponding Analog Input Ready bits

1 = This bit is set when converted data is ready in the data register
0 = This bit is cleared when the associated data register is read

REGISTER 29-10: ADCCMPENx: ADC DIGITAL COMPARATOR 'x' ENABLE REGISTER ('x' = 1 OR 2)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 R/W-0R/W-0 R/W-0 R/W-0
— — —— CMPE19(1)CMPE18CMPE17CMPE16
15:8R/W-0 R/WR/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
CMPE15CMPE14CMPE13CMPE12CMPE11CMPE10CMPE9CMPE8
7:0R/W-0 R/WR/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
CMPE7CMPE6CMPE5CMPE4CMPE3CMPE2CMPE1CMPE0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-20 Unimplemented: Read as '0'

bit 31-0 CMPE[19:0]: ADC Digital Comparator 'x' Enable bits ^(1,2)

These bits enable conversion results corresponding to the analog input to be processed by the digital comparator. CMPE0 enables AN0, CMPE1 enables AN1, and so on.

Note 1: CMPEx = ANx, where 'x' = 0-19 (Digital Comparator inputs are limited to AN0 through AN19).

2: Changing the bits in this register while the Digital Comparator is enabled (ENDCMP = 1), can result in unpredictable behavior.

REGISTER 29-11: ADCCMPx: ADC DIGITAL COMPARATOR 'x' LIMIT VALUE REGISTER ('x' = 1 OR 2)

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0R/W-0 R/W-0
DCMPHI[15:8](1,2,3)
23:16R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0R/W-0 R/W-0
DCMPHI[7:0](1,2,3)
15:8R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0R/W-0 R/W-0
DCMPLO[15:8](1,2,3)
7:0R/W-0 R/WR/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
DCMPLO[7:0](1,2,3)

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 DCMPHI[15:0]: Digital Comparator 'x' High Limit Value bits ^(1,2,3)

These bits store the high limit value, which is used by digital comparator for comparisons with ADC converted data.

bit 15-0 DCMPLO[15:0]: Digital Comparator 'x' Low Limit Value bits ^(1,2,3)

These bits store the low limit value, which is used by digital comparator for comparisons with ADC converted data.

Note 1: Changing theses bits while the Digital Comparator is enabled (ENDCMP = 1) can result in unpredictable behavior.

2: The format of the limit values must match the format of the ADC converted value in terms of sign and fractional settings.

3: For Digital Comparator 0 used in CVD mode, the DCMPHI[15:0] and DCMPLO[15:0] bits must always be specified in signed format, as the CVD output data is differential and is always signed.

REGISTER 29-12: ADCFLTRx: ADC DIGITAL FILTER 'x' REGISTER ('x' = 1 OR 2)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
AFEN DATA16EN DFMODE OVRSAM[2:0] AFGIEN AFRDY
23:16U-0U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0
CHNLID[4:0]
15:8R-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HC
FLTRDATA[15:8]
7:0R-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HCR-0, HS, HC
FLTRDATA[7:0]
Legend:HS = Hardware SetHC = Hardware Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31 AFEN: Digital Filter 'x' Enable bit

1 = Digital filter is enabled
0 = Digital filter is disabled and the AFRDY status bit is cleared

bit 30 DATA16EN: Filter Significant Data Length bit

1 = All 16 bits of the filter output data are significant
0 = Only the first 12 bits are significant, followed by four zeros

Note: This bit is significant only if DFMODE = 1 (Averaging mode) and FRACT (ADCCON1[23]) = 1 (Fractional Output mode).

bit DFMODE: ADC Filter Mode bit

1 = Filter 'x' works in Averaging mode
0 = Filter 'x' works in Oversampling Filter mode (default)

bit 28-26 OVRSAM[2:0]: Oversampling Filter Ratio bits

If DFMODE is '0':

111 = 128 samples (shift sum 3 bits to right, output data is in 15.1 format)
110 = 32 samples (shift sum 2 bits to right, output data is in 14.1 format)
101 = 8 samples (shift sum 1 bit to right, output data is in 13.1 format)
100 = 2 samples (shift sum 0 bits to right, output data is in 12.1 format)
011 = 256 samples (shift sum 4 bits to right, output data is 16 bits)
010 = 64 samples (shift sum 3 bits to right, output data is 15 bits)
001 = 16 samples (shift sum 2 bits to right, output data is 14 bits)
000 = 4 samples (shift sum 1 bit to right, output data is 13 bits)

If DFMODE is '1':

111 = 256 samples (256 samples to be averaged)
110 = 128 samples (128 samples to be averaged)
101 = 64 samples (64 samples to be averaged)
100 = 32 samples (32 samples to be averaged)
011 = 16 samples (16 samples to be averaged)
010 = 8 samples (8 samples to be averaged)
001 = 4 samples (4 samples to be averaged)
000 = 2 samples (2 samples to be averaged)

bit 25 AFGIEN: Digital Filter 'x' Interrupt Enable bit

1 = Digital filter interrupt is enabled and is generated by the AFRDY status bit
0 = Digital filter is disabled

REGISTER 29-12: ADCFLTRx: ADC DIGITAL FILTER 'x' REGISTER ('x' = 1 OR 2) (CONTINUED)

bit 24 AFRDY: Digital Filter 'x' Data Ready Status bit

1 = Data is ready in the FLTRDATA[15:0] bits

0 = Data is not ready

Note: This bit is cleared by reading the FLTRDATA[15:0] bits or by disabling the Digital Filter module (by setting AFEN to '0').

bit 23-21 Unimplemented: Read as '0'

bit 20-16 CHNLID[4:0]: Digital Filter Analog Input Selection bits

These bits specify the analog input to be used as the oversampling filter data source.

11111 = Reserved
.
.
01100 = Reserved
01011 = AN11
.
.
00010 = AN2
00001 = AN1
00000 = AN0 

Note: Only the first 12 analog inputs, Class 1 (AN0-AN11) and Class 2 (AN5-AN11), can use a digital filter.

bit 15-0 FLTRDATA[15:0]: Digital Filter 'x' Data Output Value bits

The filter output data is as per the fractional format set in the FRACT bit (ADCCON1[23]). The FRACT bit must not be changed while the filter is enabled. Changing the state of the FRACT bit after the operation of the filter ended will not update the value of the FLTRDATA[15:0] bits to reflect the new format.

REGISTER 29-13: ADCTRG1: ADC TRIGGER SOURCE 1 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —TRGSRC3[4:0]
23:16U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —TRGSRC2[4:0]
15:8U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —TRGSRC1[4:0]
7:0U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —TRGSRC0[4:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-29 Unimplemented: Read as '0'

bit 28-24 TRGSRC3[4:0]: Trigger Source for Conversion of Analog Input AN3 Select bits

11111 = Reserved

01101 = Reserved

01100 = Comparator 2 (COUT)

01011 = Comparator 1 (COUT)

01010 = OCMP5

01001 = OCMP3

01000 = OCMP1

00111 = TMR5 match

00110 = TMR3 match

00101 = TMR1 match

00100 = INTO External interrupt

00011 = STRIG

00010 = Global level software trigger (GLSWTRG)

00001 = Global software edge Trigger (GSWTRG)

00000 = No Trigger

For STRIG, in addition to setting the trigger, it also requires programming of the STRGSRC[4:0] bits (ADCCON1[20:16]) to select the trigger source, and requires the appropriate CSS bits to be set in the ADCCSSx registers.

bit 23-21 Unimplemented: Read as '0'

bit 20-16 TRGSRC2[4:0]: Trigger Source for Conversion of Analog Input AN2 Select bits See bits 28-24 for bit value definitions.

bit 15-13 Unimplemented: Read as '0'

bit 12-8 TRGSRC1[4:0]: Trigger Source for Conversion of Analog Input AN1 Select bits See bits 28-24 for bit value definitions.

bit 7-5 Unimplemented: Read as '0'

bit 4-0 TRGSRC0[4:0]: Trigger Source for Conversion of Analog Input AN0 Select bits See bits 28-24 for bit value definitions.

REGISTER 29-14: ADCTRG2: ADC TRIGGER SOURCE 2 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —TRGSRC7[4:0]
23:16U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —TRGSRC6[4:0]
15:8U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —TRGSRC5[4:0]
7:0U-0 U-0U-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0
— — —TRGSRC4[4:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-29 Unimplemented: Read as '0'

bit 28-24 TRGSRC7[4:0]: Trigger Source for Conversion of Analog Input AN7 Select bits

11111 = Reserved

01101 = Reserved

01100 = Comparator 2 (COUT)

01011 = Comparator 1 (COUT)

01010 = OCMP5

01001 = OCMP3

01000 = OCMP1

00111 = TMR5 match

00110 = TMR3 match

00101 = TMR1 match

00100 = INTO External interrupt

00011 = STRIG

00010 = Global level software trigger (GLSWTRG)

00001 = Global software edge Trigger (GSWTRG)

00000 = No Trigger

For STRIG, in addition to setting the trigger, it also requires programming of the STRGSRC[4:0] bits (ADCCON1[20:16]) to select the trigger source, and requires the appropriate CSS bits to be set in the ADCCSSx registers.

bit 23-21 Unimplemented: Read as '0'

bit 20-16 TRGSRC6[4:0]: Trigger Source for Conversion of Analog Input AN6 Select bits See bits 28-24 for bit value definitions.

bit 15-13 Unimplemented: Read as '0'

bit 12-8 TRGSRC5[4:0]: Trigger Source for Conversion of Analog Input AN5 Select bits See bits 28-24 for bit value definitions.

bit 7-5 Unimplemented: Read as '0'

bit 4-0 TRGSRC4[4:0]: Trigger Source for Conversion of Analog Input AN4 Select bits See bits 28-24 for bit value definitions.

REGISTER 29-15: ADCCMPCON1: ADC DIGITAL COMPARATOR 1 CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0, HS, HCR-0, HS, HC R-0,HS, HC R-0,HS, HC R-0,HS, HC R-0, HS,HC R-0, HS,HC R-0, HS, HC
CVDDATA[15:8]
23:16R-0, HS, HCR-0, HS, HC R-0,HS, HC R-0,HS, HC R-0,HS, HC R-0, HS,HC R-0, HS,HC R-0, HS, HC
CVDDATA[7:0]
15:8U-0 U-0R-0, HS, HC R-0,HS, HC R-0,HS, HC R-0,HS, HC R-0, HS,HC R-0, HS,HC
— — AINID[5:0]
7:0R/W-0 R/W-0 R-0, HS, HCR/W-0 R/W-0R/W-0 R/W-0R/W-0
ENDCMPDCMPGIENDCMPEDIEBTWNIEHIHIIEHILOIELOHIIELOLO
Legend:HS = Hardware SetHC = Hardware Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-16 CVDDATA[15:0]: CVD Data Status bits

In CVD mode, these bits obtain the CVD differential output data (subtraction of CVD positive and negative measurement), whenever a digital comparator interrupt is generated. The value in these bits is compliant with the FRACT bit (ADCCON1[23]) and is always signed.

bit 15-14 Unimplemented: Read as '0'

bit 13-8 AINID[5:0]: Digital Comparator 0 Analog Input Identification (ID) bits

When a digital comparator event occurs (DCMPED = 1), these bits identify the analog input being monitored by digital comparator 0.

Note: In normal ADC mode, only analog inputs [31:0] can be processed by the digital comparator 0. The digital comparator 0 also supports the CVD mode, in which all Class 2 and Class 3 analog inputs may be stored in the AINID[5:0] bits.

111111 = Reserved
.
.
.
101101 = Reserved
101100 = AN44 is being monitored
101011 = AN43 is being monitored
.
.
.
000001 = AN1 is being monitored
000000 = AN0 is being monitored 

bit 7 ENDCMP: Digital Comparator 0 Enable bit

1 = Digital comparator 0 is enabled
0 = Digital comparator 0 is not enabled, and the DCMPED status bit (ADCCMP0CON[5]) is cleared 

bit 6 DCMPGIEN: Digital Comparator 0 Global Interrupt Enable bit

1 = A Digital comparator 0 interrupt is generated when the DCMPED status bit (ADCCMP0CON[5]) is set
0 = A Digital comparator 0 interrupt is disabled 

bit 5 DCMPED: Digital Comparator 0 "Output True" Event Status bit

The logical conditions under which the digital comparator gets "True" are defined by the IEBTWN, IEHIHI, IEHILO, IELOHI, and IELOLO bits.

Note: This bit is cleared by reading the AINID[5:0] bits or by disabling the Digital Comparator module (by setting ENDCMP to '0').

1 = Digital comparator 0 output true event has occurred (output of comparator is '1')
0 = Digital comparator 0 output is false (output of comparator is '0') 

bit 4 IEBTWN: Between Low/High Digital Comparator 0 Event bit

1 = Generate a digital comparator event when DCMPO[15:0] bits ≤ DATA[31:0] bits < DCMPHI[15:0] bits
0 = Do not generate a digital comparator event 

REGISTER 29-15: ADCCMPCON1: ADC DIGITAL COMPARATOR 1 CONTROL REGISTER (CONTINUED)

bit 3 IEHIHI: High/High Digital Comparator 0 Event bit

1 = Generate a digital comparator 0 event when DCMPHI[15:0] bits are less than or equal to DATA[31:0] bits

0 = Do not generate an event

bit 2 IEHILO: High/Low Digital Comparator 0 Event bit

1 = Generate a digital comparator 0 event when DATA[31:0] bits are less than DCMPHI[15:0] bits

0 = Do not generate an event

bit 1 IELOHI: Low/High Digital Comparator 0 Event bit

1 = Generate a digital comparator 0 event when DCMPLO[15:0] bits are less than or equal to DATA[31:0] bits

0 = Do not generate an event

bit 0 IELOLO: Low/Low Digital Comparator 0 Event bit

1 = Generate a digital comparator 0 event when DATA[31:0] bits are less than DCMPLO[15:0] bits

0 = Do not generate an event

REGISTER 29-16: ADCCMPCON2: ADC DIGITAL COMPARATOR 2 CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 R-0, HS, HCR-0, HS, HCR-0, HS, HC R-0, HS, HC R-0,HS, HC
— — —AINID[4:0]
7:0R/W-0 R/WR-0 R-0, HS, HCR/W-0 R/W-0R/W-0 R/W-0R/W-0
ENDCMPDCMPGIENDCMPEDIEBTWNIEHIHIIEHILOIELOHIIELOLO
Legend:HS = Hardware SetHC = Hardware Cleared
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-13 Unimplemented: Read as '0'

bit 12-8 AINID[4:0]: Digital Comparator 1 Analog Input Identification (ID) bits

When a digital comparator event occurs (DCMPED = 1), these bits identify the analog input being monitored by the digital comparator.

Note: Only analog inputs [31:0] can be processed by the Digital Comparator 1

11111 = Reserved

11110 = Reserved

0001 0011 = AN19 is being monitored

00001 = AN1 is being monitored

00000 = AN0 is being monitored

bit 7 ENDCMP: Digital Comparator 1 Enable bit

1 = Digital comparator 1 is enabled

0 = Digital comparator 1 is not enabled, and the DCMPED status bit (ADCCMPxCON[5]) is cleared

bit 6 DCMPGIEN: Digital Comparator 1 Global Interrupt Enable bit

1 = A Digital comparator 1 interrupt is generated when the DCMPED status bit (ADCCMPxCON[5]) is set

0 = A Digital comparator 1 interrupt is disabled

bit 5 DCMPED: Digital Comparator 1 "Output True" Event Status bit

The logical conditions under which the digital comparator gets “True” are defined by the IEBTWN, IEHIHI, IEHILO, IELOHI and IELOLO bits.

Note: This bit is cleared by reading the AINID[5:0] bits (ADCCMP0CON[13:8]) or by disabling the Digital Comparator module (by setting ENDCMP to '0').

1 = Digital comparator 1 output true event has occurred (output of comparator is '1')

0 = Digital comparator 1 output is false (output of comparator is '0')

bit 4 IEBTWN: Between Low/High Digital Comparator 1 Event bit

1 = Generate a digital comparator event when the DCMPLO[15:0] bits ≤ DATA[31:0] bits < DCMPHI[15:0] bits

0 = Do not generate a digital comparator event

bit 3 IEHIHI: High/High Digital Comparator 1 Event bit

1 = Generate a digital comparator 1 event when the DCMPHI[15:0] bits are less than or equal to DATA[31:0] bits

0 = Do not generate an event

REGISTER 29-16: ADCCMPCON2: ADC DIGITAL COMPARATOR 2 CONTROL REGISTER (CONTINUED)

bit 2 IEHILO: High/Low Digital Comparator 1 Event bit

1 = Generate a digital comparator 1 event when the DATA[31:0] bits are less than DCMPHI[15:0] bits

0 = Do not generate an event

bit 1 IELOHI: Low/High Digital Comparator 1 Event bit

1 = Generate a digital comparator 1 event when the DCMPLO[15:0] bits are less than or equal to DATA[31:0] bits

0 = Do not generate an event

bit 0 IELOLO: Low/Low Digital Comparator 1 Event bit

1 = Generate a digital comparator 1 event when the DATA[31:0] bits are less than DCMPO[15:0] bits

0 = Do not generate an event

REGISTER 29-17: ADCFSTAT: ADC FIFO STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 U-0U-0 U-0 U-0U-0 U-0 R/W-0
FEN— — —— —— ADC0EN
23:16R/W-0R-0, HS, HCR-0, HS, HCU-0U-0U-0U-0U-0
FIENFRDYFWROVERR— — —
15:8R-0R-0 R-0R-0 R-0 R-0R-0R-0
FCNT[7:0]
7:0R-0U-0 U-0U-0 U-0 R-0R-0R-0
FSIGN— — —ADCID[2:0]
Legend:HS = Hardware Set HC = Hardware Cleared
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 FEN: FIFO Enable bit

1 = FIFO is enabled

0 = FIFO is disabled; no data is being saved into the FIFO

bit 30-25 Unimplemented: Read as '0'

bit 24 ADC0EN: First class channel (0) Enable bit

1 = Converted output data of first class channel (0) is stored in the FIFO

0 = Converted output data of first class channel (0) is not stored in the FIFO

Note: While using FIFO, the output data is additionally stored in the respective output data register (ADCDATA0).

bit 23 FIEN: FIFO Interrupt Enable bit

1 = FIFO interrupts are enabled; an interrupt is generated once the FRDY bit is set

0 = FIFO interrupts are disabled

bit 22 FRDY: FIFO Data Ready Interrupt Status bit

1 = FIFO has data to be read

0 = No data is available in the FIFO

Note: This bit is cleared when the FIFO output data in ADCFIFO has been read and there is no additional data ready in the FIFO (that is, the FIFO is empty).

bit 21 FWROVERR: FIFO Write Overflow Error Status bit

1 = A write overflow error in the FIFO has occurred (circular FIFO)

0 = A write overflow error in the FIFO has not occurred

Note: This bit is cleared after ADCFSTAT[23:16] are read by software.

bit 15-8 FCNT[7:0]: FIFO Data Entry Count Status bits

The value in these bits indicates the number of data entries in the FIFO.

bit 7 FSIGN: FIFO Sign Setting bit

This bit reflects the sign of data stored in the ADCFIFO register.

bit 6-3 Unimplemented: Read as '0'

bit 2-0 ADCID[2:0]: First class channel (0) Identifier bits

These bits specify the first class channel whose data is stored in the FIFO.

111 = Reserved

110 = Reserved

101 = Reserved

100 = Reserved

000 = Converted data of first class channel (0) is stored in FIFO

REGISTER 29-18: ADCFIFO: ADC FIFO DATA REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
DATA[31:24]^(1,2)
23:16R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
DATA[23:16]^(1,2)
15:8R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
DATA[15:8]^(1,2)
7:0R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
DATA[7:0]^(1,2)

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 DATA[31:0]: FIFO Data Output Value bits (1,2)

Note 1: When an alternate input is used as the input source for a dedicated ADC module, the data output is still read from the Primary input Data Output register.

2: Reading the ADCDATAx register value after changing the FRACT bit converts the data into the format specified by FRACT bit.

Note: When an alternate input is used as the input source for a dedicated ADC module, the data output is still read from the Primary Input Data Output register.

REGISTER 29-19: ADCBASE: ADC BASE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
ADCBASE[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
ADCBASE[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 x = Bit is unknown

bit 31-0 Unimplemented: Read as '0'

bit 15-0 ADCBASE[15:0]: ADC ISR Base Address bits

This register, when read, contains the base address of the user's ADC ISR jump table. The interrupt vector address is determined by the IRQVS[2:0] bits of the ADCCON1 register specifying the amount of left shift done to the ARDYx status bits in the ADCDSTAT1 register, prior to adding with ADCBASE register.

Interrupt vector address = Read value of ADCBASE

Read value of ADCBASE = Value written to ADCBASE + x << IRQVS[2:0], where 'x' is the smallest active analog input ID from the ADCDSTAT1 register (which has highest priority).

REGISTER 29-20: ADCDMAST: ADC DMA STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 U-0U-0 U-0 U-0 U-0U-0 R/W-0
DMAEN— — —— —RBF0IEN
23:16R/HS/HC-0U-0 U-0 U-0U-0 U-0 U-0R/HS/C-0
WROVRERRRBF0
15:8R/W-0 U-0U-0 U-0 U-0U-0 R/W-0
DMACNTEN— — —— —RAF0IEN
7:0U-0U-0 U-0U-0 U-0 U-0R/HS/C-0
RAF0

Legend:

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31 DMAEN: DMA Interface Enable bit

1 = DMA interface is enabled
0 = DMA interface is disabled

When DMAEN == 0, no data is being saved into the DMA FIFO, no SRAM writes occur and the DMA interface logic is being kept in Reset state.

bit 30-25 Unimplemented: Read as '0'

bit 24 RBF0IEN: RAM Buffer B FULL Interrupt Enable for channel 0.

1 = Interrupts are enabled and generated when the RBFx Status bit is set
0 = Interrupts are disabled

bit 23 WROVRERR: Write Overflow Error in the DMA FIFO; set by hardware, cleared by hardware after a software read of the ADDMAST register.

Note: The write always occurs and the old data is being replaced with new data because the software missed reading the old data on time.

bit 22-17 Unimplemented: Read as '0'

bit 16 RBF0: RAM Buffer B FULL status bit for channel 0. This bit is self-clearing upon being read by software.

bit 15 DMACNTEN: DMA Buffer Sample Count Enable bit

The DMA interface will save the current sample count for each buffer in the table starting at the ADCCNTB address after each sample write into the corresponding buffer in the SRAM.

bit 14-9 Unimplemented: Read as '0'

bit 8 RAF0IEN: RAM Buffer A FULL Interrupt Enable for channel 0.

1 = Interrupts are enabled and generated when the RAFx Status bit is set
0 = Interrupts are disabled

bit 7-1 Unimplemented: Read as '0'

bit 0 RAF0: RAM Buffer A FULL status bit for channel 0. This bit is self-clearing upon being read by software.

REGISTER 29-21: ADCCNTB: ADC CHANNEL SAMPLE COUNT BASE ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R0 R-0 R-0 R-0R-0 R-0
ADCCNTB[31:24]
23:16R-0 R-0 R0 R-0 R-0 R-0R-0 R-0
ADCCNTB[23:16]
15:8R-0 R-0 R0 R-0 R-0 R-0R-0 R-0
ADCCNTB[15:8]
7:0R-0 R-0 R0 R-0 R-0 R-0R-0 R-0
ADCCNTB[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 ADCCNTB[31:0]: ADC Channel Count Base Address: SRAM address for the DMA interface at which to save the first class channel buffer A sample count values into the System RAM. If first class channel x, x = 0...6, is ready with a new available sample data, and the DMA interface is currently saving data for channel x to RAM Buffer z (where z == 0 means Buffer A and z == 1 means Buffer B, z depending on x), then the DMA interface will increment (+1) the 1 byte count value stored at System RAM address (ADCCNTB + 2*x + z). ADCCNTB works in conjunction with ADDMAB. The DMA interface will use ADCCNTB to save the buffer sample counts only if ADDMAST.DMA_CNT_EN is set to 1.

REGISTER 29-22: ADCDMAB: ADC DMA BASE ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
ADDMAB[31:24]
23:16R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
ADDMAB[23:16]
15:8R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
ADDMAB[15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
ADDMAB[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 ADDMAB[31:0]: BASE ADDRESS for the DMA interface at which to save first class channels data into the System RAM. If first class channel x, x = 0...6, is ready with a new available sample data, and the DMAI interface is currently saving data for channel x to RAM Buffer z (where z == 0 means Buffer A and z == 1 means Buffer B, z depending on x), and the current DMA x-counter value is y (y depending on x), then the DMA interface will store the 2-byte output data value at System RAM address (ADDMAB + (2*x + z)*2 ^(DMABL+1) + 2*y. Also, if ADDMAST.DMA_CNT_EN is set to 1, the DMA interface will store without delay the value y itself at the System RAM address (ADCCNTB + 2*x + z).

REGISTER 29-23: ADCTRGSNS: ADC TRIGGER LEVEL/EDGE SENSITIVITY REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— —— ——
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
————— —— ——
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
————— —— ——
7:0R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0R/W-0 R/W-0R/W-0
LVL7LVL6LVL5LVL4LVL3LVL2LVL1LVL0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-8 Unimplemented: Read as '0'

bit 17-0 LVL[7:0]: Trigger Level and Edge Sensitivity bits

1 = Analog input is sensitive to the high level of its trigger (level sensitivity implies retriggering as long as the trigger signal remains high)
0 = Analog input is sensitive to the positive edge of its trigger (this is the value after a Reset)

Note 1: When an alternate input is used as the input source for a dedicated ADC module, the data output is still read from the Primary input Data Output register.

2: Reading the ADCDATAx register value after changing the FRACT bit converts the data into the format specified by FRACT bit.

REGISTER 29-24: ADC0TIME: DEDICATED ADC1 TIMING REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0R/W-1 R/W-1
— — —— — — SELRES[1:0]
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
BCHEN0ADCDIV[6:0]
15:8U-0 U-0U-0 U-0 U-0 U-0R/W-0 R/W-0
— — —— — —SAMC[9:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SAMC[7:0]

Legend:

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-26 Unimplemented: Read as '0'

bit 25-24 SELRES[1:0]: ADC1 Resolution Select bits

11 = 12 bits

10 = 10 bits

01 = 8 bits

00 = 6 bits

Note: Changing the resolution of the ADC does not shift the result in the corresponding ADCDATAx register. The result will still occupy 12 bits, with the corresponding lower unused bits set to '0'. For example, a resolution of 6 bits will result in ADCDATAx[5:0] being set to '0', and ADCDATAx[11:6] holding the result.

bit 23 BCHENO: If set to 1 and if ADDMAST.DMAEN == 1, the output data of first class channel 0, will be saved by the DMA interface to the System RAM. If set to 0, this first class channel output data can be retrieved only via ADC SFRs.

bit 22-16 ADCDIV[6:0]: ADC1 Clock Divisor bits

These bits divide the ADC control clock with period T_Q to generate the clock for ADC1 ( T_AD1 ).

1111111 = 254 * TQ = T _AD1

0000011 = 6 * TQ = TAD1

0000010 = 4 * TQ = TAD1

0000001 = 2 * TQ = TAD1

0000000 = Reserved

bit 15-10 Unimplemented: Read as '0'

bit 9-0 SAMC[9:0]: ADC1 Sample Time bits

Where T_AD0 = period of the ADC conversion clock for the dedicated ADC controlled by the ADCDIV[6:0] bits.

1111111111 = 1025 T _AD1

0000000001 = 3 T _AD1

0000000000 = 2 T _AD1

REGISTER 29-25: ADCANCON: ADC ANALOG WARM-UP CONTROL REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 R/W-0R/W-0 R/W-0 R/W-0
— — — —WKUPCLKCNT[3:0]
23:16R/W-0 U-0U-0 U-0U-0U-0 U-0R/W-0
WKIEN7WKIEN0
15:8R-0, HS, HCU-0U-0U-0U-0U-0U-0R-0, HS, HC
WKRDY7WKRDY0
7:0R/W-0 U-0U-0 U-0U-0U-0 U-0R/W-0
ANEN7ANEN0
Legend: HS = Hardware Set HC = Hardware Cleared
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-28 Unimplemented: Read as '0'

bit 27-24 WKUPCLKCNT[3:0]: Wake-up Clock Count bits

These bits represent the number of ADC clocks required to warm-up the ADC module before it can perform conversion. Although the clocks are specific to each ADC, the WKUPCLKCNT bit is common to all ADC modules.

1111 = 2 ^15 = 32,768 clocks

0110 = 2 ^6 = 64 clocks

0101 = 2 ^5 = 32 clocks

0100 = 2 ^4 = 16 clocks

0011 = 2 ^4 = 16 clocks

0010 = 2^4 = 16 clocks

0001 = 2^4 = 16 clocks

0000 = 2^4 = 16 clocks

bit 23 WKIEN7: Shared ADC (ADC2) Wake-up Interrupt Enable bit

1 = Enable interrupt and generate interrupt when the WKRDY2 status bit is set

0 = Disable interrupt

bit 22-17 Unimplemented: Read as '0'

bit 16 WKIEN0: ADC1 Wake-up Interrupt Enable bit

1 = Enable interrupt and generate interrupt when the WKRDYx status bit is set

0 = Disable interrupt

bit 15 WKRDY7: Shared ADC (ADC2) Wake-up Status bit

1 = ADC2 Analog and bias circuitry ready after the wake-up count number 2^WKUPEXP clocks after setting ANEN2 to '1'

0 = ADC2 Analog and bias circuitry is not ready

Note: This bit is cleared by hardware when the ANEN2 bit is cleared.

bit 14-9 Unimplemented: Read as '0'

bit 8 WKRDY0: ADC1 Wake-up Status bit

1 = ADC1 Analog and bias circuitry ready after the wake-up count number 2^WKUPEXP clocks after setting ANEN1 to '1'

0 = ADC1 Analog and bias circuitry is not ready

Note: These bits are cleared by hardware when the ANENx bit is cleared.

REGISTER 29-25: ADCANCON: ADC ANALOG WARM-UP CONTROL REGISTER (CONTINUED)

bit 7 ANEN7: Shared ADC (ADC2) Analog and Bias Circuitry Enable bit

1 = Analog and bias circuitry enabled. Once the analog and bias circuit is enabled, the ADC module needs a warm-up time, as defined by the WKUPCLKCNT[3:0] bits.

0 = Analog and bias circuitry disabled

bit 6-1 Unimplemented: Read as '0'

bit 0 ANENO: ADC1 Analog and Bias Circuitry Enable bits

1 = Analog and bias circuitry enabled. Once the analog and bias circuit is enabled, the ADC module needs a warm-up time, as defined by the WKUPCLKCNT[3:0] bits.

0 = Analog and bias circuitry disabled

REGISTER 29-26: ADCSYSCFG0: ADC SYSTEM CONFIGURATION REGISTER 0

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24 U-0U-0 U-0 U-0U-0 U-0 U-0 U-0
— — —— — — —
23:16 U-0U-0 U-0 U-0R-y R-1 R-1 R-1
AN19AN-18AN-17AN-16
15:8R-1 R-1R-1 R-1 R-1 R-1R-1 R-1
AN15AN14AN13AN12AN11AN10AN9AN8
7:0 R-1R-1 R-1R-1 R-1 R-1R-1 R-1
AN7AN6AN5AN4AN3AN2AN1AN0
Legend:y = POR value is determined by the specific device
R = Readable bitW = Writable bit U = 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-0 AN[19:0]: ADC Analog Input bits

These bits reflect the system configuration and are updated during boot-up time. By reading these read-only bits, the user application can determine whether or not an analog input in the device is available.

REGISTER 29-27: ADCDATAx: ADC OUTPUT DATA REGISTER ('x' = 0 TO 23)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
DATA[31:24]
23:16R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
DATA[23:16]
15:8R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
DATA[15:8]
7:0R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
DATA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 DATA[31:0]: ADC Converted Data Output bits

Note 1: When an alternate input is used as the input source for a dedicated ADC module, the data output is still read from the Primary input Data Output register.

2: Reading the ADCDATAx register value after changing the FRACT bit converts the data into the format specified by FRACT bit.

30.0 CONTROLLER AREA NETWORK (CAN)

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 34. "Controller Area Network (CAN)" (DS60001154) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The PIC32MZ W1 device supports one CAN module. The CAN module has the following key features:

  • Standards compliance:
  • Full CAN 2.0B compliance
  • Programmable bit rate up to 1 Mbps
  • Message reception and transmission:
  • 16 message FIFOs
  • Each FIFO can have up to 32 messages for a total of 512 messages
  • FIFO can be a transmit message FIFO or a

receive message FIFO

  • User-defined priority levels for message FIFOs used for transmission
  • 16 acceptance filters for message filtering
  • Three acceptance filter mask registers for message filtering
  • Automatic response to remote transmit request
  • DeviceNet™ addressing support

• Additional features:

  • Loopback, Listen All Messages and Listen Only modes for self-test, system diagnostics and bus monitoring
  • Low-Power Operating modes
  • CAN module is a bus manager on the PIC32 System Bus
  • Buffers stored in volatile memory (SRAM)
  • Dedicated time-stamp timer
  • Data-only Message Reception mode
  • Low pulse filter on receive lines for noise immunity

The figure below illustrates the general structure of the CAN module.

FIGURE 30-1: CAN MODULE BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - CONTROLLER AREA NETWORK (CAN) - 1

flowchart
graph TD
    subgraph CAN Module
        A["16 Filters 3 Masks"] --> B["C1TX"]
        C["C1RX"] --> D["CAN Module"]
        D --> E["CPU"]
    end

    subgraph System RAM
        F["Message Buffer 31"] --> G["FIFO0 FIFO1 FIFO15"]
        H["Message Buffer 31"] --> I["FIFO0 FIFO1 FIFO15"]
        J["Message Buffer 31"] --> K["FIFO0 FIFO1 FIFO15"]
        L["Message Buffer 0"] --> M["FIFO0 FIFO1 FIFO15"]
        N["Message Buffer 0"] --> O["FIFO0 FIFO1 FIFO15"]
        P["Message Buffer 1"] --> Q["FIFO0 FIFO1 FIFO15"]
        R["Message Buffer 1"] --> S["FIFO0 FIFO1 FIFO15"]
        T["Message Buffer 0"] --> U["FIFO0 FIFO1 FIFO15"]
    end

    subgraph CPU
        V["PB2_CLK"] --> W["Data Bus"]
    end

    subgraph System Bus
        X["Up to 32 Message Buffers"] --> Y["CAN Message FIFO (up to 16 FIFOs)"]
    end

    style CAN Module fill:#f9f,stroke:#333
    style System RAM fill:#ccf,stroke:#333

30.1 CAN Control Registers

TABLE 30-1: CAN1 REGISTER SUMMARY

Virtual Address(BF82.#)Register Name ( 1 \ ) Bit RangeBitsAll Resets
31/15 3014 29/1328/12 27/1126/10 25/924/8 23/722/6 21/5 2014 19/3 182 17/1 16/0
2000C1CON31:16ABATREQOP[2:0]OPMOD[2:0]CANCAP0400
15:0ONSIDLECANBUSYDNCNT[4:0]0000
2010C1CFG31:16WAKFILSEG2PH[2:0]0000
15:0SEG2PHTSSAMSEG1PH[2:0]PRSEG[2:0]SJW[1:0]BRP[5:0]0000
2020C1INT31:16IVRIEWAKIECERRIESERRIERBOVIEMODIECTMRIERBIETBIE0000
15:0IVRIFWAKIFCERRIFSERRIFRBOVIFMODIFCTMRIFRBIFTBIF0000
2030C1VEC31:160000
15:0FILHIT[4:0]ICODE[6:0]0040
2040C1TREC31:16TXBOTXBPRXBPTXWARNRXWARNEWARN0000
15:0TERRCNT[7:0]RERRCNT[7:0]0000
2050C1FSTAT31:16FIFOIP31FIFOIP30FIFOIP29FIFOIP28FIFOIP27FIFOIP26FIFOIP25FIFOIP24FIFOIP23FIFOIP22FIFOIP21FIFOIP20FIFOIP19FIFOIP18FIFOIP17FIFOIP160000
15:0FIFOIP15FIFOIP14FIFOIP13FIFOIP12FIFOIP11FIFOIP10FIFOIP9FIFOIP8FIFOIP7FIFOIP6FIFOIP5FIFOIP4FIFOIP3FIFOIP2FIFOIP1FIFOIP00000
2060C1RXOVF31:16RXOVF31RXOVF30RXOVF29RXOVF28RXOVF27RXOVF26RXOVF25RXOVF24RXOVF23RXOVF22RXOVF21RXOVF20RXOVF19RXOVF18RXOVF17RXOVF160000
15:0RXOVF15RXOVF14RXOVF13RXOVF12RXOVF11RXOVF10RXOVF9RXOVF8RXOVF7RXOVF6RXOVF5RXOVF4RXOVF3RXOVF2RXOVF1RXOVF00000
2070C1TMR31:16CANTS[15:0]0000
15:0CANTSPRE[15:0]0000
2080C1RXM031:16SID[10:0]MIDEEID[17:16]xxxxx
15:0EID[15:0]xxxxx
2090C1RXM131:16SID[10:0]MIDEEID[17:16]xxxxx
15:0EID[15:0]xxxxx
20A0C1RXM231:16SID[10:0]MIDEEID[17:16]xxxxx
15:0EID[15:0]xxxxx
20C0C1FLTCONO31:16FLTEN3MSEL3[1:0]FSEL3[4:0]FLTEN2MSEL2[1:0]FSEL2[4:0]0000
15:0FLTEN1MSEL1[1:0]FSEL1[4:0]FLTEN0MSEL0[1:0]FSEL0[4:0]0000
20D0C1FLTCON131:16FLTEN7MSEL7[1:0]FSEL7[4:0]FLTEN6MSEL6[1:0]FSEL6[4:0]0000
15:0FLTEN5MSEL5[1:0]FSEL5[4:0]FLTEN4MSEL4[1:0]FSEL4[4:0]0000
20E0C1FLTCON231:16FLTEN11MSEL11[1:0]FSEL11[4:0]FLTEN10MSEL10[1:0]FSEL10[4:0]0000
15:0FLTEN9MSEL9[1:0]FSEL9[4:0]FLTEN8MSEL8[1:0]FSEL8[4:0]0000
20F0C1FLTCON331:16FLTEN15MSEL15[1:0]FSEL15[4:0]FLTEN14MSEL14[1:0]FSEL14[4:0]0000
15:0FLTEN13MSEL13[1:0]FSEL13[4:0]FLTEN12MSEL12[1:0]FSEL12[4:0]0000
2140-2330C1RXFn(n = 0-15)31:16SID[10:0]— EXID — EID[17:16]xxxxx
15:0EID[15:0]xxxxx
2340C1FIFOBA31:16C1FIFOBA[29:14]0000
15:0C1FIFOBA[13:0]0000

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 13.3 "CLR, SET and INV Registers" for more information.

TABLE 30-1: CAN1 REGISTER SUMMARY (CONTINUED)

Virtual Address (BFB2_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
2350C1FIFOCONn(n = 0)31:16
15:0FRESETUINCDONLYTXENTXABATTXLARBTXERRTXREQRTRENTXPRI[1:0]0000
2360C1FIFOINTn(n = 0)31:16TXNFULLIETXHALFIETXEMPTYIERXOVFLIERXFULLIERXHALFIERXN EMPTYIE0000
15:0TXNFULLIFTXHALFIFTXEMPTYIFRXOVFLIFRXFULLIFRXHALFIFRXN EMPTYIF0000
2370C1FIFOUAn(n = 0)31:16C1FIFOUA[15:0]0000
15:0C1FIFOUA[13:0]0000
2380C1FIFOCIn(n = 0)31:160000
15:0C1FIFOCI[4:0]0000
2390-2740C1FIFOCONnC1FIFOINTnC1FIFOUAnC1FIFOCIn(n = 1-15)31:16FSIZE[4:0]0000
15:0FRESETUINCDONLYTXENTXABATTXLARBTXERRTXREQRTRENTXPRI[1:0]0000
31:16TXNFULLIETXHALFIETXEMPTYIERXOVFLIERXFULLIERXHALFIERXN EMPTYIE0000
15:0TXNFULLIFTXHALFIFTXEMPTYIFRXOVFLIFRXFULLIFRXHALFIFRXN EMPTYIF0000
31:16C1FIFOUA[15:0]0000
15:0C1FIFOUA[13:0]0000
31:160000
15:0C1FIFOCI[4:0]0000

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, 0xB and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.

REGISTER 30-1: C1CON: CAN MODULE CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 S/HC-0 R/W-1 R/W-0 R/W-0
— — —ABAT REQOP[2:0]
23:16R-1 R-0 R-0 R/W-0 U-0 U-0 U-0
OPMOD[2:0]CANCAP— —
15:8R/W-0U-0R/W-0U-0R-0U-0U-0U-0
ON(1)SIDLECANBUSY
7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
— — —DNCNT[4:0]
Legend: HC = Hardware Cleared S = Settable bitR = Readable bit W = Writable bit P = Programmable bit r = Reserved bitU = Unimplemented bit -n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-28 Unimplemented: Read as '0'

bit 27 ABAT: Abort All Pending Transmissions bit

1 = Signal all transmit buffers to abort transmission
0 = Module will clear this bit when all transmissions aborted

bit 26-24 REQOP[2:0]: Request Operation Mode bits

111 = Set Listen All Messages mode
110 = Reserved - Do not use
101 = Reserved - Do not use
100 = Set Configuration mode
011 = Set Listen Only mode
010 = Set Loopback mode
001 = Set Disable mode
000 = Set Normal Operation mode

bit 23-21 OPMOD[2:0]: Operation Mode Status bits

111 = Module is in Listen All Messages mode
110 = Reserved
101 = Reserved
100 = Module is in Configuration mode
011 = Module is in Listen Only mode
010 = Module is in Loopback mode
001 = Module is in Disable mode
000 = Module is in Normal Operation mode

bit 20 CANCAP: CAN Message Receive Time Stamp Timer Capture Enable bit

1 = CANTMR value is stored on valid message reception and is stored with the message
0 = Disable CAN message receive time stamp timer capture and stop CANTMR to conserve power

bit 19-16 Unimplemented: Read as '0'

bit 15 ON: CAN On bit ^(1)

1 = CAN module is enabled
0 = CAN module is disabled

bit 14 Unimplemented: Read as '0'

Note 1: If the user application clears the ON bit, it may take a number of cycles before the CAN module completes the current transaction and responds to the request. The user application must poll the CANBUSY bit to verify that the request was honored.

REGISTER 30-1: C1CON: CAN MODULE CONTROL REGISTER (CONTINUED)

bit 13 SIDLE: CAN Stop in Idle bit

1 = CAN Stops operation when system enters Idle mode
0 = CAN continues operation when system enters Idle mode 

bit 12 Unimplemented: Read as '0'

bit 11 CANBUSY: CAN Module is Busy bit

1 = The CAN module is active
0 = The CAN module is completely disabled 

bit 10-5 Unimplemented: Read as '0'

bit 4-0 DNCNT[4:0]: Device Net Filter Bit Number bits

10011-11111 = Invalid Selection (compare up to 18-bits of data with EID)
10010 = Compare up to data byte 2 bit 6 with EID17 (CiRXFn[17])
.
.
00001 = Compare up to data byte 0 bit 7 with EID0 (CiRXFn[0])
00000 = Do not compare data bytes 

Note 1: If the user application clears the ON bit, it may take a number of cycles before the CAN module completes the current transaction and responds to the request. The user application must poll the CANBUSY bit to verify that the request was honored.

REGISTER 30-2: C1CFG: CAN BAUD RATE CONFIGURATION REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — — —— — — —
23:16U-0 R/W-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0
WAKFIL SEG2PH[2:0]^(1,4)
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SEG2PHTS^(1) SAM^(2) SEG1PH[2:0] PRSEG[2:0]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SJW[1:0]^(3) BRP[5:0]
Legend:HC = Hardware ClearS = Settable bit
R = Readable bitW = Writable bitP = Programmable bitr = Reserved bit
U = Unimplemented bit-n = Bit Value at POR: ('0', '1', x = Unknown)

bit 31-23 Unimplemented: Read as '0'

bit 22 WAKFIL: CAN Bus Line Filter Enable bit

1 = Use CAN bus line filter for wake-up
0 = CAN bus line filter is not used for wake-up

bit 21-19 Unimplemented: Read as '0'

bit 18-16 SEG2PH[2:0]: Phase Buffer Segment 2 bits ^(1,4)

111 = Length is 8 x Tq


000 = Length is 1 x Tq

bit 15 SEG2PHTS: Phase Segment 2 Time Select bit ^(1)

1 = Freely programmable
0 = Maximum of SEG1PH or Information Processing Time, whichever is greater

bit 14 SAM: Sample of the CAN Bus Line bit ^(2)

1 = Bus line is sampled three times at the sample point
0 = Bus line is sampled once at the sample point

bit 13-11 SEG1PH[2:0]: Phase Buffer Segment 1 bits ^(4)

111 = Length is 8 x To


000 = Length is 1 x TQ

Note 1: SEG2PH ≤ SEG1PH. If SEG2PHTS is clear, SEG2PH will be set automatically.

2: 3 Time bit sampling is not allowed for BRP < 2.
3: SJW ≤ SEG2PH.
4: The Time Quanta per bit must be greater than 7 (that is, TQBIT > 7).
5: This register can only be modified when the CAN module is in Configuration mode (OPMOD[2:0] (C1CON[23:21]) = 100).

REGISTER 30-2: C1CFG: CAN BAUD RATE CONFIGURATION REGISTER (CONTINUED)
bit 10-8 PRSEG[2:0]: Propagation Time Segment bits (4)

111 = Length is 8 x Tq
•
•
•
000 = Length is 1 x Tq 

bit 7-6 SJW[1:0]: Synchronization Jump Width bits (3)

11 = Length is 4 x Tq
10 = Length is 3 x Tq
01 = Length is 2 x Tq
00 = Length is 1 x Tq 

bit 5-0 BRP[5:0]: Baud Rate Prescaler bits

111111 = TQ = (2 x 64)/TPB2_CLK
111110 = TQ = (2 x 63)/TPB2_CLK
.
.
.
.
000001 = TQ = (2 x 2)/TPB2_CLK
000000 = TQ = (2 x 1)/TPB2_CLK 

Note 1: SEG2PH ≤ SEG1PH. If SEG2PHTS is clear, SEG2PH will be set automatically.

2: 3 Time bit sampling is not allowed for BRP < 2.
3: SJW ≤ SEG2PH.
4: The Time Quanta per bit must be greater than 7 (that is, T QBIT > 7).
5: This register can only be modified when the CAN module is in Configuration mode (OPMOD[2:0] (C1CON[23:21]) = 100).

REGISTER 30-3: C1INT: CAN INTERRUPT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0
IVRIE WAKIE CERRIE SERRIE RBOVIE— — —
23:16U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
— — — — MODIE CTMIRIE RBIE TBIE
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0
IVRIF WAKIF CERRIF SERRIF (1)RBOVIF— — —
7:0U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
— — — — MODIF CTMRIF RBIF TBIF

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31 IVRIE: Invalid Message Received Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 30 WAKIE: CAN Bus Activity Wake-up Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 29 CERRIE: CAN Bus Error Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 28 SERRIE: System Error Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 27 RBOVIE: Receive Buffer Overflow Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 26-20 Unimplemented: Read as '0'

bit 19 MODIE: Mode Change Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 18 CTMRIE: CAN Timestamp Timer Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 17 RBIE: Receive Buffer Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 16 TBIE: Transmit Buffer Interrupt Enable bit

1 = Interrupt request is enabled
0 = Interrupt request is not enabled

bit 15 IVRIF: Invalid Message Received Interrupt Flag bit

1 = An invalid messages interrupt has occurred
0 = An invalid message interrupt has not occurred

Note 1: This bit can only be cleared by turning the CAN module off and on by clearing or setting the ON bit (C1CON[15]).

REGISTER 30-3: C1INT: CAN INTERRUPT REGISTER (CONTINUED)

bit 14 WAKIF: CAN Bus Activity Wake-up Interrupt Flag bit

1 = A bus wake-up activity interrupt has occurred

0 = A bus wake-up activity interrupt has not occurred

bit 13 CERRIF: CAN Bus Error Interrupt Flag bit

1 = A CAN bus error has occurred

0 = A CAN bus error has not occurred

bit 12 SERRIF: System Error Interrupt Flag bit

1 = A system error occurred (typically an illegal address was presented to the System Bus)

0 = A system error has not occurred

bit 11 RBOVIF: Receive Buffer Overflow Interrupt Flag bit

1 = A receive buffer overflow has occurred

0 = A receive buffer overflow has not occurred

bit 10-4 Unimplemented: Read as '0'

bit 3 MODIF: CAN Mode Change Interrupt Flag bit

1 = A CAN module mode change has occurred (OPMOD[2:0] has changed to reflect REQOP)

0 = A CAN module mode change has not occurred

bit 2 CTMRIF: CAN Timer Overflow Interrupt Flag bit

1 = A CAN timer (CANTMR) overflow has occurred

0 = A CAN timer (CANTMR) overflow has not occurred

bit 1 RBIF: Receive Buffer Interrupt Flag bit

1 = A receive buffer interrupt is pending

0 = A receive buffer interrupt is not pending

bit 0 TBIF: Transmit Buffer Interrupt Flag bit

1 = A transmit buffer interrupt is pending

0 = A transmit buffer interrupt is not pending

Note 1: This bit can only be cleared by turning the CAN module off and on by clearing or setting the ON bit (C1CON[15]).

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-13 Unimplemented: Read as '0'

bit 12-8 FILHIT[4:0]: Filter Hit Number bit

11111 = Filter 31

11110 = Filter 30

00001 = Filter 1

00000 = Filter 0

bit 7 Unimplemented: Read as '0'

bit 6-0 ICODE[6:0]: Interrupt Flag Code bits ^(1)

1001000-1111111 = Reserved

1001000 = Invalid Message Received (IVRIF)

1000111 = CAN Module Mode Change (MODIF)

1000110 = CAN Timestamp Timer (CTMRIF)

1000101 = Bus Bandwidth Error (SERRIF)

1000100 = Address Error Interrupt (SERRIF)

1000011 = Receive FIFO Overflow Interrupt (RBOVIF)

1000010 = Wake-up interrupt (WAKIF)

1000001 = Error Interrupt (CERRIF)

1000000 = No interrupt

0100000-0111111 = Reserved

0011111 = FIFO31 interrupt (CiFSTAT[31] set)

0011110 = FIFO30 interrupt (CiFSTAT[30] set)

-

.

0000001 = FIFO1 interrupt (CiFSTAT[1] set)

0000000 = FIFO0 interrupt (CiFSTAT[0] set)

Note 1: These bits are only updated for enabled interrupts.

REGISTER 30-5: C1TREC: CAN TRANSMIT/RECEIVE ERROR COUNT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — — —
23:16U-0 U-0 R-0 R-0 R-0 R-0 R-0 R-0
— — TX BO TXBP RXBP TXWARN RXWARN EWARN
15:8R-0 R-0 R-0 R-0 R-0 R-0 R-0
TERRCNT[7:0]
7:0R-0 R-0 R-0 R-0 R-0 R-0 R-0
RERRCNT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-22 Unimplemented: Read as '0'

bit 21 TXBO: Transmitter in Error State Bus OFF (TERRCNT ≥ 256)

bit 20 TXBP: Transmitter in Error State Bus Passive (TERRCNT ≥ 128)

bit 19 RXBP: Receiver in Error State Bus Passive (RERRCNT ≥ 128)

bit 18 TXWARN: Transmitter in Error State Warning (128 > TERRCNT ≥ 96)

bit 17 RXWARN: Receiver in Error State Warning (128 > RERRCNT ≥ 96)

bit 16 EWARN: Transmitter or Receiver is in Error State Warning

bit 15-8 TERRCNT[7:0]: Transmit Error Counter

bit 7-0 RERRCNT[7:0]: Receive Error Counter

REGISTER 30-6: C1FSTAT: CAN FIFO STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0R-0R-0R-0R-0R-0R-0R-0
FIFOIP31FIFOIP30FIFOIP29FIFOIP28FIFOIP27FIFOIP26FIFOIP25FIFOIP24
23:16R-0R-0R-0R-0R-0R-0R-0R-0
FIFOIP23FIFOIP22FIFOIP21FIFOIP20FIFOIP19FIFOIP18FIFOIP17FIFOIP16
15:8R-0R-0R-0R-0R-0R-0R-0R-0
FIFOIP15FIFOIP14FIFOIP13FIFOIP12FIFOIP11FIFOIP10FIFOIP9FIFOIP8
7:0R-0R-0R-0R-0R-0R-0R-0R-0
FIFOIP7FIFOIP6FIFOIP5FIFOIP4FIFOIP3FIFOIP2FIFOIP1FIFOIP0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-0 FIFOIP[31:0]: FIFOx Interrupt Pending bits

1 = One or more enabled FIFO interrupts are pending

0 = No FIFO interrupts are pending

REGISTER 30-7: C1RXOVF: CAN RECEIVE FIFO OVERFLOW STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0 R-0
RXOVF31RXOVF30RXOVF29RXOVF28RXOVF27RXOVF26RXOVF25RXOVF24
23:16R-0 R-0 R-0 R-0 R-0 R-0 R-0
RXOVF23RXOVF22RXOVF21RXOVF20RXOVF19RXOVF18RXOVF17RXOVF16
15:8R-0 R-0 R-0 R-0 R-0 R-0 R-0
RXOVF15RXOVF14RXOVF13RXOVF12RXOVF11RXOVF10RXOVF9RXOVF8
7:0R-0 R-0 R-0 R-0 R-0 R-0 R-0
RXOVF7RXOVF6RXOVF5RXOVF4RXOVF3RXOVF2RXOVF1RXOVF0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-0 RXOVF[31:0]: FIFOx Receive Overflow Interrupt Pending bit

1 = FIFO has overflowed

0 = FIFO has not overflowed

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-0 CANTS[15:0]: CAN Time Stamp Timer bits

This is a free-running timer that increments every CANTSPRE system clocks when the CANCAP bit (CiCON[20]) is set.

bit 15-0 CANTSPRE[15:0]: CAN Time Stamp Timer Prescaler bits

1111 1111 1111 1111 = CAN Time Stamp (CANTS) timer increments every 65,535 system clocks

0000 0000 0000 0000 = CAN Time Stamp (CANTS) timer increments every system clock

Note 1: C1TMR will be frozen when CANCAP = 0.

2: The C1TMR prescaler count will be reset on any write to C1TMR (CANTSPRE will be unaffected).

REGISTER 30-9: C1RXMN: CAN ACCEPTANCE FILTER MASK 'n' REGISTER ('n' = 0-2)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SID[10:3]
23:16R/W-0 R/W-0 R/W-0 U-0 R/W-0 U-0 R/W-0 R/W-0
SID[2:0]MIDEEID[17:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
EID[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
EID[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 x = Bit is unknown

bit 31-21 SID[10:0]: Standard Identifier bits

1 = Include bit, SIDx, in filter comparison
0 = Bit SIDx is 'don't care' in filter operation

bit 20 Unimplemented: Read as '0'

bit 19 MIDE: Identifier Receive Mode bit

1 = Match only message types (standard/extended address) that correspond to the EXID bit in filter
0 = Match either standard or extended address message if filters match (that is, if (Filter SID) = (Message SID) or if (FILTER SID/EID) = (Message SID/EID))

bit 18 Unimplemented: Read as '0'

bit 17-0 EID[17:0]: Extended Identifier bits

1 = Include bit, EIDx, in filter comparison
0 = Bit EIDx is 'don't care' in filter operation

Note: This register can only be modified when the CAN module is in Configuration mode (OPMOD[2:0] (C1CON[23:21]) = 100).

REGISTER 30-10: C1FLTCON0: CAN FILTER CONTROL REGISTER 0

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN3 MSEL3[1:0] FSEL3[4:0]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN2 MSEL2[1:0] FSEL2[4:0]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN1 MSEL1[1:0] FSEL1[4:0]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN0 MSEL0[1:0] FSEL0[4:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31 FLTEN3: Filter 3 Enable bit

1 = Filter is enabled

0 = Filter is disabled

bit 30-29 MSEL3[1:0]: Filter 3 Mask Select bits

11 = Acceptance Mask 3 selected

10 = Acceptance Mask 2 selected

01 = Acceptance Mask 1 selected

00 = Acceptance Mask 0 selected

bit 28-24 FSEL3[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31

11110 = Message matching filter is stored in FIFO buffer 30

00001 = Message matching filter is stored in FIFO buffer 1

00000 = Message matching filter is stored in FIFO buffer 0

bit 23 FLTEN2: Filter 2 Enable bit

1 = Filter is enabled

0 = Filter is disabled

bit 22-21 MSEL2[1:0]: Filter 2 Mask Select bits

11 = Acceptance Mask 3 selected

10 = Acceptance Mask 2 selected

01 = Acceptance Mask 1 selected

00 = Acceptance Mask 0 selected

bit 20-16 FSEL2[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31

11110 = Message matching filter is stored in FIFO buffer 30

00001 = Message matching filter is stored in FIFO buffer 1

00000 = Message matching filter is stored in FIFO buffer 0

bit 15 FLTEN1: Filter 1 Enable bit

1 = Filter is enabled

0 = Filter is disabled

Note: The bits in this register can only be modified if the corresponding filter enable (FLTENn) bit is '0'.

REGISTER 30-10: C1FLTCON0: CAN FILTER CONTROL REGISTER 0 (CONTINUED)
bit 14-13 MSEL1[1:0]: Filter 1 Mask Select bits 11 = Acceptance Mask 3 selected 10 = Acceptance Mask 2 selected 01 = Acceptance Mask 1 selected 00 = Acceptance Mask 0 selected

bit 12-8 FSEL1[4:0]: FIFO Selection bits 11111 = Message matching filter is stored in FIFO buffer 31 11110 = Message matching filter is stored in FIFO buffer 30 : : 00001 = Message matching filter is stored in FIFO buffer 1 00000 = Message matching filter is stored in FIFO buffer 0

bit 7 FLTENO: Filter 0 Enable bit 1 = Filter is enabled 0 = Filter is disabled

bit 6-5 MSEL0[1:0]: Filter 0 Mask Select bits 11 = Acceptance Mask 3 selected 10 = Acceptance Mask 2 selected 01 = Acceptance Mask 1 selected 00 = Acceptance Mask 0 selected

bit 4-0 FSEL0[4:0]: FIFO Selection bits 11111 = Message matching filter is stored in FIFO buffer 31 11110 = Message matching filter is stored in FIFO buffer 30 : : 00001 = Message matching filter is stored in FIFO buffer 1 00000 = Message matching filter is stored in FIFO buffer 0

Note: The bits in this register can only be modified if the corresponding filter enable (FLTENn) bit is '0'.

REGISTER 30-11: C1FLTCON1: CAN FILTER CONTROL REGISTER 1

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN7 MSEL7[1:0] FSEL7[4:0]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN6 MSEL6[1:0] FSEL6[4:0]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN5 MSEL5[1:0] FSEL5[4:0]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN4 MSEL4[1:0] FSEL4[4:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31 FLTEN7: Filter 7 Enable bit

1 = Filter is enabled
0 = Filter is disabled

bit 30-29 MSEL7[1:0]: Filter 7 Mask Select bits

11 = Acceptance Mask 3 selected
10 = Acceptance Mask 2 selected
01 = Acceptance Mask 1 selected
00 = Acceptance Mask 0 selected

bit 28-24 FSEL7[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31
11110 = Message matching filter is stored in FIFO buffer 30

00001 = Message matching filter is stored in FIFO buffer 1
00000 = Message matching filter is stored in FIFO buffer 0

bit 23 FLTEN6: Filter 6 Enable bit

1 = Filter is enabled
0 = Filter is disabled

bit 22-21 MSEL6[1:0]: Filter 6 Mask Select bits

11 = Acceptance Mask 3 selected
10 = Acceptance Mask 2 selected
01 = Acceptance Mask 1 selected
00 = Acceptance Mask 0 selected

bit 20-16 FSEL6[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31
11110 = Message matching filter is stored in FIFO buffer 30



00001 = Message matching filter is stored in FIFO buffer 1
00000 = Message matching filter is stored in FIFO buffer 0

bit 15 FLTEN5: Filter 17 Enable bit

1 = Filter is enabled
0 = Filter is disabled

Note: The bits in this register can only be modified if the corresponding filter enable (FLTENn) bit is '0'.

REGISTER 30-11: C1FLTCON1: CAN FILTER CONTROL REGISTER 1 (CONTINUED)
bit 14-13 MSEL5[1:0]: Filter 5 Mask Select bits 11 = Acceptance Mask 3 selected 10 = Acceptance Mask 2 selected 01 = Acceptance Mask 1 selected 00 = Acceptance Mask 0 selected

bit 12-8 FSEL5[4:0]: FIFO Selection bits 11111 = Message matching filter is stored in FIFO buffer 31 11110 = Message matching filter is stored in FIFO buffer 30 : : 00001 = Message matching filter is stored in FIFO buffer 1 00000 = Message matching filter is stored in FIFO buffer 0

bit 7 FLTEN4: Filter 4 Enable bit 1 = Filter is enabled 0 = Filter is disabled

bit 6-5 MSEL4[1:0]: Filter 4 Mask Select bits 11 = Acceptance Mask 3 selected 10 = Acceptance Mask 2 selected 01 = Acceptance Mask 1 selected 00 = Acceptance Mask 0 selected

bit 4-0 FSEL4[4:0]: FIFO Selection bits 11111 = Message matching filter is stored in FIFO buffer 31 11110 = Message matching filter is stored in FIFO buffer 30 : : 00001 = Message matching filter is stored in FIFO buffer 1 00000 = Message matching filter is stored in FIFO buffer 0

Note: The bits in this register can only be modified if the corresponding filter enable (FLTENn) bit is '0'.

REGISTER 30-12: C1FLTCON2: CAN FILTER CONTROL REGISTER 2

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN11 MSEL11[1:0] FSEL11[4:0]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN10 MSEL10[1:0] FSEL10[4:0]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN9MSEL9[1:0]FSEL9[4:0]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN8MSEL8[1:0]FSEL8[4:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31 FLTEN11: Filter 11 Enable bit

1 = Filter is enabled

0 = Filter is disabled

bit 30-29 MSEL11[1:0]: Filter 11 Mask Select bits

11 = Acceptance Mask 3 selected

10 = Acceptance Mask 2 selected

01 = Acceptance Mask 1 selected

00 = Acceptance Mask 0 selected

bit 28-24 FSEL11[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31

11110 = Message matching filter is stored in FIFO buffer 30

00001 = Message matching filter is stored in FIFO buffer 1

00000 = Message matching filter is stored in FIFO buffer 0

bit 23 FLTEN10: Filter 10 Enable bit

1 = Filter is enabled

0 = Filter is disabled

bit 22-21 MSEL10[1:0]: Filter 10 Mask Select bits

11 = Acceptance Mask 3 selected

10 = Acceptance Mask 2 selected

01 = Acceptance Mask 1 selected

00 = Acceptance Mask 0 selected

bit 20-16 FSEL10[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31

11110 = Message matching filter is stored in FIFO buffer 30

00001 = Message matching filter is stored in FIFO buffer 1

00000 = Message matching filter is stored in FIFO buffer 0

bit 15 FLTEN9: Filter 9 Enable bit

1 = Filter is enabled

0 = Filter is disabled

Note: The bits in this register can only be modified if the corresponding filter enable (FLTENn) bit is '0'.

REGISTER 30-12: C1FLTCON2: CAN FILTER CONTROL REGISTER 2 (CONTINUED)
bit 14-13 MSEL9[1:0]: Filter 9 Mask Select bits

11 = Acceptance Mask 3 selected
10 = Acceptance Mask 2 selected
01 = Acceptance Mask 1 selected
00 = Acceptance Mask 0 selected 

bit 12-8 FSEL9[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31
11110 = Message matching filter is stored in FIFO buffer 30
.
.
00001 = Message matching filter is stored in FIFO buffer 1
00000 = Message matching filter is stored in FIFO buffer 0 

bit 7 FLTEN8: Filter 8 Enable bit

1 = Filter is enabled
0 = Filter is disabled 

bit 6-5 MSEL8[1:0]: Filter 8 Mask Select bits

11 = Acceptance Mask 3 selected
10 = Acceptance Mask 2 selected
01 = Acceptance Mask 1 selected
00 = Acceptance Mask 0 selected 

bit 4-0 FSEL8[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31
11110 = Message matching filter is stored in FIFO buffer 30
.
.
00001 = Message matching filter is stored in FIFO buffer 1
00000 = Message matching filter is stored in FIFO buffer 0 

Note: The bits in this register can only be modified if the corresponding filter enable (FLTENn) bit is '0'.

REGISTER 30-13: C1FLTCON3: CAN FILTER CONTROL REGISTER 3

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN15 MSEL15[1:0] FSEL15[4:0]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN14 MSEL14[1:0] FSEL14[4:0]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN13 MSEL13[1:0] FSEL13[4:0]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN12 MSEL12[1:0] FSEL12[4:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31

FLTEN15: Filter 15 Enable bit

1 = Filter is enabled

0 = Filter is disabled

bit 30-29

MSEL15[1:0]: Filter 15 Mask Select bits

11 = Acceptance Mask 3 selected

10 = Acceptance Mask 2 selected

01 = Acceptance Mask 1 selected

00 = Acceptance Mask 0 selected

bit 28-24

FSEL15[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31

11110 = Message matching filter is stored in FIFO buffer 30

00001 = Message matching filter is stored in FIFO buffer 1

00000 = Message matching filter is stored in FIFO buffer 0

bit 23

FLTEN14: Filter 14 Enable bit

1 = Filter is enabled

0 = Filter is disabled

bit 22-21

MSEL14[1:0]: Filter 14 Mask Select bits

11 = Acceptance Mask 3 selected

10 = Acceptance Mask 2 selected

01 = Acceptance Mask 1 selected

00 = Acceptance Mask 0 selected

bit 20-16

FSEL14[4:0]: FIFO Selection bits

11111 = Message matching filter is stored in FIFO buffer 31

11110 = Message matching filter is stored in FIFO buffer 30

00001 = Message matching filter is stored in FIFO buffer 1

00000 = Message matching filter is stored in FIFO buffer 0

bit 15

FLTEN13: Filter 13 Enable bit

1 = Filter is enabled

0 = Filter is disabled

Note: The bits in this register can only be modified if the corresponding filter enable (FLTENn) bit is '0'.

REGISTER 30-13: C1FLTCON3: CAN FILTER CONTROL REGISTER 3 (CONTINUED)
bit 14-13 MSEL13[1:0]: Filter 13 Mask Select bits 11 = Acceptance Mask 3 selected 10 = Acceptance Mask 2 selected 01 = Acceptance Mask 1 selected 00 = Acceptance Mask 0 selected

bit 12-8 FSEL13[4:0]: FIFO Selection bits 11111 = Message matching filter is stored in FIFO buffer 31 11110 = Message matching filter is stored in FIFO buffer 30 : : 00001 = Message matching filter is stored in FIFO buffer 1 00000 = Message matching filter is stored in FIFO buffer 0

bit 7 FLTEN12: Filter 12 Enable bit 1 = Filter is enabled 0 = Filter is disabled

bit 6-5 MSEL12[1:0]: Filter 12 Mask Select bits 11 = Acceptance Mask 3 selected 10 = Acceptance Mask 2 selected 01 = Acceptance Mask 1 selected 00 = Acceptance Mask 0 selected

bit 4-0 FSEL12[4:0]: FIFO Selection bits 11111 = Message matching filter is stored in FIFO buffer 31 11110 = Message matching filter is stored in FIFO buffer 30 : : 00001 = Message matching filter is stored in FIFO buffer 1 00000 = Message matching filter is stored in FIFO buffer 0

Note: The bits in this register can only be modified if the corresponding filter enable (FLTENn) bit is '0'.

REGISTER 30-14: C1RXFn: CAN ACCEPTANCE FILTER 'n' REGISTER 7 ('n' = 0-15)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
SID[10:3]
23:16R/W-x R/W-x R/W-x U-0 R/W-0 U-0 R/W-x R/W-x
SID[2:0]— EXID— EID[17:16]
15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
EID[15:8]
7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x
EID[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-21 SID[10:0]: Standard Identifier bits

1 = Message address bit SIDx must be '1' to match filter
0 = Message address bit SIDx must be '0' to match filter

bit 20 Unimplemented: Read as '0'

bit 19 EXID: Extended Identifier Enable bits

1 = Match only messages with extended identifier addresses
0 = Match only messages with standard identifier addresses

bit 18 Unimplemented: Read as '0'

bit 17-0 EID[17:0]: Extended Identifier bits

1 = Message address bit EIDx must be '1' to match filter
0 = Message address bit EIDx must be '0' to match filter

Note: This register can only be modified when the filter is disabled (FLTENn = 0).

REGISTER 30-15: C1FIFOBA: CAN MESSAGE BUFFER BASE ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
C1FIFOBA[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
C1FIFOBA[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
C1FIFOBA[15:8]
7:0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0(1) R-0^(1)
C1FIFOBA[7:0]
Legend:R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-2 C1FIFOBA[29:0]: CAN FIFO Base Address bits

These bits define the base address of all message buffers. Individual message buffers are located based on the size of the previous message buffers. This address is a physical address. Note that bits [1:0] are read-only and read '0', forcing the messages to be 32-bit word-aligned in device RAM.

bit 1-0 Unimplemented: Read as '0'

Note 1: This bit is unimplemented and will always read '0', which forces word-alignment of messages.

2: This register can only be modified when the CAN module is in Configuration mode (OPMOD[2:0] (C1CON[23:21]) = 100).

REGISTER 30-16: C1FIFOCONn: CAN FIFO CONTROL REGISTER 'n' ('n' = 0-15)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — — —
23:16U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— — —FSIZE[4:0](1)
15:8U-0 S/HC-0 S/HC-0 R/W-0 U-0 U-0 U-0 U-0
— FRESET UINCDONLY(1)— — —
7:0R/W-0R-0R-0R-0R/W-0R/W-0R/W-0R/W-0
TXENTXABAT(2)TXLARB(3)TXERR(3)TXREQRTRENTXPR[1:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-21 Unimplemented: Read as '0'

bit 20-16 FSIZE[4:0]: FIFO Size bits (1)

11111 = FIFO is 32 messages deep

00010 = FIFO is 3 messages deep

00001 = FIFO is 2 messages deep

00000 = FIFO is 1 message deep

bit 15 Unimplemented: Read as '0'

bit 14 FRESET: FIFO Reset bits

1 = FIFO will be reset when the bit is set and cleared by hardware when FIFO is reset. After setting, the user application must poll whether this bit is clear before taking any action 0 = No effect

bit 13 UINC: Increment Head/Tail bit

TXEN = 1: (FIFO configured as a Transmit FIFO)

When this bit is set, the FIFO head will increment by a single message

TXEN = 0: (FIFO configured as a Receive FIFO)

When this bit is set, the FIFO tail will increment by a single message

bit 12 DONLY: Store Message Data Only bit ^(1)

TXEN = 1: (FIFO configured as a Transmit FIFO)

This bit is not used and has no effect.

TXEN = 0: (FIFO configured as a Receive FIFO)

1 = Only data bytes will be stored in the FIFO

0 = Full message is stored, including identifier

bit 11-8 Unimplemented: Read as '0'

bit 7 TXEN: TX/RX Buffer Selection bit

1 = FIFO is a Transmit FIFO

0 = FIFO is a Receive FIFO

Note 1: These bits can only be modified when the CAN module is in Configuration mode (OPMOD[2:0] bits (C1CON[23:21]) = 100).

2: This bit is updated when a message completes (or aborts) or when the FIFO is reset.

3: This bit is reset on any read of this register or when the FIFO is reset.

REGISTER 30-16: C1FIFOCONn: CAN FIFO CONTROL REGISTER 'n' ('n' = 0-15) (CONTINUED)

bit 6 TXABAT: Message Aborted bit (2)

1 = Message was aborted
0 = Message completed successfully

bit 5 TXLARB: Message Lost Arbitration bit (3)

1 = Message lost arbitration while being sent
0 = Message did not lose arbitration while being sent

bit 4 TXERR: Error Detected During Transmission bit (3)

1 = A bus error occurred while the message was being sent
0 = A bus error did not occur while the message was being sent

bit 3 TXREQ: Message Send Request

TXEN = 1: (FIFO configured as a Transmit FIFO)

Setting this bit to '1' requests sending a message.

The bit will automatically clear when all the messages queued in the FIFO are successfully sent.

Clearing the bit to '0' while set ('1') will request a message abort.

TXEN = 0: (FIFO configured as a Receive FIFO)

This bit has no effect.

bit 2 RTREN: Auto RTR Enable bit

1 = When a remote transmit is received, TXREQ will be set
0 = When a remote transmit is received, TXREQ will be unaffected

bit 1-0 TXPR[1:0]: Message Transmit Priority bits

11 = Highest Message Priority
10 = High Intermediate Message Priority
01 = Low Intermediate Message Priority
00 = Lowest Message Priority

Note 1: These bits can only be modified when the CAN module is in Configuration mode (OPMOD[2:0] bits (C1CON[23:21]) = 100).

2: This bit is updated when a message completes (or aborts) or when the FIFO is reset.
3: This bit is reset on any read of this register or when the FIFO is reset.

REGISTER 30-17: C1FIFOINTn: CAN FIFO INTERRUPT REGISTER 'n' ('n' = 0-15)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0
— — —— — TXNFULLIE TXHALFIE TXEMPTYIE
23:16U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0
RXOVFLIERXFULLIERXHALFIERXNEMPTYIE
15:8U-0 U-0 U-0 U-0 U-0 R-0 R-0
— — —— —TXNFULLIF(1)TXHALFIF TXEMPTYIF^(1)
7:0U-0 U-0 U-0 U-0 R/W-0 R-0 R-0
— — —— RXOVFLIFRXFULLIF(1) RXHALFIF^(1) RXNEMPTYIF^(1)

Legend:

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-27 Unimplemented: Read as '0'

bit 26 TXNFULLIE: Transmit FIFO Not Full Interrupt Enable bit

1 = Interrupt enabled for FIFO not full 0 = Interrupt disabled for FIFO not full

bit 25 TXHALFIE: Transmit FIFO Half Full Interrupt Enable bit

1 = Interrupt enabled for FIFO half full 0 = Interrupt disabled for FIFO half full

bit 24 TXEMPTYIE: Transmit FIFO Empty Interrupt Enable bit

1 = Interrupt enabled for FIFO empty 0 = Interrupt disabled for FIFO empty

bit 23-20 Unimplemented: Read as '0'

bit 19 RXOVFLIE: Overflow Interrupt Enable bit

1 = Interrupt enabled for overflow event 0 = Interrupt disabled for overflow event

bit 18 RXFULLIE: Full Interrupt Enable bit

1 = Interrupt enabled for FIFO full 0 = Interrupt disabled for FIFO full

bit 17 RXHALFIE: FIFO Half Full Interrupt Enable bit

1 = Interrupt enabled for FIFO half full 0 = Interrupt disabled for FIFO half full

bit 16 RXNEMPTYIE: Empty Interrupt Enable bit

1 = Interrupt enabled for FIFO not empty
0 = Interrupt disabled for FIFO not empty

bit 15-11 Unimplemented: Read as '0'

bit 10 TXNFULLIF: Transmit FIFO Not Full Interrupt Flag bit ^(1)

TXEN = 1: (FIFO configured as a Transmit Buffer) 1 = FIFO is not full 0 = FIFO is full

TXEN = 0: (FIFO configured as a Receive Buffer) Unused, reads '0'

Note 1: This bit is read-only and reflects the status of the FIFO.

REGISTER 30-17: C1FIFOINTn: CAN FIFO INTERRUPT REGISTER 'n' ('n' = 0-15) (CONTINUED)
bit 9 TXHALFIF: FIFO Transmit FIFO Half Empty Interrupt Flag bit ^(1) TXEN = 1: (FIFO configured as a Transmit Buffer) 1 = FIFO is ≤ half full 0 = FIFO is > half full

TXEN = 0: (FIFO configured as a Receive Buffer) Unused, reads '0'

bit 8 TXEMPTYIF: Transmit FIFO Empty Interrupt Flag bit (1)

TXEN = 1: (FIFO configured as a Transmit Buffer) 1 = FIFO is empty 0 = FIFO is not empty, at least 1 message queued to be transmitted

TXEN = 0: (FIFO configured as a Receive Buffer) Unused, reads '0'

bit 7-4 Unimplemented: Read as '0'

bit 3 RXOVFLIF: Receive FIFO Overflow Interrupt Flag bit

TXEN = 1: (FIFO configured as a Transmit Buffer) Unused, reads '0'

TXEN = 0: (FIFO configured as a Receive Buffer) 1 = Overflow event has occurred 0 = No overflow event occurred

bit 2 RXFULLIF: Receive FIFO Full Interrupt Flag bit ^(1) TXEN = 1: (FIFO configured as a Transmit Buffer) Unused, reads '0'

TXEN = 0: (FIFO configured as a Receive Buffer) 1 = FIFO is full 0 = FIFO is not full

bit 1 RXHALFIF: Receive FIFO Half Full Interrupt Flag bit ^(1) TXEN = 1: (FIFO configured as a Transmit Buffer) Unused, reads '0'

TXEN = 0: (FIFO configured as a Receive Buffer) 1 = FIFO is ≥ half full 0 = FIFO is < half full

bit 0 RXNEMPTYIF: Receive Buffer Not Empty Interrupt Flag bit ^(1) TXEN = 1: (FIFO configured as a Transmit Buffer) Unused, reads '0'

TXEN = 0: (FIFO configured as a Receive Buffer) 1 = FIFO is not empty, has at least 1 message 0 = FIFO is empty

Note 1: This bit is read-only and reflects the status of the FIFO.

REGISTER 30-18: C1FIFOUAn: CAN FIFO USER ADDRESS REGISTER 'n' ('n' = 0-15)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-x R-x R-x R-x R-x R-x R-x
C1FIFOUAn[31:24]
23:16R-x R-x R-x R-x R-x R-x R-x
C1FIFOUAn[23:16]
15:8R-x R-x R-x R-x R-x R-x R-x
C1FIFOUAn[15:8]
7:0R-x R-x R-x R-x R-x R-0(1) R-0^(1)
C1FIFOUAn[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-2 C1FIFOUAn[29:0]: CAN FIFO User Address bits

TXEN = 1: (FIFO configured as a transmit buffer)

A read of this register will return the address where the next message is to be written (FIFO head).

TXEN = 0: (FIFO configured as a receive buffer)

A read of this register will return the address where the next message is to be read (FIFO tail).

bit 1-0 Unimplemented: Read as '0'

Note 1: This bit will always read '0', which forces byte-alignment of messages.

2: This register is not guaranteed to read correctly in Configuration mode, and must only be accessed when the module is not in Configuration mode.

REGISTER 30-19: C1FIFOCIn: CAN MODULE MESSAGE INDEX REGISTER 'n' ('n' = 0-15)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0U-0U-0U-0U-0U-0U-0U-0
23:16U-0U-0U-0U-0U-0U-0U-0U-0
15:8U-0U-0U-0U-0U-0U-0U-0U-0
7:0U-0U-0U-0R-0R-0R-0R-0R-0
C1FIFOCIn[4:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-5 Unimplemented: Read as '0'

bit 4-0 C1FIFOCIn[4:0]: CAN Side FIFO Message Index bits

TXEN = 1: (FIFO configured as a transmit buffer)

A read of this register will return an index to the message that the FIFO will next attempt to transmit.

TXEN = 0: (FIFO configured as a receive buffer)

A read of this register will return an index to the message that the FIFO will use to save the next message.

31.0 CONTROLLER AREA NETWORK-FLEXIBLE DATA- RATE (CAN-FD) MODULE

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 56. Controller Area Network with Flexible Data-rate (CAN FD) (DS60001549) in the "PIC32 Family Reference Manual", which is available from the Microchip website (www.microchip.com/PIC32).

The PIC32MZ W1 device supports one CAN-FD module. The CAN-FD module supports the following key features:

- Compliance:

  • Full CAN 2.0B (ISO11898-1:2015)
  • C A N - F D 1.0
  • Supports up to 64 data bytes
  • Arbitration Bit Rate up to 1 Mbps
  • FD Bit Rate up to 8 Mbps

- Message objects:

  • Maximum of 15 FIFOs, configurable as transmit or receive FIFOs
  • One Transmit Queue (TXQ)
  • Transmit event FIFO with time stamp

- Message transmission:

  • Programmable automatic retransmission attempts: unlimited, 3 attempts, or disabled
  • Message transmission prioritization:
  • Based on priority bit field
  • Message with lowest ID gets transmitted first using a TXQ

- Message reception:

  • Maximum of 16 flexible filter and Mask Objects
  • FIFO depth up to 32
  • Message depth up to 32 bytes

- Each object can be configured to filter either:

- Standard ID + first 2 data bytes

- Extended ID

- All filter objects can be used as filter plus mask

- 32-bit time stamp

- Special features:

  • Selective wake-up, and transceiver standby control
  • Minimum of 4 time quanta per bit time
  • Message objects and filters are located in SRAM; size: minimum 2 KB
  • Low-Power Operating mode
  • Bus health diagnostics and error counters
  • Disable mode
  • Loopback mode (internal and external)
  • Listen Only mode
  • Configuration mode
  • Restricted Operation mode

FIGURE 31-1: CAN-FD BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - CONTROLLER AREA NETWORK-FLEXIBLE DATA- RATE (CAN-FD) MODULE - 1

flowchart System architecture flowchart showing data flow between Device RAM (TEF, TXQ) and C2TX/RX channels, with TX Handler, RX Handler, and Timestamping components.

31.1 CAN-FD Control Registers

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES

Virtual Address (BF82_#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
3000CFD2CON31:16TXBWS[3:0]ABATREQOP[2:0]OPMOD[2:0]TXQENSTEFSERR2-LOMESIGMRTXAT0000
15:0 ONSIDLBRSDISCAN-BUSYWFT[1:0]WAK-FILCLKSEL0PXEDISISOCRCENDNCNT[4:0]0000
3004CFD2NBTCFG31:16BRP[7:0]TSEG1[7:0]0000
15:0TSEG2[6:0]SJW[6:0]0000
3008CFD2DBTCFG31:16BRP[7:0]TSEG1[4:0]0000
15:0TSEG2[3:0]SJW[3:0]0000
300CCFD2TDC31:16EDG-FLTENSID11 ENTDCMOD[1:0]0000
15:0TDCO[6:0]TDCV[5:0]0000
3010CFD2TBC31:16TBC[31:16]0000
15:0TBC[15:0]0000
3014CFD2TSCON31:16TSRESTSEOFTBCEN0000
15:0TBCPRE[9:0]0000
3018CFD2VEC31:16RXCODE[6:0]TXCODE[6:0]0000
15:0FILHIT[4:0]ICODE[6:0]0000
301CCFD2INT31:16IVMIEWAKIECERRIESERRIERXOVIETXATIESPI-CRCIEECCIETEFIEMODIETBCIERXIETXIE0000
15:0IVMIFWAKIFCERRIFSERRIFRXOVIFTXATIFSPI-CRCIFECCIFTEFIFMODIFTBCIFRXIFTXIF0000
3020CFD2RXIF31:16RFIF[30:15]0000
15:0RFIF[14:0]0000
3024CFD2TXIF31:16TFIF[31:16]0000
15:0TFIF[15:0]0000
3028CFD2RXOVIF31:16RFOVIF[30:15]0000
15:0RFOVIF[14:0]0000

Note 1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address (BF82_#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
302CCFD2TXATIF31:16TFATIF[31:16] 0000
15.0TFATIF[15:0] 0000
3030CFD2TXREQ31:16TXREQ[31:16] 0000
15.0TXREQ[15:0] 0000
3034CFD2TREC31:16TXBOTXBPRXBPTXWARNRXWAR NEWARN0000
15.0TERRCNT[7:0]RERRCNT[7:0]0000
3038CFD2BDIAG031:16DTERRCNT[7:0]DRERRCNT[7:0]0000
15.0NTERRCNT[7:0]NRERRCNT[7:0]0000
303CCFD2BDIAG131:16DLCMMESIDCRCERRDSTU-FERRDFORMERRDBITIERRDBITOERRNCRCERRNSTU-FERRNFORMERRNACK-ERRNBITIERRNBITOERR0000
15.0EFMSGCNT[15:0]0000
3040CFD2TEFCON31:16FSIZE[5:0]0000
15.0FRESETUINCTEFTSENTEFOVIETEFFIETEFHIETEF-NEIE0000
3044CFD2TEFSTA31:160000
15.0TEFOVIFTEFFIFTEFHIFTEF-NEIF0000
3048CFD2TEFUA31:16TEFUA[31:16] 0000
15.0TEFUA[15:0] 0000
304CCFD2FIFOBA31:16FIFOBA[31:16]0000
15.0FIFOBA[15:0]0000
3050CFD2TXQCON31:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPR[4:0]0000
15.0FRESETTXREQUINCTXENTXATIETXQEIETXQNIE0000
3054CFD2TXQSTA31:160000
15.0TXQC[4:0]TXABTTXLARBTXERRTXATIFTXQEIFTXQNIF0000

Note
1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address(BF82,#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
3058CFD2TXQUA31:16TXQUA[31:16] 0000
15:0TXQUA[15:0] 0000
305CCFD2FIFO-CON131:16PLSIZE[2:0] FSIZE[4:0]— TXAT[1:0] TXPRI[4:0] 0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
3060CFD2FIFOS-TA131:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFI-FTFHRF-HIFTFN-RFNIF0000
3064CFD2FIFOUA131:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
3068CFD2FIFO-CON231:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
306CCFD2FIFOS-TA231:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFI-FTFHRH-HIFTFN-RFNIF0000
3070CFD2FIFOUA231:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
3074CFD2FIFO-CON331:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOIVIETFERF-FIETFHRFHIETFNRF-NIE0000
3078CFD2FIFOS-TA331:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFI-FTFHRHF-HIFTFN-RFNIF0000
307CCFD2FIFOUA331:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
3080CFD2FIFO-CON431:16PLSIZE[2:0] FSIZE[4:0]— TXAT[1:0] TXPRI[4:0] 0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIE0000

Note
1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address (BF82_#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
3084CFD2FIFOS-TA431:16— —— —— —— —0000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFI FTFHRF-HIFTFN-RFNIF0000
3088CFD2FIFOUA431:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
308CCFD2FIFO-CONS31:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
3090CFD2FIFOS-TA531:16— —— —— —0000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFI FTFHRF-HIFTFN-RFNIF0000
3094CFD2FIFOUA531:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
3098CFD2FIFO-CONS31:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
309CCFD2FIFOS-TA631:16— —— —— —0000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFI FTFHRF-HIFTFN-RFNIF
30A0CFD2FIFOUA631:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
30A4CFD2FIFO-CONS31:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENXRTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
30A8CFD2FIFOS-TA731:16— —— —— —0000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFI FTFHRF-HIFTFN-RFNIF.0000
30ACCFD2FIFOUA731:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000

Note
1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address (BF82_#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
30B0CFD2FIFO-CON831:16PLSIZE[2:0]FSIZE[4:0]— TXAT[1:0] TXPRI[4:0] 0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
30B4CFD2FIFOS-TA831:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFIFTFHRF-HIFTFN-RFNIF0000
30B8CFD2FIFOUA831:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
30BCCFD2FIFO-CON831:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
30C0CFD2FIFOS-TA931:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFIFTFHRH-HIFTFN-RFNIF0000
30C4CFD2FIFOUA931:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
30C8CFD2FIFO-CON1031:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIETXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
30CCCFD2FIFOS-TA1031:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFIFTFHRHF-HIFTFN-RFNIF0000
30D0CFD2FI-FOUA1031:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
30D4CFD2FIFO-CON1131:16PLSIZE[2:0] FSIZE[4:0]— TXAT[1:0] TXPRI[4:0] 0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE
30D8CFD2FIFOS-TA1131:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFIFTFHRFHIFTFN-RFNIF0000

Note
1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address (BF82_#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
30DCCFD2FI-FOUA1131:16FIFOUA[31:16] 0000
15:0FIFOUA[15:0] 0000
30E0CFD2FIFO-CON1231:16PLSIZE[2:0] FSIZE[4:0]— TXAT[1:0] TXPRI[4:0] 0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
30E4CFD2FIFOS-TA1231:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFIFTFHRF-HIFTFN-RFNIF0000
30EBCFD2FI-FOUA1231:16FIFOUA[31:16] 0000
15:0FIFOUA[15:0] 0000
30ECCFD2FIFO-CON1331:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000
30F0CFD2FIFOS-TA1331:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFIFTFHRFHIFTFN-RFNIF0000
30F4CFD2FI-FOUA1331:16FIFOUA[31:16] 0000
15:0FIFOUA[15:0] 0000
30F8CFD2FIFO-CON1431:16PLSIZE[2:0]FSIZE[4:0]TXAT[1:0]TXPRI[4:0]0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOIVIETFERF-FIETFHRFHIETFNRF-NIE0000
30FCCFD2FIFOS-TA1431:160000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFIFTFHRF HIFTFN-RFNIF0000
3100CFD2FI-FOUA1431:16FIFOUA[31:16] 0000
15:0FIFOUA[15:0] 0000
3104CFD2FIFO-CON1531:16PLSIZE[2:0] FSIZE[4:0]— TXAT[1:0]TXPRI[4:0] 0000
15:0FRESETTXREQUINCTXENRTRENRXTSENTXATIERXOVIETFERF-FIETFHRFHIETFNRF-NIE0000

Note 1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address (BF82_#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
3108CFD2FIFOS-TA1531:16— —— —— —— —0000
15:0FIFOCI[4:0]TXABTTXLARBTXERRTXATIFRXOVIFTFERFFIFTFHRF-HIFTFN-RFNIF0000
310CCFD2FI-FOUA1531:16FIFOUA[31:16]0000
15:0FIFOUA[15:0]0000
3110CFD2FLT-CON031:16FLTEN3F3BP[4:0]FLTEN2F2BP[4:0]0000
15:0FLTEN1F1BP[4:0]FLTEN0F0BP[4:0]0000
3114CFD2FLT-CON131:16FLTEN7F7BP[4:0]FLTEN6F6BP[4:0]0000
15:0FLTEN5F5BP[4:0]FLTEN4F4BP[4:0]0000
3118CFD2FLT-CON231:16FLTEN11F11BPFLTEN10F10BP0000
15:0— —F9BP[4:0]FLTEN8F8BP[4:0]0000
311CCFD2FLT-CON331:16FLTEN15F15BP[4:0]FLTEN14F14BP[4:0]0000
15:0FLTEN13F13BP[4:0]FLTEN12F12BP[4:0]0000
3120CFD2FLTOBJ031:16EXIDESID11EID[17:0]0000
15:0EID[17:0]SID[10:0]0000
3124CFD2MASK031:16MIDEMSID11MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3128CFD2FLTOBJ131:16EXIDESID11EID[17:0]0000
15:0EID[17:0]SID[10:0]0000
312CCFD2MASK131:16MIDEMSID11MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3130CFD2FLTOBJ231:16EXIDESID11EID[17:0]0000
15:0EID[17:0]SID[10:0]0000
3134CFD2MASK231:16MIDEMSID11MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000

Note 1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address (BF02_#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
3138CFD2FLTOBJ331:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
313CCFD2MASK331:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3140CFD2FLTOBJ431:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
3144CFD2MASK431:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3150CFD2FLTOBJ631:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
3154CFD2MASK631:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3168CFD2FLTOBJ731:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
315CCFD2MASK731:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3180CFD2FLTOBJ831:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
3164CFD2MASK831:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000

Note 1: The lower order byte of the 32-bit register resides at the low-order address.

2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address(BF82,#)Register Name[1]Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
3168CFD2FLTOBJ931:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
316CCFD2MASK931:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3170CFD2FLTO-BJ1031:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
3174CFD2MASK1031:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3180CFD2FLTO-BJ1131:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
317CCFD2MASK1131:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3190CFD2FLTO-BJ1231:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
3184CFD2MASK1231:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3168CFD2FLTO-BJ1331:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
318CCFD2MASK1331:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000
3150CFD2FLTO-BJ1431:16— EXIDE SID11EID[17:0] 0000
15:0 ED[17:0] SID[10:0] 0000
3194CFD2MASK1431:16MI DE M SI D 1 1 MEID[17:0]0000
15:0MEID[17:0]MSID[10:0]0000

Note
1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

TABLE 31-1: CAN-FD REGISTER SUMMARY FOR PIC32MZ1025W104 DEVICES (CONTINUED)

Virtual Address (BF82_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
3198CFD2FLTO-BJ1531:16— EXIDE SID11EID[17:0] 0000
15:0EID[17:0] SID[10:0] 0000
319CCFD2MASK1531:16MI DE M SI D 1 1 MEID[17:0] 0000
15:0MEID[17:0]MSID[10:0]0000

Note 1: The lower order byte of the 32-bit register resides at the low-order address.
2: All registers in CAN-FD does not have corresponding CLR, SET and INV registers at their virtual addresses. SET, INV, CLR needs to be taken care by programming.

REGISTER 31-1: CFD2CON: CAN CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 S/HC-0 R/W-1 R/W-0 R/W-0
TXBWS[3:0] ABAT REQOP[2:0]
23:16R-1 R-0 R-0 R/W-1 R/W-1 R/W-0 R/W-0 R/W-0
OPMOD[2:0]TXQEN(1)STEF(1)SERR2LOM(1)ESIGM(1)RTXAT(1)
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-1
ONSIDLBRSDISBUSYWFT[1:0]WAKFIL(1)
7:0R/W-0 R/W-1 R/W-1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
CLKSEL0(1)PXEDIS(1)ISOCRCEN(1)DNCNT[4:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
‘1’ = Bit is set at Reset‘0’ = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 31-28 TXBWS[3:0]: Transmit Bandwidth Sharing bits

Delay between two consecutive transmissions (in arbitration bit times)

0000 = No delay

0001 = 2

0010 = 4

0011 = 8

0100 = 16

0101 = 32

0110 = 64

0111 = 128

1000 = 256

1001 = 512

1010 = 1024

1011 = 2048

1111-1100 = 4096

bit 27 ABAT: Abort All Pending Transmissions bit

1 = Signal all transmit buffers to abort transmission

0 = Module clears this bit when all transmissions are aborted

bit 26-24 REQOP[2:0]: Request Operation Mode bits

000 = Set Normal CAN-FD mode; supports mixing of full CAN-FD and classic CAN 2.0 frames

001 = Set Disable mode

010 = Set Internal Loopback mode

011 = Set Listen Only mode

100 = Set Configuration mode

101 = Set External Loopback mode

110 = Set Normal CAN 2.0 mode; error frames on CAN-FD frames

111 = Set Restricted Operation mode

Note 1: These bits can only be modified in Configuration mode (OPMOD = 100).

REGISTER 31-1: CFD2CON: CAN CONTROL REGISTER (CONTINUED)
bit 23-21 OPMOD[2:0]: Operation Mode Status bits 000 = Module is in Normal CAN-FD mode; supports mixing of full CAN-FD and classic CAN 2.0 frames 001 = Module is in Disable mode 010 = Module is in Internal Loopback mode 011 = Module is in Listen Only mode 100 = Module is in Configuration mode 101 = Module is in External Loopback mode 110 = Module is Normal CAN 2.0 mode; error frames on CAN-FD frames 111 = Module is Restricted Operation mode

bit 20 TXQEN: Enable Transmit Queue bit (1) 1 = Enables TXQ and reserves space in RAM 0 = Don't reserve space in RAM for TXQ

Note: Changes only in Configuration mode, since it changes the addresses in RAM.

bit 19 STEF: Store in Transmit Event FIFO bit (1) 1 = Save transmitted messages in TEF 0 = Don't save transmitted messages in TEF

Note: Changes only in Configuration mode, since it changes the addresses in RAM.

bit 18 SERR2LOM: Transition to Listen Only Mode on System Error bit(1) 1 = Transition to Listen Only Mode 0 = Transition to Restricted Operation Mode

bit 17 ESIGM: Transmit ESI in Gateway Mode bit (1) 1 = ESI is transmitted as recessive when ESI of message is high or CAN controller error passive 0 = ESI reflects error status of CAN controller

bit 16 RTXAT: Restrict Retransmission Attempts bit (1) 1 = Restricted retransmission attempts, use CiFIFOCONm.TXAT 0 = Unlimited number of retransmission attempts, CiFIFOCONm.TXAT is ignored

bit 15 ON: Enable bit 1 = CAN module is enabled 0 = CAN module is disabled

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Stop in Idle Control bit 1 = Stop module operation in Idle mode 0 = Don't stop module operation in Idle mode

bit 12 BRSDIS: Bit Rate Switching Disable bit 1 = Bit Rate Switching is Disabled, regardless of BRS in the Transmit Message Object 0 = Bit Rate Switching depends on BRS in the Transmit Message Object'

bit 11 BUSY: CAN Module is Busy bit 1 = The CAN module is active 0 = The CAN module is inactive

bit 10-9 WFT[1:0]: Selectable Wake-up Filter Time bits 00 = T00_FILTER 01 = T01_FILTER 10 = T10_FILTER 11 = T11_FILTER

bit 8 WAKFIL: Enable CAN Bus Line Wake-up Filter bit (1) 1 = Use CAN bus line filter for wake-up 0 = CAN bus line filter is not used for wake-up

Note 1: These bits can only be modified in Configuration mode (OPMOD = 100).

REGISTER 31-1: CFD2CON: CAN CONTROL REGISTER (CONTINUED)

bit 7 CLKSEL0: Module Clock Source Select bit (1)

1 = ETHPLL is selected

0 = PB2_CLK is selected

Note: The CAN source clock must be less than CAN UPB/peripheral clock (PB2_CLK). Select ETHPLL as the CAN source clock and configure CFGCON0.CANFDDIV, such that the CAN source clock (ETHPLL) is less than PB2_CLK (CAN UPB/peripheral clock).

bit 6 PXEDIS: Protocol Exception Event Detection Disabled bit ^(1)

A recessive "res bit" following a recessive FDF bit is called a Protocol Exception.

1 = Protocol Exception is treated as a Form Error.

0 = If a Protocol Exception is detected, the CAN enters Bus Integrating state.

bit 5 ISOCRCEN: Enable ISO CRC in CAN-FD Frames bit (1)

1 = Include Stuff Bit Count in CRC Field and use Non-Zero CRC Initialization Vector

0 = Do not include Stuff Bit Count in CRC Field and use CRC Initialization Vector with all zeros

bit 4-0 DNCNT[4:0]: Device Net Filter Bit Number bits

10011-11111 = Invalid Selection (compare up to 18-bits of data with EID)

10010 = Compare up to data byte 2 bit 6 with EID17

00001 = Compare up to data byte 0 bit 7 with EID0

00000 = Do not compare data bytes

Note 1: These bits can only be modified in Configuration mode (OPMOD = 100).

REGISTER 31-2: CFD2NBTCFG: NOMINAL BIT TIME CONFIGURATION REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
BRP[7:0]
23:16R/W-0 R/W-0R/W-1 R/W-1R/W-1 R/W-1R/W-1 R/W-0
TSEG1[7:0]
15:8U-0 R/W-0R/W-0 R/W-0R/W-1 R/W-1R/W-1 R/W-1
— TSEG2[6:0]
7:0U-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
— SJW[6:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clearHS = Set by Hardware only

bit 31-24 BRP[7:0]: Baud Rate Prescaler bits

$$ 1 1 1 1 \quad 1 1 1 1 = T _ {Q} = 2 5 6 / F _ {\text { SYS }} $$

...

$$ 0 0 0 0 \quad 0 0 0 0 = T _ {Q} = 1 / F _ {\text { SYS }} $$

bit 23-16 TSEG1[7:0]: Time Segment 1 bits (Propagation Segment + Phase Segment 1)

$$ 1 1 1 1 \quad 1 1 1 1 = \text { Length is } 2 5 6 \times T _ {\mathrm{Q}} $$

...

$$ 0 0 0 0 \quad 0 0 0 0 = \text { Length is } 1 \times T _ {Q} $$

bit 15 Unimplemented: Read as '0'

bit 14-8 TSEG2[6:0]: Time Segment 2 bits (Phase Segment 2)

$$ 1 1 1 \quad 1 1 1 1 = \text { Length is } 1 2 8 \times T _ {Q} $$

...

$$ 0 0 0 \quad 0 0 0 0 = \text { Length is } 1 \times T _ {Q} $$

bit 7 Unimplemented: Read as '0'

bit 6-0 SJW[6:0]: Synchronization Jump Width bits

$$ 1 1 1 \quad 1 1 1 1 = \text { Length is } 1 2 8 \times T _ {Q} $$

...

$$ 0 0 0 \quad 0 0 0 0 = \text { Length is } 1 \times T _ {Q} $$

Note: This register can only be modified in Configuration mode (OPMOD = 100).

REGISTER 31-3: CFD2DBTCFG: DATA BIT TIME CONFIGURATION REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
BRP[7:0]
23:16U-0 U-0 U-0 R/W-0 R/W-1 R/W-1 R/W-1 R/W-0
— — —TSEG1[4:0]
15:8U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-1 R/W-1
— — —— TSEG2[6:0]
7:0U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-1 R/W-1
— — —— SJW[6:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bitC = Clearable bitx = Bit is unknown at Reset
‘1’ = Bit is set at Reset‘0’ = Bit is cleared at ResetHC = Hardware clearHS = Set by Hardware only

bit 31-24 BRP[7:0]: Baud Rate Prescaler bits

$$ 1 1 1 1 \quad 1 1 1 1 = T _ {Q} = 2 5 6 / F _ {\text { SYS }} $$

...

$$ 0 0 0 0 \quad 0 0 0 0 = T _ {Q} = 1 / F _ {\text {SYS}} $$

bit 23-21 Unimplemented: Read as '0'

bit 20-16 TSEG1[4:0]: Time Segment 1 bits (Propagation Segment + Phase Segment 1)

$$ 1 1 1 1 1 = \text { Length is } 3 2 \times T _ {Q} $$

...

$$ 0 0 0 0 0 = \text { Length is } 1 \times T _ {Q} $$

bit 15-12 Unimplemented: Read as '0'

bit 11-8 TSEG2[3:0]: Time Segment 2 bits (Phase Segment 2)

$$ 1 1 1 1 = \text { Length is } 1 6 \times T _ {Q} $$

...

$$ 0 0 0 0 = \text { Length is } 1 \times T _ {Q} $$

bit 7-4 Unimplemented: Read as '0'

bit 3-0 SJW[6:0]: Synchronization Jump Width bits

$$ 1 1 1 1 = \text { Length is } 1 6 \times T _ {Q} $$

...

$$ 0 0 0 0 = \text { Length is } 1 \times T _ {Q} $$

Note: This register can only be modified in Configuration mode (OPMOD = 100).

REGISTER 31-4: CFD2TDC: TRANSMITTER DELAY COMPENSATION REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0
— — —— — —E DGF LT ENS I
23:16U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-0
— — —— — — TDCMOD[1:0]
15:8U-0 R/W-0 R/W-0 R/W-1R/W-0 R/W-0R/W-0 R/W-0
TD
7:0U-0 U-0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— — TDCV[5:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 31-26 Unimplemented: Read as '0'

bit 25 EDGFLTEN: Enable Edge Filtering during Bus Integration state bit

1 = Edge Filtering enabled, according to ISO11898-1:2015
0 = Edge Filtering disabled

bit 24 SID11EN: Enable 12-Bit SID in CAN-FD Base Format Messages bit

1 = RRS is used as SID11 in CAN-FD base format messages: SID[11:0] = {SID[10:0], SID11}
0 = Don't use RRS; SID[10:0] according to ISO11898-1:2015

bit 23-18 Unimplemented: Read as '0'

bit 17-16 TDCMOD[1:0]: Transmitter Delay Compensation Mode bits; Secondary Sample Point (SSP)

10-11 Auto; measure delay and add CFD2DBTCFG.TSEG1; add TDCO.

01 = Manual; Don't measure, use TDCV + TDCO from register

00 = Disable

bit 15 Unimplemented: Read as '0'

bit 14-8 TDCO[6:0]: Transmitter Delay Compensation Offset bits; Secondary Sample Point (SSP)

Two's complement; offset can be positive, zero, or negative.

011 1111 = 63 x T _SYS_CLK

...

000 0000 = 0 x T _SYS_CLK

...

111 1111 = -64 x T _SYS_CLK

bit 7-6 Unimplemented: Read as '0'

bit 5-0 TDCV[5:0]: Transmitter Delay Compensation Value bits; Secondary Sample Point (SSP)

11 1111 = 63 × T _SYS_CLK

...

00 0000 = 0 x T _SYS_CLK

Note: This register can only be modified in Configuration mode (OPMOD = 100).

REGISTER 31-5: CFD2TBC: CAN TIME BASE COUNTER REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
TBC[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
TBC[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
TBC[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
TBC[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit C = Clearable bit x = Bit is unknown at Reset

'1' = Bit is set at Reset '0' = Bit is cleared at Reset HC = Hardware clear HS = Set by Hardware only

bit 31-0 TBC: CAN Base Counter bits

This is a free running timer that increments every TBCPRE clock when TBCEN is set.

Note 1: The TBC will be stopped and reset when TBCEN = 0 to save power.

2: The TBC prescaler count will be reset on any write to CFD2TBC (TBCPRE will be unaffected).

REGISTER 31-6: CFD2TSCON: CAN TIME STAMP CONTROL REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 31-19 Unimplemented: Read as '0'

bit 18 TSRES: Time Stamp res bit (FD Frames only)

1 = at sample point of the bit following the FDF bit.

0 = at sample point of SOF

bit 17 TSEOF: Time Stamp EOF bit

1 = Time Stamp when frame is taken valid (11898-1 10.7):

  • RX no error until last but one bit of EOF)
    • TX no error until the end of EOF
    0 = Time Stamp at "beginning" of Frame:
    • Classical Frame: at sample point of SOF
    • FD Frame: see TSRES bit.

bit 16 TBCEN: Time Base Counter Enable bit

1 = Enable TBC

0 = Stop and reset TBC

bit 15-10 Unimplemented: Read as '0'

bit 9-0 TBCPRE[9:0]: CAN Time Base Counter Prescaler bits

1023 = TBC increments every 1024 clocks

0 = TBC increments every 1 clock

R = Readable bit W = Writable bit    U = Unimplemented bit, read as '0'
S = Settable bit    C = Clearable bit    x = Bit is unknown at Reset
'1' = Bit is set at Reset    '0' = Bit is cleared at Reset    HC = Hardware clear    HS = Set by Hardware only 

bit 31 Unimplemented: Read as '0'
bit 30-24 RXCODE[6:0]: Receive Interrupt Flag Code bits ^(1)

1000001-1111111 = Reserved
1000000 = No interrupt
0100000-0111111 = Reserved
0011111 = FIFO 31 interrupt (RFIF[31] set)
.
.
0000010 = FIFO 2 interrupt (RFIF[2] set)
0000001 = FIFO 1 interrupt (RFIF[1] set)
0000000 = Reserved. FIFO 0 cannot receive. 

bit 23 Unimplemented: Read as '0'

bit 22-16 TXCODE[6:0]: Transmit Interrupt Flag Code bits ^(1)

1000001-1111111 = Reserved
1000000 = No interrupt
0100000-0111111 = Reserved
0011111 = FIFO 31 interrupt (TFIF[31] set)
.
.
0000001 = FIFO 1 interrupt (TFIF[1] set)
0000000 = FIFO 0 interrupt (TFIF[0] set) 

bit 15-13 Unimplemented: Read as '0'

bit 12-8 FILHIT[4:0]: Filter Hit Number bits (1)

11111 = Filter 31
11110 = Filter 30
.
.
00001 = Filter 1
00000 = Filter 0 

bit 7 Unimplemented: Read as '0'

Note 1: CFD2VEC: If multiple interrupts are pending, the interrupt with the highest number will be indicated.

REGISTER 31-7: CFD2VEC: INTERRUPT CODE REGISTER (CONTINUED)

bit 6-0 ICODE[6:0]: Interrupt Flag Code bits (1)
    1001011-1111111 = Reserved
    1001010 = Transmit attempt interrupt (any bit in CiTXATIF set)
    1001001 = Transmit event FIFO interrupt (any bit in CiTEFIF set)
    1001000 = Invalid message occurred (IVMIF/IE)
    1000111 = CAN Module Mode Change Occurred (MODIF/IE)
    1000110 = CAN Timer Overflow (CTMRIF/IE)
    1000101 = RX/TX MAB Overflow/Underflow (RX: message received before previous message is saved to memory; TX: cannot feed TX MAB fast enough to transmit consistent data.) (SERRIF/IE)
    1000100 = Address error interrupt (illegal FIFO address presented to system) (SERRIF/IE)
    1000011 = Receive FIFO overflow interrupt (any bit in CiRXOVIF set)
    1000010 = Wake-up interrupt (WAKIF/WAKIE)
    1000001 = Error interrupt (CERRIF/IE)
    1000000 = No interrupt
    0100000-0111111 = Reserved
    0011111 = FIFO 31 interrupt (TFIF[31] or RFIF[31] set)
    :
    0000001 = FIFO 1 interrupt (TFIF[1] or RFIF[1] set)
    0000000 = FIFO 0 interrupt (TFIF[0] set) 

Note 1: CFD2VEC: If multiple interrupts are pending, the interrupt with the highest number will be indicated.

REGISTER 31-8: CFD2INT: INTERRUPT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
IVMIE WAKIE CERRIE SERRIE RXOVIE TXATIE SPICRCIE ECCIE
23:16U-0U-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0
TEFIEMODIETBCIERXIETXIE
15:8HS/C-0HS/C-0HS/C-0HS/C-0R-0R-0R-0R-0
IVMIF(1)WAKIF(1)CERRIF(1)SERRIF(1)RXOVIF TXATIF SPICRCIFECCIF
7:0U-0U-0U-0R-0HS/C-0HS/C-0R-0R-0
TEFIFMODIF(1)TBCIF(1)RXIFTXIF

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
‘1’ = Bit is set at Reset‘0’ = Bit is cleared at ResetHC = Hardware clearHS = Set by Hardware only

bit 31 IVMIE: Invalid Message Interrupt Enable bit

bit 30 WAKIE: Bus Wake Up Activity Interrupt Enable bit

bit 29 CERRIE: CAN Bus Error Interrupt Enable bit

bit 28 SERRIE: System Error Interrupt Enable bit

bit 27 RXOVIE: Receive Buffer Overflow Interrupt Enable bit

bit 26 TXATIE: Transmit Attempt Interrupt Enable bit

bit 25 SPICRCIE: SPI CRC Error Interrupt Enable bit

bit 24 ECCIE: ECC Error Interrupt Enable bit

bit 23-21 Unimplemented: Read as '0'

bit 20 TEFIE: Transmit Event FIFO Interrupt Enable bit

bit 19 MODIE: Mode Change Interrupt Enable bit

bit 18 TBCIE: CAN Timer Interrupt Enable bit

bit 17 RXIE: Receive Object Interrupt Enable bit

bit 16 TXIE: Transmit Object Interrupt Enable bit

bit 15 IVMIF: Invalid Message Interrupt Flag bit ^(1)

bit 14 WAKIF: Bus Wake Up Activity Interrupt Flag bit(1)

bit 13 CERRIF: CAN Bus Error Interrupt Flag bit (1)

bit 12 SERRIF: System Error Interrupt Flag bit (1)

1 = A system error occurred (collision on dual-port RAM)

0 = No system error occurred

bit 11 RXOVIF: Receive Object Overflow Interrupt Flag bit

1 = Receive object overflow occurred

0 = No receive object overflow has occurred

bit 10 TXATIF: Transmit Attempt Interrupt Flag bit

bit 9 SPICRCIF: SPI CRC Error Interrupt Flag bit

bit 8 ECCIF: ECC Error Interrupt Flag bit

bit 7-5 Unimplemented: Read as '0'

Note 1: CFD2INT: Flags are set by hardware and cleared by application.

REGISTER 31-8: CFD2INT: INTERRUPT REGISTER (CONTINUED)

bit 4 TEFIF: Transmit Event FIFO Interrupt Flag bit

1 = Receive buffer overflow occurred
0 = No receive buffer overflow has occurred

bit 3 MODIF: CAN Mode Change Interrupt Flag bit (1)

1 = CAN Module mode change occurred (OPMOD has changed to reflect REQOP)
0 = No mode change occurred

bit 2 TBCIF: CAN Timer Overflow Interrupt Flag bit ^(1)

1 = TBC has overflowed
0 = TBC does not overflow

bit 1 RXIF: Receive Object Interrupt Flag bit

1 = Receive object interrupt is pending
0 = No receive object interrupt is pending

bit 0 TXIF: Transmit Object Interrupt Flag bit

1 = Transmit object interrupt is pending
0 = No transmit object interrupt is pending

Note 1: CFD2INT: Flags are set by hardware and cleared by application.

REGISTER 31-9: CFD2RXIF: RECEIVE INTERRUPT STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
RFIF^(1)[31:24]
23:16R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
RFIF^(1)[23:16]
15:8R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
RFIF^(1)[15:8]
7:0R-0 R-0R-0 R-0 R-0 R-0R-0 U-0
RFIF^(1)[7:1] —

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit

C = Clearable bit

x = Bit is unknown at Reset

'1' = Bit is set at Reset '0' = Bit is cleared at Reset HC = Hardware clear HS = Set by Hardware only

bit 31-1 RFIF[31:1]: Receive FIFO Interrupt Pending bits ^(1)

1 = One or more enabled receive FIFO interrupts are pending

0 = No enabled receive FIFO interrupts are pending

bit 0 Unimplemented: Read as '0'

Note 1: CFD2RXIF: FIFO: RFIF = 'or' of enabled RXFIFO flags; (flags need to be cleared in FIFO register)

REGISTER 31-10: CFD2RXOVIF: RECEIVE OVERFLOW INTERRUPT STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0R-0 R-0 R-0R-0 R-0
RFOVIF^(1) [31:24]
23:16R-0 R-0R-0 R-0 R-0R-0 R-0
RFOVIF^(1) [23:16]
15:8R-0 R-0R-0 R-0 R-0R-0 R-0
RFOVIF^(1) [15:8]
7:0R-0 R-0R-0 R-0 R-0R-0 U-0
RFOVIF^(1) [7:1] —

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit C = Clearable bit x = Bit is unknown at Reset

'1' = Bit is set at Reset '0' = Bit is cleared at Reset HC = Hardware clear HS = Set by Hardware only

bit 31-1 RFOVIF[31:1]: Receive FIFO Overflow Interrupt Pending bits ^(1)

1 = Interrupt is pending
0 = Interrupt is not pending

bit 0 Unimplemented: Read as '0'

Note 1: CFD2RXOVIF: FIFO: RFOVIF (flag needs to be cleared in FIFO register)

REGISTER 31-11: CFD2TXIF: TRANSMIT INTERRUPT STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
TFIF^(1) [31:24]
23:16R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
TFIF^(1) [23:16]
15:8R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
TFIF^(1) [15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0R-0 R-0
TFIF^(1) [7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bitC = Clearable bitx = Bit is unknown at Reset
‘1’ = Bit is set at Reset‘0’ = Bit is cleared at ResetHC = Hardware clearHS = Set by Hardware only

bit 31-0 TFIF[31:0]: Transmit FIFO/TXQ (2) Interrupt Pending bits(1)

1 = One or more enabled transmit FIFO/TXQ interrupts are pending

0 = No enabled transmit FIFO/TXQ interrupts are pending

Note 1: CFD2TXIF: FIFO: TFIF = 'or' of the enabled TXFIFO flags; (flags need to be cleared in FIFO register)

2: TFIF[0] is for the Transmit Queue.

REGISTER 31-12: CFD2TXATIF: TRANSMIT ATTEMPT INTERRUPT STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 R-0 R-0 R-0
TFATIF^(1) [31:24]
23:16R-0 R-0 R-0 R-0 R-0 R-0
TFATIF^(1) [23:16]
15:8R-0 R-0 R-0 R-0 R-0 R-0
TFATIF^(1) [15:8]
7:0R-0 R-0 R-0 R-0 R-0 R-0
TFATIF^(1) [7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit C = Clearable bit x = Bit is unknown at Reset

'1' = Bit is set at Reset '0' = Bit is cleared at Reset HC = Hardware clear HS = Set by Hardware only

bit 31-0 TFATIF[31:0]: Transmit FIFO/TXQ ^(2) Attempt Interrupt Pending bits ^(1)

1 = Interrupt is pending
0 = Interrupt is not pending

Note 1: CFD2TXATIF: FIFO: TFATIF (flag needs to be cleared in FIFO register)

2: TFATIF[0] is for the Transmit Queue.

REGISTER 31-13: CFD2TXREQ: TRANSMIT REQUEST REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24 S^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0
TXREQ[31:24]
23:16 S^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/MC-0
TXREQ[23:16]
15:8 S^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/RC-0
TXREQ[15:8]
7:0 S^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/HC-0 S ^(1)/LC-0
TXREQ[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit

C = Clearable bit

x = Bit is unknown at Reset

'1' = Bit is set at Reset '0' = Bit is cleared at Reset HC = Hardware clear HS = Set by Hardware only

bit 31-1 TXREQ[31:1]: Message Send Request bits

TXEN = 1 (Object configured as a Transmit Object)

Setting this bit to '1' requests sending a message.

The bit is automatically cleared when the message(s) queued in the object is (are) successfully sent.

This bit can not be used for aborting a transmission.

TXEN = 0 (Object configured as a Receive Object)

This bit has no effect.

bit 0 TXREQ[0]: Transmit Queue Message Send Request bit

Setting this bit to '1' requests sending a message.

The bit is automatically cleared when the message(s) queued in the object is (are) successfully sent.

This bit can not be used for aborting a transmission.

Note 1: The TXREQ[x] bit represents the corresponding FIFO[x] message.

REGISTER 31-14: CFD2FIFOBA: MESSAGE MEMORY BASE ADDRESS REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
FIFOBA[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
FIFOBA[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
FIFOBA[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0U-0(1) U-0^(1)
FIFOBA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit C = Clearable bit x = Bit is unknown at Reset

'1' = Bit is set at Reset '0' = Bit is cleared at Reset HC = Hardware clear HS = Set by Hardware only

bit 31-0 FIFOBA[31:0]: Message Memory Base Address bits

Defines the base address for Transmit Event FIFO followed by the message objects.

Note 1: CFD2FIFOBA: Bits[1:0] are forced to '0' to be word aligned.

2: CFD2FIFOBA: This register can only be modified in Configuration mode (OPMOD = 100).

REGISTER 31-15: CFD2TXQCON: TRANSMIT QUEUE CONTROL REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 31-29 PLSIZE[2:0]: Payload Size bits (1)

000 = 8 data bytes

001 = 12 data bytes

010 = 16 data bytes

011 = 20 data bytes

100 = 24 data bytes

101 = 32 data bytes

110 = 48 data bytes

111 = 64 data bytes

bit 28-14 FSIZE[4:0]: FIFO Size bits (1)

0 0000 = FIFO is 1 Message deep

0_0001 = FIFO is 2 Messages deep

0_0002 = FIFO is 3 Messages deep

.

.

1_1111 = FIFO is 32 Messages deep

bit 23 Unimplemented: Read as '0'

bit 22-21 TXAT[1:0]: Retransmission Attempts bits

This feature is enabled when CFD2CON.RTXAT is set.

00 = Disable retransmission attempts

01 = Three retransmission attempts

10 = Unlimited number of retransmission attempts

11 = Unlimited number of retransmission attempts

Note: Application must be able to change these bits in Normal mode. This can be used to go back on the bus after bus off to check if transmission works again.

bit 20-16 TXPRI[4:0]: Message Transmit Priority bits

00000 = Lowest Message Priority

.

11111 = Highest Message Priority

Note 1: These bits can only be modified in Configuration mode (OPMOD = 100).

2: This bit is updated when a message completes (or aborts) or when the FIFO is reset.

3: FRESET is set while in Configuration mode and is automatically cleared in Normal mode.

REGISTER 31-15: CFD2TXQCON: TRANSMIT QUEUE CONTROL REGISTER (CONTINUED)

bit 15-11 Unimplemented: Read as '0'

bit 10 FRESET: FIFO Reset bit (3)

1 = FIFO is reset when the bit is set and cleared by hardware when FIFO is reset. User must poll whether this bit is clear before taking any action.

0 = No effect

bit 9 TXREQ: Message Send Request bit (2)

1 = Requests sending a message; the bit is automatically cleared when all the messages queued in the TXQ are successfully sent

0 = Clearing the bit to '0' while set ('1') requests a message abort.

bit 8 UINC: Increment Head/Tail bit

When this bit is set, the FIFO head increments by a single message.

bit 7 TXEN: TX Enable

1 = Transmit Message Queue. This bit always reads 1.

bit 6-5 Unimplemented: Read as '0'

bit 4 TXATIE: Transmit Attempts Exhausted Interrupt Enable bit

1 = Enable interrupt

0 = Disable interrupt

bit 3 Unimplemented: Read as '0'

bit 2 TXQEIE: Transmit Queue Empty Interrupt Enable bit

1 = Interrupt enabled for TXQ empty

0 = Interrupt disabled for TXQ empty

bit 1 Unimplemented: Read as '0'

bit 0 TXQNIE: Transmit Queue Not Full Interrupt Enable bit

1 = Interrupt enabled for TXQ not full

0 = Interrupt disabled for TXQ not full

Note 1: These bits can only be modified in Configuration mode (OPMOD = 100).

2: This bit is updated when a message completes (or aborts) or when the FIFO is reset.

3: FRESET is set while in Configuration mode and is automatically cleared in Normal mode.

REGISTER 31-16: CFD2TXQSTA: TRANSMIT QUEUE STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — —
15:8U-0 U-0 U-0 R-0 R-0 R-0 R-0
— — —TXQCI[4:0] (1)
7:0R-0 R-0 R-0 HS/C-0 U-0 R-1 U-0 R-1
TXABT(3,2)TXLARB(3,2)TXERR(3,2)TXATIFTXQEIFTXQNIF

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 31-13 Unimplemented: Read as '0'

bit 12-8 TXQCI[4:0]: Transmit Queue Message Index bits(1)

A read of this register returns an index to the message that the FIFO attempts to transmit next.

bit 7 TXABT: Message Aborted Status bit ^(3,2)

1 = Message is aborted

0 = Message completed successfully

bit 6 TXLARB: Message Lost Arbitration Status bit ^(3,2)

1 = Message lost arbitration while being sent

0 = Message does not loose arbitration while being sent

bit 5 TXERR: Error Detected During Transmission bit ^(3,2)

1 = A bus error occurs while the message is being sent

0 = A bus error does not occur while the message is being sent

bit 4 TXATIF: Transmit Attempts Exhausted Interrupt Pending bit

1 = Interrupt is pending

0 = Interrupt is not pending

bit 3 Unimplemented: Read as '0'

bit 2 TXQEIF: Transmit Queue Empty Interrupt Flag bit

1 = TXQ is empty

0 = TXQ is not empty, at least 1 message queued to be transmitted

bit 1 Unimplemented: Read as '0'

bit 0 TXQNIF: Transmit Queue Not Full Interrupt Flag bit

1 = TXQ is not full

0 = TXQ is full

Note 1: TXQCI[4:0] gives a zero-indexed value to the message in the TXQ. If the TXQ is 4 messages deep (FSIZE=5'h03) TXQCI will take on a value of 0 to 3 depending on the state of the TXQ.

2: This bit is reset on any read of this register or when the TXQ is reset.

3: This bit is updated when a message completes (or aborts) or when the TXQ is reset.

REGISTER 31-17: CFD2FIFOCONm: FIFO CONTROL REGISTER m, (m = 1 to 15)

R = Readable bit W = Writable bit    U = Unimplemented bit, read as '0'
S = Settable bit    C = Clearable bit    x = Bit is unknown at Reset
'1' = Bit is set at Reset    '0' = Bit is cleared at Reset    HC = Hardware clear    HS = Set by Hardware only 

bit 31-29 PLSIZE[2:0]: Payload Size bits ^(1)

000 = 8 data bytes

001 = 12 data bytes

010 = 16 data bytes

011 = 20 data bytes

100 = 24 data bytes

101 = 32 data bytes

110 = 48 data bytes

111 = 64 data bytes

bit 28-24 FSIZE[4:0]: FIFO Size bits ^(1)

0 0000 = FIFO is 1 Message deep

0 0001 = FIFO is 2 Messages deep

0 0002 = FIFO is 3 Messages deep

. i_1111 = FIFO is 32 Messages deep 

bit 23 Unimplemented: Read as '0'

bit 22-21 TXAT[1:0]: Retransmission Attempts bits

This feature is enabled when CFD2.RTXAT is set.

00 = Disable retransmission attempts

01 = Three retransmission attempts

10 = Unlimited number of retransmission attempts

11 = Unlimited number of retransmission attempts

Note: Application must be able to change these bits in Normal mode. This can be used to go back on the bus after bus off to check if transmission works again.

bit 20-16 TXPRI[4:0]: Message Transmit Priority bits

00000 = Lowest Message Priority

.
.
11111 = Highest Message Priority 

bit 15-11 Unimplemented: Read as '0'

Note 1: These bits can only be modified in Configuration mode (OPMOD = 100).

2: This bit is updated when a message completes (or aborts) or when the FIFO is reset.

3: FRESET is set while in Configuration mode and is automatically cleared in Normal mode.

REGISTER 31-17: CFD2FIFOCONm: FIFO CONTROL REGISTER m, (m = 1 to 15) (CONTINUED)

bit 10 FRESET: FIFO Reset bit (3)

1 = FIFO is reset when the bit is set and cleared by hardware when FIFO is reset. User must poll whether this bit is clear before taking any action. 0 = No effect

bit 9 TXREQ: Message Send Request bit (2)

TXEN = 1 (FIFO configured as a Transmit FIFO)

1 = Requests sending a message; the bit is automatically cleared when all the messages queued in the FIFO are successfully sent

0 = Clearing the bit to '0' while set ('1') requests a message abort

TXEN = 0 (FIFO configured as a Receive FIFO)

This bit has no effect.

bit 8 UINC: Increment Head / Tail bit

TXEN = 1 (FIFO configured as a Transmit FIFO)

When this bit is set, the FIFO head increments by a single message

TXEN = 0 (FIFO configured as a Receive FIFO)

When this bit is set, the FIFO tail increments by a single message

bit 7 TXEN: TX/RX Buffer Selection bit (1)

1 = Transmit Message Object

0 = Receive Message Object

bit 6 RTREN: Auto RTR Enable bit

1 = When a remote transmit is received, TXREQ is set

0 = When a remote transmit is received, TXREQ is unaffected

bit 5 RXTSEN: Received Message Time Stamp Enable bit (1)

1 = Capture time stamp in received message object in RAM

0 = Capture time stamp is not captured

Note: Change only in Configuration mode, since it is used for address calculation.

bit 4 TXATIE: Transmit Attempts Exhausted Interrupt Enable bit

1 = Enable interrupt

0 = Disable interrupt

bit 3 RXOVIE: Overflow Interrupt Enable bit

1 = Interrupt enabled for overflow event

0 = Interrupt disabled for overflow event

bit 2 TFERFFIE: Transmit/Receive FIFO Empty/Full Interrupt Enable bit

TXEN = 1 (FIFO configured as a Transmit FIFO)

Transmit FIFO Empty Interrupt Enable

1 = Interrupt enabled for FIFO empty

0 = Interrupt disabled for FIFO empty

TXEN = 0 (FIFO configured as a Receive FIFO)

Receive FIFO Full Interrupt Enable

1 = Interrupt enabled for FIFO full

0 = Interrupt disabled for FIFO full

bit 1 TFHRFHIE: Transmit/Receive FIFO Half Empty/Half Full Interrupt Enable bit

TXEN = 1 (FIFO configured as a Transmit FIFO)

Transmit FIFO Half Empty Interrupt Enable

1 = Interrupt enabled for FIFO half empty

0 = Interrupt disabled for FIFO half empty

TXEN = 0 (FIFO configured as a Receive FIFO)

Receive FIFO Half Full Interrupt Enable

1 = Interrupt enabled for FIFO half full

0 = Interrupt disabled for FIFO half full

Note 1: These bits can only be modified in Configuration mode (OPMOD = 100).

2: This bit is updated when a message completes (or aborts) or when the FIFO is reset.

3: FRESET is set while in Configuration mode and is automatically cleared in Normal mode.

REGISTER 31-17: CFD2FIFOCONm: FIFO CONTROL REGISTER m, (m = 1 to 15) (CONTINUED)

bit 0 TFNRFNIE: Transmit/Receive FIFO Not Full/Not Empty Interrupt Enable bit

TXEN = 1 (FIFO configured as a Transmit FIFO)

Transmit FIFO Not Full Interrupt Enable

1 = Interrupt enabled for FIFO not full

0 = Interrupt disabled for FIFO not full

TXEN = 0 (FIFO configured as a Receive FIFO)

Receive FIFO Not Empty Interrupt Enable

1 = Interrupt enabled for FIFO not empty

0 = Interrupt disabled for FIFO not empty

Note 1: These bits can only be modified in Configuration mode (OPMOD = 100).

2: This bit is updated when a message completes (or aborts) or when the FIFO is reset.

3: FRESET is set while in Configuration mode and is automatically cleared in Normal mode.

REGISTER 31-18: CFD2FIFOSTAm: FIFO STATUS REGISTER m, (m = 1 to 15)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — — —
15:8U-0 U-0 U-0 R-0 R-0 R-0 R-0
— — —FIFOC[4:0](1)
7:0R-0 R-0 R-0 HS/C-0 HS/C-0 R-0 R-0 R-0
TXABT ^(3,2) TXLARB ^(3,2) TXERR ^(3,2) TXATIF RXOVIF TFERFFTFHRFHTFNRFNIF

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
‘1’ = Bit is set at Reset‘0’ = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 31-13 Unimplemented: Read as '0'

bit 4-0 FIFOCI[4:0]: FIFO Message Index bits

TXEN = 1 (FIFO configured as a Transmit Buffer)

A read of this register returns an index to the message that the FIFO attempts to transmit next.

TXEN = 0 (FIFO configured as a Receive Buffer)

A read of this register returns an index to the message that the FIFO uses to save the next message.

bit 7 TXABT: Message Aborted Status bit

1 = Message is aborted

0 = Message completed successfully

bit 6 TXLARB: Message Lost Arbitration Status bit

1 = Message lost arbitration while being sent

0 = Message does not loose arbitration while being sent

bit 5 TXERR: Error Detected During Transmission bit

1 = A bus error occurs while the message is being sent

0 = A bus error does not occur while the message is being sent

bit 4 TXATIF: Transmit Attempts Exhausted Interrupt Pending bit

TXEN = 1 (FIFO configured as a Transmit Buffer)

1 = Interrupt is pending

0 = Interrupt is not pending

TXEN = 0 (FIFO configured as a Receive Buffer)

Unused, reads '0'

bit 3 RXOVIF: Receive FIFO Overflow Interrupt Flag bit

TXEN = 1 (FIFO configured as a Transmit Buffer)

Unused, reads '0'

TXEN = 0 (FIFO configured as a Receive Buffer)

1 = Overflow event has occurred

0 = No overflow event occurred

Note 1: FIFOCI[4:0] gives a zero-indexed value to the message in the FIFO. If the FIFO is 4 messages deep (FSIZE=5'h03) FIFOCI will take on a value of 0 to 3 depending on the state of the FIFO.

2: This bit is reset on any read of this register or when the TXQ is reset.

3: This bit is updated when a message completes (or aborts) or when the FIFO is reset.

REGISTER 31-18: CFD2FIFOSTAm: FIFO STATUS REGISTER m, (m = 1 to 15) (CONTINUED)

bit 2 TFERFFIF: Transmit/Receive FIFO Empty/Full Interrupt Flag bit
TXEN = 1 (FIFO configured as a Transmit FIFO)
Transmit FIFO Empty Interrupt Flag
1 = FIFO is empty
0 = FIFO is not empty, at least 1 message queued to be transmitted
TXEN = 0 (FIFO configured as a Receive FIFO)
Receive FIFO Full Interrupt Flag
1 = FIFO is full
0 = FIFO is not full 
bit 1 TFHRFHIF: Transmit/Receive FIFO Half Empty/Half Full Interrupt Flag bit
TXEN = 1 (FIFO configured as a Transmit FIFO)
Transmit FIFO Half Empty Interrupt Flag
1 = FIFO is <= half full
0 = FIFO is > half full
TXEN=0 (FIFO configured as a Receive FIFO)
Receive FIFO Half Full Interrupt Flag
1 = FIFO is >= half full
0 = FIFO is < half full 
bit 0 TFNRFNIF: Transmit/Receive FIFO Not Full/Not Empty Interrupt Flag bit
TXEN = 1 (FIFO configured as a Transmit FIFO)
Transmit FIFO Not Full Interrupt Flag
1 = FIFO is not full
0 = FIFO is full
TXEN = 0 (FIFO configured as a Receive FIFO)
Receive FIFO Not Empty Interrupt Flag
1 = FIFO is not empty, has at least 1 message
0 = FIFO is empty 
Note 1: FIFOCI[4:0] gives a zero-indexed value to the message in the FIFO. If the FIFO is 4 messages deep (FSIZE=5'h03) FIFOCI will take on a value of 0 to 3 depending on the state of the FIFO. 
2: This bit is reset on any read of this register or when the TXQ is reset. 
3: This bit is updated when a message completes (or aborts) or when the FIFO is reset. 

REGISTER 31-19: CFD2TEFCON: TRANSMIT EVENT FIFO CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— — —FSIZE[4:0](1)
23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — —
15:8U-0 U-0 U-0 U-0 U-0 S/HC-1 U-0 S/HC-0
FRESETUINC
7:0U-0 U-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0
— —TEFTSEN(1)TEFOVIETEFFIETEFHIETEFNEIE

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
‘1’ = Bit is set at Reset‘0’ = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 31-29 Unimplemented: Read as '0'

bit 28-24 FSIZE[4:0]: FIFO Size bits ^(1)

0 0000 = FIFO is 1 message deep

0 0001 = FIFO is 2 messages deep

0_0002 = FIFO is 3 messages deep

.

1 1111 = FIFO is 32 messages deep

bit 23-11 Unimplemented: Read as '0'

bit 10 FRESET: FIFO Reset bit

1 = FIFO is reset when the bit is set and cleared by hardware. The user must poll this bit is clear before taking any action.

0 = No effect

bit 9 Unimplemented: Read as '0'

bit 8 UINC: Increment Tail bit

When this bit is set, the FIFO tail increments by a single message.

bit 7-6 Unimplemented: Read as '0

bit 5 TEFTSEN: Transmit Event FIFO Time Stamp Enable bit ^(1)

1 = Time stamp elements in TEF

0 = Don't time stamp elements in TEF

bit 4 Unimplemented: Read as '0'

bit 3 TEFOVIE: Transmit Event FIFO Overflow Interrupt Enable bit

1 = Interrupt enabled for overflow event

0 = Interrupt disabled for overflow event

bit 2 TEFFIE: Transmit Event FIFO Full Interrupt Enable bit

1 = Interrupt enabled for FIFO full

0 = Interrupt disabled for FIFO full

bit 1 TEFHIE: Transmit Event FIFO Half Full Interrupt Enable bit

1 = Interrupt enabled for FIFO half full

0 = Interrupt disabled for FIFO half full

bit 0 TEFNEIE: Transmit Event FIFO Not Empty Interrupt Enable bit

1 = Interrupt enabled for FIFO not empty

0 = Interrupt disabled for FIFO not empty

Note 1: CFD2TEFCON: These bits can only be modified in Configuration Mode (OPMOD = 100).

REGISTER 31-20: CFD2TEFSTA: TRANSMIT EVENT FIFO STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — —
15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — —
7:0U-0 U-0 U-0 U-0 HS/HC/C-0R-0 R-0 R-0
TEFOVIF(2)TEFFIF(1)TEFHIF(1)TEFNEIF(1)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 31-4 Unimplemented: Read as '0'

bit 3 TEFOVIF: Transmit Event FIFO Overflow Interrupt Flag bit ^(2)

1 = Overflow event has occurred

0 = No overflow event occurred

bit 2 TEFFIF: Transmit Event FIFO Full Interrupt Flag bit ^(1)

1 = FIFO is full

0 = FIFO is not full

bit 1 TEFHIF: Transmit Event FIFO Half Full Interrupt Flag bit ^(1)

1 = FIFO is >= half full

0 = FIFO is < half full

bit 0 TEFNEIF: Transmit Event FIFO Not Empty Interrupt Flag bit ^(1)

1 = FIFO is not empty, has at least 1 message

0 = FIFO is empty

Note 1: CFD2TEFSTA: This bit is read only and reflects the status of the FIFO.

2: TEFOVIF bit is cleared by FIFO Reset.

REGISTER 31-21: CFD2FIFOUAm: FIFO USER ADDRESS REGISTER m, (m = 1 to 15)

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-x R-x R-x R-x R-x R-xR-x R-x
FIFOUA^(1)[31:24]
23:16R-x R-x R-x R-x R-x R-xR-x R-x
FIFOUA^(1)[23:16]
15:8R-x R-x R-x R-x R-x R-xR-x R-x
FIFOUA^(1)[15:12] FIFOUA(1)[11:8]
7:0R-x R-x R-x R-x R-x R-xR-x R-x
FIFOUA^(1)[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit

C = Clearable bit

x = Bit is unknown at Reset

'1' = Bit is set at Reset

'0' = Bit is cleared at Reset

HC = Hardware clear

HS = Set by Hardware only

bit 31-0 FIFOUA[31:0]: FIFO User Address bits ^(1)

TXEN= 1 (FIFO configured as a Transmit Buffer)

A read of this register returns the address where the next message is to be written (FIFO head).

TXEN= 0 (FIFO configured as a Receive Buffer)

A read of this register returns the address where the next message is to be read (FIFO tail).

Note 1: This register is not guaranteed to read correctly in Configuration mode and must only be accessed when the module is not in Configuration mode.

REGISTER 31-22: CFD2TEFUA: TRANSMIT EVENT FIFO USER ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-x R-x Rx R-x R-x R-xR-x R-x
TEFUA ^(1) [31:24]
23:16R-x R-x Rx R-x R-x R-xR-x R-x
TEFUA ^(1) [23:16]
15:8R-x R-x Rx R-x R-x R-xR-x R-x
TEFUA ^(1) [15:12] TEFUA ^(1) [11:8]
7:0R-x R-x Rx R-x R-x R-xR-x R-x
TEFUA ^(1) [7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit

C = Clearable bit

x = Bit is unknown at Reset

'1' = Bit is set at Reset

'0' = Bit is cleared at Reset

HC = Hardware clear

HS = Set by Hardware only

bit 31-0 TEFUA[31:0]: Transmit Event FIFO User Address bits ^(1)

A read of this register returns the address where the next event is to be read (FIFO tail).

Note 1: This register is not guaranteed to read correctly in Configuration mode and must only be accessed when the module is not in Configuration mode.

REGISTER 31-23: CFD2TXQUA: TRANSMIT QUEUE USER ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-x R-x R-x R-x R-x R-xR-x R-x
TXQUA^(1) [31:24]
23:16R-x R-x R-x R-x R-x R-xR-x R-x
TXQUA^(1) [23:16]
15:8R-x R-x R-x R-x R-x R-xR-x R-x
TXQUA^(1) [15:12] TXQUA(1)[11:8]
7:0R-x R-x R-x R-x R-x R-xR-x R-x
TXQUA^(1) [7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit

C = Clearable bit

x = Bit is unknown at Reset

'1' = Bit is set at Reset

'0' = Bit is cleared at Reset

HC = Hardware clear

HS = Set by Hardware only

bit 31-0 TXQUA[31:0]: TXQ User Address bits ^(1)

A read of this register returns the address where the next message is to be written (TXQ head).

Note 1: This register is not guaranteed to read correctly in Configuration mode and must only be accessed when the module is not in Configuration mode.

REGISTER 31-24: CFD2TREC: TRANSMIT/RECEIVE ERROR COUNT REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clearHS = Set by Hardware only

bit 31-22 Unimplemented: Read as '0'

bit 21 TXBO: Transmitter in Error State Bus Off bit (TERRCNT > 255) In Configuration mode, TXBO is set, since the module is not on the bus.

bit 20 TXBP: Transmitter in Error State Bus Passive bit (TERRCNT > 127)

bit 19 RXBP: Receiver in Error State Bus Passive bit (RERRCNT > 127)

bit 18 TXWARN: Transmitter in Error State Warning bit (128 > TERRCNT > 95)

bit 17 RXWARN: Receiver in Error State Warning bit (128 > RERRCNT > 95)

bit 16 EWARN: Transmitter or Receiver is in Error State Warning bit

bit 15-8 TERRCNT[7:0]: Transmit Error Counter bits

bit 7-0 RERRCNT[7:0]: Receive Error Counter bits

REGISTER 31-25: CFD2BDIAG0: BUS DIAGNOSTICS REGISTER 0

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
DTERRCNT[7:0]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
DRERRCNT[7:0]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NTERRCNT[7:0]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
NRERRCNT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

S = Settable bit

C = Clearable bit

x = Bit is unknown at Reset

'1' = Bit is set at Reset '0' = Bit is cleared at Reset HC = Hardware clear HS = Set by Hardware only

bit 31-24 DTERRCNT[7:0]: Data Bit Rate Transmit Error Counter bits

bit 23-16 DRERRCNT[7:0]: Data Bit Rate Receive Error Counter bits

bit 15-8 NTERRCNT[7:0]: Nominal Bit Rate Transmit Error Counter bits

bit 7-0 NRERRCNT[7:0]: Nominal Bit Rate Receive Error Counter bits

Note 1: Errors are captured in the nominal error bit register bits when the bits are transmitted with nominal bit rate (In a CAN 2.0 frame or a CAN-FD frame with BRS = 0).

2: Errors are captured in the data phase error bit register bits when the bits are transmitted with data bit rate (In a CAN 2.0 frame or a CAN-FD frame with BRS = 1).

REGISTER 31-26: CFD2BDIAG1: BUS DIAGNOSTICS REGISTER 1

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0 U-0R/W-0 R/W-0
DLCMMESI DCRCERR ^(2) DSTUFERR^(2) DFORMERR^(2) — DBIT1 ERR^(2) DBIT0ERR^(2)
23:16R/W-0 U-0R/W-0 R/W0 R/W-0 R/W-0R/W-0 R/W-0
TXBOERR NCRCERR^(1) NSTUFERR^(1) NFORMERR^(1) NACKERR^(1) NBIT1ERR^(1) NBIT0ERR^(1)
15:8R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0 R/W0 R/W-0 R/W-0
EFMSGCNT[15:8]
7:0R/W-0 R/WW-0 R/W-0 R/WW-0 R/W-0 R/W0 R/W-0 R/W-0
EFMSGCNT[7:0]

Legend:

R = Readable bit W = Writable bit

U = Unimplemented bit, read as '0'

S = Settable bit

C = Clearable bit

x = Bit is unknown at Reset

'1' = Bit is set at Reset

'0' = Bit is cleared at Reset

HC = Hardware clear

HS = Set by Hardware only

bit 31 DLCMM: DLC Mismatch bit

During a transmission or reception, the specified DLC is larger than the PLSIZE of the FIFO element.

bit 30 ESI: ESI flag of a received CAN-FD message is set.

bit 29 DCRCERR: The CRC check sum of a received message is incorrect in the data phase. The CRC of an incoming message does not match with the CRC calculated from the received data. ^(2)

bit 28 DSTUFERR: More than 5 equal bits in a sequence have occurred in a part of a received message where this is not allowed. ^(2)

bit 27 DFORMERR: A fixed format part of a received frame has the wrong format. ^(2)

bit 26 Unimplemented: Read as '0'

bit 25 DBIT1ERR: During the transmission of a message (with the exception of the arbitration field), the device wanted to send a recessive level (bit of logical value '1'), but the monitored bus value is dominant. ^(2)

bit 24 DBIT0ERR: During the transmission of a message (or acknowledge bit, or active error flag, or overload flag), the device wanted to send a dominant level (data or identifier bit logical value '0'), but the monitored bus value is recessive. During Bus_Off recovery this status is set each time a sequence of 11 recessive bits has been monitored. This enables the CPU to monitor the proceeding of the Bus_Off recovery sequence (indicating the bus is not stuck at dominant or continuously disturbed). ^(2)

bit 23 TXBOERR: Device went to bus-off (and auto-recovered)

bit 22 Unimplemented: Read as '0'

bit 21 NCRCERR: The CRC check sum of a received message is incorrect. The CRC of an incoming message does not match with the CRC calculated from the received data. ^(1)

bit 20 NSTUFERR: More than 5 equal bits in a sequence have occurred in a part of a received message where this is not allowed. ^(1)

bit 19 NFORMERR: A fixed format part of a received frame has the wrong format. ^(1)

bit 18 NACKERR: Transmitted message is not acknowledged. ^(1)

bit 17 NBIT1ERR: During the transmission of a message (with the exception of the arbitration field), the device wanted to send a recessive level (bit of logical value '1'), but the monitored bus value is dominant. ^(1)

Note 1: Errors are captured in the nominal error bit register bits when the bits are transmitted with Nominal bit rate (In a CAN 2.0 frame or a CAN-FD frame with BRS = 0).

2: Errors are captured in the data phase error bit register bits when the bits are transmitted with data bit rate (In a CAN 2.0 frame or a CAN-FD frame with BRS = 1).

bit 16 NBIT0ERR: During the transmission of a message (or acknowledge bit, or active error flag, or overload flag), the device wanted to send a dominant level (data or identifier bit logical value '0'), but the monitored bus value is recessive. During Bus_Off recovery this status is set each time a sequence of 11 recessive bits has been monitored. This enables the CPU to monitor the proceeding of the Bus_Off recovery sequence (indicating the bus is not stuck at dominant or continuously disturbed). ^(1)

bit 15-0 EFMSGCNT[15:0]: Error Free Message Counter bits

Note 1: Errors are captured in the nominal error bit register bits when the bits are transmitted with Nominal bit rate (In a CAN 2.0 frame or a CAN-FD frame with BRS = 0).

2: Errors are captured in the data phase error bit register bits when the bits are transmitted with data bit rate (In a CAN 2.0 frame or a CAN-FD frame with BRS = 1).

REGISTER 31-27: CFD2FLTCONm: FILTER CONTROL REGISTER m, (m = 0 to 3, n = 0 to 31)

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN3F3BP[4:0]
23:16R/W-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN2F2BP[4:0]
15:8R/W-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN1F1BP[4:0]
7:0R/W-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
FLTEN0F0BP[4:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clear HS = Set by Hardware only

bit 7, 15, 23, FLTENn: Enable Filter n to Accept Messages bits

31

1 = Filter is enabled

0 = Filter is disabled

bit 4-0, 12-8, FnBP[4:0]: Pointer to Object when Filter n hits bits

20-16, 28-24 1 1111 = Message matching filter is stored in Object 31

1 1110 = Message matching filter is stored in Object 30

.

0 0010 = Message matching filter is stored in Object 2

0 0001 = Message matching filter is stored in Object 1

0 0000 = Reserved. Object 0 is the TX Queue and can't receive messages.

Note 1: CFD2FLTCON: These bits can only be modified if the corresponding filter is disabled (FLTEN = 0).

2: CFD2FLTCON: Maximum value of m is configured using the number of filters module parameter (m = number of filters/4 - 1)

REGISTER 31-28: CFD2FLTOBJm: FILTER OBJECT REGISTER m, (m = 0 to 15)

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— EXIDE SID11EID[17:13]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
EID[12:5]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
EID[4:0] SID[10:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SID[7:0]

Legend:

R = Readable bit W = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clearHS = Set by Hardware only

bit 31 Unimplemented: Read as '0'

bit 30 EXIDE: Extended Identifier Enable bit

If MIDE = 1:

1 = Match only messages with extended identifier addresses
0 = Match only messages with standard identifier addresses

bit 29 SID11: Standard identifier filter bit

bit 28-11 EID[17:0]: Extended Identifier filter bits

In DeviceNet mode, these are the filter bits for the first 2 data bytes

bit 10-0 SID[10:0]: Standard Identifier filter bits

Note: These registers can only be changed when the filter is disabled (CFD2FLTCON.FLTENm = 0).

REGISTER 31-29: CFD2MASKm: MASK REGISTER m, (m = 0 to 15)

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— MIDE MSID11MEID[17:13]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
MEID[12:5]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
MEID[4:0] MSID[10:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
MSID[7:0]

Legend:

R = Readable bit W = Writable bitU = Unimplemented bit, read as '0'
S = Settable bitC = Clearable bitx = Bit is unknown at Reset
'1' = Bit is set at Reset'0' = Bit is cleared at ResetHC = Hardware clearHS = Set by Hardware only

bit 31 Unimplemented: Read as '0'

bit 30 MIDE: Identifier Receive Mode bit

1 = Match only message types (standard or extended address) that correspond to EXIDE bit in filter

0 = Match either standard or extended address message if filters match

(if (Filter SID) = (Message SID) or if (Filter SID/EID) = (Message SID/EID))

bit 29 MSID11: Standard Identifier Mask bit

bit 28-11 MEID[17:0]: Extended Identifier Mask bits

In DeviceNet mode, these are the mask bits for the first 2 data bytes

bit 10-0 MSID[10:0]: Standard Identifier Mask bits

Note: These registers can only be changed when the filter is disabled (CFD2FLTCON.FLTENm = 0).

32.0 WI-FI CONTROLLER

The PIC32MZ1025W104 supports on-chip IEEE 802.11b/g/n compliant Single Input Single Output (SISO) WLAN interface with integrated transceivers. Wireless Local Area Network (WLAN) block comprises of on-chip Base Band Processor (BBP)/MAC and RF transceiver.

Key features of the WLAN sub-system include:

  • IEEE 802.11b/g/n 2.4 GHz, single stream (1x1) 20 MHz
  • Capability to operate in one of the following modes: SoftAP or STA
    • Supports IEEE 802.11 WEP, WPA, WPA2, WPA3 security
  • Transmit Power Control (TPC) and regulatory support
  • High MAC throughput via hardware accelerated A-MSDU/A-MPDU
  • Hardware support for immediate block acknowledgment and Reduced Interframe Spacing (RIFS)
    • Wi-Fi timestamping support
  • Baseband implements hardware-based calibration mechanism intended to reduce test time and improve yield

Note: For detailed information on the list of features supported in the software, refer to the Software Release Notes.

32.1 Media Access Control (MAC)

The WLAN MAC subsystem along with a software stack executing in PIC32MZ1025W104 implements the MAC functions in compliance with IEEE 802.11n specifications.

802.11 WLAN MAC hardware is responsible for sharing access of the common wireless medium between different WLAN devices. The design is optimized for best performance by moving memory intensive and time critical functionality to the hardware. Some of the features which are part of the MAC hardware are:

  • Access to the channel
  • Ensuring data integrity (positive acknowledgment, FCS)
    • Support for power management
  • Inter frame spacing required between transmission of wireless frames
    • Network allocation vector to take care of virtual carrier-sensing mechanism
  • Implementation of the time critical back-off timers
  • Encryption and decryption using the cipher engine (TKIP/CCMP)
    • CCMP and TKIP replay detection
  • Fragmentation
  • Aggregation/De-aggregation

  • Checking for Sequence number and duplicate packet detection

  • Control frame generation like Request to Send (RTS), Clear to Send (CTS), acknowledgment

32.2 Baseband Processor (BBP)/PHY

The PIC32MZ1025W104 WLAN PHY is designed to achieve reliable and power-efficient physical layer communication. The PIC32MZ1025W104 IEEE 802.11 PHY supports the following functions:

  • Single antenna 1x1 stream in 20 MHz channels.
    • Supports IEEE 802.11b DSSS-CCK and IEEE 802.11g OFDM
    • 802.11n MCS0-7 in 20 MHz
  • Support for both short guard and long guard interval
  • IEEE 802.11n mixed mode operation
    • Per packet TX power control
  • Advanced channel estimation/equalization, automatic gain control, Clear Channel Assessment (CCA), carrier/symbol recovery and frame detection

32.3 RF Transceiver

The radio architecture in the PIC32MZ1025W104 is based on a direct conversion topology employing a fully integrated synthesizer. The receiver has an on-chip LNA, while the transmitter utilizes an on-chip pre-driver for the external PA.

The key RFIC features are:

  • Ultra low-power direct conversion architecture
    • Fractional-N synthesizer
  • Fast power up/down time
  • On-chip Power Management Unit (PMU)
  • Integrated LNA and diversity feature
  • On-chip calibration (TX/RX I/Q phase/amplitude mismatch, LOFT, VCO, filter)
  • Fast settling DC offset cancellation
  • Receive RF RSSI for better interference handling
    • Support for PA pre-distortion

32.4 Cycle Time Register (CTR)

The CTR module supports Wi-Fi timestamping feature. The Cycle Time Register (CTR) maintains the common network clock, which represents the de facto notion of time within the system.

The key CTR module features are:

  • Directly applicable for 802.11v network time alignment
  • Two independent counters, each of which counts in the Linear mode or in s mode
  • Can validate a timestamp after it has been gener-

ated, used to validate reception timestamps on the Ethernet and Wi-Fi PHY/MAC

  • Buffering of multiple stamps, relaxing service interval requirements
  • Flexibility of using Ethernet PTP timestamp

The following events within the system can be timed versus this network clock. These events include network related events among other system events.

  • First bit of the preamble of Rx 802.11v timing packet at the antenna
  • First bit of the preamble of Tx of 802.11v timing packet at the antenna
  • Ethernet start of frame
  • USB Start of Frame (SoF)
  • GPIO (x2) – Configurable

33.0 ETHERNET CONTROLLER

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. It is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 35. “Ethernet Controller” (DS60001155) in the “PIC32 Family Reference Manual”, which is available from the Microchip website (www.microchip.com/PIC32).

The Ethernet Controller is a bus manager module that interfaces with an off-chip Physical Layer (PHY) to implement a complete Ethernet node in a system.

Key features of the Ethernet Controller include:

• Supports 10/100 Mbps data transfer rates
• Supports full-duplex and half-duplex operation
• Supports RMII PHY interface

• Supports both manual and automatic flow control
- RAM descriptor-based DMA operation for both receive and transmit path
- Fully configurable interrupts
- Configurable receive packet filtering
- CRC check
- 64-byte pattern match
- Broadcast, multicast and unicast packets
- Magic Packet™
- 64-bit hash table
- Runt packet

• Supports packet payload checksum calculation

• Supports various hardware statistics counters

- PIC32MZ W1 can supply reference clock to save crystal cost in PHY

• IEEE 1588 Precision Time Protocol (PTP)

The figure below illustrates a block diagram of the Ethernet Controller.

FIGURE 33-1: ETHERNET CONTROLLER BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - ETHERNET CONTROLLER - 1

flowchart
graph TD
    A["System Bus"] <--> B["TX Bus Host"]
    B <--> C["TX DMA"]
    C --> D["TX FIFO"]
    D --> E["TX BM"]
    E --> F["TX Flow Control"]
    F --> G["TX Function"]
    H["Fast Peripheral Bus"] <--> I["DMA Control Registers"]
    I <--> J["Host IF"]
    J <--> K["Ethernet Controller"]
    K <--> L["External PHY"]
    M["Ethernet DMA"] --> N["RX DMA"]
    N --> O["RX FIFO"]
    O --> P["RX BM"]
    P --> Q["RX Filter"]
    Q --> R["Checksum"]
    S["External PHY"] <--> T["REF_CLK"]
    T --> U["MAC"]
    U --> V["RX Function"]
    V --> W["MAC Control and Configuration Registers"]
    W --> X["PB3_CLK"]
    X --> Y["Host IF"]
    Y --> K

The tables below show two interfaces and the associated pins that can be used with the Ethernet Controller.

Note: Ethernet Controller pins that are not used by selected interface can be used by other peripherals.

TABLE 33-1: RMII MODE DEFAULT INTERFACE SIGNALS (FMIIEN = 0, FETHIO = 1)

Pin Name Description
EMDC Management Clock
EMDIO Management I/O
ETXEN Transmit Enable
ETXD0 Transmit Data
ETXD1 Transmit Data
EREFCLK Reference Clock
ECRSDV Carrier Sense – ReceiveData Valid
ERXD0 Receive Data
ERXD1 Receive Data
ERXERR Receive Error

TABLE 33-2: RMII MODE ALTERNATE INTERFACE SIGNALS (FMIIEN = 0, FETHIO = 0)

Pin Name Description
AEMDC Management Clock
AEMDIOManagement I/O
AETXENTransmit Enable
AETXD0Transmit Data
AETXD1Transmit Data
AEREFCLKReference Clock
AECRSDVCarrier Sense – Receive Data Valid
AERXD0Receive Data
AERXD1Receive Data
AERXERRReceive Error

33.1 Ethernet Controller Registers

TABLE 33-3: ETHERNET CONTROLLER REGISTER SUMMARY

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table (with the exception of ETHSTAT) have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: Reset values default to the factory programmed value.

TABLE 33-3: ETHERNET CONTROLLER REGISTER SUMMARY (CONTINUED)

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: All registers in this table (with the exception of ETHSTAT) have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: Reset values default to the factory programmed value.

REGISTER 33-1: ETHCON1: ETHERNET CONTROLLER CONTROL REGISTER 1

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
PTV[15:8]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
PTV[7:0]
15:8R/W-0 U-0R/W-0 U-0 U-0U-0 R/W-0 R/W-0
ONSIDLTXRTSRXEN(1)
7:0R/W-0U-0U-0R/W-0U-0U-0U-0R/W-0
AUTOFCMANFCBUFCDEC

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-16 PTV[15:0]: PAUSE Timer Value bits

PAUSE timer value used for flow control.

This register must only be written when RXEN (ETHCON1[8]) is not set.

These bits are only used for flow control operations.

bit 15 ON: Ethernet ON bit

1 = Ethernet module is enabled

0 = Ethernet module is disabled

bit 14 Unimplemented: Read as '0'

bit 13 SIDL: Ethernet Stop in Idle Mode bit

1 = Ethernet module transfers are paused during Idle mode

0 = Ethernet module transfers continue during Idle mode

bit 12-10 Unimplemented: Read as '0'

bit 9 TXRTS: Transmit Request to Send bit

1 = Activate the TX logic and send the packet(s) defined in the TX Ethernet Descriptor Table (EDT)
0 = Stop transmit (when cleared by software) or transmit done (when cleared by hardware)

After the bit is written with a '1', it clears to a '0' whenever the transmit logic has finished transmitting the requested packets in the EDT. If a '0' is written by the CPU, the transmit logic finishes the current packet's transmission and then stops any further.

This bit only affects TX operations.

bit 8 RXEN: Receive Enable bit ^(1)

1 = Enable RX logic, packets are received and stored in the RX buffer as controlled by the filter configuration
0 = Disable RX logic, no packets are received in the RX buffer

This bit only affects RX operations.

bit 7 AUTOFC: Automatic Flow Control bit

1 = Automatic flow control is enabled
0 = Automatic flow control is disabled

Setting this bit enables automatic flow control. If set, the full and empty watermarks are used to automatically enable and disable the flow control, respectively. When the number of received buffers BUFCNT (ETHSTAT[16:23]) rises to the full watermark, flow control is automatically enabled. When the BUFCNT falls to the empty watermark, flow control is automatically disabled. This bit is only used for flow control operations and affects both TX and RX operations.

bit 6-5 Unimplemented: Read as '0'

Note 1: It is not recommended to clear the RXEN bit and then make changes to any RX related field/register. The Ethernet Controller must be reinitialized (ON cleared to '0'), and then the RX changes applied.

REGISTER 33-1: ETHCON1: ETHERNET CONTROLLER CONTROL REGISTER 1 (CONTINUED)

bit 4 MANFC: Manual Flow Control bit

1 = Manual flow control is enabled
0 = Manual flow control is disabled

Setting this bit enables manual flow control. If set, the flow control logic sends a PAUSE frame using the PAUSE timer value in the PTV register. It then resends a PAUSE frame every 128 * PTV[15:0]/2 TX clock cycles until the bit is cleared.

Note: For 10 Mbps operation, TX clock runs at 2.5 MHz. For 100 Mbps operation, TX clock runs at 25 MHz.

When this bit is cleared, the flow control logic automatically sends a PAUSE frame with a 0x0000 PAUSE timer value to disable flow control. This bit is only used for flow control operations and affects both TX and RX operations.

bit 3-1 Unimplemented: Read as '0'

bit 0 BUFCDEC: Descriptor Buffer Count Decrement bit

The BUFCDEC bit is a write-1 bit that reads as '0'. When written with a '1', the BUFCNT decrements by one. If BUFCNT is incremented by the RX logic at the same time that this bit is written, the BUFCNT value remains unchanged. Writing a '0' does not have any effect. This bit is only used for RX operations.

Note 1: It is not recommended to clear the RXEN bit and then make changes to any RX related field/register. The Ethernet Controller must be reinitialized (ON cleared to '0'), and then the RX changes applied.

REGISTER 33-2: ETHCON2: ETHERNET CONTROLLER CONTROL REGISTER 2

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — —
15:8U-0 U-0U-0 U-0 U-0 R/W-0R/W-0 R/W-0 R/W-0
—— ——— RXBUFSZ[6:4]
7:0R/W-0R/W-0 R/W-0 R/W-0U-0 U-0U-0 U-0
RXBUFSZ[3:0]—— —

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-11 Unimplemented: Read as '0'

bit 10-4 RXBUFSZ[6:0]: RX Data Buffer Size for All RX Descriptors (in 16-byte increments) bits

1111111 = RX data buffer size for descriptors is 2032 bytes

1100000 = RX data buffer size for descriptors is 1536 bytes

.

0000011 = RX data buffer size for descriptors is 48 bytes

0000010 = RX data buffer size for descriptors is 32 bytes

0000001 = RX data buffer size for descriptors is 16 bytes

0000000 = Reserved

bit 3-0 Unimplemented: Read as '0'

Note 1: This register is only used for RX operations.

2: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0.

REGISTER 33-3: ETHTXST: ETHERNET CONTROLLER TX PACKET DESCRIPTOR START ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
TXSTADDR[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
TXSTADDR[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
TXSTADDR[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
TXSTADDR[7:2]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-2 TXSTADDR[31:2]: Starting Address of First Transmit Descriptor bits

This register must not be written while any transmit, receive or DMA operations are in progress. This address must be 4-byte aligned (bits 1-0 must be '00').

bit 1-0 Unimplemented: Read as '0'

Note 1: This register is only used for TX operations.

2: This register will be updated by hardware with the last descriptor used by the last successfully transmitted packet.

REGISTER 33-4: ETHRXST: ETHERNET CONTROLLER RX PACKET DESCRIPTOR START ADDRESS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
RXSTADDR[31:24]
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
RXSTADDR[23:16]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
RXSTADDR[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0U-0U-0
RXSTADDR[7:2]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-2 RXSTADDR[31:2]: Starting Address of First Receive Descriptor bits

This register must not be written while any transmit, receive or DMA operations are in progress. This address must be 4-byte aligned (bits 1-0 must be '00').

bit 1-0 Unimplemented: Read as '0'

Note 1: This register is only used for RX operations.

2: This register will be updated by hardware with the last descriptor used by the last successfully transmitted packet.

REGISTER 33-5: ETHHT0: ETHERNET CONTROLLER HASH TABLE 0 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
HT[31:24]
23:16R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
HT[23:16]
15:8R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
HT[15:8]
7:0R/W-0 R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
HT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-0 HT[31:0]: Hash Table Bytes 0-3 bits

Note 1: This register is only used for RX operations.

2: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0 or the HTEN bit (ETHRXFC[15]) = 0.

REGISTER 33-6: ETHHT1: ETHERNET CONTROLLER HASH TABLE 1 REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
HT[63:56]
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
HT[55:48]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
HT[47:40]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
HT[39:32]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-0 HT[63:32]: Hash Table Bytes 4-7 bits

Note 1: This register is only used for RX operations.

2: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0 or the HTEN bit (ETHRXFC[15]) = 0.

REGISTER 33-7: ETHPMM0: ETHERNET CONTROLLER PATTERN MATCH MASK 0 REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PMM[31:24]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PMM[23:16]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PMM[15:8]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PMM[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-24 PMM[31:24]: Pattern Match Mask 3 bits

bit 23-16 PMM[23:16]: Pattern Match Mask 2 bits

bit 15-8 PMM[15:8]: Pattern Match Mask 1 bits

bit 7-0 PMM[7:0]: Pattern Match Mask 0 bits

Note 1: This register is only used for RX operations.

2: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0 or the PMMODE bit (ETHRXFC[11:8]) = 0.

REGISTER 33-8: ETHPMM1: ETHERNET CONTROLLER PATTERN MATCH MASK 1 REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PMM[63:56]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PMM[55:48]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PMM[47:40]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
PMM[39:32]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-24 PMM[63:56]: Pattern Match Mask 7 bits

bit 23-16 PMM[55:48]: Pattern Match Mask 6 bits

bit 15-8 PMM[47:40]: Pattern Match Mask 5 bits

bit 7-0 PMM[39:32]: Pattern Match Mask 4 bits

Note 1: This register is only used for RX operations.

2: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0 or the PMMODE bit (ETHRXFC[11:8]) = 0.

REGISTER 33-9: ETHPMCS: ETHERNET CONTROLLER PATTERN MATCH CHECKSUM REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — — —
15:8R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0
PMCS[15:8]
7:0R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0
PMCS[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-8 PMCS[15:8]: Pattern Match Checksum 1 bits

bit 7-0 PMCS[7:0]: Pattern Match Checksum 0 bits

Note 1: This register is only used for RX operations.

2: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0 or the PMMODE bit (ETHRXFC[11:8]) = 0.

REGISTER 33-10: ETHPMO: ETHERNET CONTROLLER PATTERN MATCH OFFSET REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0U-0U-0U-0U-0U-0U-0U-0
23:16U-0U-0U-0U-0U-0U-0U-0U-0
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PMO[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
PMO[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 PMO[15:0]: Pattern Match Offset 1 bits

Note 1: This register is only used for RX operations.

2: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0 or the PMMODE bit (ETHRXFC[11:8]) = 0.

REGISTER 33-11: ETHRXFC: ETHERNET CONTROLLER RECEIVE FILTER CONFIGURATION REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — — — —— — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — — — —— — —
15:8R/W-0R/W-0U-0R/W-0R/W-0R/W-0R/W-0R/W-0
HTENMPENNOTPMPMMODE[3:0]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
CRCERRENCRCOKENRUNTERRENRUNTENUCENNOTMEENMCENBCEN

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15 HTEN: Enable Hash Table Filtering bit

1 = Enable Hash Table Filtering

0 = Disable Hash Table Filtering

bit 14 MPEN: Magic Packet Enable bit

1 = Enable magic packet filtering

0 = Disable magic packet filtering

bit 13 Unimplemented: Read as '0'

bit 12 NOTPM: Pattern Match Inversion bit

1 = Pattern match checksum must not match for a successful pattern match to occur

0 = Pattern match checksum must match for a successful pattern match to occur

This bit determines whether pattern match checksum must match in order for a successful pattern match to occur.

Note 1: XOR = True when either one or the other conditions are true, but not both.

2: This hash table filter match is active regardless of the value of the HTEN bit.

3: This magic packet filter match is active regardless of the value of the MPEN bit.

4: This register is only used for RX operations.

5: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0.

REGISTER 33-11: ETHRXFC: ETHERNET CONTROLLER RECEIVE FILTER CONFIGURATION REGISTER (CONTINUED)

bit 11-8 PMMODE[3:0]: Pattern Match Mode bits

1001 = Pattern match is successful if (NOTPM = 1 XOR Pattern Match Checksum matches) AND (Packet = Magic Packet) ^(1,3)

1000 = Pattern match is successful if (NO

TPM = 1 XOR Pattern Match Checksum matches) AND (Hash Table Filter match) ^(1,1)

0111 = Pattern match is successful if (NOTPM = 1 XOR Pattern Match Checksum matches) AND (Destination Address = Broadcast Address) ^(1)

0110 = Pattern match is successful if (NOTPM = 1 XOR Pattern Match Checksum matches) AND (Destination Address = Broadcast Address) ^(1)

0101 = Pattern match is successful if (NOTPM = 1 XOR Pattern Match Checksum matches) AND (Destination Address = Unicast Address) ^(1)

0100 = Pattern match is successful if (NOTPM = 1 XOR Pattern Match Checksum matches) AND (Destination Address = Unicast Address) ^(1)

0011 = Pattern match is successful if (NOTPM = 1 XOR Pattern Match Checksum matches) AND (Destination Address = Station Address) ^(1)

0010 = Pattern match is successful if (NOTPM = 1 XOR Pattern Match Checksum matches) AND (Destination Address = Station Address) ^(1)

0001 = Pattern match is successful if (NOTPM = 1 XOR Pattern Match Checksum matches) ^(1)

0000 = Pattern Match is disabled; pattern match is always unsuccessful

bit 7 CRCERREN: CRC Error Collection Enable bit

1 = The received packet CRC must be invalid for the packet to be accepted

0 = Disable CRC Error Collection filtering

This bit allows the user to collect all packets that have an invalid CRC.

bit 6 CRCOKEN: CRC OK Enable bit

1 = The received packet CRC must be valid for the packet to be accepted

0 = Disable CRC filtering

This bit allows the user to reject all packets that have an invalid CRC.

bit 5 RUNTERREN: Runt Error Collection Enable bit

1 = The received packet must be a runt packet for the packet to be accepted

0 = Disable Runt Error Collection filtering

This bit allows the user to collect all packets that are runt packets. For this filter, a runt packet is defined as any packet with a size of less than 64 bytes (when CRCOKEN = 0) or any packet with a size of less than 64 bytes that has a valid CRC (when CRCOKEN = 1).

bit 4 RUNTEN: Runt Enable bit

1 = The received packet must not be a runt packet for the packet to be accepted

0 = Disable Runt filtering

This bit allows the user to reject all runt packets. For this filter, a runt packet is defined as any packet with a size of less than 64 bytes.

bit 3 UCEN: Unicast Enable bit

1 = Enable unicast filtering

0 = Disable unicast filtering

This bit allows the user to accept all unicast packets whose Destination Address matches the Station Address.

Note 1: XOR = True when either one or the other conditions are true, but not both.

2: This hash table filter match is active regardless of the value of the HTEN bit.

3: This magic packet filter match is active regardless of the value of the MPEN bit.

4: This register is only used for RX operations.

5: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0.

REGISTER 33-11: ETHRXFC: ETHERNET CONTROLLER RECEIVE FILTER CONFIGURATION REGISTER (CONTINUED)

bit 2 NOTMEEN: Not Me Unicast Enable bit

1 = Enable not me unicast filtering
0 = Disable not me unicast filtering

This bit allows the user to accept all unicast packets whose destination address does not match the station address.

bit 1 MCEN: Multicast Enable bit

1 = Enable multicast filtering
0 = Disable multicast filtering

This bit allows the user to accept all multicast address packets.

bit 0 BCEN: Broadcast Enable bit

1 = Enable broadcast filtering
0 = Disable broadcast filtering

This bit allows the user to accept all broadcast address packets.

Note 1: XOR = True when either one or the other conditions are true, but not both.

2: This hash table filter match is active regardless of the value of the HTEN bit.
3: This magic packet filter match is active regardless of the value of the MPEN bit.
4: This register is only used for RX operations.
5: The bits in this register may only be changed while the RXEN bit (ETHCON1[8]) = 0.

REGISTER 33-12: ETHRXWM: ETHERNET CONTROLLER RECEIVE WATERMARKS REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — — —
23:16R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0
RXFWM[7:0]
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—— ——— — — — —
7:0R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0
RXEWM[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-24 Unimplemented: Read as '0'

bit 23-16 RXFWM[7:0]: Receive Full Watermark bits

The software controlled RX buffer full watermark pointer is compared against the RX BUFCNT to determine the Full Watermark condition for the FWMARK interrupt and for enabling flow control when automatic flow control is enabled. The full watermark pointer must always be greater than the empty watermark pointer.

bit 15-8 Unimplemented: Read as '0'

bit 7-0 RXEWM[7:0]: Receive Empty Watermark bits

The software controlled RX buffer empty watermark pointer is compared against the RX BUFCNT to determine the Empty Watermark condition for the EWMARK interrupt and for disabling flow control when automatic flow control is enabled. The empty watermark pointer must always be less than the full watermark pointer.

Note: This register is only used for RX operations.

REGISTER 33-13: ETHIEN: ETHERNET CONTROLLER INTERRUPT ENABLE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — —
23:16U-0 U-0 U-0 U-0 U-0 U-0
— — —— — — —
15:8U-0R/W-0R/W-0U-0U-0U-0R/W-0R/W-0
TXBUSEIE ^(1) RXBUSEIE ^(2) EWMARKIE ^(2) FWMARKIE ^(2)
7:0R/W-0R/W-0R/W-0U-0R/W-0R/W-0R/W-0R/W-0
RXDONEIE ^(2) PKTPENDIE ^(2) RXACTIE ^(2) TXDONEIE ^(1) TXABORTIE ^(1) RXBUFNAIE ^(2) RXOVFLWIE ^(2)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-15 Unimplemented: Read as '0'

bit 14 TXBUSEIE: Transmit BVCI Bus Error Interrupt Enable bit ^(1)

1 = Enable TXBUS error interrupt
0 = Disable TXBUS error interrupt

bit 13 RXBUSEIE: Receive BVCI Bus Error Interrupt Enable bit ^(2)

1 = Enable RXBUS error interrupt
0 = Disable RXBUS error interrupt

bit 12-10 Unimplemented: Read as '0'

bit 9 EWMARKIE: Empty Watermark Interrupt Enable bit ^(2)

1 = Enable EWMARK interrupt
0 = Disable EWMARK interrupt

bit 8 FWMARKIE: Full Watermark Interrupt Enable bit ^(2)

1 = Enable FWMARK interrupt
0 = Disable FWMARK interrupt

bit 7 RXDONEIE: Receiver Done Interrupt Enable bit ^(2)

1 = Enable RXDONE interrupt
0 = Disable RXDONE interrupt

bit 6 PKTPENDIE: Packet Pending Interrupt Enable bit ^(2)

1 = Enable PKTPEND interrupt
0 = Disable PKTPEND interrupt

bit 5 RXACTIE: RX Activity Interrupt Enable bit

1 = Enable RXACT interrupt
0 = Disable RXACT interrupt

bit 4 Unimplemented: Read as '0'

bit 3 TXDONEIE: Transmitter Done Interrupt Enable bit ^(1)

1 = Enable TXDONE interrupt
0 = Disable TXDONE interrupt

bit 2 TXABORTIE: Transmitter Abort Interrupt Enable bit ^(1)

1 = Enable TXABORT interrupt
0 = Disable TXABORT interrupt

bit 1 RXBUFNAIE: Receive Buffer Not Available Interrupt Enable bit ^(2)

1 = Enable RXBUFNA interrupt
0 = Disable RXBUFNA interrupt

bit 0 RXOVFLWIE: Receive FIFO Overflow Interrupt Enable bit ^(2)

1 = Enable RXOVFLW interrupt
0 = Disable RXOVFLW interrupt

Note 1: This bit is only used for TX operations.

2: This bit is only used for RX operations.

REGISTER 33-14: ETHIRQ: ETHERNET CONTROLLER INTERRUPT REQUEST REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 R/WU-0 R/W-0 U-0 UU-0 U-0 R/W-0R/W-0
TXBUSE(1)RXBUSE(2)EWMARK(2)FWMARK(2)
7:0R/W-0R/W-0R/W-0U-0R/W-0R/W-0R/W-0R/W-0
RXDONE(2)PKTPEND(2)RXACT(2)TXDONE(1)TXABORT(1)RXBUFNA(2)RXOVFLW(2)

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-15 Unimplemented: Read as '0'

bit 14 TXBUSE: Transmit BVCI Bus Error Interrupt bit ^(1)

1 = BVCI bus error has occurred
0 = BVCI bus error has not occurred

This bit is set when the TX DMA encounters a BVCI bus error during a memory access. It is cleared by either a Reset or CPU write of a '1' to the CLR register.

bit 13 RXBUSE: Receive BVCI Bus Error Interrupt bit ^(2)

1 = BVCI bus error has occurred
0 = BVCI bus error has not occurred

This bit is set when the RX DMA encounters a BVCI Bus error during a memory access. It is cleared by either a Reset or CPU write of a '1' to the CLR register.

bit 12-10 Unimplemented: Read as '0'

bit 9 EWMARK: Empty Watermark Interrupt bit ^(2)

1 = Empty watermark pointer reached
0 = No interrupt pending

This bit is set when the RX descriptor buffer count is less than or equal to the value in the RXEWM bit (ETHRXWM[0:7]) value. It is cleared by BUFCNT bit (ETHSTAT[16:23]) being incremented by hardware. Writing a '0' or a '1' has no effect.

bit 8 FWMARK: Full Watermark Interrupt bit ^(2)

1 = Full Watermark pointer reached
0 = No interrupt pending

This bit is set when the RX descriptor buffer count is greater than or equal to the value in the RXFWM bit (ETHRXWM[16:23]) field. It is cleared by writing the BUFCDEC (ETHCON1[0]) bit to decrement the BUFCNT counter. Writing a '0' or a '1' has no effect.

Note 1: This bit is only used for TX operations.

2: This bit is are only used for RX operations.
3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must only be done for debug/test purposes.

REGISTER 33-14: ETHIRQ: ETHERNET CONTROLLER INTERRUPT REQUEST REGISTER (CONTINUED)

bit 7 RXDONE: Receive Done Interrupt bit (2)

1 = RX packet was successfully received

0 = No interrupt pending

This bit is set whenever an RX packet is successfully received. It is cleared by either a Reset or CPU write of a '1' to the CLR register.

bit 6 PKTPEND: Packet Pending Interrupt bit (2)

1 = RX packet pending in memory

0 = RX packet is not pending in memory

This bit is set when the BUFCNT counter has a value other than '0'. It is cleared by either a Reset or by writing the BUFCDEC bit to decrement the BUFCNT counter. Writing a '0' or a '1' has no effect.

bit 5 RXACT: Receive Activity Interrupt bit (2)

1 = RX packet data was successfully received

0 = No interrupt pending

This bit is set whenever RX packet data is stored in the RXBM FIFO. It is cleared by either a Reset or CPU write of a '1' to the CLR register.

bit 4 Unimplemented: Read as '0'

bit 3 TXDONE: Transmit Done Interrupt bit (1)

1 = TX packet was successfully sent

0 = No interrupt pending

This bit is set when the present TX packet completes transmission, and the transmit status vector is loaded into the first descriptor used for the packet. It is cleared by either a Reset or CPU write of a '1' to the CLR register.

bit 2 TXABORT: Transmit Abort Condition Interrupt bit ^(1)

1 = TX Abort condition occurred on the last TX packet

0 = No interrupt pending

This bit is set when the MAC aborts the transmission of a TX packet for one of the following reasons:

• Jumbo TX packet abort

- Underrun abort

• Excessive defer abort

- Late collision abort

• Excessive collisions abort

This bit is cleared by either a Reset or CPU write of a '1' to the CLR register.

bit 1 RXBUFNA: Receive Buffer Not Available Interrupt bit ^(2)

1 = RX BD Not Available condition has occurred

0 = No interrupt pending

This bit is set by a RX BD Overrun condition. It is cleared by either a Reset or a CPU write of a '1' to the CLR register.

bit 0 RXOVFLW: Receive FIFO Over Flow Error bit (2)

1 = RX FIFO Overflow Error condition has occurred

0 = No interrupt pending

RXOVFLW is set by the RXBM Logic for an RX FIFO Overflow condition. It is cleared by either a Reset or CPU write of a '1' to the CLR register.

Note 1: This bit is only used for TX operations.

2: This bit is are only used for RX operations.

3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must only be done for debug/test purposes.

REGISTER 33-15: ETHSTAT: ETHERNET CONTROLLER STATUS REGISTER

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-24 Unimplemented: Read as '0'

bit 23-16 BUFCNT[7:0]: Packet Buffer Count bits ^(1)

Number of packet buffers received in memory. Once a packet has been successfully received, this register is incremented by hardware based on the number of descriptors used by the packet. Software decrements the counter (by writing to the BUFCDEC bit (ETHCON1[0]) for each descriptor used) after a packet has been read out of the buffer. The register does not roll over (0xFF to 0x00) when hardware tries to increment the register and the register is already at 0xFF. Conversely, the register does not roll under (0x00 to 0xFF) when software tries to decrement the register and the register is already at 0x0000. When software attempts to decrement the counter at the same time that the hardware attempts to increment the counter, the counter value remains unchanged.

When this register value reaches 0xFF, the RX logic halts (only if automatic flow control is enabled) awaiting software to write the BUFCDEC bit in order to decrement the register below 0xFF.

If automatic flow control is disabled, the RXDMA continues processing and the BUFCNT saturates at a value of 0xFF.

When this register is non-zero, the PKTPEND status bit is set and an interrupt may be generated, depending on the value of the ETHIEN bit [PKTPENDIE] register.

When the ETHRXST register is written, the BUFCNT counter is automatically cleared to 0x00.

Note: BUFCNT is not cleared when ON is set to '0'. This enables software to continue to utilize and decrement this count.

bit 15-8 Unimplemented: Read as '0'

bit 7 ETHBUSY: Ethernet Module Busy bit ^(5)

1 = Ethernet logic turns on (ON (ETHCON1[15]) = 1) or is completing a transaction 0 = Ethernet logic is idle

This bit indicates that the module has been turned on or is completing a transaction after being turned off.

Note 1: This bit is only used for RX operations.

2: This bit is only affected by TX operations.
3: This bit is only affected by RX operations.
4: This bit is affected by TX and RX operations.
5: This bit is set when the ON bit (ETHCON1[15]) = 1.
6: This bit is cleared when the ON bit (ETHCON1[15]) = 0.

REGISTER 33-15: ETHSTAT: ETHERNET CONTROLLER STATUS REGISTER (CONTINUED)

bit 6 TXBUSY: Transmit Busy bit (2,6)

1 = TX logic is receiving data
0 = TX logic is idle

This bit indicates that a packet is currently being transmitted. A change in this status bit is not necessarily reflected by the TXDONE interrupt, as TX packets may be aborted or rejected by the MAC.

bit 5 RXBUSY: Receive Busy bit (3,6)

1 = RX logic is receiving data

0 = RX logic is idle

This bit indicates that a packet is currently being received. A change in this status bit is not necessarily reflected by the RXDONE interrupt, as RX packets may be aborted or rejected by the RX filter.

bit 4-0 Unimplemented: Read as '0'

Note 1: This bit is only used for RX operations.

2: This bit is only affected by TX operations.
3: This bit is only affected by RX operations.
4: This bit is affected by TX and RX operations.
5: This bit is set when the ON bit (ETHCON1[15]) = 1.
6: This bit is cleared when the ON bit (ETHCON1[15]) = 0.

REGISTER 33-16: ETHRXOVFLOW: ETHERNET CONTROLLER RECEIVE OVERFLOW STATISTICS REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
15:8R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0
RXOVFLWCNT[15:8]
7:0R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0
RXOVFLWCNT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 RXOVFLWCNT[15:0]: Dropped Receive Frames Count bits

Increment counter for frames accepted by the RX filter and subsequently dropped due to internal receive error (RXFIFO overrun). This event also sets the RXOVFLW bit (ETHIRQ[0]) Interrupt flag.

Note 1: This register is only used for RX operations.

2: This register is automatically cleared by hardware after a read operation, unless the byte enables for bytes 0/1 are '0'.
3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must only be done for debug/test purposes.

REGISTER 33-17: ETHFRMTXOK: ETHERNET CONTROLLER FRAMES TRANSMITTED OK STATISTICS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0R/W-0 R/W-0
FRMTXOKCNT[15:8]
7:0R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0R/W-0 R/W-0
FRMTXOKCNT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 FRMTXOKCNT[15:0]: Frame Transmitted OK Count bits Increment counter for frames successfully transmitted.

Note 1: This register is only used for TX operations.

2: This register is automatically cleared by hardware after a read operation, unless the byte enables for bytes 0/1 are '0'.
3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must only be done for debug/test purposes.

REGISTER 33-18: ETHSCOLFRM: ETHERNET CONTROLLER SINGLE COLLISION FRAMES STATISTICS REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
—————— ——
15:8R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/W-0
SCOLFRMCNT[15:8]
7:0R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0
SCOLFRMCNT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 SCOLFRMCNT[15:0]: Single Collision Frame Count bits

Increment count for frames that were successfully transmitted on the second try.

Note 1: This register is only used for TX operations.

2: This register is automatically cleared by hardware after a read operation, unless the byte enables for bytes 0/1 are '0'.
3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must only be done for debug/test purposes.

REGISTER 33-19: ETHMCOLFRM: ETHERNET CONTROLLER MULTIPLE COLLISION FRAMES STATISTICS REGISTER

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR

'1' = Bit is set

'0' = Bit is cleared

x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 MCOLFRMCNT[15:0]: Multiple Collision Frame Count bits

Increment count for frames that were successfully transmitted after there was more than one collision.

Note 1: This register is only used for TX operations.

2: This register is automatically cleared by hardware after a read operation, unless the byte enables for bytes 0/1 are '0'.

3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must only be done for debug/test purposes.

REGISTER 33-20: ETHFRMRXOK: ETHERNET CONTROLLER FRAMES RECEIVED OK STATISTICS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0R/W-0 R/W-0
FRMRXOKCNT[15:8]
7:0R/W-0 R/WR/W-0 R/W-0 R/WR/W-0 R/W-0R/W-0 R/W-0
FRMRXOKCNT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 FRMRXOKCNT[15:0]: Frames Received OK Count bits

Increment count for frames received successfully by the RX filter. This count is not incremented if there is a Frame Check Sequence (FCS) or alignment error.

Note 1: This register is only used for RX operations.

2: This register is automatically cleared by hardware after a read operation, unless the byte enables for bytes 0/1 are '0'.
3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must only be done for debug/test purposes.

REGISTER 33-21: ETHFCSERR: ETHERNET CONTROLLER FRAME CHECK SEQUENCE ERROR STATISTICS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0 U-U-0 U-0 U-0 U-0U-0 U-0
—————— ——
15:8R/W-0 R/W-R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
FCSERRCNT[15:8]
7:0R/W-0 R/W-R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
FCSERRCNT[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR

'1' = Bit is set

'0' = Bit is cleared

x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 FCSERRCNT[15:0]: FCS Error Count bits

Increment count for frames received with FCS error and the frame length in bits is an integral multiple of 8 bits.

Note 1: This register is only used for RX operations.

2: This register is automatically cleared by hardware after a read operation, unless the byte enables for bytes 0/1 are '0'.

3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must be only done for debug/test purposes.

REGISTER 33-22: ETHALGNERR: ETHERNET CONTROLLER ALIGNMENT ERRORS STATISTICS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
15:8R/W-0 R/W-R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
ALGNERRCNT[15:8]
7:0R/W-0 R/W-R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
ALGNERRCNT[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 x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 ALGNERRCNT[15:0]: Alignment Error Count bits

Increment count for frames with alignment errors. Note that an alignment error is a frame that has an FCS error and the frame length in bits is not an integral multiple of 8 bits (dribble nibble).

Note 1: This register is only used for RX operations.

2: This register is automatically cleared by hardware after a read operation, unless the byte enables for bytes 0/1 are '0'.
3: It is recommended to use the SET, CLR, or INV registers to set or clear any bit in this register. Setting or clearing any bits in this register must be only done for debug/test purposes.

REGISTER 33-23: EMAC1CFG1: ETHERNET CONTROLLER MAC CONFIGURATION 1 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8R/W-1R/W-0U-0U-0R/W-0R/W-0R/W-0R/W-0
SOFT RESETSIM RESETRESET RMCSRESET RFUNRESET TMCSRESET TFUN
7:0U-0U-0U-0R/W-0R/W-1R/W-1R/W-0R/W-1
LOOPBACKTXPAUSERXPAUSEPASSALLRXENABLE

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15 SOFTRESET: Soft Reset bit

Setting this bit puts the MACMII in Reset. Its default value is '1'.

bit 14 SIMRESET: Simulation Reset bit

Setting this bit causes a Reset to the random number generator within the transmit function.

bit 13-12 Unimplemented: Read as '0'

bit 11 RESETRMCS: Reset MCS/RX bit

Setting this bit puts the MAC control sub-layer/receive domain logic in Reset.

bit 10 RESETRFUN: Reset RX Function bit

Setting this bit puts the MAC receive function logic in Reset.

bit 9 RESETTMCS: Reset MCS/TX bit

Setting this bit puts the MAC Control Sub-layer/TX domain logic in Reset.

bit 8 RESETTFUN: Reset TX Function bit

Setting this bit puts the MAC transmit function logic in Reset.

bit 7-5 Unimplemented: Read as '0'

bit 4 LOOPBACK: MAC Loopback mode bit

1 = MAC transmit interface is loop backed to the MAC Receive interface

0 = MAC normal operation

bit 3 TXPAUSE: MAC TX Flow Control bit

1 = PAUSE flow control frames are allowed to be transmitted

0 = PAUSE flow control frames are blocked

bit 2 RXPAUSE: MAC RX Flow Control bit

1 = The MAC acts upon received PAUSE flow control frames

0 = Received PAUSE flow control frames are ignored

bit 1 PASSALL: MAC Pass all Receive Frames bit

1 = The MAC accepts all frames regardless of type (normal vs. control)

0 = The received Control frames are ignored

bit 0 RXENABLE: MAC Receive Enable bit

1 = Enable the MAC receiving of frames

0 = Disable the MAC receiving of frames

Note: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

REGISTER 33-24: EMAC1CFG2: ETHERNET CONTROLLER MAC CONFIGURATION 2 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 25/16/8/0
31:24U-0 U-0 U-0U-0 U-0 U-0U-0
— — —— —— —
23:16U-0 U-0 U-0U-0 U-0 U-0U-0
— — —— —— —
15:8U-0R/W-1R/W-0R/W-0U-0U-0R/W-0R/W-0
EXCESS DFRBPNOBK OFFNOBK OFFLONGPREPUREPRE
7:0R/W-1R/W-0R/W-1R/W-1R/W-0R/W-0R/W-1R/W-0
AUTOPAD^(1,2) VLANPAD^(1,2) PADENABLE^(1,3) CRCENABLEDELAYCRCHUGEFRMLENGTHCKFULLDPLX

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-15 Unimplemented: Read as '0'

bit 14 EXCESSDER: Excess Defer bit

1 = MAC defers to carrier indefinitely as per the standard
0 = MAC aborts when the excessive deferral limit is reached

bit 13 BPNOBKOFF: Backpressure/No Backoff bit

1 = MAC after incidentally causing a collision during backpressure, immediately retransmits without backoff reducing the chance of further collisions and ensuring transmit packets get sent
0 = MAC does not remove the backoff

bit 12 NOBKOFF: No Backoff bit

1 = Following a collision, the MAC immediately retransmits rather than using the Binary Exponential Backoff algorithm as specified in the standard
0 = Following a collision, the MAC uses the Binary Exponential Backoff algorithm

bit 11-10 Unimplemented: Read as '0'

bit 9 LONGPRE: Long Preamble Enforcement bit

1 = MAC only allows receive packets which contain preamble fields less than 12 bytes in length
0 = MAC allows any length preamble as per the standard

bit 8 PUREPRE: Pure Preamble Enforcement bit

1 = MAC verifies the content of the preamble to ensure it contains 0x55 and is error-free. A packet with errors in its preamble is discarded
0 = MAC does not perform any preamble checking

bit 7 AUTOPAD: Automatic Detect Pad Enable bit ^(1,2)

1 = MAC automatically detects the type of frame, either tagged or untagged, by comparing the two octets following the source address with 0x8100 (VLAN Protocol ID) and pad accordingly
0 = MAC does not perform automatic detection

bit 6 VLANPAD: VLAN Pad Enable bit ^(1,2)

1 = MAC pads all short frames to 64 bytes and append a valid CRC
0 = MAC does not perform padding of short frames

Note 1: Table 33-4 provides a description of the pad function based on the configuration of this register.

2: This bit is ignored if the PADENABLE bit is cleared.
3: This bit is used in conjunction with the AUTOPAD and VLANPAD bits.
4: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

REGISTER 33-24: EMAC1CFG2: ETHERNET CONTROLLER MAC CONFIGURATION 2 REGISTER

bit 5 PADENABLE: Pad/CRC Enable bit (1,3)

1 = MAC pads all short frames
0 = Frames presented to the MAC have a valid length

bit 4 CRCENABLE: CRC Enable1 bit

1 = MAC appends a CRC to every frame whether padding was required or not. Must be set if the PADENABLE bit is set.
0 = Frames presented to the MAC have a valid CRC

bit 3 DELAYCRC: Delayed CRC bit

This bit determines the number of bytes, if any, of proprietary header information that exist on the front of the IEEE 802.3 frames.

1 = Four bytes of header (ignored by the CRC function)
0 = No proprietary header

bit 2 HUGEFRM: Huge Frame enable bit

1 = Frames of any length are transmitted and received
0 = Huge frames are not allowed for receive or transmit

bit 1 LENGTHCK: Frame Length checking bit

1 = Both transmit and receive frame lengths are compared to the length/type field. If the length/type field represents a length then the check is performed. Mismatches are reported on the transmit/receive statistics vector.
0 = Length/type field check is not performed

bit 0 FULLDPLX: Full-Duplex Operation bit

1 = MAC operates in Full-Duplex mode
0 = MAC operates in Half-Duplex mode

Note 1: Table 33-4 provides a description of the pad function based on the configuration of this register.

2: This bit is ignored if the PADENABLE bit is cleared.
3: This bit is used in conjunction with the AUTOPAD and VLANPAD bits.
4: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-7 Unimplemented: Read as '0'

bit 6-0 B2BIPKTGP[6:0]: Back-to-Back Interpacket Gap bits

This is a programmable field representing the nibble time offset of the minimum possible period between the end of any transmitted packet to the beginning of the next. In Full-Duplex mode, the register value must be the desired period in nibble times minus 3. In Half-Duplex mode, the register value must be the desired period in nibble times minus 6. In Full-Duplex mode, the recommended setting is 0x15 (21d), which represents the minimum IPG of 0.96 μs (in 100 Mbps) or 9.6 μs (in 10 Mbps). In Half-Duplex mode, the recommended setting is 0x12 (18d), which also represents the minimum IPG of 0.96 μs (in 100 Mbps) or 9.6 μs (in 10 Mbps).

Note: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

REGISTER 33-26: EMAC1IPGR: ETHERNET CONTROLLER MAC NON-BACK-TO-BACK INTERPACKET GAP REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-15 Unimplemented: Read as '0'

bit 14-8 NB2BIPKTGP1[6:0]: Non-Back-to-Back Interpacket Gap Part 1 bits

This is a programmable field representing the optional carrierSense window referenced in Section 4.2.3.2.1 "Deference" of the IEEE 802.3 Specification. If carrier is detected during the timing of IPGR1, the MAC defers to carrier. If, however, carrier becomes after IPGR1, the MAC continues timing IPGR2 and transmits, knowingly causing a collision, thus ensuring fair access to medium. Its range of values is 0x0 to IPGR2. Its recommend value is 0xC (12d).

bit 7 Unimplemented: Read as '0'

bit 6-0 NB2BIPKTGP2[6:0]: Non-Back-to-Back Interpacket Gap Part 2 bits

This is a programmable field representing the non-back-to-back Inter-Packet-Gap. Its recommended value is 0x12 (18d), which represents the minimum IPG of 0.96 s (in 100 Mbps) or 9.6 s (in 10 Mbps).

Note: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

REGISTER 33-27: EMAC1CLRT: ETHERNET CONTROLLER MAC COLLISION WINDOW/RETRY LIMIT REGISTER

R = Readable bitW = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31-14 Unimplemented: Read as '0'

bit 13-8 CWINDOW[5:0]: Collision Window bits

This is a programmable field representing the slot time or collision window during which collisions occur in properly configured networks. Since the collision window starts at the beginning of transmission, the preamble and SFD is included. Its default of 0x37 (55d) corresponds to the count of frame bytes at the end of the window.

bit 7-4 Unimplemented: Read as '0'

bit 3-0 RETX[3:0]: Retransmission Maximum bits

This is a programmable field specifying the number of retransmission attempts following a collision before aborting the packet due to excessive collisions. The Standard specifies the maximum number of attempts (attemptLimit) to be 0xF (15d). Its default is '0xF'.

Note: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

REGISTER 33-28: EMAC1MAXF: ETHERNET CONTROLLER MAC MAXIMUM FRAME LENGTH REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-0 MACMAXF[15:0]: Maximum Frame Length bits ^(1)

These bits reset to 0x05EE, which represents a maximum receive frame of 1518 octets. An untagged maximum size Ethernet frame is 1518 octets. A tagged frame adds four octets for a total of 1522 octets. If a shorter/longer maximum length restriction is desired, program this 16-bit field.

Note 1: If a proprietary header is allowed, this bit must be adjusted accordingly. For example, if 4-byte headers are prepended to frames, MACMAXF could be set to 1527 octets. This would allow the maximum VLAN tagged frame plus the 4-byte header.

2: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

REGISTER 33-29: EMAC1SUPP: ETHERNET CONTROLLER MAC PHY SUPPORT REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 U-0 R/W-0U-0 U-0R/W-0
— — —RESETRMII(1)— —SPEEDRMII(1)
7:0U-0 U-0U-0 U-0 U-0 U-0U-0 U-0 U-0
— — —— — — — —

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-12 Unimplemented: Read as '0'

bit 11 RESETRMII: Reset RMII Logic bit ^(1)

1 = Reset the MAC RMII module

0 = Normal operation

bit 10-9 Unimplemented: Read as '0'

bit 8 SPEEDRMII: RMII Speed bit ^(1)

This bit configures the reduced MII logic for the current operating speed.

1 = RMII is running at 100 Mbps

0 = RMII is running at 10 Mbps

bit 7-0 Unimplemented: Read as '0'

Note 1: This bit is only used for the RMII module.

2: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

REGISTER 33-30: EMAC1TEST: ETHERNET CONTROLLER MAC TEST REGISTER

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-3 Unimplemented: Read as '0'

bit 2 TESTBP: Test Backpressure bit

1 = MAC asserts backpressure on the link. Backpressure causes preamble to be transmitted, raising carrier sense. A transmit packet from the system is sent during backpressure.

0 = Normal operation

bit 1 TESTPAUSE: Test PAUSE bit ^(1)

1 = MAC control sub-layer inhibits transmissions, just as if a PAUSE receive control frame with a non-zero pause time parameter was received 0 = Normal operation

bit 0 SHRTQNTA: Shortcut PAUSE Quanta bit ^(1)

1 = MAC reduces the effective PAUSE Quanta from 64 byte-times to 1 byte-time

0 = Normal operation

Note 1: This bit is only used for testing purposes.

2: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware

REGISTER 33-31: EMAC1SA0: ETHERNET CONTROLLER MAC STATION ADDRESS 0 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—————— —
15:8R/W-PR/W-PR/W-PR/W-PR/W-PR/W-PR/W-PR/W-P
STNADDR6[7:0]
7:0R/W-PR/W-PR/W-PR/W-PR/W-PR/W-PR/W-PR/W-P
STNADDR5[7:0]
Legend:P = Programmable bit
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-8 STNADDR6[7:0]: Station Address Octet 6 bits

These bits hold the sixth transmitted octet of the station address.

bit 7-0 STNADDR5[7:0]: Station Address Octet 5 bits

These bits hold the fifth transmitted octet of the station address.

Note 1: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

2: This register is loaded at Reset from the factory preprogrammed station address.

REGISTER 33-32: EMAC1SA1: ETHERNET CONTROLLER MAC STATION ADDRESS 1 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0 U-0U-0 U-0
—————— ——
23:16U-0 U-0 U-U-0 U-0 U-0 U-0U-0 U-0
—————— ——
15:8R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P
STNADDR4[7:0]
7:0R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P
STNADDR3[7:0]

Legend: P = Programmable bit

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-16 Unimplemented: Read as '0'

bit 15-8 STNADDR4[7:0]: Station Address Octet 4 bits

These bits hold the fourth transmitted octet of the station address.

bit 7-0 STNADDR3[7:0]: Station Address Octet 3 bits

These bits hold the third transmitted octet of the station address.

Note 1: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

2: This register is loaded at Reset from the factory preprogrammed station address.

REGISTER 33-33: EMAC1SA2: ETHERNET CONTROLLER MAC STATION ADDRESS 2 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—— ——— — —
23:16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
—— ——— — —
15:8R/W-P R/WP R/W-P R/W-PR/W-P R/W-PR/W-P R/W-P
STNADDR2[7:0]
7:0R/W-P R/WP R/W-P R/W-PR/W-P R/W-PR/W-P R/W-P
STNADDR1[7:0]
Legend: P = Programmable 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-16 Reserved: Maintain as '0'; ignore read

bit 15-8 STNADDR2[7:0]: Station Address Octet 2 bits

These bits hold the second transmitted octet of the station address.

bit 7-0 STNADDR1[7:0]: Station Address Octet 1 bits

These bits hold the most significant (first transmitted) octet of the station address.

Note 1: Both 16-bit and 32-bit accesses are allowed to these registers (including the SET, CLR and INV registers). 8-bit accesses are not allowed and are ignored by the hardware.

2: This register is loaded at Reset from the factory preprogrammed station address.

The PIC32MZ W1 device contains a hardware CVD controller, which supports enhanced CVD Self and measurements. The enhanced CVD controller off-loads the CPU by performing CVD scans with programmable phase timing and oversampling. Also, the enhanced CVD controller calculates the measurement deltas and detects the touches based on thresholds.

Key features of the ENHANCED CVD controller include:

  • Self measurement for basic touch detection.
  • AddCap control to optimize sensitivity on systems with small sample capacitors.
  • Support for busing of multiple RX inputs and/or TX outputs for detecting touch over larger areas and algorithmically searching for touch location.
  • Four Scan Descriptors control the scan settings to enable SW controlled search algorithms by loading the next scan parameters while one is in progress.
  • Oversampling of measurements to increase signal-to-noise ratio.
  • Ability to control sequencing order of RX and TX scanning.
  • Programmable thresholding to limit the data to the CPU to only those which exceed set threshold.
  • Supports a maximum of 18 sense channels for touch interface.

The enhanced CVD controls the ADC core in a simplified mode that supports only the needs of CVD. The enhanced CVD controls the pin functions also. The RX and TX pins connect to a matrix of button electrodes or a touch screen/touch pad electrode grid. The capacitance of these electrodes will be measured to determine a touch or an approach.

Each RX/TX pin is assigned to an RX/TX index via SFRs. Each scan can span multiple RX/TX indexes enabling the user to scan multiple RX inputs in parallel, or drive multiple TX outputs in parallel. This is useful for doing full-panel touch detection (IE: for wakeup event).

34.1 SCAN DESCRIPTORS

The enhanced CVD supports four scan descriptors as part of the register set. Each descriptor indicates:

  • RX indexes to be scanned,
    • TX indexes to be driven,
    • Number of RX indexes to scan at one time
    • Number of TX indexes to scan at one time
  • Channel timing Control
  • Oversampling/threshold support
  • Provision to enable an interrupt when complete or

when threshold exceeded

The four descriptors enable the user software to identifying the exact touch location quickly, while avoiding the need to scan the entire RX/TX set. For example: Descriptor 1 could be configured to scan all RX inputs together while driving all TX outputs together. The software can pre-load the next descriptor to scan the screen in two halves, and the following descriptors to each scan either the left or right halves in two halves. While the hardware moves through the descriptors, the software can follow it and update used descriptors to continue the search based on the results of prior scans.

The figure below illustrates a block diagram of the enhanced CVD controller.

FIGURE 34-1: ENHANCED CVD CONTROLLER BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - SCAN DESCRIPTORS - 1

flowchart
graph TD
    A["ADC Core"] --> B["AddCap"]
    B --> C["Pins with RX Function"]
    D["Enhanced CVD"] --> E["Trigger"]
    E --> F["Timer"]
    G["ADC Results"] --> A
    H["Pins with TX Function"] --> I["Pins with TX Function"]
    I --> J["Pins with TX Function"]
    J --> K["Trigger"]
    K --> L["Timer"]
    M["Feedback to Pins with RX Function"] --> N["Feedback to AddCap"]
    N --> O["Feedback to ADC Core"]
    style A fill:#f9f,stroke:#333
    style D fill:#f9f,stroke:#333
    style G fill:#ccf,stroke:#333
    style H fill:#ccf,stroke:#333
    style I fill:#ccf,stroke:#333
    style J fill:#ccf,stroke:#333
    style K fill:#ccf,stroke:#333
    style L fill:#ccf,stroke:#333

34.2 CVD Control Registers

TABLE 34-1: ENHANCED CVD CONTROLLER REGISTER MAP SUMMARY

Virtual Address(BF82_#)Register Name ( 1 \ 1 ) Bit RangeBitsPOR Values
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
4000CVDCON31:16ONSIDLORDERSDHOLDABORTSWTRIGTHSTRCVDIENFIFOIENFIFOTH[1:0]0000
15:0FIFOTH[7:0]CLKSEL[1:0]TRIGSEL [3:0]0000
4004CVDADC31:160000
15:0DIFF-PENDIGEN7SELRES[1:0]0000
4008CVDSTAT31:16FIFOFULLFIFOWMFIFOMTFIFOCNT[9:0]0000
15:0SD4INTSD4DONESD4BUSYSD3INTSD3-DONESD3BUSYSD2INTSD2-DONESD2BUSYSD1INTSD1-DONESD1BUSY0000
400CCVDRES0H31:16POS[7:0]0000
15:0POS[15:0]0000
4010CVDRES0L31:16NEG[7:0]0000
15:0NEG[15:0]0000
4014CVDRES0D31:16TXINDEX[4:0]SDNUM[1:0]RXINDEX[4:0]DELTA[1:0]0000
15:0DELTA[15:0]0000
4080CVDRX031:16RXAN3[5:0]RXAN2[5:0]0000
15:0RXAN1[5:0]RXAN0[5:0]0000
4084CVDRX131:16RXAN7[5:0]RXAN6[5:0]0000
15:0RXAN5[5:0]RXAN4[5:0]0000
4088CVDRX231:16RXAN11[5:0]RXAN10[5:0]0000
15:0RXAN9[5:0]RXAN8[5:0]0000
408CCVDRX331:16RXAN15[5:0]RXAN14[5:0]0000
15:0RXAN13[5:0]RXAN12[5:0]0000
40C0CVDTX031:16TXAN3[5:0]TXAN2[5:0]0000
15:0TXAN1[5:0]TXAN0[5:0]0000
Virtual Address(BF82_#)RegisterNameBit RangeBitsPOR Values
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
40C4CVDTX131:16TXAN7[5:0]TXAN6[5:0]0000
15:0TXAN5[5:0]TXAN4[5:0]0000
40C8CVDTX231:16TXAN11[5:0]TXAN10[5:0]0000
15:0TXAN9[5:0]TXAN8[5:0]0000
40CCCVDTX331:16TXAN15[5:0]TXAN14[5:0]0000
15:0TXAN13[5:0]TXAN12[5:0]0000
4100CVDSD0C131:16SDOTHRESH[15:8]0000
15:0SDOTHRESH[7:0] SD0OVRSAMP[7:0]0000
4104CVDSD0C231:16SDOTXSTRIDE2[1:0] SDOTXEND[5:0] SDOTXSTRIDE1[1:0] SDOTXBEG[5:0]0000
15:0SDORXSTRIDE2[1:0] SDORXEND[5:0] SDORXSTRIDE1[1:0] SDORXBEG[5:0]0000
4108CVDSD0C331:16SD0EN[1:0]SD0BUFSD0IENSD0SELFSD0MUT— —CVDENCVDCPL[2:0]0000
15:0SD0ACQTIME[6:0]SD0CHGTIME[6:0]0000
410CCVDSD0T231:16SDOPOLTIME[6:0]SD0OVRTIME[6:0]0000
15:0SDOCHNTIME[6:0]SD0CONTIME[6:0]0000
4110CVDSD1C131:16SD1THRESH[31:16]0000
15:0SD1THRESH[7:0] SD1OVRSAMP[7:0]0000
4114CVDSD1C231:16SD1TXSTRIDE2[1:0] SD1TXEND[5:0] SD1TXSTRIDE1[1:0] SD1TXBEG[5:0]0000
15:0SD1RXSTRIDE2[1:0] SD1RXEND[5:0] SD1RXSTRIDE1[1:0] SD1RXBEG[5:0]0000
411BCVDSD1C331:16SD1EN[1:0]SD1BUFSD1IENSD1SELFSD1MUT— —CVDENCVDCPL[2:0]0000
15:0SD1ACQTIME[6:0]SD1CHGTIME[6:0]0000
411CCVDSD1T231:16SD1POLTIME[6:0]SD1OVRTIME[6:0]0000
15:0SD1CHNTIME[6:0]SD1CONTIME[6:0]0000
4120CVDSD2C131:16SD2THRESH[31:16]0000
15:0SD2THRESH[7:0] SD2OVRSAMP[7:0]0000
4124CVDSD2C231:16SD2TXSTRIDE2[1:0] SD2TXEND[5:0] SD2TXSTRIDE1[1:0] SD2TXBEG[5:0]0000
15:0SD2RXSTRIDE2[1:0] SD2RXEND[5:0] SD2RXSTRIDE1[1:0] SD2RXBEG[5:0]0000
4128CVDSD2C331:16SD2EN[1:0]SD2BUFSD2IENSD2SELFSD2MUT— — —CVDENCVDCPL[2:0 ]0000
15:0SD2ACQTIME[6:0]SD2CHGTIME[6:0]0000
412CCVDSD2T231:16SD2POLTIME[6:0]SD2OVRTIME[6:0]0000
15:0SD2CHNTIME[6:0]SD2CONTIME[6:0]0000
4130CVDSD3C131:16SD3THRESH[31:16]0000
15:0SD3THRESH[7:0]SD3OVRSAMP[7:0]0000
4134CVDSD3C231:16SD3TXSTRIDE2[1:0] SD3TXEND[5:0] SD3TXSTRIDE1[1:0] SD3TXBEG[5:0]0000
15:0SD3RXSTRIDE2[1:0] SD3RXEND[5:0] SD3RXSTRIDE1[1:0] SD3RXBEG[5:0]0000
4138CVDSD3C331:16SD3EN[1:0]SD3BUFSD3IENSD3SELFSD3MUT— — —CVDENCVDCPL[2:0 ]0000
15:0SD3ACQTIME[6:0]SD3CHGTIME[6:0]0000
413CCVDSD3T231:16SD3POLTIME[6:0]SD3OVRTIME[6:0]0000
15:0SD3CHNTIME[6:0]SD3CONTIME[6:0]0000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.

REGISTER 34-1: CVDCON: CVD CONTROL REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 U-0R/W-0 R/W-0R/W-0 U-0 W/HC-0 W/HC-0
ON— SIDLORDER SDWREN — ABORTSWTRIG
23:16R/W-0 U-0U-0 U-0 R/W-0R/W-0 R/W-1R/W-0
THSTRCVDIENFIFOIENFIFOTH[9:8]
15:8R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0R/W-0
FIFOTH[7:0]
7:0U-0U-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0
CLKSEL[1:0]TRIGSEL[3:0]
Legend: HC = Hardware Cleared HS = Hardware SetR = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown

bit 31 ON: Enables the state machine to scan enabled scan descriptors upon next trigger. Before turning ON from 1'b1 to 1'b0, the Scan Enable bits of all descriptors must be cleared and the ENHANCED CVD controller must either be allowed to finish any scan in progress, or must be instructed to abort the scan with the ABORT bit.

bit 30 Unimplemented: Read as '0'

bit 29 SIDL: Stop in Idle Mode bit

1 = CVD controller halts when device enters Idle mode

0 = CVD controller continues running in Idle mode

bit 28 ORDER: RX/TX Loop Order

1 = Scan all requested TX indexes, then increment RX index and continue

0 = Scan all requested RX indexes, then increment TX index and continue

bit 27 SDWREN: Scan Descriptor Write Enable

1 = Enables writes to the scan descriptors

0 = Prevents writes to the scan descriptors

bit 26 Unimplemented: Read as '0'

bit 25 ABORT:

1 = Abort the current scan

0 = CVD controller continues with the current scan

Note: The controller will move on to the next enabled Scan Descriptor if there is one, else it will go idle. Cleared by hardware.

bit 24 SWTRIG: Software Trigger control

1 = Starts scan manually

0 = Continue without the scan

Note: Cleared by hardware.

bit 23 THSTR: Threshold Store Mode

1 = Store only results which exceed the programmed threshold for the Scan Descriptor

0 = Store all results in FIFO

bit 22-20 Unimplemented: Read as '0'

bit 19 CVDIEN: Global Interrupt Enable

1 = Enables the FIFO and scan descriptor interrupts

0 = Disables the FIFO and scan descriptor interrupts

bit 18 FIFOIEN: FIFO Threshold Interrupt Enable

1 = Controller will assert an interrupt when the FIFO threshold is met

0 = Controller will not assert an interrupt when the FIFO threshold is met

REGISTER 34-1: CVDCON: CVD CONTROL REGISTER (CONTINUED)

bit 17-8 FIFOTH[9:0]: Threshold for the results FIFO that will cause an interrupt and watermark FIFOWM status bit assertion.

bit 7-6 Unimplemented: Read as '0'

bit 5-4 CLKSEL[1:0]: Clock Select for CVD

00 = pB2_clk
01 = FRC
02 = LPRC
03 = REFO1 

bit 3-0 TRIGSEL[3:0]: Selects one of 15 external trigger inputs to start scanning.

0000 = SFR controlled software trigger
0001 = TMR1 event
0010 = TMR2 event
0011 = TMR3 event
0100 = TMR4 event
0101 = TMR5 event
0110 = TMR6 event
0111 = TMR7 event
1000 = Reserved
1001 = Reserved
1010 = PTGO9
1011 =
.
.
.
.
1111 = Reserved 

REGISTER 34-2: CVDADC: CVD ADC CONFIGURATION REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0
— — —— — — —
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0
— — —— — — —
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0
DIGEN7DIFFPENSELRES[1:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-4 Unimplemented: Read as '0'

bit 3 DIGEN7: Shared ADC (ADC2) Digital Enable bit (Differential Mode Select from ADC controller)

1 = ADC2 is digital enabled

0 = ADC2 is digital disabled

bit 2 DIFFPEN: Control differential mode operation of ANN0

1= ANN0 (Differential) enabled

0= ANN0 (Differential) disabled

bit 1-0 SELRES[1:0]: Shared ADC (ADC2) Resolution bits

11 = 12 bits (default)

10 = 10 bits

01 = 8 bits

00 = 6 bits

Note: Changing the resolution of the ADC does not shift the result in the corresponding ADCDATAx register. The result will still occupy 12 bits, with the corresponding lower unused bits set to '0'. For example, a resolution of 6 bits will result in ADCDATAx[5:0] being set to '0', and ADCDATAx[11:6] holding the result.

REGISTER 34-3: CVDSTAT: CVD STATUS REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0 U-0 U-0 U-0R-0 R-0
FIFOFULL FIFOWM FIFOMT— — —FIFOCNT[9:8]
23:16R-0 R-0 R-0 R-0 R-0 R-0R-0 R-1
FIFOCNT[7:0]
15:8U-0R/W/HS-0R-0R-0U-0R/W/HS-0R-0R-0
SD4INTSD4DONESD4BUSYSD3INTSD3DONESD3BUSY
7:0U-0R/W/HS-0R/W-0R/W-0U-0R/W/HS-0R-0R-0
SD2INTSD2DONESD2BUSYSD1INTSD1DONESD1BUSY
Legend:HC = Hardware ClearedHS = Hardware 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 FIFOFULL: The Results FIFO is full.

1 = FIFO is full.

0 = Not full

bit 30 FIFOWM:

1 = FIFO has reached the programmed FIFOTHRESH threshold

0 = FIFO has not reached the programmed FIFOTHRESH threshold

bit 29 FIFOMT:

1 = FIFO is empty

0 = FIFO is not empty

bit 28-26 Unimplemented: Read as 0

bit 25-16 FIFOCNT: Results FIFO word count: Indicates the number of words in the Results FIFO.

bit 15 Unimplemented: Read as 0

bit 14 SD4INT:

1 = Scan Descriptor 4 has caused an interrupt

0 = Scan Descriptor 4 has not caused an interrupt

bit 13 SD4DONE:

1 = Scan Descriptor 4 has completed

0 = Scan Descriptor 4 has not completed

bit 12 SD4BUSY:

1 = Scan Descriptor 4 is in progress

0 = Scan Descriptor 4 is not in progress

bit 11 Unimplemented: Read as 0

bit 210 SD3NT:

1 = Scan Descriptor 3 has caused an interrupt

0 = Scan Descriptor 3 has not caused an interrupt

bit 9 SD3DONE: Core will set this bit if Scan Descriptor 3 has completed at least once. Core will clear this bit upon receiving next trigger for Scan Descriptor 3.

bit 8 SD3BUSY:

1 = Scan Descriptor 3 is in progress

0 = Scan Descriptor 3 is not in progress

bit 7 Unimplemented: Read as 0

bit 6 SD2NT:

1 = Scan Descriptor 2 has caused an interrupt

0 = Scan Descriptor 2 has not caused an interrupt

bit 5 SD2DONE: Core will set this bit if Scan Descriptor 2 has completed at least once. Core will clear this bit upon receiving next trigger for Scan Descriptor 2.

REGISTER 34-3: CVDSTAT: CVD STATUS REGISTER (CONTINUED)

bit 4 SD2BUSY:

1 = Scan Descriptor 2 is in progress
0 = Scan Descriptor 2 is not in progress

bit 3 Unimplemented: Read as 0

bit 2 SD1NT:

1 = Scan Descriptor 1 has caused an interrupt
0 = Scan Descriptor 1 has not caused an interrupt

bit 1 SD1DONE: Core will set this bit if Scan Descriptor 1 has completed at least once. Core will clear this bit upon receiving next trigger for Scan Descriptor 1.

bit 0 SD1BUSY:

1 = Scan Descriptor 1 is in progress
0 = Scan Descriptor 1 is not in progress

REGISTER 34-4: CVDRES0H: CVD RESULTS POS FIFO READ REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — —
15:8U-0 U-0U-0 U-0 R-0 R-0R-0 R-0
— — —— POS[11:8]
7:0R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
POS[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-12 Unimplemented: Read as '0'

bit 11-0 POS[11:0]: The accumulated result of the positive-side measurements Since the controller supports up to 64x oversampling, each polarity can accumulate up to 12 bits.

REGISTER 34-5: CVDRES0L: CVD RESULTS NEG FIFO READ REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
15:8U-0 U-0U-0 U-0 R-0 R-0R-0 R-0
— — —— NEG[11:8]
7:0R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
NEG[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-12 Unimplemented: Read as '0'

bit 11-0 NEG[11:0]: The accumulated result of the negative-side measurements Since the controller supports up to 64x oversampling, each polarity can accumulate up to 12 bits.

REGISTER 34-6: CVDRES0D: CVD RESULTS DESCRIPTOR FIFO READ REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R-0 R-0R-0 R
TXINDEX[4:0]— SDNUM[1:0]
23:16R-0 R-0R-0 R
RXINDEX[4:0]— DELTA[17:16]
15:8R-0 R-0R-0 R
DELTA[15:8]
7:0R-0 R-0R-0 R
DELTA[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' -n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-27 TXINDEX[4:0]: Transmit Index for this result. If the Stride of the Scan Descriptor was more than one, the Transmit Index indicates the first one of the group.

bit 26 Unimplemented: Read as '0'

bit 25-24 SDNUM: Scan Descriptor Number that generated this result

bit 23-19 RXINDEX[4:0]: Receive Index for this result. If the Stride of the Scan Descriptor was more than one, the Receive Index indicates the first one of the group.

bit 18 Unimplemented: Read as '0'

bit 17-0 DELTA[17:0]: The delta of the accumulated results of the negative-side and positive-side measurements. Since the controller supports up to 64x oversampling, each polarity can accumulate up to 12 bits.

Note: Reading this register increments the FIFO read pointer, destroying the data in the previous two registers for NEG and POS absolute values. If the NEG and POS values are desired, those registers must be read BEFORE this one. If the absolute values are not required, bandwidth can be saved by reading only this descriptor register.

REGISTER 34-7: CVDRxN: CVD RECEIVE INDEX N CONFIGURATION n = 0-3

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0R/W-0 R/W-0 RW-0 R/W-0 RW-0 R/W-0
— — RXAN(4n+3)[5:0]
23:16U-0 U-0R/W-0 R/W-0 RW-0 R/W-0 RW-0 R/W-0
— — RXAN(4n+2)[5:0]
15:8U-0 U-0R/W-0 R/W-0 RW-0 R/W-0 RW-0 R/W-0
— — RXAN(4n+1)[5:0]
7:0U-0 U-0R/W-0 R/W-0 RW-0 R/W-0 RW-0 R/W-0
— — RXAN(4n+0)[5:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'
-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-30 Unimplemented: Read as '0'

bit 29-24 RXAN[4n+3][5:0]: ANx/CVDR channel to use for RX Index 4n+3

bit 23-22 Unimplemented: Read as '0'

bit 21-16 RXAN[4n+2][5:0]: ANx/CVDR channel to use for RX Index 4n+2

bit 15-14 Unimplemented: Read as '0'

bit 13-8 RXAN[4n+1][5:0]: ANx/CVDR channel to use for RX Index 4n+1

bit 7-6 Unimplemented: Read as '0'

bit 5-0 RXAN[4n+0][5:0]: ANx/CVDR channel to use for RX Index 4n+0

REGISTER 34-8: CVDTXn: CVD TRANSMIT INDEX n CONFIG n = 0-3

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24U-0 U-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
— — TXAN(4n+3)[5:0]
23:16U-0 U-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
— — TXAN(4n+2)[5:0]
15:8U-0 U-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
— — TXAN(4n+1)[5:0]
7:0U-0 U-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
— — TXAN(4n+0)[5:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-30 Unimplemented: Read as '0'

bit 29-24 TXAN[4n+3][5:0]: ANx/CVDR channel to use for TX Index 4n+3

bit 23-22 Unimplemented: Read as '0'

bit 21-16 TXAN[4n+2][5:0]: ANx/CVDR channel to use for TX Index 4n+2

bit 15-14 Unimplemented: Read as '0'

bit 13-8 TXAN[4n+1][5:0]: ANx/CVDR channel to use for TX Index 4n+1

bit 7-6 Unimplemented: Read as '0'

bit 5-0 TXAN[4n+0][5:0]: ANx/CVDR channel to use for TX Index 4n+0

REGISTER 34-9: CVDSDnC1: CVD SCAN DESCRIPTOR n CONTROL 1, n = 0-3

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W0
SDnTH[23:16]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W0
SDnTH[15:8]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W0
SDnTH[7:0]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W0
SDnOVRSAMP[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-8 SDnTH[23:0]: Scan Descriptor Threshold

The accumulators are subtracted after all oversampling is completed. The result of that subtraction is compared to this threshold to generate an interrupt and/or store data to the FIFO based on the configuration.

bit 7-0 SDnOVR SAMP[7:0]: Scan Descriptor Over Sampling

Determines the amount of oversampling done on each measurement.

0 = Only one measurement

1 = Two measurements accumulated

255 = 256 measurements accumulated

REGISTER 34-10: CVDSDnC2: CVD SCAN DESCRIPTOR n CONTROL 2, n = 0-3

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SDnTXSTRIDE[3:2] SDnTXEND[5:0]
23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SDnTXSTRIDE[1:0] SDnTXBEG[5:0]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SDnTXSTRIDE[3:2] SDnRXEND[5:0]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
SDnTXSTRIDE[1:0] SDnRXBEG[5:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-30 SDnTXSTRIDE[3:2]: Scan Descriptor TX Index Stride

Determines the number of TX Indexes included in a single measurement.

4'h0: One TX Index

4'bF: 16TX Indexes

bit 29-24 SDnTXEND[5:0]: Scan Descriptor TX Index End

Determines the last TX index to include in a scan. One the TX index pointer, which is incremented by the

SDnTXSTRIDE+1 value, meets or exceeds this value, the TX loop of the scan is complete.

bit 23-22 SDnRXSTRIDE[3:2]: Scan Descriptor TX Index Stride

Determines the number of TX Indexes included in a single measurement.

4'h0: One TX Index

4'bF: 16TX Indexes

bit 21-16 SDnTXBEG[5:0]: Scan Descriptor TX Index Start

Determines the first TX index to include in a scan.

bit 15-14 SDnRXSTRIDE[3:2]: Scan Descriptor RX Index Stride

Determines the number of TX Indexes included in a single measurement.

4'h0: One TX Index

4'bF: 16TX Indexes

bit 13-8 SDnRXEND[5:0]: Scan Descriptor RX Index End

Determines the last RX index to include in a scan. One the RX index pointer, which is incremented by the SDnRXSTRIDE+1 value, meets or exceeds this value, the RX loop of the scan is complete.

bit 7-6 SDnRXSTRIDE[1:0]: Scan Descriptor RX Index Stride

Determines the number of RX Indexes included in a single measurement.

4'h0: One RX Index

4'hF: 16 TX Indexes

bit 5-0 SDnRXBEG[5:0]: Scan Descriptor RX Index Start

Determines the first RX index to include in a scan.

REGISTER 34-11: CVDSDnC3: CVD SCAN DESCRIPTOR n CONTROL 3, n = 0-3

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/HC-0 R/W/HC-0 U-0 U-0R/W-0 R/W-0 R/W-0 R/W-0
SDnEN[1:0]— — SDnBUF SDnINTEN SDnSELF SDnMUT
23:16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
— —CVDENCVDCPL[2:0]
15:8U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SDnACQTIME[6:0]
7:0U-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SDnCHGTIME[6:0]
Legend:HC = Hardware ClearedHS = Hardware Set
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-30 SDnEN[1:0]: Scan Descriptor Enable Mode

00 = Scan Descriptor Disabled
01 = Execute Scan Descriptor one time only, then clear the enable.
10 = Execute the Scan Descriptor, but keep enabled. Move on to next enabled descriptors.
11 = Execute the Scan Descriptor in a loop until a threshold match is detected, then clear the enable and move on to next enabled descriptors.

bit 29-28 Unimplemented: Read as '0'

bit 27 SDnBUF: Scan Descriptor CVD Buffer Enable

1 = CVD buffer output used as shared ADC (ADC2) input.
0 = CVD buffer output not used as shared ADC (ADC2) input

bit 26 SDnINTEN: Scan Descriptor Interrupt Enable

1 = Scan Descriptor creates an interrupt if the accumulator threshold is met
0 = Scan descriptor does not create an interrupt

bit 25 SDnSELF: Scan Descriptor Mutual Mode

1 = Self Measurement Mode; RX outputs are part of CVD measurement and are driven
0 = No Self Measurement; RX outputs are not part of CVD measurements

bit 24 SDnMUT: Scan Descriptor Mutual Mode

1 = Mutual Measurement Mode; TX outputs are part of CVD measurement and are driven
0 = No Mutual Measurement Mode; TX outputs are not part of CVD measurements

bit 23-20 Unimplemented: Read as '0'

bit 19 CVDEN: Capacitive Voltage Division Enable bit

1 = CVD operation is enabled
0 = CVD operation is disabled

bit 18-16 CVDCPL[2:0]: Capacitor Voltage Divider (CVD) Setting bits

111 = 7 * 2.5 pF = 17.5 pF
110 = 6 * 2.5 pF = 15 pF
101 = 5 * 2.5 pF = 12.5 pF
100 = 4 * 2.5 pF = 10 pF
011 = 3 * 2.5 pF = 7.5 pF
010 = 2 * 2.5 pF = 5 pF
001 = 1 * 2.5 pF = 2.5 pF
000 = 0 * 2.5 pF = 0 pF

bit 15 Unimplemented: Read as '0'

bit 14-8 SDnACQTIME[6:0]: Scan Descriptor Acquire Time

Time for which CVD waits for ADC voltage to settle.

bit 7 Unimplemented: Read as '0'

REGISTER 34-11: CVDSDnC3: CVD SCAN DESCRIPTOR n CONTROL 3, n = 0-3 (CONTINUED)

bit 6-0 SDnCHGTIME[6:0]: Scan Descriptor Charge Time

Time for which CVD remains in the charging state for internal/external capacitors and for TX outputs.

REGISTER 34-12: CVDSDnT2: CVD SCAN DESCRIPTOR n TIME 2, n = 1-4

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
— SDnPOLTIME[6:0]
23:16U-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
— SDnQVRTIME[6:0]
15:8U-0 U-0U-0 U-0 U-0U-0 U-0
— SDnCHNTIME[6:0]
7:0U-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0R/W-0 R/W-0
— SDnCONTIME[6:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31 Unimplemented: Read as '0'

bit 30-24 SDnPOLTIME[6:0]: Scan Descriptor Polarity Time

Controls the number of cycles the state machine waits in the POLARITY state before taking the second polarity measurement of an RX/TX pair

bit 23 Unimplemented: Read as '0'

bit 22-16 SDnOVRTIME[6:0]: Scan Descriptor Oversample Time

Controls the number of cycles the state machine waits in the OVERSAMP state before taking the next oversampling measurement of an RX/TX pair.

bit 15 Unimplemented: Read as '0'

bit 14-8 SDnCHNTIME[6:0]: Scan Descriptor Channel Time

Controls the number of cycles the state machine waits in the RXCHAN or TXCHAN state before moving to the next RX/TX pair.

bit 7 Unimplemented: Read as '0'

bit 6-0 SDnCONTIME[6:0]: Scan Descriptor Charge Time

Controls the number of cycles the state machine waits in the CONVERT state waiting for the ADC sample data. It must be ensured that the ADC will assert End-Of-Convert (EOC) before the CONVERT state timer expires.

35.0 POWER MANAGEMENT UNIT (PMU)

This section describes PMU features of the PIC32MZ W1 devices. These devices offer various methods to monitor and program the BUCK/MLDO regulators.

Key features of the PMU include:

  • Two-stage voltage regulation for optimal performance (stage1 – BUCK/MLDO, stage2 – LDOs)
  • Seamless power-up in MLDO mode and Low Power mode exit without the need for PMU configurations and system clock dependency.
  • Auto-configuration of LDO and PMU modes for optimal power at various device operating modes.

  • Support override method for LDO and PMU mode configurations. Software can use the override feature if required.

  • A memory mapped interface for programming BUCK/MLDO.
  • Provides a register locking feature to avoid accidental writes to the critical PMU control registers.
  • Provides a WOFF mode and WCM Retention mode in tandem with Wi-Fi low power modes.
  • Provides a Wi-Fi Context Memory (WCM) retention feature to save necessary context while entering low power mode.

See Table 41-4 for more information.

FIGURE 35-1: TOPOLOGY ON CHIP DC-DC AND REGULATORS
Microchip PIC32MZ1025W104132 - POWER MANAGEMENT UNIT (PMU) - 1

flowchart
graph TD
    A["Primary VREG (PLDO)"] -->|VDDCORE| B["Non-Wi-Fi Blocks"]
    C["PMU Control"] --> D["Wi-Fi Digital"]
    E["Wi-Fi VREG (WLDO)"] -->|VDDCORE| F["DC-DC/MLDO"]
    G["VDD15 1.5V"] --> A
    H["VDD 3.3V"] --> F
    I["VDD"] --> B
    J["Vss"] --> A
    K["VDD15 1.5V"] --> C
    L["C"] --> M["Filtering"]
    N["VDD"] --> B
    O["VDD"] --> B
    P["VDD"] --> B
    Q["VDD"] --> B
    R["VDD"] --> B
    S["VDD"] --> B
    T["VDD"] --> B
    U["VDD"] --> B
    V["L"] --> F
    W["FILTERING"] --> X["Ground"]

35.1 PMU Operations

The PMU controller can support 2 modes of controlling the system:

  1. Hardware/Auto Switch mode – In this mode, the hardware automatically selects the power profile under system sleep entry/exit state based on the user configurations.

  2. Software-based Override mode – In this mode, the user can change the current power profile on

the fly. The PMU also provides a software-based option to automatically turn OFF/ON the WLAN and WCM (Wi-Fi Context Memory) in system Low Power mode. For more details, refer to Section 36.6 "Wi-Fi Power Save Modes".

The following table provides more details on the configuration and usage of power modes.

TABLE 35-1: PMU OPERATIONS

Condition Configuration/Usage
Hardware/Auto Switch modePMUOVERCTRL.PHWC = 1, configure the PMUMODECTRL1 and PMUMODECTRL2 registers with appropriate Sleep and Run mode application profiles.Program PMUOVERCRL.PHWC = 0Mode based (Sleep/Run) power profile switching is enabled in hardware from here on.Power profile modes are switched in hardware on sleep entry/exit without software intervention.PMUSTATUS register provides current state of the PMU and LDOs for the users to monitor.
Software-based Override modePMUOVERCTRL.PHWC = 0Changes needed to the PMU power profiles are realized by simply writing into OVERCTRL register and PMUOVERCTRL.OVEREN = 1.Change in power profile via PMUOVERCTRL register write is still handled in HWPMUSTATUS register provides current state of the PMU.
WOFF mode • Configure the PMUCLKCTRL.WLDOFF = 1.Subsequent entry into Sleep mode will turn OFF the WLDO.Subsequent Sleep mode exit will turn ON the WLDO.
WCM Retention mode • Configure PMUCLKCTRL.WCMRET = 1.On subsequent entry into Sleep/Deep Sleep mode, the WCM will be put into retention/true-retention.On subsequent Sleep/Deep Sleep mode exit, the WCM will be out of retention.

35.2 PMU Controller Registers

TABLE 35-2: PMU CONTROLLER REGISTER MAP

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note 1: These register bits are only writable when PMULOCK Configuration (CFGCON0[10]) bit is '0'
2: The user must use the calibrated values from the NVRFLASH area for reliable operation.

REGISTER 35-1: PMUCLKCTRL: PMU CLOCK CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-0 R/W/L-0 U-0 U-0 U-0U-0 U-0 U-0
WCMRET WLDOOFF— — —— — —
23:16U-0U-0U-0 U-0U-0 U-0 U-0 U-0
— — —— — —
15:8U-0U-0U-0 U-0U-0 U-0 U-0 U-0
— — —— — —
7:0U-0U-0U-0 U-0U-0 U-0 U-0 U-0
— — —— — —

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31 WCMRET: Wi-Fi Context Memory Retention Mode bit

1 = WCM is kept in Retention mode in Sleep mode
0 = WCM in Normal mode

bit 30 WLDOOFF: Wi-Fi LDO Control bit

1 = WLDO is turned OFF in Sleep mode
0 = WLDO is kept ON in Sleep mode

bit 29-16 Unimplemented: Read as '0'

REGISTER 35-2: PMUMODECTRL(N): PMU MODE CONTROL REGISTER, WHERE N = 1 TO 4

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-1 R/W/L-0 R/W/L-0 U-0 U-0 U-0 U-0U-0
BUCKEN MLDOEN BUCKMODE— — —— —
23:16U-0 U-0U-0U-0 U-0U-0 U-0 U-0
— — —— —
15:8U-0 U-0U-0U-0 U-0U-0 U-0 U-0
— — —— —
7:0U-0 U-0U-0U-0 U-0U-0 U-0 U-0
— — —— —

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31 BUCKEN: BUCK Enable Register bit

1 = DC-DC enabled and operational

0 = DC-DC is powered down

Note: This bit is only writable when CFGCON0.PMULOCK = 0.

bit 30 MLDOEN: MLDO Enable Register bit

1 = MLDO enabled

0 = MLDO disabled

Note: This bit is only writable when CFGCON0.PMULOCK = 0.

bit 29 BUCKMODE: BUCK Operational Mode bit

1 = PWM mode

0 = PSM mode

Note: This bit is only writable when CFGCON0.PMULOCK = 0.

bit 28-0 Unimplemented: Read as '0'

REGISTER 35-3: PMUOVERCTRL: PMU OVERRIDE CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-1 R/WL-0 R/W/L-0 U-0 U-0 U-0 U-0 U-0
OBUCKEN OMLDOEN OBUCKMODE— — —
23:16R/W/L-0 R/WL-1U-0U-0 U-0 U-0 U-0U-0
OVEREN PHWC— — —
15:8U-0U-0 U-0U-0 U-0 U-0 U-0 U-0
7:0U-0U-0 U-0U-0 U-0 U-0 U-0 U-0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31 OBUCKEN: BUCK Enable Register bit

1 = DC-DC enabled and operational
0 = DC-DC is powered down

Note: This bit is only writable when CFGCON0.PMULOCK = 0.

bit 30 OMLDOEN: MLDO Enable Register bit

1 = MLDO enabled
0 = MLDO disabled

Note: This bit is only writable when CFGCON0.PMULOCK = 0.

bit 29 BUCKMODE: BUCK Operational Mode bit

1 = PWM mode
0 = PSM mode

Note: This bit is only writable when CFGCON0.PMULOCK = 0.

bit 28-24 Unimplemented: Read as '0'

bit 23 OVEREN: BUCK Control Override

1 = Override enabled
0 = Override disabled

Note: This bit is only writable when CFGCON0.PMULOCK = 0.

bit 22 PHWC: Power-up Hardware Control Enable

1 = Enabled
0 = Disabled

bit 21-0 Unimplemented: Read as '0'

REGISTER 35-4: PMUCMODE: PMU CURRENT MODE REGISTER

R = Readable bit W = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31 CBUCKEN: BUCK Enable Register bit

1 = DC-DC enabled and operational

0 = DC-DC is powered down

bit 30 CMLDOEN: MLDO Enable Status Register bit

1 = MLDO enabled

0 = MLDO disabled

bit 29 CBUCKMODE: BUCK Operational Mode bit

1 = PWM mode

0 = PSM mode

bit 28-0 Unimplemented: Read as '0'

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-6 Unimplemented: Read as '0'

bit 5 WCMRM: WCM has entered or begin to enter the retention mode. Accesses are blocked.

1 = WCM in Retention mode or beginning to enter the retention mode. Accesses are blocked.
0 = WCM out of Retention mode and can be accessed.

bit 4-0 Unimplemented: Read as '0'

REGISTER 35-6: PMUSEQ(n): PMU SEQUENCE REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-cfg R-cfg R-cfg R-cfg R-cfg
SPIDATA[15:8]
23:16R-cfg R-cfg R-cfg R-cfg R-cfg
SPIDATA[7:0]
15:8R-cfg R-cfg R-cfg R-cfg R-cfg
SPIADDR[7:0]
7:0R-cfg R-cfg R-cfg R-cfg R-cfg R-cfg
CMD CMPBVAL DELAY[5:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0' cfg = Configurable at Reset '1' = Bit is set '0' = Bit is cleared

bit 31-16 SPIDATA[15:0]: SPI Data

SPI read data compare if CMD = 1

SPI write data if CMD = 0

bit 15-8 SPIADDR[7:0]: SPI Address

SPI read address if CMD = 1

SPI write address if CMD = 0

bit 7 CMD: SPI Command bit

1 = SPI read command

0 = SPI write command

bit 6 CMPBVAL: Command to set the compare bit value in read sequence

1 = Compare for bit value 1. Bit value of '0' in SPIDATA is ignored for comparison.

0 = Compare for bit value 0. Bit value of '1' in SPIDATA is ignored for comparison

bit 5-0 DELAY[5:0]: Delay

REGISTER 35-7: PMUCFG: PMU CONFIGURATION REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — — — —
23:16U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — — —— — — —
15:8U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — — —— — — —
7:0U-0U-0R-cfgR-cfgR-cfgR-cfgR-cfgR-cfg
— —DELAY[5:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
cfg = Configurable at Reset'1' = Bit is set'0' = Bit is cleared

bit 31-7 Unimplemented: Read as '0'

bit 5-0 DELAY[5:0]: Delay

REGISTER 35-8: PMUWCMCMD: PMU WI-FI CONTEXT MEMORY COMMAND REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 R-1 U-0U-0 U-0 U-0
— — —WCMRDY —
23:16U-0 U-0U-0 U-0 U-0U-0 U-0 U-0
15:8U-0 U-0U-0 U-0 U-0U-0 U-0 U-0
7:0U-0 U-0U-0 U-0 U-0U-0 U-0 U-0

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared x = Bit is unknown

bit 31-29 Unimplemented: Read as '0'

bit 28 WCMRDY: PMU WCM Ready Flag

1 = PMU WCM transaction is complete or PMU WCM is ready for next WCM command.
0 = PMU WCM transaction in progress or WCM is busy

bit 27-0 Unimplemented: Read as '0'

36.0 POWER-SAVING FEATURES

This section describes power-saving features for the PIC32MZ1025W104 devices. These devices offer various methods and modes that allow the user to balance power consumption with device performance. In all of the methods and modes described in this section, power-saving is controlled by software.

36.1 Power-Saving with PMU Configuration

System efficiency can be further improved by effectively configuring the Buck/MLDO regulator operational mode while the system is in the Run, Idle or Sleep mode. Buck/MLDO can operate in 3 different modes, namely:

  • MLDO mode: This mode is for soft start-up during power-up and after wake-up from Deep Sleep and Extreme Deep Sleep modes. This mode provides reliable soft start-up with factory calibrated values. It enables the system start-up with intermediate load and low efficiency.
  • Buck-PWM (Pulse Width Modulation) mode or high power mode: In this mode, the PMU can deliver the highest output current with good efficiency. In PWM, it is expected to reach its highest efficiency under high load conditions, and efficiency decreases with load current.
  • Buck-PSM (Pulse-Skipping Mode): In this mode, the PMU can deliver good efficiency for the lower load current.

PMU operational modes can switch automatically based on the system configuration. When the load current demand is high, it is advisable to configure the PMU in the Buck-PWM mode, and when the load current demand is low, it is advisable to enter the Buck-PSM mode. For more details on the system configuration for the PMU modes of operation, refer to Section 35.0 "Power Management Unit (PMU)".

36.2 Power-Saving with CPU Running

When the CPU is running, power consumption can be controlled by reducing the CPU clock frequency, lowering the speed of PBCLK6 or selecting a lower power clock source (LPRC or SOSC).

In addition, the Peripheral Bus Scaling mode is available for each peripheral bus where peripherals are clocked at reduced speed by selecting a higher divider for the associated PBCLKx, or by selectively disabling the clock completely. Power can be further reduced by disabling the peripheral using PMD. For more details, refer to Section 36.3 "Peripheral Module Disable".

36.2.1 Wi-Fi POWER-SAVE MODE WITH MCU IN RUN MODE

When the CPU is running, power can be reduced in WOFF mode, which turns off Wi-Fi. For more details on WOFF mode configuration, refer to Section 35.0 "Power Management Unit (PMU)".

TABLE 36-1: WI-FI POWER-SAVE MODE WITH MCU IN RUN MODE

CPU State MCU ModeWi-Fi Power Save Mode
RUN RUN RUN
WOFF

36.3 Peripheral Module Disable

The Peripheral Module Disable (PMD) registers provide a method to disable a peripheral module by stopping all clock sources supplied to that module. When a peripheral is disabled using the appropriate PMD control bit, the peripheral is in a minimum power consumption state. The control and status registers associated with the peripheral are also disabled, so writes to those registers do not have an effect and the read values are invalid.

To disable a peripheral, the associated PMDx bit must be set to '1'. To enable a peripheral, the associated PMDx bit must be cleared (default). See Table 36-1 for more information.

Note: Disabling a peripheral module while its ON bit is set, may result in undefined behavior. The ON bit for the associated peripheral module must be cleared prior to disabling a module via the PMDx bits.

TABLE 36-2: PERIPHERAL MODULE DISABLE BITS AND LOCATIONS

Peripheral PMDx Bit NameRegister Name and Bit Location
ADC SAR0ADCSAR0MDPMD1[0]
PLVDPLVD1MDPMD1[4]
Shared ADC SARADCSARSHRMDPMD1[7]
ADCADC1MDPMD1[8]
PTGPTGMDPMD1[11]
CVDCVD1MDPMD1[15]
RTCCRTCC1MDPMD1[16]
PeripheralPMDx Bit NameRegister Name and Bit Location
DMA DMA1MD PMD1[19]
Asymmetric crypto BA414MD PMD1[23]
Crypto CRYPT1MD PMD1[24]
Random Number Generator RNG1MDPMD1[26]
SQI SQI1MD PMD1[29]
Input Capture 1 IC1MD PMD2[0]
Input Capture 2 IC2MD PMD2[1]
Input Capture 3 IC3MD PMD2[2]
Input Capture 4 IC4MD PMD2[3]
Output Compare 1 OC1MD PMD2[8]
Output Compare 2 OC2MD PMD2[9]
Output Compare 3 OC3MD PMD2[10]
Output Compare 4 OC4MD PMD2[11]
Timer 1T1MDPMD2[16]
Timer 2T2MDPMD2[17]
Timer 3T3MDPMD2[18]
Timer 4T4MDPMD2[19]
Timer 5T5MDPMD2[20]
Timer 6T6MDPMD2[21]
Timer 7T7MDPMD2[22]
Reference Clock Output 1REFO1MDPMD2[28]
Reference Clock Output 2REFO2MDPMD2[29]
Reference Clock Output 3REFO3MDPMD2[30]
Reference Clock Output 4REFO4MDPMD2[31]
UART1U1MDPMD3[0]
UART2U2MDPMD3[1]
UART3U3MDPMD3[2]
EthernetETH1MDPMD3[4]
SPI1SPI1MDPMD3[8]
SPI2SPI2MDPMD3[9]
Wi-FiW24GMDPMD3[12]
I2C1I2C1MDPMD3[16]
I2C2I2C2MDPMD3[17]
USBUSB1MDPMD3[24]
CAN 1 CAN1MDPMD3[27]
CAN 2 CAN2MDPMD3[28]

36.3.1 PERIPHERAL MODULE DISABLE REGISTERS

TABLE 36-3: PERIPHERAL MODULE DISABLE REGISTER SUMMARY

Virtual Address (BF80_#)Register Nano ^(12) Bit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
0090PMD131:16SQ1MDRNG1MDCRYPT1MDBA414MDDMA1MDRTCC1MD0000
15:0CVD1MDPTGMDADC1MDADCSARSHRMDPLVD1MDADCSAR0MD0000
00A0PMD231:16REFO4MDREFO3MDREFO2MDREFO1MDT7MDT6MDT5MDT4MDT3MDT2MDT1MD0000
15:0OC4MDOC3MDOC2MDOC1MDIC4MDIC3MDIC2MDIC1MD0000
00B0PMD331:16CAN2MDCAN1MDUSB1MDI2C2MDI2C1MD0000
15:0W24GMDSPI2MDSPI1MDETH1MDU3MDU2MDU1MD0000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
1: All registers have corresponding CLR, SET and INV registers at their virtual addresses, plus offsets of 0x4, 0x8 and 0xC, respectively. See Section 13.3 "CLR, SET and INV Registers" for more information.
2: All register bits are only writable when PMDLOCK Configuration (CFGCON0[12]) bit is 0.
3: Disabling a peripheral module while its ON bit is set, may result in undefined behavior. The ON bit for the associated peripheral module must be cleared prior to disabling a module via the PMDx bits.

36.4 Power-Saving with CPU Halted

Peripherals and the CPU can be halted or disabled to further reduce power consumption.

36.4.1 IDLE MODE

In Idle mode, the CPU is halted; however, all clocks are still enabled. This allows the peripherals to continue to operate. Peripherals can be individually configured to halt when entering Idle by setting their respective SIDL bit. Latency, when exiting Idle mode, is very low due to the CPU oscillator source remaining active.

The device enters Idle mode when the SLPEN bit (OSCCON[4]) is clear and a WAIT instruction is executed.

The processor will wake or exit from Idle mode on the following events:

  • On any interrupt event where the interrupt source is enabled. The priority of the interrupt event must be greater than the current priority of the CPU. If the priority of the interrupt event is lower than or equal to the current priority of the CPU, the CPU will remain halted and the device will remain in Idle mode.
  • On any form of device Reset
  • On a WDT time-out interrupt
  • Wake on Wi-Fi data packet

36.4.1.1 Wi-Fi Power-Save Mode with MCU in IDLE Mode

When the CPU is in a halted state and the MCU is in the idle state, the device can be configured with the Wi-Fi power mode shown below to reduce the power consumption.

TABLE 36-4: WI-FI POWER SAVE MODE WITH MCU IN IDLE MODE ^(1)

CPU StateMCU ModeWi-Fi Power Save Mode
HALTED IDLE WSM
WDS
  1. For more details, refer to Section 36.6 "Wi-Fi Power Save Modes".

36.4.2 SLEEP MODE

Sleep mode has the lowest power consumption of the device power-saving operating modes while the CPU is halted. The CPU and most peripherals are halted and the associated clocks are disabled. Select peripherals can continue to operate in Sleep mode and can be used to wake the device from sleep. See the individual peripheral module sections for descriptions of the behavior in Sleep mode.

The device enters Sleep mode when the SLPEN bit (OSCCON[4]) is set and a WAIT instruction is executed.

Sleep mode includes the following characteristics:

  • There can be a wake-up delay based on the oscillator selection
  • The Fail-Safe Clock Monitor (FSCM) does not operate during Sleep mode
  • The BOR circuit remains operative during Sleep mode
  • WDT, if enabled, is not automatically cleared prior to entering Sleep mode
  • Some peripherals can continue to operate at limited functionality in Sleep mode. These peripherals include I/O pins that detect a change in the input signal, WDT, ADC, UART and peripherals that use an external clock input or the internal LPRC oscillator (for example, RTCC, Timer1 and Input Capture).
  • I/O pins continue to sink or source current in the same manner as they do when the device is not in Sleep mode

The processor will exit, or wake-up, from sleep on one of the following events:

  • On any interrupt from an enabled source that is operating in Sleep mode. The interrupt priority must be greater than the current CPU priority.
  • On any form of device Reset
  • On a WDT time-out

If the interrupt priority is lower than or equal to the current priority, the CPU will remain halted, but the peripheral bus clocks will start running and the device will enter into the Idle mode.

36.4.2.1 Wi-Fi Power-Save Mode with MCU in Sleep/Dream Mode

When the CPU is in a halted state and the MCU is in the Sleep/Dream mode, the device can be configured with the Wi-Fi Power mode shown below to reduce the power consumption.

TABLE 36-5: WI-FI POWER-SAVE MODE WITH MCU IN SLEEP/DREAM MODE ^(1)

CPU StateMCU ModeWi-Fi Power-Save Mode
Halted Sleep/DreamWSM
WDS
WOFF
  1. For more details, refer to Section 36.2.1 "Wi-Fi Power-Save Mode With MCU in RUN Mode".

36.4.3 DREAM MODE

The device enters Dream mode when the DRMEN bit (OSCCON[23]) and SLPEN bit (OSCCON[4]) are set and a WAIT instruction is executed.

Dream mode includes the following characteristics:

- While entering Sleep mode, the CRU monitors the

DMA transfer status. If any DMA transaction is in progress, the CPU will enter idle mode until the DMA transfer is complete.

When the CPU is in Sleep mode and an interrupt triggers the DMA, the CPU enters idle mode again until the DMA transfer is complete. On completion, the CPU switches back to Sleep mode. (In this case, the interrupt priority is high enough to trigger a DMA but not to wake up the core).

36.4.4 DEEP SLEEP MODE

Perform the following steps to enter into the Deep Sleep mode:

  1. Disable all the interrupts, except INTO (as desired).
  2. Set the DSEN bit in the DSCON register.
  3. Check for any pending interrupts and if present, abort Deep Sleep and service the interrupt.
  4. If there are no pending interrupts, issue a WAIT command from the CPU.

To minimize the chance that Deep Sleep will be spuriously entered, it is recommended that the WAIT command be issued as the next instruction following the setting of the DSCON[DSEN] bit. This sequence can still be interrupted by interrupts and other system latencies, but will not prevent Deep Sleep being entered once the WAIT command is executed. The DSEN bit is, then, automatically cleared when exiting Deep Sleep mode.

Deep Sleep mode will be exited on any of the following events:

  1. POR event on the VDD supply
  2. DSWDT time-out
  3. RTCC alarm (if RTCEN = 1 and the RTCC is present)
  4. Assertion of the MCLR pin or INT0 pin.

Exiting Deep Sleep mode does not retain the state of the device, and is equivalent to a Power-on Reset of the device. Exceptions to this include the RTCC, which remains operational through the wake-up, the DSGPRn, DSCON and DSWAKE registers and may include other device specific features, such as I/O, timers, etc.

36.4.4.1 Zero-Power BOR (ZPBOR)

ZPBOR is a low power BOR used during the Deep Sleep operation. The ZPBOR is enabled only when the DSZPBOREN configuration bit is set as '1'. For more details on the device status under ZPBOR active during Deep Sleep Mode, refer to Table 36-7.

36.4.4.2 Enabling DSWDT in Deep Sleep Mode

To enable the Deep Sleep Mode Watchdog Timer (DSWDT) in Deep Sleep mode, the user must set the CFGCON3.DSWDTEN bit. The DSWDT is a separate timer from the device's WDT that is used in the Run mode. The device's WDT does not have to be enabled for the DSWDT to function. Entry into the Deep Sleep mode automatically resets the DSWDT.

36.4.4.3 Enabling Retention RAM in Deep Sleep Mode

To enable the Retention RAM (WCM) in Deep Sleep mode, the user must set the PMU controller CLKCTRL.WCMRET bit. If not enabled, WCM RAM is not retained during the Deep Sleep mode.

36.4.5 EXTREME DEEP SLEEP MODE

Perform the following steps to enter into the Extreme Deep Sleep mode:

  1. Disable all the interrupts, except INTO (as desired)
  2. Disable RTCC, DSWDT and WCM Retention.
  3. Set the DSEN bit in the DSCON register.
  4. Check for the pending interrupts, and, if present, abort the Extreme Deep Sleep mode and service the interrupt
  5. If there are no pending interrupts, issue a WAIT command from the CPU. To minimize the chance of entering the Extreme Deep Sleep mode spuriously, it is recommended the WAIT command be issued as the next instruction following the setting of the DSCON[DSEN] bit. This sequence can still be interrupted by interrupts and other system latencies, but it will not prevent the system entering the Extreme Deep Sleep mode once the WAIT command is executed. The DSEN bit is, then, automatically cleared when exiting the Extreme Deep Sleep mode. The Extreme Deep Sleep mode will be exited on any of the following events:
  6. POR event on the VDD supply
  7. Assertion of the MCLR pin or INT0 pin.

Exiting the Extreme Deep Sleep mode does not retain the state of the device, and is equivalent to a Power-on Reset of the device.

TABLE 36-6: SYSTEM LOW POWER STATUS DECODING

VBAT DPSLP POR Description
0 0 0 Non POR reset
0 0 1 Normal POR reset, (no VBAT)
010Reserved
0 1 1 Normal Exit from Deep Sleep
1 0 1 Exit from VBAT (no DEep Sleep mode or Extreme Deep Sleep mode)
1 1 1 Exit from VBAT from Deep Sleep mode or Extreme Deep Sleep mode

FIGURE 36-1: POWER SUBSYSTEM BLOCK DIAGRAM
Microchip PIC32MZ1025W104132 - EXTREME DEEP SLEEP MODE - 1

flowchart
graph TD
    A["VBAT"] --> B["Low-Power VREG (ULPVREG)"]
    C["VDDCORE"] --> B
    D["MCLR"] --> E["ZPBOREN"]
    E --> F["VBPOR"]
    F --> G["ZPBOR"]
    G --> H["POR"]
    H --> I["BOR"]
    I --> J["MCLR"]
    J --> K["MONitors"]
    K --> L["PLDO (Primary VREC)"]
    L --> M["WLDO (Wi-Fi LDO)"]
    M --> N["Wi-Fi Subsystem"]
    O["VDD33 3.3V"] --> P["PMU"]
    P --> Q["PMU Controller"]
    R["VDD15(1.5V)"] --> S["DSEN"]
    T["RTCDIS"] --> U["RTCC"]
    U --> V["DSWDT"]
    W["RTCCLKSEL"] --> X["DSWDTEN"]
    X --> Y["DSWDTOSC"]
    Z["DSGPR1-32"] --> AA["DSGPR0"]
    AB["Deep Sleep Persistent General Purpose Registers"] --> AC["Wi-Fi Subsystem"]
    AD["From WLDO"] --> AE["CPU SRAM Peripherals"]
    AF["Release WOC"] --> AG["OCK LOGIC"]
    AH["Peripheral I/O"] --> AI["..."]
    AJ["SOSCI"] --> AK["SOSCO"]
    AL["SOSC"] --> AM["LPRC"]
    AN["SOSC"] --> AO["SOSC"]

36.5 Deep Sleep Controller Registers

TABLE 36-7: DEEP SLEEP CONTROLLER REGISTER MAP

Virtual Address (BF87_#)Register NameBit RangeBitsAll Resets
31/15 3014 29/13 28/12 27/1126/10 25/924/8 23/722/6 21/5 20/4 19/3 182 17/1 16/0
1000DSCON31:160000
15:0DSENDSGPRENRTCDISRTCCWDISDSBORRELEASE0000
1004DSWAKE31:160000
15:0DSINTOEXTDSWDTDSRTCDSMCLR0000
1008DSGPR031:16DSGPR[31:0]0000
15:00000
1010DSGPR131:16DSGPR[31:0]0000
15:00000
1014DSGPR231:16DSGPR[31:0]0000
15:00000
1018DSGPR331:16DSGPR[31:0]0000
15:00000
101CDSGPR431:16DSGPR[31:0]0000
15:00000
1020DSGPR531:16DSGPR[31:0]0000
15:00000
1024DSGPR631:16DSGPR[31:0]0000
15:00000
1028DSGPR731:16DSGPR[31:0]0000
15:00000
102CDSGPR831:16DSGPR[31:0]0000
15:00000
1030DSGPR931:16DSGPR[31:0]0000
15:00000
1034DSGPR1031:16DSGPR[31:0]0000
15:00000
1038DSGPR1131:16DSGPR[31:0]0000
15:00000
103CDSGPR1231:16DSGPR[31:0]0000
15:00000
1040DSGPR1331:16DSGPR[31:0]0000
15:00000
1044DSGPR1431:16DSGPR[31:0]0000
15:00000
1048DSGPR1531:16DSGPR[31:0]0000
15:00000
Virtual Address (BF87.#)Register NameBit RangeBitsAll Resets
31/15 3014 29/1328/12 27/1126/10 25/924/8 23/722/6 21/5 2014 19/3 182 17/1 16/0
104CDSGPR1631:16DSGPR[31:0]0000
15:00000
1050DSGPR1731:16DSGPR[31:0]0000
15:00000
1054DSGPR1831:16DSGPR[31:0]0000
15:00000
1058DSGPR1931:16DSGPR[31:0]0000
15:00000
105CDSGPR2031:16DSGPR[31:0]0000
15:00000
1060DSGPR2131:16DSGPR[31:0]0000
15:00000
1064DSGPR2231:16DSGPR[31:0]0000
15:00000
1068DSGPR2331:16DSGPR[31:0]0000
15:00000
106CDSGPR2431:16DSGPR[31:0]0000
15:00000
1070DSGPR2531:16DSGPR[31:0]0000
15:00000
1074DSGPR2631:16DSGPR[31:0]0000
15:00000
1078DSGPR2731:16DSGPR[31:0]0000
15:00000
107CDSGPR2831:16DSGPR[31:0]0000
15:00000
1080DSGPR2931:16DSGPR[31:0]0000
15:00000
1084DSGPR3031:16DSGPR[31:0]0000
15:00000
1088DSGPR3131:16DSGPR[31:0]0000
15:00000
108CDSGPR3231:16DSGPR[31:0]0000
15:00000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.
Note: Supports Back-to-back write validation before updating the DSCON/DSWAKE/DSGPR0 registers.

REGISTER 36-1: DSCON – DEEP SLEEP CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-0 R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
— — — —— — — —
23:16R-0 R-0 R-0R-0 R-0 R-0 R-0R-0 R-0
— — — —— — — —
15:8R/W/HC-0U-0R/W-0R/W-0U-0U-0U-0R/W-0
DSENDSGPRENRTCDISRTCCWDIS
7:0U-0U-0U-0U-0U-0U-0R/W/C/HS-0R/C/HS/HC-0
— — — —— —DSBORRELEASE

Legend:

HC = Cleared by hardwareHS = Set by hardwareR = Readable bit
U = Unimplemented bitW = Writable bitC = Clearable bit

bit 31-16 Unimplemented: Read as '0'

bit 15 DSEN: Deep Sleep Enable bit ^(1)

0 = Sleep mode is entered on a WAIT command

1 = Deep Sleep mode is entered on a WAIT command

Note 1: To enter Deep Sleep mode, Sleep mode must be executed after setting the DSEN bit.

bit 14 Unimplemented: Read as '0'

bit 13 DSGPREN: General Purpose Registers Enable bit

0 = No general purpose register retention in Deep Sleep mode

1 = General purpose register retention is enabled in Deep Sleep mode

bit 12 RTCDIS: RTCC Module Disable bit

0 = RTCC is enabled

1 = RTCC is not enabled

bit 11-9 Unimplemented: Read as '0'

bit 8 RTCCWDIS: RTCC Wake-up Disable bit

0 = Wake-up from RTCC is enabled

1 = Wake-up from RTCC is disabled

bit 7-2 Unimplemented: Read as '0'

bit 1 DSBOR: Deep Sleep BOR Event Status bit

0 = DSZPBOREN was disabled, or VDD did not drop below the DSBOR threshold during Deep Sleep

1 = DSZPBOREN was enabled and VDD dropped below the DSBOR threshold during Deep Sleep

Note: Unlike all other events, a DSBOR event does not cause a wake-up from Deep Sleep. This bit is present only as a status bit.

bit 0 RELEASE: I/O Pin State Release bit

0 = Release I/O pins and allow their respective TRIS and LAT bits to control their states

1 = Upon waking from Deep Sleep, the I/O pins maintain their previous states (Not user settable).

Note: The RELEASE register bit is readable and clearable (but not settable) by the software. This bit is automatically set when entering the Deep Sleep mode. While exiting the Deep Sleep mode, due to any wake-up source other than MCLR, once all state related configuration is complete the software must clear the RELEASE bit. Once the RELEASE bit is cleared, the I/Os will go back to its last set state.

Note 1: All register bits are reset only in the case of a VDDBAT POR event.

REGISTER 36-2: DSWAKE – DEEP SLEEP WAKE-UP SOURCE REGISTER

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R-0 R-0 R-0R-0 R-0 R-0R-0 R-0
— — — —— — — —
23:16R-0 R-0 R-0R-0 R-0 R-0R-0 R-0
— — — —— — — —
15:8R-0 R-0 R-0R-0 R-0 R-0R-0 R/W/C/HS-0
DSINT0
7:0R-0R-0R/W/C/HS-0R/W/C/HS-0R/W/C/HS-0R/W/C/HS-0R-0R-0
EXTDSWDTDSRTCDSMCLR

Legend:

HC = Cleared by hardwareHS = Set by hardwareR = Readable bit
U = Unimplemented bitW = Writable bitC = Clearable bit

bit 31-9 Unimplemented: Read as '0'

bit 8 DSINT0: Deep Sleep Interrupt-on-change #0 bit (Only present if DS_NUM_INTS ≥ 1)

0 = Interrupt-on-change #0 was not asserted during Deep Sleep
1 = Interrupt-on-change #0 was asserted during Deep Sleep

bit 7-6 Unimplemented: Read as '0'

bit 5 EXT: External Wake-up Source bit

0 = No external wake-up event is detected during Deep Sleep
1 = An external wake-up event is detected during Deep Sleep
This bit is only present when DS_NUM_EXT_WAKE > 0.

bit 4 DSWDT: Deep Sleep Watchdog Timer Time-out bit

0 = DSWDT does not time out during Deep Sleep
1 = DSWDT timed out during Deep Sleep

bit 3 DSRTC: Deep Sleep Real Time Clock and Calendar Alarm bit

0 = Deep Sleep RTC and calendar does not trigger an alarm during Deep Sleep
1 = Deep Sleep RTC and calendar triggers an alarm during Deep Sleep

bit 2 DSMCLR: Deep Sleep MCLR Event bit

0 = DSMCLR pin is not active or is active, but not asserted during Deep Sleep
1 = DSMCLR pin is active and is asserted during Deep Sleep

bit 1-0 Unimplemented: Read as '0'

Note 1: All register bits are reset only in the case of a VDDBAT POR event or entry into VBAT Mode.

2: All register bits are cleared when the DSCON[DSEN] bit transitions from 1'b0 to 1'b1. They are updated while DSEN = 1.
3: The DSWAKE register is only writable by software when DSCON[RELEASE] = '0' (E.1).

REGISTER 36-3: DSGPRn – DEEP SLEEP PERSISTENT GENERAL PURPOSE REGISTER, WHERE n = 0 TO 32

Bit RangeBit31/23/15/7Bit30/22/14/6Bit29/21/13/5Bit28/20/12/4Bit27/19/11/3Bit26/18/10/2Bit25/17/9/1Bit24/16/8/0
31:24R/W-xxxx R/W-xxxx R/W-xxxx R/W-xxxxR/W-xxxx R/W-xxxR/W-xxxx R/W-xxxxW-xxxx
DSGPR[31:24]
23:16R/W-xxxx R/W-xxxx R/W-xxxx R/W-xxxxR/W-xxxx R/W-xxxR/W-xxxx R/W-xxxxW-xxxx
DSGPR[23:16]
15:8R/W-xxxx R/W-xxxx R/W-xxxx R/W-xxxxR/W-xxxx R/W-xxxR/W-xxxx R/W-xxxxW-xxxx
DSGPR[15:8]
7:0R/W-xxxx R/W-xxxx R/W-xxxx R/W-xxxxR/W-xxxx R/W-xxxR/W-xxxx R/W-xxxxW-xxxx
DSGPR[7:0]

Legend:

R = Readable bit

W = Writable bit

x = Bit is unknown at Reset

bit 31-0 DSGPRx: Deep Sleep Persistent General Purpose Register bits

The contents of the DSGPR0 register are retained, even in the Deep Sleep mode. The DSPGR0 through DSP-GR32 registers are disabled by default in the Deep Sleep mode but can be enabled with the DSGPREN bit (DSCON[13]). All register bits are reset only in the case of a VDD Power-on Reset (POR) event outside of the Deep Sleep mode.

Note 1: All register bits are reset only in the case of a VDDBAT POR event.

36.6 Wi-Fi Power Save Modes

The Wi-Fi Sleep Mode Controller (SMC) will take over the RF, MAC and BBP-PHY clock gating and power controls once the WDS/WSM mode is triggered. The SMC will automatically periodically switch between the Run and Sleep states in the Sleep modes. All the wait times related to the Sleep states are programmable.

In the PIC32MZ W1, the Wi-Fi subsystem shares the CPU with the MCU, therefore, the Wi-Fi Run mode cannot be complete until the MCU is in Run mode. The Wi-Fi Run mode will force the MCU to be in Run mode.

The MCU sleep entry forces the Wi-Fi (SMC) into Sleep mode and vice-versa. The MCU sleep exit forces the Wi-Fi (SMC) to exit and vice-versa.

The MCU sleep entry forces the Wi-Fi (SMC) into Sleep if it is not already in the Sleep mode but this is not true vice-versa. The Wi-Fi (SMC) sleep exit forces the MCU out of the Sleep mode if it is not in the Run mode but this is not true vice-versa.

The Wi-Fi (SMC) power save modes (WSM and WDS) have the following internal states:

- Run state:

- The Wi-Fi subsystem can transmit or receive any of the Wi-Fi packets. (Both TX and RX are active.)

- Sleep state:

- The Wi-Fi subsystem cannot transmit or receive any of the Wi-Fi packets. (Both TX and RX are inactive.)

36.6.1 WSM: Wi-Fi SLEEP MODE

  • Faster recovery from the Sleep mode
  • WSM can put the Wi-Fi (SMC) to sleep independently without putting the MCU into Sleep mode
  • During the WSM-sleep state, the RF is in Sleep mode, POSC is ON, RF internal LDOs, PLL and TX/RX chains are clock-gated
    • RAM and Wi-Fi register contents are retained
  • On wake-up, the CPU will continue execution from the next instruction from when it went to sleep
  • Wake-up source from WSM:

- Wake on WSM sleep duration complete

- When Wi-Fi data is available from access point

- On the user's request, the MCU can trigger the exit of the Wi-Fi (SMC) Sleep mode

- The customer needs to use the Software User Guide API to enable the WSM mode

36.6.2 WDS: Wi-Fi DEEP SLEEP MODE

  • Lowest power consuming Sleep state and favorable for longer sleep duration
  • The RF is powered down completely including primary oscillator (POSC), RF internal LDOs, PLL and TX/RX chains
  • If the primary oscillator has any system peripheral request apart from the Wi-Fi (SMC), the device will always enter into WSM even if the system requests WDS mode
    • The SMC can exist in either the WDS Sleep state
  • The WDS can put the SMC to sleep independently without putting the system into Sleep mode
    • The RAM and Wi-Fi register contents are retained
  • On wake-up, the CPU will continue execution from the next instruction from when it went to sleep
  • Wake-up source from WDS:

- Wake on the WSM sleep duration complete

- When the Wi-Fi data is available from the access point

- On the user's request, the MCU can trigger the exit of the Wi-Fi (SMC) Sleep mode

- The customer needs to use Software User Guide API to enable WSM mode

36.6.3 WOFF: Wi-Fi POWER-OFF MODE

  • The WOFF mode is where the complete Wi-Fi sub-system power is shut off and all the configuration registers and memory contents are lost
  • The WOFF can use WCM memory before triggering the WOFF mode to retain any content that needs to be retained.

  • Re-initialization of the Wi-Fi subsystem is required in case data are not retained in the WCM memory.

  • On wake-up, the CPU will continue execution from the next instruction from when it went to sleep.
  • Wake-up source from WOFF:

- There is no wake-up source for WOFF; the software has to reinitialize the Wi-Fi subsystem.

- The device enters WOFF mode when the WLDOOFF bit (PMUCLKCTRL[30]) is set.

REGISTER 36-4: PMD1: PERIPHERAL MODULE DISABLE 1 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 R/WW/L-0 U-0 U-0R/W/L-0 U-0 R/W/L-0
SQI1MDRNG1MDCRYPT1MD
23:16R/W/L-0 U-0 U-0 U-0 U-0 R/W/L-0U-0U-0 R/W/L-0
BA414MDDMA1MDRTCC1MD
15:8R/W/L-0 U-0 U-0 U-0 R/W/L-0U-0U-0 R/W/L-0
CVD1MDPTGMDADC1MD
7:0R/W/L-0 U-0 U-0 R/W/L-0 U-0U-0U-0 R/W/L-0
ADCSARSHRMDPLVD1MDADCSAR0MD

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31-30 Unimplemented: Read as '0'

bit 29 SQI1MD: SQI Module Disable bit

1 = Disabled

0 = Enabled

bit 28-27 Unimplemented: Read as '0'

bit 26 RNG1MD: RNG1 Module Disable bit

1 = Disabled

0 = Enabled

bit 25 Unimplemented: Read as '0'

bit 24 CRYPT1MD: CRYPTO1 Module Disable bit

1 = Disabled

0 = Enabled

bit 23 BA414MD: Asymmetric Crypto Module Disable bit

1 = Disabled

0 = Enabled

bit 22-20 Unimplemented: Read as '0'

bit 19 DMA1MD: DMA Controller Module Disable bit

1 = Disabled

0 = Enabled

bit 18-17 Unimplemented: Read as '0'

bit 16 RTCC1MD: RTCC Module Disable bit

1 = Disabled

0 = Enabled

bit 15 CVD1MD: CVD Module Disable bit

1 = Disabled

0 = Enabled

bit 14-12 Unimplemented: Read as '0'

bit 11 PTGMD: PTG Module Disable bit

1 = Disabled

0 = Enabled

bit 10-9 Unimplemented: Read as '0'

bit 8 ADC1MD: ADC Controller Module Disable bit

1 = Disabled

0 = Enabled

REGISTER 36-4: PMD1: PERIPHERAL MODULE DISABLE 1 REGISTER (CONTINUED)

bit 7 ADCSARSHRMD: Shared ADC SAR Core Module Disable bit

1 = When disabled, the corresponding ADC SAR SHARED will be disabled.
0 = Enabled

bit 6-5 Unimplemented: Read as '0'

bit 4 PLVD1MD: PLVD Module Disable bit

1 = When disabled, the corresponding PLVD will be disabled.
0 = Enabled

bit 3-1 Unimplemented: Read as '0'

bit 0 ADCSAR0MD: ADC SAR Core 0 Module Disable bit

1 = When disabled, the corresponding ADC SAR will be disabled.
0 = Enabled

REGISTER 36-5: PMD2: PERIPHERAL MODULE DISABLE 2 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-0 R/WW/L-0 R/W/L-0 R/WW/L-0 U-0 U-0U-0 U-0
REFO4MD REFO3MD REFO2MD REFO1MD— — — —
23:16U-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
T7MDT6MDT5MDT4MDT3MDT2MDT1MD
15:8U-0U-0U-0U-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
OC4MDOC3MDOC2MDOC1MD
7:0U-0U-0U-0U-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
IC4MDIC3MDIC2MDIC1MD

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31-28 REFOnMD: Reference (Clock) Out n Module Disable bit

1 = Disabled
0 = Enabled

bit 27-23 Unimplemented: Read as '0'

bit 22-16 TnMD: Timer n Module Disable bit

1 = Disabled
0 = Enabled

bit 15-12 Unimplemented: Read as '0'

bit 11-8 OCnMD: Output Compare n Module Disable bit

1 = Disabled
0 = Enabled

bit 7-4 Unimplemented: Read as '0'

bit 3-0 ICnMD: Input Capture n Module Disable bit

1 = Disabled
0 = Enabled

REGISTER 36-6: PMD3: PERIPHERAL MODULE DISABLE 3 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 R/W/L-0 R/W/L-0 U-0 U-0 R/W/L-0
— — — CAN2MD CAN1MD — —US B1MD
23:16U-0 U-0 U-0 U-0 U-0 U-0 R/W/L-0 R/W/L-0
— — —— — —I2C2MD I2C1MD
15:8U-0 U-0 U-0 R/W/L-0 U-0 U-0 R/W/L-0 R/W/L-0
W24GMDSPI2MDSPI1MD
7:0U-0 U-0 U-0 R/W/L-0 U-0 R/W/L-0 R/W/L-0
ETH1MDU3MDU2MDU1MD

Legend:

R = Readable bit W = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR '1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31-29 Unimplemented: Read as '0'

bit 28-27 CANnMD: CAN Module Disable bit

1 = Disabled
0 = Enabled

bit 26-25 Unimplemented: Read as '0'

bit 24 USB1MD: USB Module Disable bit

1 = Disabled
0 = Enabled

bit 23-18 Unimplemented: Read as '0'

bit 17 I2C1MD: I2C 1 Module Disable bit

1 = Disabled
0 = Enabled

bit 16 I2C0MD: I2C 0 Module Disable bit

1 = Disabled
0 = Enabled

bit 15-13 Unimplemented: Read as '0'

bit 12 W24GMD: WiFi Module Disable bit

1 = Disabled
0 = Enabled

bit 11-10 Unimplemented: Read as '0'

bit 9 SPI2MD: SPI 2 Module Disable bit

1 = Disabled
0 = Enabled

bit 8 SPI1MD: SPI 1 Module Disable bit

1 = Disabled
0 = Enabled

bit 7-5 Unimplemented: Read as '0'

bit 4 ETH1MD: Ethernet Module Disable bit

1 = Disabled
0 = Enabled

bit 3 Unimplemented: Read as '0'

REGISTER 36-6: PMD3: PERIPHERAL MODULE DISABLE 3 REGISTER (CONTINUED)

bit 2-0 UnMD: UART Module Disable bit

1 = Disabled

0 = Enabled

36.6.4 CONTROLLING CONFIGURATION CHANGES

Peripherals can be disabled during run time, some restrictions on disabling peripherals are needed to prevent accidental configuration changes. PIC32MZ1025W104 devices include a Control Register Lock sequence to prevent alterations to enabled or disabled peripherals. For more details on configuration, refer to Section 38.0 "Special Features".

NOTES:

37.0 PROGRAMMABLE LOW VOLTAGE DETECT (PLVD)

The PIC32MZ W1 device supports a Programmable Low Voltage Detect (PLVD) module. The module is used to monitor the VDD supply voltage.

The LVD module is an interrupt-driven, supply-level detection. The voltage detection monitors the internal power supply by comparing the VDD to the band gap voltage. If the VDD is below the PLVD level, an NMI event will be triggered (RNMICON[18]). This module ensures that the supply voltage is sufficient for programming. A PLVD event will act to disable the flash controller from executing a programming sequence.

Key features:

• LVD trip point at a minimum of 3V
- Detect hysteresis
- Low going voltage detect only
- Generates an interrupt event

The LVD control module supports the following system modes:

  • Sleep mode
  • Idle mode
  • Freeze mode

During the Sleep mode, all clocks to the module are disabled. However, interrupt generation will still occur if the module is enabled. In Idle mode, the CPU clocks are disabled, but the peripheral clocks (UPB clocks) are still active. The module continues to run normally in the Idle mode as long as LVDCON.SIDL = 0. If LVDCON.SIDL = 1, the module stops when the device is in the Idle mode. When the module stops, it behaves in the same way as in the Sleep mode. During the Freeze mode, all outputs of the module are frozen, and the register reads and writes are possible through the CPU interface. While in the Freeze mode, no events are generated.

37.1 PLVD Registers

TABLE 37-1: PLVD REGISTER MAP

Virtual Address (BF80_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
1400hLVDCON31:160000
15:00ONSIDLVDIRBGVSTIRVSTEVENTDISOUTLVDL0000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.

REGISTER 37-1: LVDCON: LOW-VOLTAGE DETECT CONTROL REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0U-0U-0U-0U-0U-0U-0U-0
23:16U-0U-0U-0U-0U-0U-0U-0U-0
15:8R/W-0U-0R/W-0U-0R/W-0HS/HC/R-0HS/HC/R-0HS/HC/R-0
ONSIDLVDIRBGVSTIRVSTEVENT
7:0R/S-0U-0U-0U-0R/W-0R/W-0R/W-0R/W-0
DISOUTLVDL3LVDL2LVDL1LVDL0

Legend:

HC = Cleared by hardwareHS = Set by hardware
R = Readable bitW = Writable bitP = Programmable bit r = Reserved bit
U = Unimplemented bitS = Settable bit-n = Bit Value at POR: (0, 1, x = unknown)

bit 31-16 Unimplemented: Read as '0'

bit 15ON: Low-voltage Detect Power Enable bit1 = Enables LVD, powers up LVD circuit and supporting reference circuitry0 = Disables LVD, powers down LVD and supporting circuitry
bit 14Unimplemented: Read as ‘0’
bit 13SIDL: Stop in Idle Mode bit1 = Discontinue operation of LVD when device enters Idle mode0 = Continue operation of LVD in Idle mode
bit 12Unimplemented: Read as ‘0’
bit 11VDIR: Voltage Direction Magnitude Select bit1 = LVD Event occurs on voltage ≥ selected detection limit (LVDL[3:0])0 = LVD Event occurs on voltage ≤ selected detection limit (LVDL[3:0])
bit 10BGVST: Band Gap Reference Voltages Stable Status bit1 = Indicates internal band gap voltage references is stable0 = Indicates internal band gap voltage reference is not stable
bit 9IRVST: Internal Reference Voltages Stable Status bit1 = Indicates all internal LVD voltage references are stable0 = Indicates all internal LVD voltage references are not stable
bit 8EVENT: Low Voltage Detection Event Status bit1 = Indicates LVD Event interrupt is active0 = Indicates LVD Event interrupt is not active
Note: Refer to Table 41-36 for the trip points.

REGISTER 37-1: LVDCON: LOW-VOLTAGE DETECT CONTROL REGISTER (CONTINUED)

bit 7 DISOUT: Disable Output bit

0 = Disable output of comparator

1 = Do not disable output of comparator

bit 6-4 Unimplemented: Read as '0' (Reserved for future expansion of LVDL[3:0] field)

bit 3-0 LVDL[3:0]: Low Voltage Detection Limit Select bits

0111 = Selects trip point 7

0110 = Selects trip point 6

0101 = Selects trip point 5

0100 = Selects trip point 4

Note: Refer to Table 41-36 for the trip points.

NOTES:

38.0 SPECIAL FEATURES

Note: This data sheet summarizes the features of the PIC32MZ1025W104 family of devices. However, it is not intended to be a comprehensive reference source. To complement the information in this data sheet, refer to Section 32 "Configuration" (DS60001124) and Section 33. "Programming and Diagnostics" (DS60001129) in the "PIC32 Family Reference Manual", which are available from the Microchip website (www.microchip.com/PIC32).

PIC32MZ1025W104 devices include several features intended to maximize application flexibility and reliability and minimize cost through elimination of external components. These are:

  • Flexible device configuration
    • Joint Test Action Group (JTAG) interface
    • In-Circuit Serial Programming (ICSP)
  • Internal temperature sensor

38.1 Configuration Bits

This PIC32MZ W1 device provides several user writable configuration registers related to the configuration and operation of the system.

  • Permission Group Configuration Register (CFGPG) defines the permission group.
  • System Key Register (SYSKEY) defines the system key.
  • Device and Revision ID Register (DEVID) defines the device and revision ID.
  • Configuration Control Register 3 (CFGCON3) provides control, selection and locking for various features of the device.

- Configuration Control Register 0 (CFGCON0(L)) provides control, selection and locking for various features of the device. The registers those are marked with (L) are loadable from Flash.

  • ICAP clock selection
  • OCMP clock selection
  • PPS register locking
  • PMD register locking
  • CFGPG register locking
  • Config register locking
  • USB diagnostics enable
  • USB suspend sleep enable
  • JTAG port enable and configuration
  • iFlowtrace port enable
  • Flash ECC control
  • DMA, CPU, FC

  • Configuration Control Register 1 (CFGCON1(L)) provides control, selection and locking for various features of the device.

  • Debug port and feature configuration
  • USB port control
  • USB trim bits
  • CFGCON0 locking control
  • Class B functionality enable
  • High-speed UART enable
  • Ethernet RMII enable

  • Configuration Control Register 2 (CFGCON2(L)) provides control, selection and locking for various features of the device.

  • DMT enable and configuration
  • WDT enable and configuration
  • Clock monitoring and control
  • Oscillator enable and configuration
  • 2-Speed startup enabled in Sleep Mode bit
  • SYSPLL/EWPLL Postdiv2 programming

  • Configuration Control Register 4 (CFGCON4(L)) provides control, selection and locking for various features of the device.

  • Deep sleep modules control
  • SOSC configuration control

- User Unique ID Register (USERID(L)) provides the end user with a 16-bit ID field that maybe read out directly through the JTAG interface via the USERID JTAG instruction.

38.2 Special Features Registers

TABLE 38-1: DEVCFG: DEVICE CONFIGURATION WORD SUMMARY

Virtual Address(BF60_#)Register NameBit RangeBitsAll Resets
31/15 3014 29/13 2812 27/11 2610 25/9 24/823/7 22/6 21/520/4 19/3 182 17/116/0
0000CFGCON0(L)(1)31:16ETHTPSFFECCCON[1:0] ETHPLLHWMDB TPLL-HWMDSPLL-HWMDUPLL-HWMDPCMCANFDDIV[1:0]IC_ACLKOC_ACLK3280
15:00CFGLOCK[1:0]IOLOCKPMDLOCKPGLOCKPMULOCKUSBSSENEXLPRIDMAPRIFCPRIJTAGENTROENTDOEN00009
0010CFGCON1(L)(1)31:16WDTPS[4:0]USBDPTRIM[3:0]USBDMTRIM[3:0]1F80
15:00HSUARTENSMCLRHSSPIENVBUSIOUSBIDIOCLASSBDISETHEX-EREFFMIENTRCEN IGESEL[1:0]DEBUG[1:0]BE39
0020CFGCON2(L)(1)31:16DMTENDMTCNT[4:0]WDTWINSZ[1:0]WDTENWINDISWDTSPGMWDTPS[4:0]1F7E
15:00FSCMENCKSWENWAKE2SPDSOSCSELWDTRMCS[1:0]POSCMOD[1:0]DMTINTV[2:0]FF39
0030CFGCON3(1)31:16BTPLLPOSTDIV2[5:4]0000
15:00BTPLLPOSTDIV2[3:0]SPLLPOSTDIV2[5:0]ETHPLLPOSTDIV2[5:0]0000
0040CFGCON4(L)(1)31:16SOSCENDSEN DSWDTEN DSWD-TOSCDSWDTPS [4:0]DSZP-BOREN0418
15:00SOSCCFG[7:0]0000
0050CFGPG(2)31:16USBPG[1:0]SQIPG[1:0]ETHPG[1:0]CRY1PG[1:0]0000
15:00CAN2PG[1:0]CAN1PG[1:0]ADCPG[1:0]WIFIPG[1:0]ICDJPG[1:0]DMAPG[1:0]FCPG[1:0]CPUPG[1:0]0000
0060DEVID31:16VER[3:0]DEVID[27:16]xxxxx
15:00DEVID[15:0]xxxxx
0070USERID(L)31:160000
15:00USERID[15:0]0000
0080SYSKEY31:16SYSKEY[31:16]0000
15:00SYSKEY[15:0]0000

Legend: x = unknown value on Reset; — = unimplemented, read as '0'. Reset values are shown in hexadecimal.

Note 1: This register is only writable when CFGLOCK Configuration (CFGCON0[15:14]) bit is 00.

2: This register is only writable when PGLOCK Configuration (CFGCON0[11]) bit is 0.

REGISTER 38-1: CFGCON0(L): CONFIGURATION CONTROL REGISTER 0

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 R/WL-0 R/W/L-1R/W/L-1 R/W/L-0R/W/L-0 R/W/L-0W/L-0 R/W/L-0
— ETHTPSF FECCCON[1:0] ETHPLLHWMD BTPLLHWMD SPLHWMD UPLLHWMD
23:16R/W/L-1 U-0R/W/L-0 R/WW/L-0 U-0U-0R/W/L-0 R/W/L-0
PCMCANFDDIVIC_ACLKOC_ACLK
15:8R/W/L-0R/W/L-0R/S/L-0R/S/L-0R/S/L-0R/S/L-0U-0R/W/L-0
CFGLOCK[1:0]IOLOCKPMDLOCKPGLOCKPMULOCK— USBSEN
7:0R/W/L-0R/W/L-0R/W/L-0U-0R/W/L-1R/W/L-0U-0R/W/L-1
EXLPRIDMAPRI FCPRIJTAGENTROENTDOEN

Legend:

R = Readable bit W = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR '1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31 Unimplemented: Read as '0'

bit 30 ETHTPSF: Ethernet TX SOF enabled for CTR measurements

1 = TPSF is enabled in CTR measurement 0 = RPSF is enabled in CTR measurement

bit 29-28 FECCCON: Flash ECC Controls

11 = ECC and Dynamically ECC Disabled 10 = ECC and Dynamically ECC Disabled 01 = Dynamically ECC Enabled 00 = ECC Enabled (NVMOP = Word Programming disabled)

bit 27 ETHPLLHWMD: EWPLL Hardware Control Mode for power down and Reset

1 = Power Down and Reset are generated by hardware 0 = Power Down and Reset are generated by software using corresponding PLLCON register bits

bit 26 BTPLLHWMD: BTPLL Hardware Control Mode for power down and Reset

1 = Power Down and Reset are generated by hardware 0 = Power Down and Reset are generated by software using corresponding PLLCON register bits

bit 25 SPLLHWMD: SPLL Hardware Control Mode for power down and Reset

1 = Power Down and Reset are generated by hardware 0 = Power Down and Reset are generated by software using corresponding PLLCON register bits

bit 24 UPLLHWMD: UPLL Hardware Control Mode for power down and Reset

1 = Power Down and Reset are generated by hardware 0 = Power Down and Reset are generated by software using corresponding PLLCON register bits

bit 23 PCM: Prefetch I/D Cacheable Mode

1 = Always enabled. Can be further enabled/disabled by Prefetch module SFR registers. 0 = The cache-ability is controlled by the MIPS CPU via HPROT[3]. This feature is not available on all the MIPS cores.

bit 22 Unimplemented: Read as '0'

bit 20-21 CANFDDIV: CAN-FD Back-up Clock Divider

0 = Divide-by 2 1 = Divide-by 2 2 = Divide-by 4 3 = Divide-by 8

bit 18-19 Unimplemented: Read as '0'

REGISTER 38-1: CFGCON0(L): CONFIGURATION CONTROL REGISTER 0 (CONTINUED)

bit 17 IC_ACLK: ICAP Alternate Clock Selection

1 = ICAP Modules use an alternative timer pair as their timebase clock
0 = All ICAP Modules use timer2/timer3 as their timebase clock

bit 16 OC_ACLK: OCMP Alternate Clock Selection

1 = OCMP Modules use an alternative timer pair as their timebase clock
0 = All OCMP Modules use timer2/timer3 as their timebase clock

bit 15-14 CFGLOCK[1:0]: Configuration Register Lock

11 = All NVR memory self-writes, Boot Configuration (BCFG0) and System Configuration registers
(CFG* and USERID) are locked and can not be written - CFGLOCK value can not be changed.
10 = All NVR memory self-writes, Boot Configuration (BCFG0) and System Configuration registers
(CFG* and USERID) are locked and can not be written - CFGLOCK value can be changed.
01 = Reserved for future use
00 = All NVR memory self-writes, Boot Configuration (BCFG0) and System Configuration registers

(CFG* and USERID) are not locked and can be written - CFGLOCK value can be changed.

bit 13 IOLOCK: IO Lock

1 = IO Remap SFR bits are locked and cannot be modified
0 = IO Remap SFR are not locked and can be modified

bit 12 PMDLOCK: Peripheral Module Disable (PMD) Lock

1 = PMDx SFR bits are locked and cannot be modified
0 = PMDx SFR bits are not locked and can be modified

Note: Once locked, only a Reset can unlock.

bit 11 PGLOCK: Permission Group Lock

1 = CFGPG SFR bits are locked and cannot be modified
0 = CFGPG SFR bits are not locked and can be modified

bit 10 PMULOCK: PMU Controller Register Lock

1 = PMU SFR bits are locked and cannot be modified
0 = PMU SFR bits are not locked and can be modified

bit 9 Unimplemented: Read as '0'

bit 8 USBSEN: USB Suspend Sleep Enable

Enables features for USB PHY FREF Clock shutdown in SUSPEND Mode.

1 = USB FREF clock is shut down when suspend mode is active.
0 = USB FREF clock continues to run when suspend mode is active.

bit 7 EXLPRI: CPU arbitration Priority to SRAM when servicing an Interrupt (i.e. EXL=1)

1 = CPU gets High Priority access to SRAM1, SRAM2
0 = CPU uses Least Recently Serviced Arbitration (same as other initiators)

bit 6 DMAPRI: DMAR and DMAW arbitration Priority to SRAM

1 = DMA gets High Priority access to SRAM1, SRAM2
0 = DMA uses Least Recently Serviced Arbitration (same as other initiators)

bit 5 FCPRI: FC arbitration Priority to SRAM

1 = FC gets High Priority access to SRAM1, SRAM2
0 = FC uses Least Recently Serviced Arbitration (same as other initiators)

bit 4 Unimplemented: Read as '0'

bit 3 JTAGEN: JTAG Enable

1 = JTAG Port Enabled
0 = JTAG Port Disabled

bit 2 TROEN: Trace Output Enable

1 = Start Trace Clock and enable Trace Outputs (Trace Probe must be present)
0 = Stop Trace Clock and disable Trace Outputs

bit 1 Unimplemented: Read as '0'

REGISTER 38-1: CFGCON0(L): CONFIGURATION CONTROL REGISTER 0 (CONTINUED)

bit 0 TDOEN: TDO enable for 2-wire JTAG

1 = 2-wire JTAG protocol uses TDO
0 = 2-wire JTAG protocol does not use TDO

Note: The TDOEN bit must not be modified by the user. The 2-wire JTAG (SWD) time-multiplexes TMS/TDI/TDO JTAG signals over the PGD line. TDO can be disabled to speed up the data transfer in some cases where no output is needed to be read off the device, for instance, when programming the Flash. This has to be done at controlled points either by using a Debug Executive or Programming Executive. Disabling the TDOEN bit makes it impossible to read any data from the device including device ID.

REGISTER 38-2: CFGCON1(L): CONFIGURATION CONTROL REGISTER 1

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-0 R/W/L-1R/W/L-1 R/W/L-1 R/W/L-1R/W/L-1
— — — WDTPS[4:0]
23:16R/W/L-0 R/WW/L-0 R/WL-0 R/W/L-0 R/W/L-0 R/WW/L-0 R/WW/L-0 R/W/L-0
USBDPTRIM[3:0]USBDMTRIM[3:0]
15:8R/W/L-0 R/WW/L-1 R/WL-0 R/W/L-1 R/W/L-1 R/WW/L-1 R/WW/L-0 R/W/L-0
HSUARTENSMCLRHSSPIENVBUSIOUSBIDIOCLASSBDISETHEXEREFUSBSSEN
7:0U-0U-0R/W/L-1R/W/L-11R/W/L-11U-0R/W/L-11R/W/L-11
TRCENICESEL[1:0]DEBUG[1:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 32-29 Unimplemented: Read as '0'

bit 28-24 WDTPS[4:0]: Watchdog Timer Post-scale Select Sleep bits

10100 = 1:1048576

10011 = 1:524288

10010 = 1:262144

10001 = 1:131072

10000 = 1:65536

01111 = 1:32768

01110 = 1:16384

01101 = 1:8192

01100 = 1:4096

01011 = 1:2048

01010 = 1:1024

01001 = 1:512

01000 = 1:256

00111 = 1:128

00110 = 1:64

00101 = 1:32

00100 = 1:16

00011 = 1:8

00010 = 1:4

00001 = 1:2

00000 = 1:1

bit 23-20 USBDPTRIM[3:0]: USB DP Rise/Fall Trim fuse bits

bit 19-16 USBDMTRIM[3:0]: USB DM Rise/Fall Trim fuse bits

bit 15 HSUARTEN: UART1 High Speed Mode Enable

1 = UART1 is driven from/to dedicated pins, resulting in the highest possible maximum baud rate
0 = UART1 is driven through PPS (I/O remap), resulting in a lower maximum baud rate

bit 14 SMCLR: Selects CRU handling of MCLR Control

1 = Legacy mode (system clear does not reset all state of device)
0 = MCLR causes a faux POR

REGISTER 38-2: CFGCON1(L): CONFIGURATION CONTROL REGISTER 1 (CONTINUED)

bit 13 HSSPIEN: High Speed Mode Enable (SPI-1)

1 = SPI1 is driven from/to dedicated pins, resulting in the highest interface speed
0 = SPI1 is driven through PPS (I/O remap), resulting in a lower interface speed

bit 12 VBUSIO: USB VBUS ON Selection bit

1 = VBUS_ON pin is controlled by the USB Module
0 = VBUS_ON pin is controlled by the Port Function

bit 11 USBIDIO: USB USBID Selection bit

1 = USBID pin is controlled by the USB Module
0 = USBID pin is controlled by the Port Function

bit 10 CLASSBDIS: Disable CLASSB Device Functionality

0 = CLASSB functions enabled
1 = CLASSB functions disabled

bit 9 ETHEXEREF: Exclusive Ethernet PHY Reference Clock Enable

0 = Ethernet clock out will be used as PHY reference clock
1 = PHY reference clock is made available on Ethernet Exclusive clock out

bit 8 FMIIEN: Ethernet1 MII Enable

1 = 18-pin 25MHz Media Independent Interface is enabled
0 = 10-pin 50MHz Reduced Media Independent Interface is enabled

bit 7-6 Unimplemented: Read as '0'

bit 5 TRCEN: Trace Enable

1 = Trace features in the CPU are enabled
0 = Trace features in the CPU are disabled

bit 4-3 ICESEL[1:0]: In-Circuit Emulator/Debugger Communication Channel Select bits

11 = PGC1/PGD1 pair is used
10 = PGC2/PGD2 pair is used
01 = Reserved
00 = PGC4/PGD4 pair is used

bit 2 Unimplemented: Read as '0'

bit 1-0 DEBUG[1:0]: Background Debugger Enable bits (forced to '11' if code-protect is enabled)

1x = Debugger is disabled
0x = Debugger is enabled

REGISTER 38-3: CFGCON2(L): CONFIGURATION CONTROL REGISTER 2

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W/L-0 R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1
DMTEN DMTCNT[4:0] WDTWINSZ[1:0]
23:16R/W/L-0 R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1
WDTEN WINDIS WDTSPGM WDTPS[4:0]
15:8R/W/L-1 R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1R/W/L-1 R/W/L-1
FSCMENCKSWENWAKE2SPDSOSCSELWDTRMCS[1:0]POSCMOD[1:0]
7:0U-0U-0R/W/L-1R/W/L-1R/W/L-1U-0U-0U-0
DMTINTV[2:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31 DMTEN: Dead Man Timer Enable bit

1 = DMT enabled

0 = DMT disabled (control is placed on the DMTCON.ON bit)

bit 30-26 DMTCNT[4:0]: Dead Man Timer Count Select bits

00000 = Counter value is 2 ^8

00001 = Counter value is 2^9

.

10100 = Counter value is 2^28

10101 = Counter value is 2^29

10110 = Counter value is 2^30

10111 = Counter value is 2^31

11000 - 11111 = Reserved

bit 25-24 WDTWINSZ[1:0]: Watchdog Timer Window Size bits

00 = Window size is 75%

01 = Window size is 50%

10 = Window size is 37.5%

11 = Window size is 25%

bit 23 WDTEN: Watchdog Timer Enable bit

1 = WDT enabled

0 = WDT disabled (control is placed on the SWDTEN bit)

bit 22 WINDIS: Windowed Watchdog Timer Disable bit

1 = Standard WDT selected; windowed WDT disabled

0 = Windowed WDT enabled

bit 21 WDTSPGM: Watchdog Timer Stop during Flash Programming bit

1 = WDT stops during NVR programming (legacy)

0 = WDT runs during NVR programming (for read/execute while programming Flash systems)

REGISTER 38-3: CFGCON2(L): CONFIGURATION CONTROL REGISTER 2 (CONTINUED)
bit 20-16 WDTPS[4:0]: Watchdog Timer Post-scale Select Run bits

10100 = 1:1048576
10011 = 1:524288
10010 = 1:262144
10001 = 1:131072
10000 = 1:65536
01111 = 1:32768
01110 = 1:16384
01101 = 1:8192
01100 = 1:4096
01011 = 1:2048
01010 = 1:1024
01001 = 1:512
01000 = 1:256
00111 = 1:128
00110 = 1:64
00101 = 1:32
00100 = 1:16
00011 = 1:8
00010 = 1:4
00001 = 1:2
00000 = 1:1 

bit 15 FSCMEN: Fail-Safe Clock Monitor Enable

1 = FSCM Enabled
0 = FSCM Disabled 

bit 14 CKSWEN: Software Clock Switching Enable

1 = Software Clock Switching Enabled
0 = Software Clock Switching Disabled 

Note: If there is a requirement to switch any PLL clock source to UPLL, switch to the FRC clock first, then to the UPLL. Switching from any PLL clock source to UPLL leads to a device Reset.

bit 13 WAKE2SPD: 2-Speed startup enabled in Sleep mode bit

1 = When the device EXITS Sleep Mode, the SYS_CLK will be from FRC until the selected clock is ready
0 = When the device EXITS Sleep Mode, the SYS_CLK will be from the selected clock. 

bit 12 SOSCSEL: SOSC Selection Configuration bit

1 = Crystal (SOSCI/SOSCO) mode
0 = Digital (SCLKI) mode 

bit 11-10 WDTRMCS[1:0]: WDT RUN Mode Clock Select

11 = LPRC
10 = Module PB clock
01 = Module PB clock
00 = Module PB clock 

bit 9-8 POSCMOD[1:0]: Primary Oscillator Configuration bits

11 = Primary oscillator disabled
10 = HS oscillator mode selected
01 = HS oscillator mode selected
00 = HS oscillator mode selected 

bit 7-6 Unimplemented: Read as '0'

bit 5-3 DMTINTV[2:0]: Dead Man Timer Count Window Interval bits

000 = Window/interval value is zero counter value
001 = Window/interval value is 1/2 counter value
010 = Window/interval value is 1/4 counter value
011 = Window/interval value is 1/8 counter value
100 = Window/interval value is 1/16 counter value
101 = Window/interval value is 1/32 counter value
110 = Window/interval value is 1/64 counter value
111 = Window/interval value is 1/128 counter value 

REGISTER 38-3: CFGCON2(L): CONFIGURATION CONTROL REGISTER 2 (CONTINUED)

bit 2-0 Unimplemented: Read as '0'

REGISTER 38-4: CFGCONR3: CONFIGURATION CONTROL REGISTER 3

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U
—————— —
23:16U-0 U-0U-0 U
—————— BTPLLPOSTDIV2[5:4]
15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
BTPLLPOSTDIV2[3:0] SPLLPOSTDIV2[5:2]
7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0R/W-0 R/W-0
SPLLPOSTDIV2[1:0] ETHPLLPOSTDIV2[5:0]

Legend:

R = Readable bit W = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is clearedx = Bit is unknown

bit 31-18 Unimplemented: Read as '0'

bit 17-12 BTPLLPOSTDIV2[5:0]: BTPLL Post Divider bits for controlling auxiliary second PLL clock output. 1 ≤ xPLLPOSTDIV2 ≤ 63 , value of 0 is unused.

bit 11-6 SPLLPOSTDIV2[5:0]: SPLL Post Divider bits for controlling auxiliary second PLL clock output. 1 ≤ xPLLPOSTDIV2 ≤ 63 , value of 0 is unused.

bit 5-0 ETHPLLPOSTDIV2[5:0]: EWPLL Post Divider bits for controlling second PLL clock output for Wi-Fi block. 1 ≤ xPLLPOSTDIV2 ≤ 63 , value of 0 is unused.

REGISTER 38-5: CFGCON4(L): CONFIGURATION CONTROL REGISTER 4

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0R/W/L-0U-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
SOSCENDSENDSWDTENDSWDTOSCDSWDTPS[4:3]
23:16R/W/L-0R/W/L-0R/W/L-0R/W/L-0U-0U-0U-0U-0
DSWDTPS[2:0]DSZPBOREN
15:8U-0U-0U-0U-0U-0U-0U-0U-0
7:0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
SOSCCFG[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 L = Lockable bit

bit 31 Unimplemented: Read as '0'

REGISTER 38-5: CFGCON4(L): CONFIGURATION CONTROL REGISTER 4 (CONTINUED)

bit 30 SOSCEN: Low-Power (Secondary) Oscillator Enable bit

1 = Enable low-power (secondary) oscillator, also at Reset

0 = Disable low-power (secondary) oscillator

bit 29 Unimplemented: Read as '0'

bit 28 DSEN: Deep Sleep Bit Enable bit

0 = Disable DS Bit in DSCON

1 = Enable DS Bit in DSCON

Note: This field is only writable when CFGLOCK[1:0] = 0.0

bit 27 DSWDTEN: Deep Sleep Watchdog Timer Enable bit

0 = Disable DSWDT during Deep Sleep

1 = Enable DSWDT during Deep Sleep

Note: This field is only writable when CFGLOCK[1:0] = 00

bit 26 DSWDTOSC: Deep Sleep Watchdog Timer Reference Clock Select bit

0 = Select SOSC as DSWDT reference clock

1 = Select LPRC as DSWDT reference clock

Note: This field is only writable when CFGLOCK[1:0] = 0.0

bit 25-21 DSWDTPS[4:0]: Deep Sleep Watchdog Timer Postscale Select bits

The DS WDT prescaler is 32; this creates an approximate base time unit of 1 ms.

11111 = 1:236 (25.7 days)

11110 = 1:235 (12.8 days)

11101 = 1:234 (6.4 days)

11100 = 1:233 (77.0 hours)

11011 = 1:232 (38.5 hours)

11010 = 1:231 (19.2 hours)

11001 = 1:230 (9.6 hours)

11000 = 1:229 (4.8 hours)

10111 = 1:228 (2.4 hours)

10110 = 1:227 (72.2 minutes)

10101 = 1:226 (36.1 minutes)

10100 = 1:225 (18.0 minutes)

10011 = 1:224 (9.0 minutes)

10010 = 1:223 (4.5 minutes)

10001 = 1:222 (135.3 s)

10000 = 1:221 (67.7 s)

01111 = 1:220 (33.825 s)

01110 = 1:219 (16.912 s)

01101 = 1:218 (8.456 s)

01100 = 1:217 (4.228 s)

01011 = 1:65536 (2.114 s)

01010 = 1:32768 (1.057 s)

01001 = 1:16384 (528.5 ms)

01000 = 1:8192 (264.3 ms)

00111 = 1:4096 (132.1 ms)

00110 = 1:2048 (66.1 ms)

00101 = 1:1024 (33 ms)

00100 = 1:512 (16.5 ms)

00011 = 1:256 (8.3 ms)

00010 = 1:128 (4.1 ms)

00001 = 1:64 (2.1 ms)

00000 = 1:32 (1 ms)

Note: This field is only writable when CFGLOCK[1:0] = 00

REGISTER 38-5: CFGCON4(L): CONFIGURATION CONTROL REGISTER 4 (CONTINUED)

bit 20 DSZPBOREN: Deep Sleep Zero-Power BOR Enable bit

0 = Disable ZPBOR during Deep Sleep

1 = Enable ZPBOR during Deep Sleep

Note: This field is only writable when CFGLOCK[1:0] = 0.0

bit 19-8 Unimplemented: Read as '0'

bit 7-0 SOSCCFG[7:0]: SOSC Configuration bits

Bit [0:1]: Gain programmability for oscillator

G3 > G2 > G1 > G0

00 = Gain is G0

01 = Gain is G1

10 = Gain is G2

11 = Gain is G3

Bit 2: Kick-starter programmability for oscillator

1 = Boost the kick Start

0 = Default kick Start

Bit [3:7]: Reserved

REGISTER 38-6: CFGPG: PERMISSION GROUP CONFIGURATION REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0U-0 U-0 U-0 U-0U-0 U-0
— — —— — —
23:16R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
USBPG[1:0]SQIPG[1:0]ETHPG[1:0]CRY1PG[1:0]
15:8R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
CAN2PG[1:0]CAN1PG[1:0]ADCPG[1:0]WIFIPG[1:0]
7:0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
ICDJPG[1:0]DMAPG[1:0]FCPG[1:0]CPUPG[1:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31-24 Unimplemented: Read as '0'

bit 23-22 USBPG[1:0]: USB Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 21-20 SQIPG[1:0]: SQL Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 19-18 ETHPG[1:0]: ETH Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 17-16 CRY1PG[1:0]: CRY1 Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 15-14 CAN2PG[1:0]: CAN2 Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 13-12 CAN1PG[1:0]: CAN1 Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

Note: The CPU as System Bus Initiator will use the permission group indicated in the GuestID bits of the CPU core. These bits change based on some CPU operations, such as interrupts. Refer to Series 5 Warrior M-class CPU core resources which is available at: www.imgtec.com.

REGISTER 38-6: CFGPG: PERMISSION GROUP CONFIGURATION REGISTER

bit 11-10 ADCPG[1:0]: ADC Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 9-8 WIFIPG[1:0]: Wi-Fi Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 7-6 ICDJPG[1:0]: ICD-JTAG Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 5-4 DMAPG[1:0]: DMA Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 3-2 FCPG[1:0]: FC Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

bit 1-0 CPUPG[1:0]: CPU (Code) Permission Group bits

11 = Initiator is assigned to Permission Group 3
10 = Initiator is assigned to Permission Group 2
01 = Initiator is assigned to Permission Group 1
00 = Initiator is assigned to Permission Group 0

Note: The CPU as System Bus Initiator will use the permission group indicated in the GuestID bits of the CPU core. These bits change based on some CPU operations, such as interrupts. Refer to Series 5 Warrior M-class CPU core resources which is available at: www.imgtec.com.

REGISTER 38-7: DEVID: DEVICE AND REVISION ID REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24RRRRRRRR
VER[3:0] DEVID[27:24]
23:16RRRRRRRR
DEVID[23:16]
15:8RRRRRRRR
DEVID[15:8]
7:0RRRRRRRR
DEVID[7:0]

Legend:

R = Readable bit W = Writable bit U = Unimplemented bit, read as '0'

-n = Value at POR '1' = Bit is set '0' = Bit is cleared x = Bit is unknown

bit 31-28 VER[3:0]: Revision Identifier bits

bit 27-0 DEVID[27:0]: Device ID

REGISTER 38-8: USERID(L): USER UNIQUE ID REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24U-0 U-0 U-U-0 U-0 U-0U-0 U-0
— — —— — —
23-16U-0 U-0 U-U-0 U-0 U-0U-0 U-0
— — —— — —
15:8R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
USERID[15:8]
7:0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0R/W/L-0
USERID[8:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR'1' = Bit is set'0' = Bit is cleared L = Lockable bit

bit 31-16 Unimplemented: Read as '0'

bit 15-0 USERID: User unique ID, readable using the JTAG USERID instruction.

REGISTER 38-9: SYSKEY: SYSTEM KEY REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SYSKEY[31:24]
23-16R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SYSKEY[23:16]
15:8R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SYSKEY[15:8]
7:0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0
SYSKEY[8:0]

Legend:

R = Readable bitW = Writable bitU = Unimplemented bit, read as '0'
-n = Value at POR‘1’ = Bit is set‘0’ = Bit is cleared x = Bit is unknown

bit 31-0 SYSKEY: System Key

Keys are written to this register as part of a sequence to unlock system critical registers.

TABLE 38-2: BOOT CONFIGURATION SUMMARY

Virtual Address (BF80_#)Register NameBit RangeBitsAll Resets
31/1530/1429/1328/1227/1126/1025/924/823/722/621/520/419/318/217/116/0
0100BCFG031:16BINFO-VALID0SIGNCP×000
15:0C000

Legend: x = unknown value on Reset; — = Reserved, read as '0'. Reset values are shown in hexadecimal.

REGISTER 38-10: BCFG0: BOOT CONFIGURATION 0 REGISTER

Bit RangeBit 31/23/15/7Bit 30/22/14/6Bit 29/21/13/5Bit 28/20/12/4Bit 27/19/11/3Bit 26/18/10/2Bit 25/17/9/1Bit 24/16/8/0
31:24R-cfgR-0R-cfgR-cfgR-0R-0R-0R-0
BINFOVALID0SIGNCP
23:16R-0R-0R-0R-0R-0R-0R-0R-0
15:8R-0R-0R-0R-0R-0R-0R-0R-0
7:0R-0R-0R-0R-0R-cfgR-0R-cfgR-cfg
BOOTISAPCSCMODE
Legend:
R = Readable bitW = Writable bitU = Unimplemented bit, read as ‘0’
cfg = Configurable at Reset‘1’ = Bit is set‘0’ = Bit is cleared

bit 31 BINFOVALID0: First 256-bit BCFG Information Valid

1 = Untrusted, Flash values ignored and safe values used

0 = Trusted, loaded from Flash

Note: This bit to be programmed to '0' for proper device operation

bit 30 Unimplemented: Read as '0'

bit 29 SIGN: Flash SIGN bit

1 = Unsigned

0 = Signed

bit 28 CP: Code Protect

0 = Protection Disabled

1 = Protection Enabled

bit 27-4 Unimplemented: Read as '0'

bit 3 BOOTISA: Boot ISA Selection

1 = Boot code and exception code is MIPS32

0 = Boot code and exception code is microMIPS

Note: The BOOTISA bit does not determine the initial ISA for boots using EJTAGBOOT, but only for normal (non-debug) CPU boots. The initial ISA for boots using EJTAGBOOT is determined by the ECR.ISAOnDebug EJTAG register bit.

bit 2 Unimplemented: Read as '0'

bit 1 PCSCMODE: PCHE Single Cache Mode

1 = PCHE ICache only. CPU instructions (code, data) go to PCHE ICache only.

0 = PCHE ICache and DCache. CPU opcodes go to PCEHE ICache port and data goes to PCHE DCache port.

Note: This bit to be programmed to '0' for proper device operation.

REGISTER 38-10: BCFG0: BOOT CONFIGURATION 0 REGISTER (CONTINUED)

bit 0 Unimplemented: Read as '0'

38.3 On-Chip Voltage Regulator

The core and digital logic for all PIC32MZ1025W104 devices is designed to operate at a nominal 1.2V. To simplify system designs, devices in the PIC32MZ1025W104 family incorporate an on-chip regulator providing the required core logic voltage from VDD.

38.3.1 ON-CHIP REGULATOR AND POR

It takes a fixed delay for the on-chip regulator to generate an output. During this time, designated as TPU, code execution is disabled. TPU is applied every time the device resumes operation after any power-down, including Sleep mode.

38.3.2 ON-CHIP REGULATOR AND BOR

PIC32MZ1025W104 devices also have a simple brown-out capability. If the voltage supplied to the regulator is inadequate to maintain a regulated level, the regulator Reset circuitry will generate a Brown-out Reset. This event is captured by the BOR flag bit (RCON[1]). The brown-out voltage levels are specific in Section 41.1.1 "DC Characteristics".

38.4 On-chip Temperature Sensor

PIC32MZ1025W104 devices include a temperature sensor that provides accurate measurement of a device's junction temperature (see Section 41.1.2 "AC Characteristics and Timing Parameters" for more information).

The temperature sensor is connected to the ADC module and can be measured using the shared S&H circuit (see Section 29.0 "12-bit High-Speed Successive Approximation Register (SAR) ADC" for more information).

38.5 Programming and Diagnostics

PIC32MZ1025W104 devices provide a complete range of programming and diagnostic features that can increase the flexibility of any application using them. These features allow system designers to include:

  • Simplified field programmability using two-wire In-Circuit Serial Programming (ICSP) interfaces
  • Debugging using ICSP
  • Programming and debugging capabilities using the EJTAG extension of JTAG
  • JTAG boundary scan testing for device and board diagnostics
  • Programming and debugging capability using Trace controller

FIGURE 38-1: BLOCK DIAGRAM OF PROGRAMMING, DEBUGGING AND TRACE PORTS
Microchip PIC32MZ1025W104132 - Programming and Diagnostics - 1

flowchart
graph TD
    A["PGEC1"] --> B["ICSP Controller"]
    C["PGED1"] --> B
    D["PGEC2"] --> B
    E["PGED2"] --> B
    B --> F["ICESEL"]
    G["TDI"] --> H["JTAG Controller"]
    I["TDO"] --> H
    J["TCK"] --> H
    K["TMS"] --> H
    H --> L["Core"]
    M["TRCLK"] --> N["Instruction Trace Controller"]
    O["TRD0"] --> N
    P["TRD1"] --> N
    Q["TRD2"] --> N
    R["TRD3"] --> N
    N --> S["DEBUG[1:0"]]

38.6 System Unlock Sequence

The following is the recommended system unlock sequence:

  1. Disable interrupts and DMA prior to the system unlock sequence.
  2. Execute the system unlock sequence by writing the Key values of 0xAA996655 and 0x556699AA to the SYSKEY register in two back-to-back Assembly or 'C' instructions.
  3. Perform the required configuration updates.
  4. Write a non-key value (such as 0x33333333) to the SYSKEY register to perform a lock.
  5. Re-enable interrupts and DMA.

Note: There are no timing requirements for the steps other than the initial back-to-back writing of the Key values to perform the unlock sequence. The unlock sequence unlocks all registers that are secured by the lock function. It is recommended that the system unlocked time be kept at a minimum.

Note: It is recommended that the reserved/undefined memory locations, such as read, write or read-modify-write, not be accessed. Accessing these memory locations could result in loss of functionality or unpredictable behavior of the device, and might adversely impact the device's health.

39.0 INSTRUCTION SET

The PIC32MZ W1 family supports both the microMIPS and MIPS32 instruction sets. Therefore all firmware must be written using microMIPS instructions, MIPS32 instructions, or a combination of both.

As dynamic switching between microMIPS and MIPS32 is possible (using the JALX and JALX32 instructions), the user need to only specify the ISA to be used for the first instruction after boot.

During a normal boot, the CPU fetches its first instruction from the reset vector at 0xBFC0_0000. The ISA for this instruction is specified using the BCFG0.BOOTISA bit. On a blank device, the reset value of the BCFG0.BOOTISA is '1', which places the device in MIPS32 instruction mode on exit from reset. However, it is assumed that on programming of the boot code, the BCFG0.BOOTISA bit is also programmed at the same time to match the instruction set of the boot code. The PIC32MZ1025W104 device family does not support the following features:

  • Core extend instructions
    • Coprocessor 2 instructions

Note: Refer to "MIPS32 ^® Architecture for Programmers Volume II: The MIPS32 ^® Instruction Set" for more information.

NOTES:

40.0 DEVELOPMENT SUPPORT

The PIC ^® MCUs and dsPIC ^® Digital Signal Controllers (DSC) are supported with a full range of software and hardware development tools:

• Integrated Development Environment
- MPLAB ^® X IDE Software

- Compilers/Assemblers/Linkers

- MPLAB XC Compiler

- MPASM ^TM Assembler

- M P L ^TM Object Linker/MPLIB ^TM Object Librarian

- MPLAB Assembler/Linker/Librarian for Various Device Families

- Simulators

- MPLAB X SIM Software Simulator

- Emulators

- MPLAB REAL ICE™ In-Circuit Emulator

• In-Circuit Debuggers (ICD)/Programmers

- MPLAB ICD 4/MPLAB ICD 5

- PICkit™ 3/PICkit™ 4/PICkit™ 5

- MPLAB Snap

- Device Programmers

- MPLAB PM3 Device Programmer

- Low-Cost Demonstration/Development Boards, Evaluation Kits and Starter Kits

• Third-party development tools

40.1 MPLAB X Integrated Development Environment Software

The MPLAB X IDE is a single, unified Graphical User Interface (GUI) for Microchip and third-party software, and hardware development tool that runs on Windows ^® , Linux and Mac OS ^® X. Based on the NetBeans IDE, MPLAB X IDE is an entirely new IDE with a host of free software components and plug-ins for high-performance application development and debugging. Moving between tools and upgrading from software simulators to hardware debugging and programming tools is simple with the seamless user interface.

With complete project management, visual call graphs, a configurable watch window and a feature-rich editor that includes code completion and context menus, MPLAB X IDE is flexible and friendly enough for new users. With the ability to support multiple tools on multiple projects with simultaneous debugging, MPLAB X IDE is also suitable for the needs of experienced users.

Feature-Rich Editor:

• Color syntax highlighting

- Smart code completion makes suggestions and provides hints as you type

• Automatic code formatting based on user-defined rules

- Live parsing

User-Friendly, Customizable Interface:

- Fully customizable interface: toolbars, toolbar buttons, windows, window placement, etc.

- Call graph window

Project-Based Workspaces:

- Multiple projects

- Multiple tools

- Multiple configurations

- Simultaneous debugging sessions

File History and Bug Tracking:

- Local file history feature

• Built-in support for Bugzilla issue tracker

40.2 MPLAB XC Compilers

The MPLAB XC Compilers are complete ANSI C compilers for all of Microchip's 8, 16, and 32-bit MCU and DSC devices. These compilers provide powerful integration capabilities, superior code optimization and ease of use. MPLAB XC Compilers run on Windows, Linux or MAC OS X.

For easy source level debugging, the compilers provide debug information that is optimized to the MPLAB X IDE.

The free MPLAB XC Compiler editions support all devices and commands, with no time or memory restrictions, and offer sufficient code optimization for most applications.

MPLAB XC Compilers include an assembler, linker and utilities. The assembler generates relocatable object files that can then be archived or linked with other relocatable object files and archives to create an executable file. MPLAB XC Compiler uses the assembler to produce its object file. Notable features of the assembler include:

  • Support for the entire device instruction set
  • Support for fixed-point and floating-point data
  • Command-line interface
  • Rich directive set
  • Flexible macro language
  • MPLAB X IDE compatibility

40.3 MPASM Assembler

The MPASM Assembler is a full-featured, universal macro assembler for PIC10/12/16/18 MCUs.

The MPASM Assembler generates relocatable object files for the MPLINK Object Linker, Intel® standard HEX files, MAP files to detail memory usage and symbol reference, absolute LST files that contain source lines and generated machine code, and COFF files for debugging.

The MPASM Assembler features include:

• Integration into MPLAB X IDE projects
- User-defined macros to streamline assembly code
- Conditional assembly for multipurpose source files
- Directives that allow complete control over the assembly process

The MPLINK Object Linker combines relocatable objects created by the MPASM Assembler. It can link relocatable objects from precompiled libraries, using directives from a linker script.

The MPLIB Object Librarian manages the creation and modification of library files of precompiled code. When a routine from a library is called from a source file, only the modules that contain that routine will be linked in with the application. This allows large libraries to be used efficiently in many different applications.

The object linker/library features include:

  • Efficient linking of single libraries instead of many smaller files
  • Enhanced code maintainability by grouping related modules together
  • Flexible creation of libraries with easy module listing, replacement, deletion and extraction

40.5 MPLAB Assembler, Linker and Librarian for Various Device Families

MPLAB Assembler produces relocatable machine code from symbolic assembly language for PIC24, PIC32 and dsPIC DSC devices. MPLAB XC Compiler uses the assembler to produce its object file. The assembler generates relocatable object files that can then be archived or linked with other relocatable object files and archives to create an executable file. Notable features of the assembler include:

  • Support for the entire device instruction set
  • Support for fixed-point and floating-point data
  • Command-line interface
  • Rich directive set
  • Flexible macro language
  • MPLAB X IDE compatibility

40.6 MPLAB X SIM Software Simulator

The MPLAB X SIM Software Simulator allows code development in a PC-hosted environment by simulating the PIC MCUs and dsPIC DSCs on an instruction level. On any given instruction, the data areas can be examined or modified and stimuli can be applied from a comprehensive stimulus controller. Registers can be logged to files for further run-time analysis. The trace buffer and logic analyzer display extend the power of the simulator to record and track program execution, actions on I/O, most peripherals and internal registers.

The MPLAB X SIM Software Simulator fully supports symbolic debugging using the MPLAB XC Compilers, and the MPASM and MPLAB Assemblers. The software simulator offers the flexibility to develop and debug code outside of the hardware laboratory environment, making it an excellent, economical software development tool.

40.7 MPLAB REAL ICE In-Circuit Emulator System

The MPLAB REAL ICE In-Circuit Emulator System is Microchip's next generation high-speed emulator for Microchip Flash DSC and MCU devices. It debugs and programs all 8, 16 and 32-bit MCU, and DSC devices with the easy-to-use, powerful GUI of the MPLAB X IDE.

The emulator is connected to the design engineer's PC using a high-speed USB 2.0 interface and is connected to the target with either a connector compatible with in-circuit debugger systems (RJ-11) or with the new high-speed, noise tolerant, Low-Voltage Differential Signal (LVDS) interconnection (CAT5).

The emulator is field upgradable through future firmware downloads in MPLAB X IDE. MPLAB REAL ICE offers significant advantages over competitive emulators including full-speed emulation, run-time variable watches, trace analysis, complex breakpoints, logic probes, a ruggedized probe interface and long (up to three meters) interconnection cables.

40.8 MPLAB ICD 4 and MPLAB ICD 5 In-Circuit Debugger System

The MPLAB ICD 4 and MPLAB ICD 5 In-Circuit Debugger are Microchip's most cost-effective, high-speed hardware debugger/programmer for Microchip Flash DSC and MCU devices. It debugs and programs PIC Flash MCUs and dsPIC DSCs with the powerful, yet easy-to-use GUI of the MPLAB IDE.

The MPLAB ICD 4 or MPLAB ICD 5 In-Circuit Debugger probe is connected to the PC using a high-speed USB 2.0 interface and can be connected to the target via a Microchip debug (RJ-11) connector (compatible with MPLAB ICD 2 and MPLAB REAL ICE systems). MPLAB ICD 4 and MPLAB ICD 5 supports all MPLAB ICD 2 headers.

40.9 PICkit 3, PICkit 4 and PICkit 5/ In-Circuit Debugger/Programmer

The MPLAB PICkit 3, PICkit 4 and PICkit 5 In-Circuit Debugger/Programmer are hardware debugger/programmer for PIC and dsPIC Flash MCUs at a most affordable price point using the powerful GUI of the MPLAB IDE.

The MPLAB PICkit 3 or PICkit 4 or PICkit 5 is connected to the PC using a full-speed USB interface and can be connected to the target via a Microchip debug (RJ-11) connector (compatible with MPLAB ICD 4, MPLAB ICD 5 and MPLAB REAL ICE). The connector uses two device I/O pins and the Reset line to implement In-Circuit Debugging and In-Circuit Serial Programming™ (ICSP).

40.10 MPLAB Snap In-Circuit Debugger/Programmer

The MPLAB Snap In-Circuit Debugger/Programmer is one of the most affordable hardware debugger/programmer for PIC and dsPIC Flash MCUs using the powerful GUI of the MPLAB IDE.

The user can connect the MPLAB Snap to the PC using a high-speed USB 2.0 interface, and it can also connect to the target via a Microchip debug (RJ-11 along with AC164110 and male to male header) connector (compatible with MPLAB ICD 4, MPLAB ICD 5 and MPLAB REAL ICE). The connector uses two device I/O pins and the Reset line to implement In-Circuit Debugging and In-Circuit Serial Programming (ICSP).

40.11 MPLAB PM3 Device Programmer

The MPLAB PM3 Device Programmer is a universal, CE compliant device programmer with programmable voltage verification at VDDMIN and VDDMAX for maximum reliability. It features a large LCD display (128 x 64) for menus and error messages, and a modular, detachable socket assembly to support various package types. The ICSP cable assembly is included as a standard item. In Stand-Alone mode, the MPLAB PM3 Device Programmer can read, verify and program PIC devices without a PC connection. It can also set code protection in this mode. The MPLAB PM3 connects to the host PC via an RS-232 or USB cable. The MPLAB PM3 has high-speed communications and optimized algorithms for quick programming of large memory devices, and incorporates an MMC card for file storage and data applications.

40.12 Demonstration/Development Boards, Evaluation Kits, and Starter Kits

A wide variety of demonstration, development and evaluation boards for various PIC MCUs and dsPIC DSCs allows quick application development on fully functional systems. Most boards include prototyping areas for adding custom circuitry and provide application firmware and source code for examination and modification.

The boards support a variety of features, including LEDs, temperature sensors, switches, speakers, RS-232 interfaces, LCD displays, potentiometers and additional EEPROM memory.

The demonstration and development boards can be used in teaching environments, for prototyping custom circuits and for learning about various MCU applications.

In addition to the PICDEM™ and dsPICDEM™ demonstration/development board series of circuits, Microchip has a line of evaluation kits and demonstration software for analog filter design, KEELOQ® security ICs, CAN, IrDA®, PowerSmart battery management, SEEVAL® evaluation system, Sigma-Delta ADC, flow rate sensing, plus many more.

Also available are starter kits that contain everything needed to experience the specified device. This usually includes a single application and debug capability, all on one board.

Check the Microchip website (www.microchip.com) for the complete list of demonstration, development and evaluation kits.

40.13 Third-Party Development Tools

Microchip also offers a great collection of tools from third-party vendors. These tools are carefully selected to offer good value and unique functionality.

• Device Programmers and Gang Programmers from companies, such as SoftLog and CCS
- Software Tools from companies, such as Gimpel and Trace Systems
- Protocol Analyzers from companies, such as Saleae and Total Phase
- Demonstration Boards from companies, such as MikroElektronika, Digilent® and Olimex
- Embedded Ethernet Solutions from companies, such as EZ Web Lynx, WIZnet and IPLogika®

41.0 ELECTRICAL SPECIFICATIONS

This chapter provides the electrical specifications and characteristics of the PIC32MZ1025W104 SoC and the WFI32 Module.

Note: All the information related to the WFI32E02 Module in this data sheet is Preliminary Information.

41.1 PIC32MZ1025W104 Electrical Specifications

The absolute maximum ratings for the PIC32MZ1025W104 devices are listed below. Exposure to these maximum rating conditions for extended periods may affect device reliability and performance. Functional operation of the device at these or any other conditions, above the parameters indicated in the operation listings of this specification, is not implied.

Absolute Maximum Ratings

Ambient temperature under bias....-40°C to +85°C

Storage temperature -65°C to +150°C

Voltage on VDD with respect to Vss -0.3V to +4.0V

Voltage on any pin with respect to Vss....-0.3V to (VDD + 0.3V)

Voltage on D+ or D- pin with respect to VUSB3V3 -0.3V to (VUSB3V3 + 0.3V)

Voltage on Vbus with respect to Vss -0.3V to (V_DD + 0.3V)

Maximum current out of Vss pin(s)....240 mA

Maximum current into VDD pin(s) ^(2) .....240 mA

Maximum current sunk/sourced by any 4x I/O pin ^(3) ....15 mA

Maximum current sunk/sourced by any 8x I/O pin ^(3) ....25 mA

Maximum current sunk by all ports 150 mA

Maximum current sourced by all ports ^(2) 150 mA

ESD Qualification:

Human Body Model (HBM) (JEDEC JS-001-2017) ±2000V

Changed Device Model (CDM) (JEDEC JS-002-2018) ±500V

Note 1: Stresses above those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress rating only and functional operation of the device at those or any other conditions, above those indicated in the operation listings of this specification, is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
2: The maximum allowable current is a function of the device maximum power dissipation.
3: Characterized but not tested. Refer to parameters DO10 and DO20 for the 4x and 8x I/O pin lists.

TABLE 41-1: THERMAL OPERATING CONDITIONS

Rating Symbol Min. Typ. Max. Unit
Industrial Temperature Devices
Operating junction temperature range TJ -40 —+125 °C
Operating ambient temperature range TA -40 —+85°C
Power dissipation:Internal chip power dissipation: P_INT = V_DD × (I_DD - I_OH) I/O pin power dissipation: P_I/O = ((_DD - V_OH × I_OH) + (V_OL × I_OL)) P_D P_INT + P_I/O W
Maximum allowed power dissipation P_DMAX (T_J - T_A)/ _JA W

TABLE 41-2: THERMAL PACKAGING CHARACTERISTICS

CharacteristicsSymbolTyp. Max.UnitNotes
Package thermal resistance, 132-pin DQFN (10x10x0.9 mm) _JA 24°C/W1

Note: Junction to ambient thermal resistance, Theta-JA (0JA) numbers are based on JEDEC 2S2P achieved by package simulations.

TABLE 41-3: RECOMMENDED OPERATING CONDITIONS

DC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristicsMin.TypicalMax.UnitsConditions
DC10 V_DD Supply voltage(1)2.973.33.63V —
V_BAT Battery voltage range V_DD V_DD V
AV_DD Analog supply voltage V_DD V_DD V
AVssAnalog ground voltage V_SS V_SS V
GNDDBCommon EDP ground reference V_SS V_SS V_SS V
Wi-Fi EnableOn CPU frequency50200MHz

Note 1: Overall functional device operation at V BORMIN < VDD < VDDMIN is guaranteed, but not characterized. All device Analog modules, such as ADC, etc., will function, but with degraded performance below VDDMIN.

TABLE 41-4: PMU DC-DC MODE

DC CharacteristicsStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
ParametersCharacteristicsMin.TypicalMax.UnitsConditions
Output voltage range1.4251.51.575V
Switching frequency1MHz
Operating Mode (PWM Mode)

TABLE 41-4: PMU DC-DC MODE

Load regulation(1)Vout = 1.5V, IL = 0 mA to 450 mA-1.5 0.51.5 % Depends on routing resis-tance at the load applica-tion point
Line regulationVIN = 2.97V to 3.63V, IL = 450 mA, Vout = 1.5-1.5 0.51.5 % —
Transient regulationIL = 10 mA to 450 mA in 2 μs-4 — 9% —
Efficiency(1)VIN = 3.3V, Vout = 1.5V, 10 mA<IL<450 mA, DCR = 0.45 Ω85%Depends on the inductor DCR and resistance of the load carrying paths
Quiescent currentLoad Current = 0350μA
Power Save Mode
Load current0.0140mA
Load regulationIL = 0.01 mA to 25 mA-1.512%
Line regulationVIN = 2.97V to 3.63V at IL = 25 mA-1.5 12 % —
Transient regu-lationIL = 0.01 mA to 25 mA-1.5 12 —
EfficiencyVIN = 3.3V, Vout = 1.5V, 5 mA<IL<40 mA85%
Quiescent current150μA
External LC Filter Component(s)
Inductor (L)4.7μH
Inductor DCR (L_dcr)(1)0.050.29ΩLower is better for high load efficiency
Capacitor (C)10μF
Capacitor ESR(1) (Cesr)0.01ΩLower is better for low rip-ple
Capacitor ESL(1) (C_esl)5nHLower is better for high frequency ripple

Note 1: Measurement depends on the quality of the evaluation board with respect to coupled noise, input bypass capacitor, output capacitor's ESR.
2: These parameters are characterized but not tested in manufacturing.

41.1.1 DC CHARACTERISTICS

TABLE 41-5: POR ELECTRICAL CHARACTERISTICS

DC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristicsMin.Typ.Max.UnitsConditions
DC16VPORVDD start voltageto ensure internalPOR signal(1)1.5V —
DC17SVDDVDD rise rateto ensure internalPOR signal0.030.115 V/ms110-28.7 ms at 3.3V

TABLE 41-5: POR ELECTRICAL CHARACTERISTICS
Note 1: This is the limit to which VDD must be lowered to ensure POR.
TABLE 41-6: BOR ELECTRICAL CHARACTERISTICS

DC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Ccharacteristics Min.(1)Typ. Max. UnitsConditions
BO10VBORBOR event on VDD transition high-to-low(2)2.6 — 2.8V

Note 1: Parameters are for design guidance only and are not tested in manufacturing.
2: Overall functional device operation at VBORMIN < VDD < VDDMIN is tested, but not characterized. All device Analog modules, such as ADC, etc., will function, but with degraded performance below VDDMIN.

TABLE 41-7: OPERATING CURRENT (IDD, RF = OFF) (1)(2)

DC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param. No. Typ.^(3) Max.UnitsConditions
I/O OPERATING CURRENT (IDD): PERIPHERAL ENABLED (PMDX = 0)
DC203mA8 MHz ( FRC)^(4)
DC217.2mA40 MHz (POSC in HS mode)
DC2210.7mA60 MHz (POSC in HS mode + SPLL)^(4)
DC2312.5mA80 MHz (POSC in HS mode + SPLL)^(4)
DC2414.2mA100 MHz (POSC in HS mode + SPLL)^(4)
DC2516.2mA120 MHz (POSC in HS mode + SPLL)^(4)
DC2623.6mA200 MHz (POSC in HS mode + SPLL)^(4)

Note 1: A device's IDD supply current is mainly a function of the operating voltage and frequency. Other factors, such as PBCLK (Peripheral Bus Clock) frequency, number of peripheral modules enabled, internal code execution pattern, execution from Program Flash memory vs. SRAM, I/O pin loading and switching rate, oscillator type, as well as, temperature, can have an impact on the current consumption.
2: The test conditions for IDD measurements are as follows:

- CPU, Flash Panel and SRAM data memory are operational.

- All peripheral modules are disabled (ON bit = 0) but the associated PMD bit is cleared.

- Sysclk: PBCLK= 1:2.

• WDT and FSCM are disabled.

- All I/O pins are configured as inputs and pulled low.

- = V_DD

- VBUS3V3 connected to VDD.

• PMU in BUCK PWM mode.

3: Data in the "Typical" column is at 3.3V, 25°C unless otherwise stated.

4: This parameter is characterized but not tested in manufacturing.

TABLE 41-8: IDLE CURRENT (IDLE, RF = OFF)

DC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param. No. Typ. (1)Max. Units Conditions
I/O Operating Current (IDLE): Core OFF (PMDx=0)(2)
DC30a 2.6 — mA 8 MHz (FRC)(3)
DC34a 16.2 — mA 200 MHz (POSC in HS mode + SP LL)(3)

Note 1: Data in the "Typical" column is at 3.3V, Ta = 25°C unless otherwise stated.
2: The test conditions for I IDLE current measurements are as follows:
- Sysclk: PBCLK = 1:2
• CPU in Idle mode (CPU core Halted)
- All peripheral modules are disabled (ON bit = 0), but the associated PMD bit is cleared
- WDT, FSCM and DMT Entry to Sleep state are disabled
- All I/O pins are configured as inputs and pulled high
- = V_DD
• PMU in BUCK PWM mode
3: This parameter is characterized but not tested in manufacturing.

TABLE 41-9: POWER-DOWN CURRENT (IPD)

DC CHARACTERISTICS(6)Standard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param. No.Typ.(1)Max.UnitsConditions
Power-Down Current (IPD)(2)
DC40k1.75mA-40°CSleep mode(2)
DC40l1.21mA25°C
DC40m2.55mA85°C
DC40o3.5μA-40°CDeep Sleep mode(4)
DC40p1.9μA25°C
DC40q3.9μA85°C
DC40s1.7μA-40°CExtreme Sleep mode(5)
DC40t0.71μA25°C
DC40u2.12μA85°C
Module Differential Current
DC41e10μA3.3VWDT current: ΔIwDT(3)
DC42e70μA3.3VRTCC + Timer1 with 32 kHz Crystal: ΔIRTCC(3)
DC43d120μA3.3VADC: ΔIADC(3)
DC4410μA3.3VDeadman Timer Current: Dldmt(3)

Note 1: Data in the "Typical" column is at 3.3V, Ta = 25°C unless otherwise stated.
2: The test conditions for IPD current measurements are as follows:
- All peripheral modules and clocks shut down (ON = 0, PMDx = 1)
• CPU clock is disabled
- All other system/PB clocks are disabled by hardware during sleep:
- Clock source oscillator except FRC is disabled, FRC is needed for PMU
- System clock-divider is optimally configured
- WLDO is turned OFF
- On-chip digital regulators are optimally configured to retain core

• PMU in BUCK PSM mode.
- All I/Os are configured as inputs and pulled high.
• WDT and FSCM are disabled.
- VUSB3V3 must be connected to VDD even when USB is not present

3: The current is the additional current consumed when the module is enabled. This current must be added to the base sleep mode (IPD) current.

4: Deep Sleep Test Condition:

• WCM Retention enabled
- RTC Enabled
- DSWDT enabled
- Extended semaphore set enabled
- PMU and Digital LDOs are turned off, System runs on 3.3V and ULPVREG

5: Extreme Deep Sleep Test Condition:

• WCM Retention disabled
- RTC disabled
- DSWDT disabled
- Extended semaphore set disabled
- PMU and Digital LDOs are turned off; System runs on 3.3V

6: These parameters are characterized but not tested in manufacturing.

TABLE 41-10: WI-FI POWER DOWN CURRENT

DC CHARACTERISTICS ^(1, 2) Standard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°CMeasured at 25°C, 3.3V
Wi-Fi Power ModeCPU StateWi-Fi FunctionalityOutput Power (Typ.) (dBm)Current (Typ.) (mA) ^(3)
WSM Sleep Wi-FiSleep mode — 2.7
WDSSleep Wi-Fi Deep Sleep modeSleep mode1.2

Note 1: Data in the "Typical" column is at 3.3V, Ta = 25°C unless otherwise stated.
2: CPU is in Wi-Fi RF Test mode.
3: The test conditions for current measurements are as follows:

  • All peripheral modules and clocks shut down (ON = 0, PMDx = 1)
  • CPU clock is disabled.
  • All other system/PB clocks are disabled by hardware during sleep:
  • Clock source oscillator except FRC are disabled, FRC is needed for PMU.
  • System clock-divider are optimally configured.
  • XTAL LDO is in Bypass mode.
  • On-chip digital regulators are optimally configured to retain core.

- PMU in BUCK PSM mode.

- All I/Os are configured as inputs and pulled high.

- WDT and FSCM are disabled.

- Wake-up sources are disabled.

4: Wi-Fi Deep Sleep Test Condition:

- Clock source for WDS is LPRC.

5: The data is collected with RF Test software in lab condition without an active Wi-Fi connection to an Access Point (AP).

6: These parameters are characterized but not tested in manufacturing.

TABLE 41-11: WI-FI CURRENT

DC CHARACTERISTICS(1, 2)Standard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°CMeasured at 25°C, 3.3V
Device States CodeRateOutput Power (Typ.) (dBm)Current (Typ.) (mA)(3)
On_Transmit(4)802.11b 1 Mbps 21.5 287
802.11b 1 Mbps 15.5 201
802.11b 11 Mbps 21.5 279
802.11g 6 Mbps 19.5 242
802.11g 54 Mbps 18.5 222
802.11n MCS0 19.5 251
802.11n MCS7 17.5 208
802.11n MCS7 11.5 169
On_Receive802.11b 1 Mbps — 73
802.11n MCS7 — 88

Note 1: Measured along with RF matching network and FEM circuit (assume 50Ω impedance).
2: The test conditions for I IDD current measurements are as follows:
- CPU, Flash Panel and SRAM data memory are operational.
• CPU is operating at 50 MHz.
• CPU is in Wi-Fi RF Test mode.
- All peripheral modules are disabled (ON bit = 0) but the associated PMD bit is cleared.
• WDT and FSCM are disabled.
- All I/O pins are configured as inputs and pulled high.
• VBUS3V3 connected to VDD
- MCLR = VDD
3: Data in the "Typ." column is at 3.3V, 25°C unless otherwise stated.
4: Tested at channel 7 in Fixed Mode Gain.
5: These parameters are characterized but not tested in manufacturing.

TABLE 41-12: I/O PIN INPUT SPECIFICATIONS

DC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristicsMin. Typ.^(1) Max.UnitsConditions
DI10 V_IL Input low voltageI/O pinsSDAx, SCLxSDAx, SCLx V_ss V_ss V_ss — — —0.2 * V_DD 0.3 * V_DD 0.8VVV— SMBus disabled^(4) SMBus enabled^(4)
DI18
DI19
DI20 V_IH Input high voltageI/O pins0.80 * V_DD V_DD V(4)
DI30ICNPUChange notification pull-up current-40μA V_DD = 3.3V, V_PIN = V_SS^(3)

Note 1: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.
2: The leakage current on the MCLR pin is strongly dependent on the applied voltage level. The specified levels represent normal operating conditions. Higher leakage current may be measured at different input voltages.
3: Negative current is defined as current sourced by the pin.
4: This parameter is characterized but not tested in manufacturing.

TABLE 41-12: I/O PIN INPUT SPECIFICATIONS (CONTINUED)

DC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristicsMin. Typ.^(1) Max.UnitsConditions
DI31 ICNPDChangenotification pull-down current^(4) 40μA V_DD = 3.3V, V_PIN = V_DD
DI50I/L Input leakage current (3)
I/O ports±1μA V_SS ≤ V_PIN ≤ V_DD, Pin at high-impedance
DI51Analog input pins±1μA V_SS ≤ V_PIN ≤ V_DD, Pin at high-impedance
DI55 MCLR——(2)±1μA V_SS ≤ V_PIN ≤ V_DD
DI56XTAL_IN±1μA V_SS ≤ V_PIN ≤ V_DD, HS mode

Note 1: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.
2: The leakage current on the MCLR pin is strongly dependent on the applied voltage level. The specified levels represent normal operating conditions. Higher leakage current may be measured at different input voltages.
3: Negative current is defined as current sourced by the pin.
4: This parameter is characterized but not tested in manufacturing.

TABLE 41-13: I/O PIN OUTPUT SPECIFICATIONS

DC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol CCharacteristic Min. Typ. Max. UnitsConditions
DO10VolOutput low voltageI/O pins:4x sink driver pins -RA2-RA10, RA12-RA15, RB0-RB13, RC9-RC12, RK0-RK120. 4IOL ¥ 10 mA, VDD = 3.3V
Output low voltageI/O pins:8x sink driver pins -RA0, RA1, RA11, RC0,RC1,RC8, RC9, RC13, RC14,RC15, RK13, RK140.V 4IOL ≤ 15 mA, VDD = 3.3V
DO20 VOHOutput high voltageI/O pins:4x source driver pins -RA2-RA10, RA12-RA15, RB0-RB13, RC9-RC12, RK0-RK122.4 —VIOH ≥ -10 mA, VDD = 3.3V
Output high voltageI/O pins:8x source driver pins -RA0, RA1, RA11, RC0,RC1,RC8, RC9, RC13, RC14,RC15, RK13, RK142.4 —VIOH ≥ -15 mA, VDD = 3.3V
DO20aVoH1Output high voltageI/O pins:4x source driver pins -RA2-RA10, RA12-RA15, RB0-RB13, RC9-RC12, RK0-RK121.5 —VIOH ≥ -14 mA, VDD = 3.3V
2.0VIOH ≥ -12 mA, VDD = 3.3V
3.0VIOH ≥ -7 mA, VDD = 3.3V
Output high voltageI/O pins:8x source driver pins -RA0, RA1, RA11, RC0,RC1,RC8, RC9, RC13, RC14,RC15, RK13, RK141.5 —VIOH ≥ -22 mA, VDD = 3.3V
2.0VIOH ≥ -18 mA, VDD = 3.3V
3.0 —VIOH ≥ -10 mA, VDD = 3.3V

Note: These parameters are characterized but not tested in manufacturing.

41.1.2 AC CHARACTERISTICS AND

TIMING PARAMETERS

The information contained in this section defines the PIC32MZ1025W104 device AC characteristics and timing parameters.

FIGURE 41-1: LOAD CONDITIONS FOR DEVICE TIMING SPECIFICATIONS

Load Condition 1 – for all pins except XTAL_OUT

Pin VDD/2 RL CL Vss

• R L = 464Ω
- C_L = 50 pF for all pins except XTAL_OUT
- C_L = 12 pF for XTAL_OUT output

TABLE 41-14: CAPACITIVE LOADING REQUIREMENTS ON OUTPUT PINS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics Min. Typ.(1)Max. Units Conditions
DO56CL All I/Opins (except pinsused as CxOUT)50pF —
DO58CBSCLx, SDAx400pFI2C mode
DO59CsQIAll SQI pins10pF

Note 1: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.

FIGURE 41-2: CRYSTAL OSCILLATOR TIMING CHARACTERISTICS
XTAL_IN OS20 OS30 OS31 OS30 OS31

TABLE 41-15: CRYSTAL OSCILLATOR TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics Min. Typ.(3)Max. Units Conditions
OS13 Fosc Primary oscillator crystal frequency (1,2)40M H
Frequency stability – temperature and aging(3)-2020 ppm
OS15 Fosc Secondary oscillator crystal frequency (2)32.768kHzSosc
Frequency stability – temperature and aging(3)-100 —100 ppm
OS20ToscTosc1/FoscSee parameter OS13 for Fosc value
OS40TostOscillator start-up timer period(Only applies to HS, HSPLL and Sosc Clock Oscillator modes)1 (4)0—2ToscCrystal stabilization time only, not Oscillator Ready.
OS41TFSCMPrimary clock fail safe time-out period2ms
OS42GmExternal oscillator transconductance16μA/VVDD = 3.3V,TA = +25°C
CoscoXTAL_OUT pin capacitive load12pFVDD = 3.3V,TA = +25°C

Note 1: Crystal oscillator requirements:
• Crystal load capacitance = 12 pF
- ESR = 50Ω
• Maximum Drive level = 200 μW
2: Correct oscillator and associated components selection are critical to meet these specifications.
3: These parameters are characterized but not tested in manufacturing.
4: This value is for guidance only. A major component of crystal start-up time is based on the third-party crystal MFG parasitics that are outside the scope of this specification. If this is a major concern, the customer needs to characterize this based on their design choices.

TABLE 41-16: SYSTEM TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics Min. Typ. Max.Units Conditions
OS51 Fsys System frequency DC — 200 MHz —
OS55aFPBPeripheral bus frequencyDC100MHz
OS56 FREFReference clock frequency40MHz

TABLE 41-17: PLL CLOCK TIMING SPECIFICATIONS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristicsMin.Typ.Max.UnitsConditions
OS50FINPLL input frequency range840MHzBTPLL,SYS-PLL,EWPLL,UPLL modes
OS52TLOCKPLL start-up time (lock time)256 x RμsR = Divide reference period
OS54FVcoPLL Vco frequency range8801600MHz
FPLLPLL output frequency range16200MHzNon-bypass mode

Note: These parameters are characterized but not tested in manufacturing.

TABLE 41-18: INTERNAL FRC ACCURACY

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Characteristics(1)Min.Typ.Max.UnitsConditions
Internal FRC Accuracy @ 8.00 MHz(2)
F20FRC-0.9+0.9%

Note 1: This parameter is characterized but not tested in manufacturing.
2: Frequency calibrated at +25^ and 3.3V. The TUN bits (OSCTUN[5:0]) can be used to compensate for temperature drift.

TABLE 41-19: INTERNAL LPRC ACCURACY

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Characteristics(1)Min.Typ.Max.UnitsConditions
Internal LPRC @ 32.768 kHz(2)
F21LPRC-18+13%

Note 1: This parameter is characterized but not tested in manufacturing.
2: Change of LPRC frequency as V_DD and temperature changes.

FIGURE 41-3: I/O TIMING CHARACTERISTICS
I/O Pin (Input) DI35 DI40 I/O Pin (Output) DO31 DO32 Note: Refer to Figure 41-1 for load conditions.

TABLE 41-20: I/O TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics (2)Min. Typ. (1)Max. UnitsConditions
DO31TIOR Portoutput rise timeI/O pins:4x source driver pins -RA2-RA10, RA12-RA15, RB0-RB13,RC9-RC12, RK0-RK129.LOAD = 50 pF
6ns
Port output rise timeI/O pins:8x source driver pins -RA0, RA1, RA11, RC0, RC1,RC8,RC9, RC13, RC14, RC15, RK13,RK148ns
6nLOAS = 20 pF
DO32TIOFPort output fall timeI/O pins:4x source driver pins -RA2-RA10, RA12-RA15, RB0-RB13,RC9-RC12, RK0-RK129.5 n
6nLOAS = 20 pF
Port output fall timeI/O pins:8x source driver pins -RA0, RA1, RA11, RC0, RC1,RC8,RC9, RC13, RC14, RC15, RK13,RK148nLOAS = 50 pF
6nLOAS = 20 pF
DI35TINPINTx pin high or low time5ns
DI40TRBPCNx high or low time (input)5ns

Note 1: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.

2: These parameters are characterized but not tested in manufacturing.

FIGURE 41-4: POWER-ON RESET TIMING CHARACTERISTICS
Clock Sources = (FRC, FRCDIV, FRCDIV16, FRCPLL and LPRC)
VDD VPOR (Note 2) (TPMUDLY) SY01 (TSYSDLY) SY02 Power-up Sequence (Note 2) CPU Starts Fetching Code SY00 (TPU) (Note 1)

Clock Sources = (HS, HSPLL and Sosc)
VDD VPOR (Note 2) (TPMUDLY) SY01 (TSYSDLY) SY02 Power-up Sequence (Note 2) SY00 (TPU) (Note 1) SY10 (TOST) CPU Starts Fetching Code

Note 1: The power-up period will be extended if the power-up sequence completes before the device exits from BOR (VDD < VBORmax).
2: SY01 is negligible when PMU is retained in MLDO mode.

FIGURE 41-5: EXTERNAL RESET TIMING CHARACTERISTICS
Microchip PIC32MZ1025W104132 - TIMING PARAMETERS - 6

flowchart
graph TD
    A["Clock Sources = (FRC, FRCDIV, FRCDIV16, FRCPLL and LPRC)"] --> B["MCLR"]
    B --> C["TMCLR (SY20)"]
    C --> D["BOR = allpwr_valid_mv"]
    D --> E["TBOR (SY30)"]
    E --> F["Reset Sequence"]
    F --> G["(TPMUDLY)"]
    G --> H["CPU Starts Fetching Code"]
    I["Clock Sources = (POSC and SOSC)"] --> J["Reset Sequence"]
    J --> K["(TPMUDLY)"]
    K --> L["TOST (SY10)"]
    L --> M["(TPMUDLY)"]
    M --> N["CPU Starts Fetching Code"]
    O["Clock Sources = (POSC and SOSC)"] --> P["Reset Sequence"]
    P --> Q["(TPMUDLY)"]
    Q --> R["TOST (SY10)"]
    R --> S["(TPMUDLY)"]
    S --> T["CPU Starts Fetching Code"]

TABLE 41-21: RESETS TIMING

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics (1)Min. Typ. (2)Max. Units Conditions
SY00 TPU Power-up periodinternal voltage regulator enabled— 400600 μs
SY02 TSYSDLYSystem delay period:time required to reload device con-figuration fuses plus SYSCLKdelay before first instruction isfetched.1 μs +8 SYSCLKcycles
SY20 TMCLRMCLR pulse width (low)2μs
SY30 TBORBOR pulse width (low)1μs

Note 1: These parameters are characterized but not tested in manufacturing.

2: Data in the "Typ" column is at 3.3V, +25°C unless otherwise stated.

FIGURE 41-6: TIMER1-TIMER7 TIMING CHARACTERISTICS
TxCK Tx10 Tx11 Tx15 Tx20 OS60 TMRx Note: Refer to Figure 41-1 for load conditions.

TABLE 41-22: TIMER1 TIMING REQUIREMENTS (1)

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Characteristics (2)Min. Typ. Max. Units Conditions
TA10 TTXHTx high timeSynchro-kous, with pres-caler[(12.5 ns or 1 T_PB1\_CLK )/N] + 20 ns— —nsMust also meet parameter TA15(3)
Asynchro-nous, with pres-caler10— —ns
TA11TTXLTxCK low timeSynchronous, with pres-caler[(12.5 ns or 1 T_PB1\_CLK )/N] + 20 ns— —nsMust also meet parameter TA15(3)
Asynchro-nous, with pres-caler10— —ns
TA15TTXPTxCK input periodSynchronous, with pres-caler[(Greater of 20 ns or 2 T_PB1\_CLK )/N] + 30 nsns V_DD > 2.97V (3)
Asynchro-nous, with pres-caler20ns V_DD > 2.97V
OS60FT1SOSCI/T1CK oscillator input frequency range(osillator enabled by set-ting TCS bit (T1CON[1]))32.768— 50kHz
TA20 TCKEXTMRLDelay from external TxCK clock edge to timer increment1 T_PB1\_CLK

Note 1: Timer1 is a Type A timer.
2: These parameters are characterized but not tested in manufacturing.
3: N = Prescale Value (1, 8, 64, 256).

TABLE 41-23: TIMER2-TIMER7 TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics Min. Max. Units Conditions
TB10 TtxH TxCKhigh timeSynchro-nous, with prescaler[(12.5 ns or 1 T_PB1\_CLK )/N] + 25 ns— nsMust alsomeet parame-ter TB15N = pres-scale value(1, 2, 4, 8,16, 32, 64,256)
TB11 TtxL TxCKlow timeSynchro-nous, with prescaler[(12.5 ns or 1 T_PB1\_CLK )/N] + 25 ns— nsMust alsomeet parame-ter TB15
TB15 TtxP TxCKinput periodSynchro-nous, with prescaler[(Greater of [(25 ns or 2 T_PB1\_CLK )/N] + 30 nsnsVDD >2.97V
TB20 TCKEXT-MRLDelay from external TXCK clock edge to timer increment1 T_PB1\_CLK

Note: These parameters are characterized but not tested in manufacturing.

FIGURE 41-7: INPUT CAPTURE (CAPx) TIMING CHARACTERISTICS
ICx IC10 IC14 IC15

Note: Refer to Figure 41-1 for load conditions.

TABLE 41-24: INPUT CAPTURE MODULE TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics Min. MMax. Units Conditions
IC10 TccLICx inputlow time [(12.5 ns or 1 /N] + 25 ns T_PB1\_CLK — nsMust alsomeetparameterIC15.N = prescalevalue (1, 4, 16)
IC11TccHICx input high time[(12.5 ns or 1 T_PB1\_CLK /N] + 25 ns— nsMust alsomeetparameterIC15.
IC15TccPICx input period[(25 ns or 2 T_PB1\_CLK /N] + 50 nsns

Note: These parameters are characterized but not tested in manufacturing.

FIGURE 41-8: OUTPUT COMPARE MODULE (OCx) TIMING CHARACTERISTICS
OCx (Output Compare or PWM mode) OC11 ← OC10 ←

Note: Refer to Figure 41-1 for load conditions.

TABLE 41-25: OUTPUT COMPARE MODULE TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics(1)Min. Typ.(2)Max.UnitsConditions
OC10TccFOCx output fall timensSee parameter DO32
OC11TccROCx output rise timensSee parameter DO31

Note 1: These parameters are characterized but not tested in manufacturing.
2: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated. Parameters are for design guidance only and are not tested.

FIGURE 41-9: SPIx MODULE HOST MODE (CKE = 0) TIMING CHARACTERISTICS
Microchip PIC32MZ1025W104132 - TIMING PARAMETERS - 10

flowchart
graph TD
    A["SCKx (CKP = 0)"] --> B["SP11 SP10"]
    B --> C["SP21 SP20"]
    D["SCKx (CKP = 1)"] --> E["SP35"]
    E --> F["SP20 SP21"]
    G["SDOx"] --> H["MSb LSb"]
    H --> I["Bit 14 - - - 1"]
    I --> J["SP30"]
    K["SDIx"] --> L["MSb In"]
    L --> M["Bit 14 - - - 1"]
    M --> N["LSb In"]
    O["Note: Refer to Figure 41-1 for load conditions."]

TABLE 41-26: SPIx HOST MODE (CKE = 0) TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Characteristics (1)Min. Typ.(2)Max. Units Conditions
SP10 TscL SCKx output low time (3)Tsck/2ns —
SP11TscHSCKx output high time(3)Tsck/2ns —
SP15TsckSPI clock speed40MHzSPI1 on RPC6
20MHzSPI1 on RPC6 and SPI2 on RPA11 on PPS configuration
SP20 TscFSCKx output fall time (4)nsSee parameter DO32
SP21 TscRSCKx output rise time (4)nsSee parameter DO31
SP30 TdoFSDOx data output fall time (4)nsSee parameter DO32
SP31 TdoRSDOx data output rise time (4)nsSee parameter DO31
SP35 TscH2doV, TscL2doVSDOx data output valid after SCKx edge7nsVDD > 2.97V
SP40 TdiV2scH, TdiV2scLSetup time of SDIx data input to SCKx edge5ns
SP41 TscH2diL, TscL2diLHold time of SDIx data input to SCKx edge5ns

Note 1: These parameters are characterized but not tested in manufacturing.
2: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.
3: The minimum clock period for SCKx is 25 ns. Therefore, the clock generated in Host mode must not violate this specification.
4: Assumes 10 pF load on all SPIx pins.
5: To achieve maximum data rate, V DD must be ≥ 3.3V , the SMP bit (SPIxCON[9]) must be equal to '1'.

FIGURE 41-10: SPIx MODULE HOST MODE (CKE = 1) TIMING CHARACTERISTICS
Microchip PIC32MZ1025W104132 - TIMING PARAMETERS - 11

flowchart
graph TD
    A["SCKx (CKP = 0)"] --> B["SP36"]
    B --> C["SP11 SP10"]
    C --> D["SP21 SP20"]
    E["SCKx (CKP = 1)"] --> F["SP35"]
    F --> G["SP20 SP21"]
    H["SDOx"] --> I["MSb"]
    I --> J["Bit 14 -1"]
    J --> K["LSb"]
    L["SDIx"] --> M["MSb In"]
    M --> N["Bit 14 -1"]
    N --> O["LSb In"]
    P["Note: Refer to Figure 41-1 for load conditions."]

TABLE 41-27: SPIx MODULE HOST MODE (CKE = 1) TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Characteristics (1)Min. Typ. (2)Max. Units Conditions
SP10 TscL SCKx output low time (3)Tsck/2 —ns —
SP11 TscH SCKx output high time (3)Tsck/2 —ns —
SP15TsckSPI clock speed40MHzSPI1 on RPC6
20MHzSPI1 and SPI2 on PPS configuration
SP20 TscF SCKx output fall time (4)nsSee parameter DO32
SP21 TscR SCKx output rise time (4)nsSee parameter DO31
SP30 TcOxF SDOx data output fall time (4)nsSee parameter DO32
SP31 TcORO SDOx data output rise time (4)nsSee parameter DO31
SP35 TscH2doV,TscL2doVSDOx data output valid afterSCKx edge7nsVDD > 2.97V
SP36 TcOv2sc,TdoV2scLSDOx data output setup tofirst SCKx edge7ns
SP40 TcIv2scH,TdiV2scLSetup time of SDIx data inputto SCKx edge7nsVDD > 2.97V
SP41 TscH2diL,TscL2diLHold time of SDIx data inputto SCKx edge7nsVDD > 2.97V

Note 1: These parameters are characterized but not tested in manufacturing.
2: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.
3: The minimum clock period for SCKx is 25 ns. Therefore, the clock generated in Host mode must not violate this specification.
4: Assumes 10 pF load on all SPIx pins.
5: To achieve the maximum data rate, V DD must be ≥ 3.3V and the SMP bit (SPIxCON[9]) must be equal to '1'.

FIGURE 41-11: SPIx MODULE CLIENT MODE (CKE = 0) TIMING CHARACTERISTICS
Microchip PIC32MZ1025W104132 - TIMING PARAMETERS - 12

flowchart
graph TD
    subgraph SSx
        A["SP50"] --> B["SCKx (CKP = 0)"]
        B --> C["SP71 SP70"]
        C --> D["SCKx (CKP = 1)"]
        D --> E["SP35"]
        E --> F["SDOx"]
        F --> G["MSb LSb Bit 14 -1"]
        G --> H["SP30, SP31"]
        H --> I["SDIx"]
        I --> J["MSb In Bit 14 -1"]
        J --> K["LSb In"]
    end
    subgraph SCKx
        L["SP52"] --> M["SCKx (CKP = 0)"]
        M --> N["SP73 SP72"]
        N --> O["SCKx (CKP = 1)"]
        O --> P["SP72 SP73"]
        P --> Q["SP51"]
    end
    subgraph SDOx
        R["SP40"] --> S["SDIx"]
        S --> T["MSb In SP41"]
        T --> U["Bit 14 -1"]
        U --> V["LSb In"]
    end

Note: Refer to Figure 41-1 for load conditions.

TABLE 41-28: SPIx MODULE CLIENT MODE (CKE = 0) TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Characteristics (1)Min. Typ.^(2) Max.UnitsConditions
SP15TsckSPI clock speed40MHzSPI1 on RPC6
— 20 MHzSPI1 and SPI2 on PPS configuration
SP70 TscLSCKx input low time (3)Tsck/2ns
SP71 TscHSCKx input high time (3)Tsck/2ns
SP72TscFSCKx input fall timensSee parameter DO32
SP73TscRSCKx input rise timensSee parameter DO31
SP30 TdoFSDOx data output fall time (4)nsSee parameter DO32
Param.No.Symbol Characteristics (1)Min. Typ. (2)Max.UnitsConditions
SP31 TdoR SDOx dataoutput rise time (4)— — —ns See parameterDO31
SP35 TscH2doV, TscL2doVSDOx data output valid after SCKx edge7nISO > 2.97W
SP40 TdiV2scH, TdiV2scLSetup time of SDlx data input to SCKx edge5ns
SP41 TscH2diL, TscL2diLHold time of SDlx data input to SCKx edge5ns
SP50 TssL2scH, TssL2scLSSx ↓ to SCKx ↑ or SCKx input55ns
SP51TssH2doZSSx ↑ to SDOx output high-impedance(3)2.5— 12 ns
SP52 TscH2ssH TscL2ssHSSx after SCKx edge— 75— ns

Note 1: These parameters are characterized but not tested in manufacturing.
2: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.
3: The minimum clock period for SCKx is 25 ns.
4: Assumes 10 pF load on all SPIx pins.

FIGURE 41-12: SPIx MODULE CLIENT MODE (CKE = 1) TIMING CHARACTERISTICS
Microchip PIC32MZ1025W104132 - TIMING PARAMETERS - 13

flowchart
graph TD
    subgraph SSx
        A["SP60"] --> B["SP50"]
        B --> C["SCKx (CKP = 0)"]
        C --> D["SP71"]
        D --> E["SP70"]
        E --> F["SCKx (CKP = 1)"]
        F --> G["SP35"]
        G --> H["SDOx"]
        H --> I["MSb"]
        I --> J["Bit 14"]
        J --> K["LSb"]
        K --> L["SP51"]
        M["SP40"] --> N["MSb In"]
        N --> O["Bit 14"]
        O --> P["LSb In"]
    end
    subgraph SCKx
        Q["SP52"] --> R["SP73"]
        R --> S["SCKx (CKP = 0)"]
        S --> T["SP72"]
        T --> U["SCKx (CKP = 1)"]
        U --> V["SP73"]
        V --> W["SCKx (CKP = 1)"]
        W --> X["SP72"]
        X --> Y["SCKx (CKP = 1)"]
    end
    subgraph SDOx
        Z["MSb"] --> AA["Bit 14"]
        AA --> AB["LSb"]
        AB --> AC["SP51"]
        AD["SP30,SP31"] --> AE["SP30,SP31"]
    end
    subgraph SDlx
        AF["MSb In"] --> AG["Bit 14"]
        AG --> AH["LSb In"]
        AH --> AI["SP51"]
    end
    note["Note: Refer to Figure 41-1 for load conditions."]

TABLE 41-29: SPIx MODULE CLIENT MODE (CKE = 1) TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Characteristics (1)Min. Typ.(2)Max. UnitsConditions
SP15 Tscck SPI clockspeed — — 40 MHz SPI1 on RPC6
— — 20 MHz SPI1 and SPI2 onPPS configuration
SP70 TscL SCKx input low time (3)Tsck/2ns
SP71 TscH SCKx input high time (3)Tsck/2ns
SP72TscFSCKx input fall time10ns
SP73TscRSCKx input rise time10ns
SP30 TdoF SDOx data output fall time (4)— — —nsSee parameter DO32
SP31 TdoR SDOx data output rise time (4)— — —nsSee parameter DO31
SP35 TscH2doV, TscL2doVSDOx data output valid after SCKx edge— — 10 ns VDD > 2.97V
SP40 TdiV2scH, TdiV2scLSetup time of SDIx data input to SCKx edge0ns
SP41 TscH2diL, TscL2diLHold time of SDIx data input to SCKx edge7ns
SP50 TssL2scH, TssL2scLSSx ↓ to SCKx ↓ or SCKx ↑ input55ns
SP51 TssH2doZ SSx— ↑ to SDOx output high-impedance(4)2.5— 12 ns
SP52 TscH2ssH TscL2ssHSSx ↑ after SCKx Edge10ns
SP60 TssL2doV SDOx Data Output Valid after SSx Edge— — 12.5 ns

Note 1: These parameters are characterized but not tested in manufacturing.
2: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.
3: The minimum clock period for SCKx is 25 ns.
4: Assumes 10 pF load on all SPIx pins.

FIGURE 41-13: SQI SERIAL INPUT TIMING CHARACTERISTICS
SQICS0 TSCKH TSCKL TCLK SQICLK TDIH TDIS SQIDX MSB LSB

FIGURE 41-14: SQI SERIAL OUTPUT TIMING CHARACTERISTICS
SQICS0 SQICS1 SQICLK SQIDx MSB LSB TcES TcCHH TsCKH TsCKL TCLK TCEH TCHS Tcc

TABLE 41-30: SQI TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Characteristic (1,3)Min. Typ.^(2) Max.UnitsConditions
SQ10FCLKSerial clock frequency (1/TsqI)60MHzSerial Flash mode
25MHzSPI mode 0 and 3
SQ11TsCKHSerial clock high time7.5ns
SQ12TsCKLSerial clock low time7.5ns
SQ13TsCKRSerial clock rise timensSee parameter DO31
SQ14TsCKFSerial clock fall timensSee parameter DO32
SQ15Tcss (Tces) active setup time5ns
SQ16Tcsh (TceH) active hold time5ns
SQ17TCHS not active setup time3ns
SQ18TCHH not active hold time3ns
SQ19TCPH high time16.67ns
SQ20TCHZ high to high-Z data out16.67ns
SQ21TCLZSCK low to low-Z data out0ns
SQ22TDSData in setup time6ns
SQ23TDHData in hold time3ns
SQ24TOHData out hold0ns
SQ25Tov (TV)Data out valid6ns

Note 1: These parameters are characterized but not tested in manufacturing.

2: Data in the "Typ." column is at 3.3V, +25°C unless otherwise stated.

3: Assumes 10 pF load on all SQIx pins

FIGURE 41-15: I2Cx BUS START/STOP BITS TIMING CHARACTERISTICS (HOST MODE)
SCLx IM30 IM31 SDAx Start Condition Stop Condition IM33 IM34

Note: Refer to Figure 41-1 for load conditions.

FIGURE 41-16: I2Cx BUS DATA TIMING CHARACTERISTICS (HOST MODE)
SCLx IM20 IM11 IM10 IM21 IM11 IM10 IM33 IM26 IM25 SDAx In IM40 IM40 IM45 SDAx Out Note: Refer to Figure 41-1 for load conditions.

TABLE 41-31: I2Cx BUS DATA TIMING REQUIREMENTS (HOST MODE)

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics Min.(1)Max. UnitsConditions
IM10TLO:SCLClock low time100 kHz mode4.7μs
400 kHz mode 1.3 — μs —
1MHz mode^(2) 0.5 — μs —
IM11THI:SCLClock high time100 kHz mode4μs
400 kHz mode 1.3 — μs —
1MHz mode^(2) 0.5 — μs —
IM20 TF:SCLSDAx and SCLx fall time100 kHz mode300nsCB is specified to be from 10 to 400 pF
400 kHz mode20 + 0.1 CB300ns
1MHz mode^(2) 170ns
IM21 TR:SCLSDAx and SCLx rise time100 kHz mode1000nsCB is specified to be from 10 to 400 pF
400 kHz mode20 + 0.1 CB300ns
1MHz mode^(2) 300ns
IM25 TSU:DATData input setup time100 kHz mode 250— ns —
400 kHz mode 100— ns
1MHz mode^(2) 100— ns
Param.No.SymbolCharacteristicsMin.(1)Max. UnitsConditions
IM26THD:DATData inputhold time100 kHz mode 0— μs —μs
400 kHz mode 00.9 μs
1 MHz mode(2)00.4
IM30 TSU:STAstart conditionsetup time100 kHz mode TPBCLK * (BRG + 2) —μs Onlyrelevant forRepeated Startcondition
400 kHz mode TPBCLK * (BRG + 2) —μs
1 MHz mode(2)TPBCLK * (BRG + 2) —μs
IM31 THD:STAstart conditionhold time100 kHz modeTPBCLK * (BRG + 2)μsAfter this period, thefirst clock pulse isgenerated
400 kHz mode TPBCLK * (BRG + 2) —μs
1 MHz mode(2)TPBCLK * (BRG + 2) —μs
IM33 TSU:STO$stop conditionsetup time100 kHz mode TPBCLK * (BRG + 2) —BRG + 2
400 kHz mode TPBCLK * (BRG + 2) —μs
1 MHz mode(2)TPBCLK * (BRG + 2) —μs
IM34 THD:STOStop conditionhold time100 kHz modeTPBCLK * (BRG + 2)ns
400 kHz modeTPBCLK * (BRG + 2)ns
1 MHz mode(2)TPBCLK * (BRG + 2) —ns
IM40 TAA:SCLOutput valid fromclock100 kHz mode —3500 ns —
400 kHz mode —1000 ns —
1 MHz mode(2)350ns
IM45 TBF:SDABus free time100 kHz mode4.7μsThe amount of timethe bus must be freebefore a newtransmission can start
400 kHz mode 1.3— μs
1 MHz mode(2)0.5— μs
IM50CbBus capacitive loading400pFSee parameter DO58

Note 1: BRG is the value of the I²C Baud Rate Generator.
2: Maximum pin capacitance = 10 pF for all I2Cx pins (for 1 MHz mode only).

FIGURE 41-17: I2Cx BUS START/STOP BITS TIMING CHARACTERISTICS (CLIENT MODE)
SCLx IS30 IS31 SDAx Start Condition Stop Condition IS33 IS34

Note: Refer to Figure 41-1 for load conditions.

FIGURE 41-18: I2Cx BUS DATA TIMING CHARACTERISTICS (CLIENT MODE)
SCLx IS20 IS11 IS10 IS21 IS30 IS31 IS33 IS26 IS25 SDAx In IS40 IS40 IS45 SDAx Out Note: Refer to Figure 41-1 for load conditions.

TABLE 41-32: I2Cx BUS DATA TIMING REQUIREMENTS (CLIENT MODE)

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristicsMin. Max. Units Conditions
IS10 TLO:SCL Clock low time100 kHz mode 4.7 —μsPBCLK must operate ata minimum of 800 kHz
400 kHz mode 1.3 —μsPBCLK must operate ata minimum of 3.2 MHz
1 MHz mode(1)0.5 — μ—
IS11THI:SCLClock high time100 kHz mode 4.0 —μsPBCLK must operate ata minimum of 800 kHz
400 kHz mode 0.6 —μsPBCLK must operate ata minimum of 3.2 MHz
1 MHz mode(1)0.5 — μ —
IS20 TF:SCLSDAx and SCLx fall time100 kHz mode300nsCB is specified to be from 10 to 400 pF
400 kHz mode20 + 0.1 CB300ns
1 MHz mode(1)100ns
Param.No.SymbolCharacteristicsMin.Max.UnitsConditions
IS21TR:SCLSDAx and SCLx rise time100 kHz mode — 100 ns CB is specified to befrom 10 to 400 pF
400 kHz mode 20 + 01 C B 300 ns
1MHzmode^( 1) — 300 ns
IS25 TSU:DAT Data input setup time100 kHz mode 250 — ns —
400 kHz mode 100 — ns
1MHzmode^( 1) 100 — ns
IS26 THD:DATData input hold time100 kHz mode 0— ns —
400 kHz mode 00.9μs
1MHzmode^( 1) 00.3μs
IS30 TSU:STAStart condition setup time100 kHz mode 4700— ns Only relevant forRepeated Start condition
400 kHz mode 600 — ns
1MHzmode^( 1) 250 — ns
IS31 THD:STAStart condition hold time100 kHz mode 4000— ns After this period, the firstthe first clock pulse is generated
400 kHz mode 600 — ns
1MHzmode^( 1) 250 — ns
IS33 TSU:STOStop condi- tion setup time100 kHz mode 4000— ns —
400 kHz mode 600 — ns
1MHzmode^( 1) 600 — ns
IS34 THD:STOStop condition hold time100 kHz mode 4000— ns —
400 kHz mode 600 — ns
1MHzmode^( 1) 250ns
IS40TAA:SCLOutput valid from clock100 kHz mode 03500 ns —
400 kHz mode 01000 ns
1MHzmode^( 1) 0350 ns
IS45TBF:SDABus free time100 kHz mode4.7μsThe amount of time the bus must be free before a new transmission can start
400 kHz mode 1.3— μs
1MHzmode^( 1) 0.5— μs
IS50 CBBus Capacitive Loading400pF

Note 1: Maximum pin capacitance = 10 pF for all I2Cx pins (for 1 MHz mode only).

FIGURE 41-19: CANx MODULE I/O TIMING CHARACTERISTICS
CiTx Pin (output) Old Value New Value CA10 CA11 CiRx Pin (input) CA20

TABLE 41-33: CANx MODULE I/O TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param No.SymbolCharacteristic (1)Min Typ(2)Max UnitsConditions
CA10 TioF Port output fall time — — — ns See parameter DO32
CA11TioRPort output rise timensSee parameter DO31
CA20 TcWF Puse width to triggerCAN wake-up filter (CAN only)700— — ns
CA20 TcWF Puse width to triggerCAN wake-up filter(CAN-FD Only)700— — ns

Note 1: These parameters are characterized but not tested in manufacturing.
2: Data in the "Typ" column is at 3.3V, +25°C unless otherwise stated.

TABLE 41-34: ADC MODULE SPECIFICATIONS (1, 2)

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics Min.Typ. Max. UnitsConditions
Device Supply
AD01 AVDDModule VDD supplyVDD-0.3VDD+0.3V
AD02AVssModule Vss supplyVssVss+0.3V
Reference Inputs
AD05 VREFHReference voltage highAVDDV(1)
AD06 VREFLReference voltage lowAVssV(1)
AD07 VREFAbsolute reference voltage (VREFH-VREFL)AVDD-0.3AVDD+0.3V(2)
AD08IREFCurrent drain102μAPer ADCx ('x' = 0-4, 7)
Analog Input
AD12 VINH-VINLFull-Scale input spanVREFLVREFHV
AD13VINLAbsolute VINL input voltageAVssVREFLV
AD14VINHAbsolute VINH input voltageAVssVREFHV
ADC Accuracy
AD20cNRResolution612bitsSelectable 6, 8, 10, 12 resolution ranges
AD21cINLIntegral nonlinearity±3LSbVINL = AVSS = VREFL = 0V, AVDD = VREFH = 3.3V
AD22cDNLDifferential nonlinearity±1LSbVINL = AVSS = VREFL = 0V, AVDD = VREFH = 3.3V
AD23cGERRGain error±8LSbVINL = AVSS = VREFL = 0V, AVDD = VREFH = 3.3V
AD24cEOFFOffset error±4LSbVINL = AVSS = 0V, AVDD = 3.3V
Dynamic Performance
AD31bSINADSignal to noise and distortion67dBSingle-ended(4)(5)
AD34bNOBEffective number of bits10.5bits(4)(5)

Note 1: The ADC module is functional at VBORMIN < VDD < VDDMIN, but with degraded performance. Unless otherwise stated, module functionality is guaranteed, but not characterized.
2: ADC performance is measured in the MCU mode only.
3: These parameters are not characterized or tested in manufacturing.
4: These parameters are characterized but not tested in manufacturing.
5: Characterized with a 1 kHz sine wave.

TABLE 41-35: ADC TIMING REQUIREMENTS (1)

AC CHARACTERISTICS(3)Standard Operating Conditions: 2.97V to 3.63V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Symbol Characteristics Min. Typ.(2)Max. UnitsConditions
t_sys ADC controller clock period 8 10 7142 ns —
t_ADC SAR ADC core clock period 28.57 35.7 7142 ns —
DutyCycDuty cycle455055%
f_CNV Sampling rateselres = 11, rest = 120.0122.5MSPS
selres = 10, rest = 100.012.333.5MSPS
selres = 01, rest = 80.012.84.375MSPS
selres = 00, rest = 60.013.55.833MSPS
N_CNV Conversion cycleselres = 11, rest = 1214Cyc
selres = 10, rest = 1012Cyc
selres = 01, rest = 810Cyc
selres = 00, rest = 68Cyc
D_LATENCY Data latencyselres = 11, rest = 1214Cyc
selres = 10, rest = 1012Cyc
selres = 01, rest = 810Cyc
selres = 00, rest = 68Cyc
T_SEP Separation time between command0ns —
T_SAMP Sample time2.5*t _ADC infinite— —
T_CSS Conversion complete to sample start0ns
T_WARMUP Wake-up time for analog20ns
T_SAMP\_DEL Trigger Pos Edge to End-Of-Sample Delayen_async_samp = 11 23 ns —
en_async_samp = 1(4+/-0.5)* t_sys ns

Note 1: ADC performance is measured in the MCU mode only.
2: These parameters are characterized but not tested in manufacturing.
3: The ADC module is functional at V_BORMIN < V_DD < V_DDMIN but with degraded performance. Unless otherwise stated, module functionality is guaranteed but not characterized.

FIGURE 41-1: PROGRAMMABLE LOW-VOLTAGE DETECT ELECTRICAL CHARACTERISTICS
VDD VLVD (LVDIF set by hardware) VLHYS (LVDIF can be cleared in software) LVDIF

TABLE 41-36: PLVD ELECTRICAL CHARACTERISTICS

DC SpecificationsStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
SymbolCharacteristic Min. Typ. Max. UnitsConditions
Vlvd LVD voltage on VDD transition high to lowLVDL = 0100 3.4 3.526 3.62 V
LVDL = 0101 3.3 3.329 3.368 V
LVDL = 01103.2163.2783.322 V
LVDL = 01112.932 2.991 3.034V

Note 1: Production tested at T_A=25^ . These parameters are characterized but not tested in manufacturing.
2: LVDL = 1000 to LVDL = 1011 are not supported.

TABLE 41-37: TEMPERATURE SENSOR SPECIFICATIONS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristics Min. Typ.Max. UnitsConditions
TS10VTSRate of change+5mV/°C
TS11TRResolution-4+7°C
TS12 IVTEMPVoltage range0.51.5V
TS13TMINMinimum temperature-40°CIVTEMP = 0.5V
TS14 TMAXMaximum temperature125°CIVTEMP = 1.3V

Note: The temperature sensor is functional at V_BORMIN < V_DD < V_DDMIN , but with degraded performance. Unless otherwise stated, module functionality is tested, but not characterized.

TABLE 41-38: USB OTG ELECTRICAL SPECIFICATIONS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.SymbolCharacteristicsMin.Typ.Max.UnitsConditions
USB313VUSB3V3USB voltage3.03.6VVoltage on VUSB3V3must be in this range for proper USB operation
Low-Speed and Full-Speed Modes
USB315VILUSBInput low voltage for USB buffer0.8V
USB316VIHUSBInput high voltage for USB buffer2.0V
USB318VDIFSDifferential input sensitivity0.2VThe difference between D+ and D- must exceed this value while VCM is met
USB319VCMDifferential common mode range0.82.5V
USB321VOLVoltage output low0.00.3V1.425 kΩ load connected to VUSB3V3
USB322VOHVoltage output high2.83.6V14.25 kΩ load connected to ground

Note: These parameters are characterized but not tested in manufacturing.

FIGURE 41-20: RMII ETHERNET AC TIMING DIAGRAM
tREF_CLK tREF_CLKH tREF_CLKL EREFCK tRX[1:0]SU tRXERSU tRX[1:0]HOLD tRXERSHOLD ERX[1:0] ERXER tTX[1:0]VAL tTXENVAL ETX[1:0] ETXEN

TABLE 41-39: RMII ETHERNET MODULE SPECIFICATIONS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Characteristic Min. Typ. Max. Units Conditions
RMII Timing Requirements
ET_29 tREF CLKReference clock frequency —50 —MHzVDDIO = 3.3Vwith C_LOAD =20 pF
ET_31 tREF CLKHReference clock high time —tREFCLK/2ns
ET_33 tREF CLKLReference clock low time— tREFCLK/2ns
ET_35 REF CLKDCReference clock duty cycle— 50 —%
ET_41 tRX[1:0] SU tRXERSURXD[1:0], RXER set-up time512ns
ET_43 tRX[1:0] HOLD tRXERSHOLDRXD[1:0], RXER hold time212ns
ET_45 tTX[1:0] VAL tTXENVALTXEN valid time512ns

FIGURE 41-21: EJTAG/JTAG TIMING CHARACTERISTICS
TCK TMS TDI TDO TRST* TCKhigh TCKlow TCKcyc Trf Trf Trtsetup 'Thold' Trf TDOout TDOzstate Trf Trf*low Trf Defined Undefined Defined

TABLE 41-40: EJTAG/JTAG TIMING REQUIREMENTS

AC CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Param.No.Symbol Description Min. Typ. Max. Units Conditions
EJ1 TTCKCYCTCK cycle time100ns
EJ2 TTCKHIGHTCK high time10ns
EJ3TTCKLOWTCK low time10ns
EJ4 TTSETUPTAP signals setup time before rising TCK5ns
EJ5TTHOLDTAP signals hold time after rising TCK3ns
EJ6 TTDOOUTTDO output delay time from falling TCK5ns
EJ7 TTDOZSTATE TDO3-state delay time from falling TCK5ns
EJ8TTRSTLOWTRST low time25ns
EJ9 TRFTAP signals rise/fall time, all input and outputns

Note: These parameters are characterized but not tested in manufacturing.

41.1.3 RADIO PERFORMANCE OF

PIC32MZ1025W104 SoC AND FEM

This section describes the Wi-Fi radio specifications

and performance characteristics of the

PIC32MZ1025W104 SoC.

TABLE 41-41: RADIO SPECIFICATIONS

Feature Description
WLAN standards IEEE 802.11b, IEEE 802.11g, and IEEE 802.11n
Frequency range 2.412 GHz~ 2,472 GHz (2400 ~ 2483.5 MHz ISM band)
Number of channels 11 for North America and 13 for Europe and Japan

41.1.3.1 Receiver Performance

The following table provides the receiver performance

characteristics of the PIC32MZ1025W104 SoC.

TABLE 41-42: RECEIVER PERFORMANCE CHARACTERISTICS

RF CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Parameter DescriptionMin. Typ. Max. Unit
Frequency24122472MHz
Sensitivity 802.11b1 Mbps DSSS-99dBm
2 Mbps DSSS-96
5.5 Mbps DSSS-94
11 Mbps DSSS-91
Sensitivity 802.11g6 Mbps OFDM-93dBm
9 Mbps OFDM-93
12 Mbps OFDM-91
18 Mbps OFDM-89
24 Mbps OFDM-86
36 Mbps OFDM-82
48 Mbps OFDM-78
54 Mbps OFDM-76
Sensitivity 802.11n(Bandwidth at 20 MHz)(Both long GI andshort GI)MCS 0-92dBm
MCS 1-89
MCS 2-87
MCS 3-84
MCS 4-81
MCS 5-76
MCS 6-74
MCS 7-72
Maximum ReceiveSignal level1, 2 Mbps DSSS-2dBm
5.5, 11Mbps DSSS-2
6 Mbps OFDM-2
54 Mbps OFDM-7.5
MCS 0-2
MCS 7-7.5
ParameterDescriptionMin.Typ.Max.Unit
Adjacent Channel Rejection1 Mbps DSSS (30 MHz offset) 44.5 —dB
11 Mbps DSSS (25 MHz offset) 39.5 —
6 Mbps OFDM (25 MHz offset) 41.5 —
54 Mbps OFDM (25 MHz offset) 24.5 —
MCS 0 – 20 MHz Bandwidth (25 MHz offset)39.5 — —
MCS 7 – 20 MHz Bandwidth (25 MHz offset)21.5 — —
RSSI Accuracy — -5 — +5 dB

Note 1: Measured after RF matching network and FEM output (assume 50Ω impedance).
2: RF performance is ensured at 3.3V, 25°C, with a 2-3 dB change at boundary conditions.
3: The availability of some specific channels and/or operational frequency bands are country-dependent and must be programmed in the host product at the factory to match the intended destination. Regulatory bodies prohibit exposing the settings to the end user. This requirement needs to be taken care of via host implementation.
4: The host product manufacturer must ensure that the RF behavior adheres to the certification (for example, FCC, ISED) requirements when the module is installed in the final host product.
5: These parameters are measured at 25^ C, 3.3V.
6: These parameters are characterized but not tested in manufacturing.

41.1.3.2 Transmitter Performance

The following table provides the transmitter performance characteristics of the PIC32MZ1025W104 SoC.

TABLE 41-43: TRANSMITTER PERFORMANCE CHARACTERISTICS

RF CHARACTERISTICSStandard Operating Conditions: 2.97V to 3.63V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Parameter Description Min. Typ.(3)Max. Unit
Frequency — 2412 — 2472 MHz
Output power(1)(2) 802.11b 1 Mbps OFDM — 19.5 —dBm
2 Mbps DSSS — 21.5
5.5 Mbps DSSS— 21.5
11 Mbps DSSS— 21.5
Output power(1)(2) 802.11g 6 Mbps OFDM — 19.5 —dBm
9 Mbps OFDM— 19.5
12 Mbps OFDM— 19.5
18 Mbps OFDM— 19.5
24 Mbps OFDM— 19.5
36 Mbps OFDM— 19.5
48 Mbps OFDM— 19.5
54 Mbps OFDM— 18.5
Output power(1)(2) 802.11n(Bandwidth at 20 MHz)MCS 0— 19.5dBm
MCS 1— 19.5
MCS 2— 19.5
MCS 3— 19.5
MCS 4— 19.5
MCS 5— 19
MCS 6— 18
MCS 7— 17.5
Transmit Power Control (TPC) Accuracy±1.5(2)dB
Harmonic Output Power(Radiated, Regulatory mode)2nd4274(4)dBuV/m
3rd— Below noise floor74(4)

Note 1: Measured at IEEE 802.11 specification compliant EVM/Spectral mask.
2: Measured after RF matching network and FEM output (assume 50Ω impedance).
3: RF performance is ensured at 3.3V, 25°C, with a 2-3 dB change at boundary conditions.
4: FCC Radiated Emission limits (Restricted Band).
5: With respect to TX power, different (higher/lower) RF output power settings may be used for specific antennas and/or enclosures, in which case re-certification may be required. Program the custom gain table to control the transmit power using the MCHPRT3 tool (Testing PIC32MZ-W1 SoC with MCHPRT3 Tool (DS50003203)).
6: The availability of some specific channels and/or operational frequency bands are country-dependent and must be programmed in the host product at the factory to match the intended destination. Regulatory bodies prohibit exposing the settings to the end user. This requirement needs to be taken care of via host implementation.
7: The host product manufacturer must ensure that the RF behavior adheres to the certification (for example, FCC, ISED) requirements when the module is installed in the final host product.
8: These parameters are measured at 25°C, 3.3V.
9: These parameters are characterized but not tested in manufacturing.

41.1.4 PIC32MZ1025W104 SOC

CHARACTERISTICS GRAPHS

Note: The graphs provided are a statistical summary based on a limited number of samples and are provided for design guidance purposes only. The performance characteristics listed herein are not tested or guaranteed. In some graphs, the data presented may be outside the specified operating range (for example, outside specified power supply range) and, therefore, outside the warranted range.

41.1.4.1 AC and DC Characteristics Graphs

FIGURE 41-22: V OH - 4x DRIVER PINS
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 1

line | x | y | | ---- | ------- | | 0.00 | -0.045 | | 0.50 | -0.046 | | 1.00 | -0.047 | | 1.50 | -0.048 | | 2.00 | -0.049 | | 2.50 | -0.050 | | 3.00 | -0.051 | | 3.50 | -0.052 | | 4.00 | -0.053 | | 4.50 | -0.054 | | 5.00 | -0.055 | | 5.50 | -0.056 | | 6.00 | -0.057 | | 6.50 | -0.058 | | 7.00 | -0.059 | | 7.50 | -0.060 | | 8.00 | -0.061 | | 8.50 | -0.062 | | 9.00 | -0.063 | | 9.50 | -0.064 | | 10.00| -0.065 | | 10.50| -0.066 | | 11.00| -0.067 | | 11.50| -0.068 | | 12.00| -0.069 | | 12.50| -0.070 | | 13.00| -0.071 | | 13.50| -0.072 | | 14.00| -0.073 | | 14.50| -0.074 | | 15.00| -0.075 | | 15.50| -0.076 | | 16.00| -0.077 | | 16.50| -0.078 | | 17.00| -0.079 | | 17.50| -0.080 | | 18.00| -0.081 | | 18.50| -0.082 | | 19.00| -0.083 | | 19.50| -0.084 | | 20.00| -0.085 | | 20.50| -0.086 | | 21.00| -0.087 | | 21.50| -0.088 | | 22.00| -0.089 | | 22.50| -0.090 | | 23.00| -0.091 | | 23.50| -0.092 | | 24.00| -0.093 | | 24.50| -0.094 | | 25.00| -0.095 | | 25.50| -0.096 | | 26.00| -0.097 | | 26.50| -0.098 | | 27.00| -0.099 | | 27.50| -0.100 | | 28.00| -0.101 | | 28.50| -0.102 | | 29.00| -0.103 | | 29.50| -0.104 | | 30.00| -0.105 | | 30.50| -0.106 | | 31.00| -0.107 | | 31.50| -0.108 | | 32.00| -0.109 | | 32.50| -0.110 | | 33.00| -0.111 | | 33.50| -0.112 | | 34.00| -0.113 | | 34.50| -0.114 | | 35.00| -0.115 |

FIGURE 41-23: V OL - 4x DRIVER PINS
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 2

line | x | IOL (A) | | ---- | ------- | | 0.00 | 0.000 | | 0.50 | 0.010 | | 1.00 | 0.020 | | 1.50 | 0.028 | | 2.00 | 0.035 | | 2.50 | 0.040 | | 3.00 | 0.043 | | 3.50 | 0.044 |

FIGURE 41-24: Voh - 8x DRIVER PINS
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 3

line | x | y | |-------|---------| | 0.00 | -0.085 | | 0.50 | -0.086 | | 1.00 | -0.087 | | 1.50 | -0.088 | | 2.00 | -0.089 | | 2.50 | -0.090 | | 3.00 | -0.091 | | 3.50 | -0.092 | | 4.00 | -0.093 | | 4.50 | -0.094 | | 5.00 | -0.095 | | 5.50 | -0.096 | | 6.00 | -0.097 | | 6.50 | -0.098 | | 7.00 | -0.099 | | 7.50 | -0.100 | | 8.00 | -0.101 | | 8.50 | -0.102 | | 9.00 | -0.103 | | 9.50 | -0.104 | | 10.00 | -0.105 | | 10.50 | -0.106 | | 11.00 | -0.107 | | 11.50 | -0.108 | | 12.00 | -0.109 | | 12.50 | -0.110 | | 13.00 | -0.111 | | 13.50 | -0.112 | | 14.00 | -0.113 | | 14.50 | -0.114 | | 15.00 | -0.115 | | 15.50 | -0.116 | | 16.00 | -0.117 | | 16.50 | -0.118 | | 17.00 | -0.119 | | 17.50 | -0.120 | | 18.00 | -0.121 | | 18.50 | -0.122 | | 19.00 | -0.123 | | 19.50 | -0.124 | | 20.00 | -0.125 | | 20.50 | -0.126 | | 21.00 | -0.127 | | 21.50 | -0.128 | | 22.00 | -0.129 | | 22.50 | -0.130 | | 23.00 | -0.131 | | 23.50 | -0.132 | | 24.00 | -0.133 | | 24.50 | -0.134 | | 25.00 | -0.135 | | 25.50 | -0.136 | | 26.00 | -0.137 | | 26.50 | -0.138 | | 27.00 | -0.139 | | 27.50 | -0.140 | | 28.00 | -0.141 | | 28.50 | -0.142 | | 29.00 | -0.143 | | 29.50 | -0.144 | | 30.00 | -0.145 | | 30.50 | -0.146 | | 31.00 | -0.147 | | 31.50 | -0.148 | | 32.00 | -0.149 | | 32.50 | -0.150 | | 33.00 | -0.151 | | 33.50 | -0.152 | | 34.00 | -0.153 | | 34.50 | -0.154 | | 35.00 | -0.155 | | 35.50 | -0.156 | | 36.00 | -0.157 | | 36.50 | -0.158 | | 37.00 | -0.159 | | 37.50 | -0.160 | | 38.00 | -0.161 | | 38.50 | -0.162 | | 39.00 | -0.163 | | 39.50 | -0.164 | | 40.00 | -0.165 | | 40.50 | -0.166 | | 41.00 | -0.167 | | 41.50 | -0.168 | | 42.00 | -0.169 | | 42.50 | -0.170 | | 43.00 | -0.171 | | 43.50 | -0.172 | | 44.00 | -0.173 | | 44.50 | -0.174 | | 45.00 | -0.175 | | 45.50 | -0.176 | | 46.0- | | Note: The y-axis label is "IOH (A)" and the x-axis label is "x" (e.g., "Absolute Maximum"). The data series includes the x-axis values for the x-axis range from approximately -2 to +2 and the corresponding y-values for the x-axis range from approximately +2 to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and then to +3 and after the exact value of the x-axis is provided.

FIGURE 41-25: V OL - 8x DRIVER PINS
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 4

line | x | y | | ---- | ----- | | 0.00 | 0.000 | | 0.50 | 0.010 | | 1.00 | 0.025 | | 1.50 | 0.040 | | 2.00 | 0.055 | | 2.50 | 0.065 | | 3.00 | 0.072 | | 3.50 | 0.076 | | 4.00 | 0.078 | | 4.50 | 0.079 | | 5.00 | 0.080 |

FIGURE 41-26: TYPICAL TEMPERATURE SENSOR VOLTAGE
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 5

line | Temperature (Celsius) | Voltage (V) | | --------------------- | ----------- | | -4 | 0.45 | | 0 | 0.55 | | 3 | 0.65 | | 6 | 0.75 | | 9 | 0.85 | | 12 | 0.95 | | 15 | 1.05 | | 18 | 1.15 | | 21 | 1.25 | | 24 | 1.35 | | 27 | 1.45 |

41.1.4.2 Receiver and Transmitter Current Characteristics Graphs

FIGURE 41-27: RECEIVE CURRENT VS. TEMPERATURE
Receive Current vs. Temperature MCS7, Channel 7, 3.3V
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 6

line | Temperature (C) | Current (mA) | | --------------- | ------------ | | -40 | 82 | | -15 | 84 | | 10 | 86 | | 35 | 87 | | 60 | 89 | | 85 | 95 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: Measured at the FEM output.
4: This current includes processor current.

FIGURE 41-28: RECEIVE CURRENT VS. RECEIVE SIGNAL POWER
Receive Current vs. Receive Signal Power MCS7, Channel 7, 3.3V, 25C
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 7

line | Receive Signal Power (dBm) | Current (mA) | | -------------------------- | ------------ | | -70 | 88 | | -65 | 88 | | -60 | 88 | | -55 | 88 | | -50 | 88 | | -45 | 88 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: Measured at the FEM output.
4: This current includes processor current.

FIGURE 41-29: RECEIVE CURRENT VS. CPU FREQUENCY
Receive Current vs. CPU Frequency MCS7, Channel 7, 3.3V, 25C
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 8

line | CPU Frequency | Current (mA) | | ------------- | ------------ | | 50 | 85 | | 60 | 87 | | 70 | 89 | | 80 | 91 | | 90 | 93 | | 100 | 95 | | 110 | 97 | | 120 | 99 | | 130 | 101 | | 140 | 103 | | 150 | 105 | | 160 | 107 | | 170 | 109 | | 180 | 111 | | 190 | 113 | | 200 | 115 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: Measured at the FEM output.
4: This current includes processor current.

FIGURE 41-30: TRANSMIT CURRENT VS. TEMPERATURE
Transmit Current vs. Temperature MCS7, Channel 7, 3.3V
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 9

line | Temperature (C) | Current (mA) | | --------------- | ------------ | | -40 | 195 | | -15 | 196 | | 10 | 197 | | 35 | 198 | | 60 | 199 | | 85 | 200 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: Measured at the FEM output.
4: This current includes processor current.

FIGURE 41-31: TRANSMIT CURRENT VS. OUTPUT POWER
Transmit Current vs. Output Power MCS7, Channel 7, 3.3V, 25C
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 10

line | TX Output Power (dBm) | Current (mA) | | --------------------- | ------------ | | 11.5 | 165 | | 12.5 | 168 | | 13.5 | 170 | | 14.5 | 173 | | 15.5 | 176 | | 16.5 | 179 | | 17.5 | 205 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: Measured at the FEM output.
4: This current includes processor current.

FIGURE 41-32: TRANSMIT CURRENT VS. CPU FREQUENCY
Transmit Current vs. CPU Frequency MCS7, Channel 7, 3.3V, 25C
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 11

line | CPU Frequency (MHz) | Current | | ------------------- | ------- | | 50 | 200 | | 60 | 202 | | 70 | 204 | | 80 | 206 | | 90 | 208 | | 100 | 210 | | 110 | 212 | | 120 | 214 | | 130 | 216 | | 140 | 218 | | 150 | 220 | | 160 | 222 | | 170 | 224 | | 180 | 226 | | 190 | 228 | | 200 | 230 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: Measured at the FEM output.
4: This current includes processor current.

41.1.4.3 Receiver and Transmitter Performance Characteristics Graphs
FIGURE 41-33: RECEIVE SENSITIVITY VS TEMPERATURE
RX Sensitivity vs Temperature MCS7, Channel 7, 3.3V
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 12

line | Temperature (C) | RX Sensitivity (dBm) | | --------------- | -------------------- | | -40 | -75 | | -15 | -74 | | 10 | -73 | | 35 | -72 | | 60 | -71 | | 85 | -70 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: Measured at the FEM output.

FIGURE 41-34: RX SENSITIVITY VS CHANNELS
RX Sensitivity vs Channel MCS7, 25C, 3.3V
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 13

line | Channel | RX Sensitivity (dBm) | | ------- | -------------------- | | 1 | -70 | | 2 | -70 | | 3 | -70 | | 4 | -70 | | 5 | -70 | | 6 | -70 | | 7 | -70 | | 8 | -70 | | 9 | -70 | | 0 | -70 | | 1 | -70 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: Measured at the FEM output.

FIGURE 41-35: RX SENSITIVITY VS VOLTAGE
RX Sensitivity vs Voltage MCS7, Channel 7, 25C
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 14

line | Voltage (V) | RX Sensitivity (dBm) | | ----------- | -------------------- | | 3.0 | -70 | | 3.1 | -70 | | 3.2 | -70 | | 3.3 | -70 | | 3.4 | -70 | | 3.5 | -70 | | 3.6 | -70 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: Measured at the FEM output.

FIGURE 41-36: RSSI VS RECEIVE SIGNAL POWER
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 15

line | Receive Signal Power (dBm) | RSSI | | -------------------------- | ---- | | -80 | -80 | | -75 | -75 | | -70 | -70 | | -65 | -65 | | -60 | -60 | | -55 | -55 | | -50 | -50 | | -45 | -45 | | -40 | -40 | | -35 | -35 | | -30 | -30 | | -25 | -25 | | -20 | -20 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference. 2: Measured at the FEM output.

FIGURE 41-37: TX POWER VS TEMPERATURE
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 16

line | Temperature (C) | Transmit Power (dBm) | | --------------- | -------------------- | | -40 | 21.5 | | -15 | 21.4 | | 10 | 21.3 | | 35 | 21.2 | | 60 | 21.1 | | 85 | 19.5 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference. 2: Measured at the FEM output.

FIGURE 41-38: TX POWER VS CHANNELS
Transmit Power vs Channel 1Mbps, 25C, 3.3V
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 17

line | Channel | Transmit Power (dBm) | | ------- | -------------------- | | 1 | 21.5 | | 2 | 21.4 | | 3 | 21.3 | | 4 | 21.4 | | 5 | 21.3 | | 6 | 21.3 | | 7 | 21.3 | | 8 | 21.3 | | 9 | 21.3 | | 10 | 21.3 | | 11 | 21.3 | | 12 | 21.3 | | 13 | 21.3 | | 14 | 21.3 | | 15 | 21.3 | | 16 | 21.3 | | 17 | 21.3 | | 18 | 21.3 | | 19 | 21.3 | | 20 | 21.3 | | 21 | 21.3 | | 22 | 21.3 | | 23 | 21.3 | | 24 | 21.3 | | 25 | 21.3 | | 26 | 21.3 | | 27 | 21.3 | | 28 | 21.3 | | 29 | 21.3 | | 30 | 21.3 | | 31 | 21.3 | | 32 | 21.3 | | 33 | 21.3 | | 34 | 21.3 | | 35 | 21.3 | | 36 | 21.3 | | 37 | 21.3 | | 38 | 21.3 | | 39 | 21.3 | | 40 | 21.3 | | 41 | 21.3 | | 42 | 21.3 | | 43 | 21.3 | | 44 | 21.3 | | 45 | 21.3 | | 46 | 21.3 | | 47 | 21.3 | | 48 | 21.3 | | 49 | 21.3 | | 50 | 21.3 | | 51 | 21.3 | | 52 | 21.3 | | 53 | 21.3 | | 54 | 21.3 | | 55 | 21.3 | | 56 | 21.3 | | 57 | 21.3 | | 58 | 21.3 | | 59 | 21.3 | | 60 | 21.3 | | 61 | 21.3 | | 62 | 21.3 | | 63 | 21.3 | | 64 | 21.3 | | 65 | 21.3 | | 66 | 21.3 | | 67 | 21.3 | | 68 | 21.3 | | 69 | 21.3 | | 70 | 21.3 | | 71 | 21.3 | | 72 | 21.3 | | 73 | 21.3 | | 74 | 21.3 | | 75 | 21.3 | | 76 | 21.3 | | 77 | 21.3 | | 78 | 21.3 | | 79 | 21.3 | | 80 | 21.3 | | 81 | 21.3 | | 82 | 21.3 | | 83 | 21.3 | | 84 | 21.3 | | 85 | 21.3 | | 86 | 21.3 | | 87 | 21.3 | | 88 | 21.3 | | 89 | 21.3 | | 90 | 21.3 | | 91 | 21.3 | | 92 | 21.3 | | 93 | 21.3 | | 94 | 21.3 | | 95 | 21.3 | | 96 | 21.3 | | 97 | 21.3 | | 98 | 21.3 | | 99 | 21.3 | | 100 | 21.3 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: Measured at the FEM output.

FIGURE 41-39: TX POWER VS VOLTAGES
Transmit Power vs Voltage 1Mbps, Channel 7, 25C
Microchip PIC32MZ1025W104132 - AC and DC Characteristics Graphs - 18

line | Voltage (V) | Transmit Power (dBm) | | ----------- | -------------------- | | 3.1 | 20.0 | | 3.2 | 20.0 | | 3.3 | 20.0 | | 3.4 | 20.0 | | 3.5 | 20.0 | | 3.6 | 20.0 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: Measured at the FEM output.

41.2 WFI32 Module Electrical Specifications

The absolute maximum ratings for the WF132 Module are listed below. Exposure to these maximum rating conditions for extended periods may affect device reliability. Functional operation of the device at these or any other conditions, above the parameters indicated in the operation listings of this specification, is not implied.

Note: All the electrical specification of the PIC32MZ W1 applies to the WFI32 Module as well unless specified explicitly.

Absolute Maximum Ratings

Ambient temperature under bias....-40°C to +85°C

Storage temperature -40^ to +125^

Voltage on VDD with respect to GND -0.3V to (VDD + 0.3V)

Voltage on Vbus with respect to GND -0.3V to ( V_DD + 0.3V )

Maximum current out of GND pin(s) 500 mA

Maximum current into VDD pin(s) ^(2) .....500 mA

Note 1: Stresses above those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress rating only and functional operation of the device at those or any other conditions, above those indicated in the operation listings of this specification, is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.

2: The maximum allowable current is a function of the device's maximum power dissipation.

TABLE 41-44: RECOMMENDED OPERATING CONDITIONS

SymbolParameter Min. Typ. Max.Unit
V_DD Power supply input voltage3.03.33.6V
V_BUS USB bus voltage3.03.33.6V
AV_DD Analog power supply input voltage3.03.33.6V

41.2.1 DC CHARACTERISTICS

TABLE 41-45: WI-FI CURRENT

DC CHARACTERISTICSStandard Operating Conditions: 3.0V to 3.6V (unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°C
Device States CodeRateOutput Power (Typ.) (dBm)Current (Typ.) (mA)(3)
On_Transmit(4)802.11b 1 Mbps(5)20.5 293
802.11b 1 Mbps(6)14.5 212
802.11b 11 Mbps(5)20.5 293
802.11g 6 Mbps(6)19.5 272
802.11g 54 Mbps(5)18.5 241
802.11n MCS0(6)18.5 258
802.11n MCS7(5)17.0 223
802.11n MCS7(6)11.0 179
On_Receive802.11b 1 Mbps(6)75
802.11n MCS7(5)8 9

Note 1: Measured along with RF matching network and FEM circuit (assume 50Ω impedance).
2: The test conditions for I DD measurements are as follows:
• CPU, Flash Panel and SRAM data memory are operational.
• CPU is operating at 50 MHz.
• CPU is in Wi-Fi RF Test mode.
- All peripheral modules are disabled (ON bit = 0) but the associated PMD bit is cleared.
• WDT and FSCM are disabled.
- All I/O pins are configured as inputs and pulled high.
• VBUS3V3 connected to V_DD
- = V_DD
3: Data in the "Typ." column is at 3.3V, 25°C unless otherwise stated.
4: Tested at channel 7 in Fixed Mode Gain.
5: This parameter is characterized and tested in manufacturing.
6: This parameter is characterized but not tested in manufacturing.

Note: For details on the DC characteristics, refer to Section 41.1.1 "DC Characteristics".

41.2.2 AC CHARACTERISTICS AND

TIMING PARAMETERS

Note: For details on the AC Characteristics and Timing Parameters, refer to Section 41.1.2 “AC Characteristics and Timing Parameters”.

41.2.3 RADIO PERFORMANCE OF WFI32

MODULE

This section describes the Wi-Fi radio specifications and performance characteristics of the WFI32 Module.

TABLE 41-46: RADIO SPECIFICATIONS

Feature Description
WLAN standards IEEE 802.11b, IEEE 802.11g, and IEEE 802.11n
Frequency range 2.412 GHz~ 2,472 GHz (2400 ~ 2483.5 MHz ISM band)
Number of channels 11 for North America and 13 for Europe and Japan

41.2.3.1 Receiver Performance

The following table provides the receiver performance characteristics of the WFI32 Module.

TABLE 41-47: WFI32 MODULE RECEIVER PERFORMANCE CHARACTERISTICS (1)

RF CHARACTERISTICSStandard Operating Conditions: 3.0V to 3.6V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°CMeasured at 25°C, 3.3V
Parameter Description Min. Typ. Max. Unit
Frequency —2412 —2472 MHz
Sensitivity 802.11b1 Mbps DSSS(5)-99.5dBm
2 Mbps DSSS(5)-96.5
5.5 Mbps DSSS(5)-94.5
11 Mbps DSSS(6)-91.5
Sensitivity 802.11g6 Mbps OFDM(5)-93.5dBm
9 Mbps OFDM(5)-93
12 Mbps OFDM(5)-91
18 Mbps OFDM(5)-89
24 Mbps OFDM(5)-86
36 Mbps OFDM(5)-82.5
48 Mbps OFDM(5)-78.5
54 Mbps OFDM(6)-76.5
Sensitivity 802.11n (Bandwidth at 20 MHz) (Both long GI and short GI)MCS 0(5)-92.5dBm
MCS 1(5)-89.5
MCS 2(5)-87.5
MCS 3(5)-84.5
MCS 4(5)-80.5
MCS 5(5)-76.5
MCS 6(5)-74.5
MCS 7(6)-73
Maximum Receive Signal level1, 2 Mbps DSSS(5)-2dBm
5.5, 11Mbps DSSS(5)-2
6 Mbps OFDM(5)-2
54 Mbps OFDM(5)-7
MCS 0(5)-2
MCS 7(5)-8
ParameterDescriptionMin.Typ.Max.Unit
Adjacent Channel Rejection1 Mbps DSSS(5)(30 MHz offset)44.5 — —dB
11 Mbps DSSS(5)(25 MHz offset)39.5 — —
6 Mbps OFDM(5)(25 MHz offset)41.5 — —
54 Mbps OFDM(5)(25 MHz offset)24.5 — —
MCS 0 – 20 MHz Bandwidth (25 MHz offset)(5)40.5 — —
MCS 7 – 20 MHz Bandwidth (25 MHz offset)(5)21.5 — —
RSSI Accuracy — -5 — +5 dB

Note 1: Measured after RF matching network and FEM output (assume 50 impedance).
2: RF performance is ensured at 3.3V, 25°C, with a 2-3 dB change at boundary conditions.
3: The availability of some specific channels and/or operational frequency bands are country-dependent and must be programmed in the host product at the factory to match the intended destination. Regulatory bodies prohibit exposing the settings to the end user. This requirement needs to be taken care of via host implementation.
4: The host product manufacturer must ensure that the RF behavior adheres to the certification (for example, FCC, ISED) requirements when the module is installed in the final host product.
5: This parameter is characterized but not tested in manufacturing.
6: This parameter is characterized and tested in manufacturing.

41.2.3.2 Transmitter Performance

The following table provides the transmitter performance characteristics of the WFI32 Module.

TABLE 41-48: WFI32 MODULE TRANSMITTER PERFORMANCE CHARACTERISTICS

RF CHARACTERISTICSStandard Operating Conditions: 3.0V to 3.6V(unless otherwise stated)Operating temperature: -40°C ≤ TA ≤ +85°CMeasured at 25°C, 3.3V
Parameter Description Min. Typ.(3)Max. Unit
Frequency — 2412 — 2472 MHz
Output power(1)(2) 802.11b 1 Mbps DSSS (9)20. dBm 5
2 Mbps DSSS(8)20
5.5 Mbps DSSS(8)20
11 Mbps DSSS(8)20
Output power(1)(2) 802.11g 6 Mbps OFDM (8)19. dBm 5
9 Mbps OFDM(8)19
12 Mbps OFDM(8)19
18 Mbps OFDM(8)19
24 Mbps OFDM(8)19
36 Mbps OFDM(8)19
48 Mbps OFDM(8)19
54 Mbps OFDM(9)18
Output power(1)(2) 802.11n(Bandwidth at 20 MHz)MCS 0(8)18. dBm 5
MCS 1(8)18.
MCS 2(8)18.
MCS 3(8)18.
MCS 4(8)18.
MCS 5(8)18.
MCS 6(8)18
MCS 7(9)17
Transmit Power Control (TPC) Accuracy±1.5(2)dB
Harmonic Output Power(Radiated, Regulatory mode)2nd42(7)7 dBuV/m
3rd— Below noise floor74(7)

Note 1: Measured at IEEE 802.11 specification compliant EVM/Spectral mask.
2: Measured after RF matching network and FEM output (assume 50Ω impedance).
3: RF performance is ensured at 3.3V, 25°C, with a 2-3 dB change at boundary conditions.
4: With respect to TX power, different (higher/lower) RF output power settings may be used for specific antennas and/or enclosures, in which case re-certification may be required. Program the custom gain table to control the transmit power using the MCHPRT3 tool (Testing PIC32MZ-W1 SoC with MCHPRT3 Tool (DS50003203)).
5: The availability of some specific channels and/or operational frequency bands are country-dependent and must be programmed in the host product at the factory to match the intended destination. Regulatory bodies prohibit exposing the settings to the end user. This requirement needs to be taken care of via host implementation.
6: The host product manufacturer must ensure that the RF behavior adheres to the certification (for example, FCC, ISED) requirements when the module is installed in the final host product.
7: FCC Radiated Emission limits (Restricted Band).
8: This parameter is characterized but not tested in manufacturing.
9: This parameter is characterized and tested in manufacturing.

41.2.4 WFI32 MODULE

CHARACTERISTICS GRAPH

41.2.4.1 Receiver and Transmitter Current

Characteristics Graphs

FIGURE 41-40: RECEIVE CURRENT VS. TEMPERATURE
Receive Current vs. Temperature MCS7, Channel 7, 3.3V
Microchip PIC32MZ1025W104132 - Characteristics Graphs - 1

line | Temperature (C) | Current (mA) | | --------------- | ------------ | | -40 | 85 | | -15 | 86 | | 10 | 87 | | 35 | 88 | | 60 | 89 | | 85 | 90 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: This current includes processor current.

FIGURE 41-41: RECEIVE CURRENT VS. RECEIVE SIGNAL POWER
Receive Current vs. Receive Signal Power MCS7, Channel 7, 3.3V, 25C
Microchip PIC32MZ1025W104132 - Characteristics Graphs - 2

line | Receive Signal Power (dBm) | Current (mA) | | -------------------------- | ------------ | | -72 | 90 | | -70 | 90 | | -68 | 90 | | -66 | 90 | | -64 | 90 | | -62 | 90 | | -60 | 90 | | -58 | 90 | | -56 | 90 | | -54 | 90 | | -52 | 90 | | -50 | 90 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: This current includes processor current.

FIGURE 41-42: RECEIVE CURRENT VS. CPU FREQUENCY
Microchip PIC32MZ1025W104132 - Characteristics Graphs - 3

line | CPU Frequency | Current (mA) | | ------------- | ------------ | | 50 | 90 | | 60 | 92 | | 70 | 94 | | 80 | 96 | | 90 | 98 | | 100 | 100 | | 110 | 102 | | 120 | 104 | | 130 | 106 | | 140 | 108 | | 150 | 110 | | 160 | 112 | | 170 | 114 | | 180 | 116 | | 190 | 118 | | 200 | 120 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: This current includes processor current.

FIGURE 41-43: TRANSMIT CURRENT VS. TEMPERATURE
Microchip PIC32MZ1025W104132 - Characteristics Graphs - 4

line | Temperature (C) | Current (mA) | | --------------- | ------------ | | -40 | 215 | | -15 | 215 | | 10 | 215 | | 35 | 215 | | 60 | 215 | | 85 | 215 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: This current includes processor current.

FIGURE 41-44: TRANSMIT CURRENT VS. OUTPUT POWER
Transmit Current vs. Output Power MCS7, Channel 7, 3.3V, 25C
Microchip PIC32MZ1025W104132 - Characteristics Graphs - 5

line | TX Output Power (dBm) | Current (mA) | | --------------------- | ------------ | | 11 | 175 | | 12 | 178 | | 13 | 180 | | 14 | 182 | | 15 | 185 | | 16 | 188 | | 17 | 190 | | 18 | 195 | | 19 | 200 | | 20 | 205 | | 21 | 210 | | 22 | 215 | | 23 | 220 | | 24 | 225 | | 25 | 230 | | 26 | 235 | | 27 | 240 | | 28 | 245 | | 29 | 250 | | 30 | 255 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: This current includes processor current.

FIGURE 41-45: TRANSMIT CURRENT VS. CPU FREQUENCY
Transmit Current vs. CPU Frequency MCS7, Channel 7, 3.3V, 25C
Microchip PIC32MZ1025W104132 - Characteristics Graphs - 6

line | CPU Frequency (MHz) | Current | | ------------------- | ------- | | 50 | 220 | | 60 | 222 | | 70 | 223 | | 80 | 224 | | 90 | 225 | | 100 | 226 | | 110 | 227 | | 120 | 228 | | 130 | 230 | | 140 | 232 | | 150 | 234 | | 160 | 236 | | 170 | 238 | | 180 | 240 | | 190 | 242 | | 200 | 244 |

Note 1: At all the data rates, the performance remains the same except the values. This graph is only for reference.
2: The current measurement includes the SoC and FEM current.
3: This current includes processor current.

41.2.4.2 Receiver and Transmitter

Performance Characteristics Graphs

FIGURE 41-46: RX SENSITIVITY VS TEMPERATURE
RX Sensitivity vs Temperature MCS7, Channel 7, 3.3V
Microchip PIC32MZ1025W104132 - Receiver and Transmitter - 1

line | Temperature (C) | Rx Sensitivity (dBm) | | --------------- | -------------------- | | -40 | -75 | | -15 | -75 | | 10 | -75 | | 35 | -75 | | 60 | -75 | | 85 | -75 |

Note: At all the data rates, the performance remains the same except the values. This graph is only for reference.

FIGURE 41-47: RX SENSITIVITY VS CHANNELS
RX Sensitivity vs Channel MCS7, 25C, 3.3V
Microchip PIC32MZ1025W104132 - Receiver and Transmitter - 2

line | Channel | RX Sensitivity (dBm) | | ------- | -------------------- | | 1 | -75 | | 2 | -75 | | 3 | -75 | | 4 | -75 | | 5 | -75 | | 6 | -75 | | 7 | -75 | | 8 | -75 | | 9 | -75 | | 10 | -75 | | 11 | -75 | | 12 | -75 | | 13 | -75 |

Note: At all the data rates, the performance remains the same except the values. This graph is only for reference.

FIGURE 41-48: RX SENSITIVITY VS VOLTAGE
RX Sensitivity vs Voltage MCS7, Channel 7, 25C
Microchip PIC32MZ1025W104132 - Receiver and Transmitter - 3

line | Voltage (V) | RX Sensitivity (dBm) | | ----------- | -------------------- | | 3.1 | -75 | | 3.2 | -75 | | 3.3 | -75 | | 3.4 | -75 | | 3.5 | -75 | | 3.6 | -75 |

Note: At all the data rates, the performance remains the same except the values. This graph is only for reference.

FIGURE 41-49: RSSI VS RECEIVE SIGNAL POWER
RSSI MCS7, Channel 7, 25C
Microchip PIC32MZ1025W104132 - Receiver and Transmitter - 4

line | Receive Signal Power (dBm) | RSSI | | -------------------------- | ---- | | -80 | -75 | | -75 | -72 | | -70 | -68 | | -65 | -65 | | -60 | -62 | | -55 | -58 | | -50 | -55 | | -45 | -52 | | -40 | -48 | | -35 | -45 | | -30 | -42 | | -25 | -38 | | -20 | -35 | | -15 | -32 | | -10 | -28 | | -5 | -25 | | 0 | -22 | | 5 | -18 | | 10 | -15 | | 15 | -12 | | 20 | -10 |

Note: At all the data rates, the performance remains the same except the values. This graph is only for reference.

FIGURE 41-50: TX POWER VS TEMPERATURE
Microchip PIC32MZ1025W104132 - Receiver and Transmitter - 5

line | Temperature (C) | Transmit Power (dBm) | | --------------- | -------------------- | | -40 | 20.0 | | -15 | 20.0 | | 10 | 20.0 | | 35 | 20.0 | | 60 | 20.0 | | 85 | 18.0 |

Note: At all the data rates, the performance remains the same except the values. This graph is only for reference.

FIGURE 41-51: TX POWER VS CHANNELS
Microchip PIC32MZ1025W104132 - Receiver and Transmitter - 6

line | Channels | Transmit Power (dBm) | | -------- | -------------------- | | 1 | 20.0 | | 2 | 20.0 | | 3 | 20.0 | | 4 | 20.0 | | 5 | 20.0 | | 6 | 20.0 | | 7 | 20.0 | | 8 | 20.0 | | 9 | 20.0 | | 10 | 20.0 | | 11 | 20.0 | | 12 | 20.0 | | 13 | 20.0 | | 14 | 20.0 | | 15 | 20.0 | | 16 | 20.0 | | 17 | 20.0 | | 18 | 20.0 | | 19 | 20.0 | | 20 | 20.0 | | 21 | 20.0 | | 22 | 20.0 | | 23 | 20.0 | | 24 | 20.0 | | 25 | 20.0 | | 26 | 20.0 | | 27 | 20.0 | | 28 | 20.0 | | 29 | 20.0 | | 30 | 20.0 | | 31 | 20.0 | | 32 | 20.0 | | 33 | 20.0 | | 34 | 20.0 | | 35 | 20.0 | | 36 | 20.0 | | 37 | 20.0 | | 38 | 20.0 | | 39 | 20.0 | | 40 | 20.0 | | 41 | 20.0 | | 42 | 20.0 | | 43 | 20.0 | | 44 | 20.0 | | 45 | 20.0 | | 46 | 20.0 | | 47 | 20.0 | | 48 | 20.0 | | 49 | 20.0 | | 50 | 20.0 | | 51 | 20.0 | | 52 | 20.0 | | 53 | 20.0 | | 54 | 20.0 | | 55 | 20.0 | | 56 | 20.0 | | 57 | 20.0 | | 58 | 20.0 | | 59 | 20.0 | | 60 | 20.0 | | 61 | 20.0 | | 62 | 20.0 | | 63 | 20.0 | | 64 | 20.0 | | 65 | 20.0 | | 66 | 20.0 | | 67 | 20.0 | | 68 | 20.0 | | 69 | 20.0 | | 70 | 20.0 | | 71 | 20.0 | | 72 | 20.0 | | 73 | 20.0 | | 74 | 20.0 | | 75 | 20.0 | | 76 | 20.0 | | 77 | 20.0 | | 78 | 20.0 | | 79 | 20.0 | | 80 | 20.0 | | 81 | 20.0 | | 82 | 20.0 | | 83 | 20.0 | | 84 | 20.0 | | 85 | 20.0 | | 86 | 20.0 | | 87 | 20.0 | | 88 | 20.0 | | 89 | 20.0 | | 90 | 20.0 | | 91 | 20.0 | | 92 | 20.0 | | 93 | 20.0 | | 94 | 20.0 | | 95 | 20.0 | | 96 | 20.0 | | 97 | 20.0 | | 98 | 20.0 | | 99 | 20.0 | |1 | ~19.5 |

Note: At all the data rates, the performance remains the same except the values. This graph is only for reference.

FIGURE 41-52: TX POWER VS VOLTAGES
Transmit Power vs Voltages 1Mbps, Channel 7, 25C
Microchip PIC32MZ1025W104132 - Receiver and Transmitter - 7

line | Voltage (V) | Transmit Power (dBm) | | ----------- | -------------------- | | 3.1 | 19.0 | | 3.2 | 19.5 | | 3.3 | 19.8 | | 3.4 | 19.9 | | 3.5 | 20.0 | | 3.6 | 20.1 |

Note: At all the data rates, the performance remains the same except the values. This graph is only for reference.

42.0 PACKAGING INFORMATION

This chapter provides the information on package markings, dimension and footprint of the PIC32MZ1025W104 SoC and the WFI32 Module.

42.1 PIC32MZ1025W104 SoC Packaging Information

42.1.1 PIC32MZ1025W104 SOC PACKAGE MARKING

FIGURE 42-1: PIC32MZ1025W104 SOC PACKAGE MARKINGS

Example

PIC32 MZ1025W104 132 e3 YYWWNNN

Legend: XX...X

YYear code (last digit of calendar year)
YYYear code (last 2 digits of calendar year)
WWWeek code (week of January 1 is week '01')
NNNAlphanumeric traceability
Pb-free JEDEC designator for Matte Tin (Sn)
* This package is Pb-free. The Pb-free JEDEC designator (3 can be found on the outer packaging for this package.

code

Note: In the event the full Microchip part number cannot be marked on one line, it will be carried over to the next line, thus limiting the number of available characters for customer-specific information.

42.1.2 PIC32MZ1025W104 SOC PACKAGING DIMENSION

This section provides the package dimension details of PIC32MZ1025W104.

FIGURE 42-2: PIC32MZ1025W104 SOC PACKAGE DRAWINGS

132-Lead Very Thin Plastic Quad Flat, No Lead Package (NVX) - 10x10x0.9 mm Body [VQFN]; With 5.5x5.5 mm Exposed Pad; Dual Row Terminals; Punch Singulated

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

Microchip PIC32MZ1025W104132 - 132-Lead Very Thin Plastic Quad Flat, No Lead Package (NVX) - 10x10x0.9 mm Body [VQFN]; With 5.5x5.5 mm Exposed Pad; Dual Row Terminals; Punch Singulated - 1
Microchip Technology Drawing C04-472 Rev. A Sheet 1 of 2

FIGURE 42-3: PIC32MZ1025W104 SOC PACKAGE DRAWINGS - CONTD.,

132-Lead Very Thin Plastic Quad Flat, No Lead Package (NVX) - 10x10x0.9 mm Body [VQFN]; With 5.5x5.5 mm Exposed Pad; Dual Row Terminals; Punch Singulated

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

SEATING PLANE DETAIL C (ROTATED 90° CW) A1 A2 (A3)

A2 (A3)

eR 132X b DETAIL B 0.10 M A B 0.05 M

UnitsMILLIMETERS
Dimension LimitsMINNOMMAX
Number of TerminalsN132
Terminals in Outer Row ANA72
Terminals in Inner Row BNB60
Pitche0.50 BSC
Pitch Between RowseR0.65 BSC
Overall HeightA0.800.850.90
StandoffA10.000.010.05
Mold Cap Height A2 0.55 0.600.65
Base ThicknessA30.25 REF
Overall LengthD10.00 BSC
Mold Cap LengthD1 9.73 BSC
Exposed Pad LengthD25.405.505.60
Overall WidthE10.00 BSC
Mold Cap Width E1 9.73 BSC
Exposed Pad WidthE25.405.505.60
Terminal Length, Outer RowLa0.300.400.50
Terminal Length, Inner RowLb0.300.400.50
Terminal Widthb0.17 0.22 0.27
K 020 MIN REFTerminal-to-Exposed-Pad
Corner ChamferP0.24 0.42 0.60

Notes:

  1. Pin 1 visual index feature may vary, but must be located within the hatched area.
  2. Package is punch singulated
  3. Dimensioning and tolerancing per ASME Y14.5M BSC: Basic Dimension. Theoretically exact value shown without tolerances. REF: Reference Dimension, usually without tolerance, for information purposes only.

Microchip Technology Drawing C04-472 Rev. A Sheet 2 of 2

The following figure illustrates the recommended footprint for the PIC32MZ1025W104.

132-Lead Very Thin Plastic Quad Flat, No Lead Package (NVX) - 10x10x0.9 mm Body [VQFN]; With 5.5x5.5 mm Exposed Pad; Dual Row Terminals; Punch Singulated

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

C1 C3 E2 EV A72 B60 A1 B1 C2 C4 Y3 ØV G3 SILK SCREEN X1 E1 X3 Y2 G2 EV X2 (G1) Y1 G4

RECOMMENDED LAND PATTERN

UnitsMILLIMETERSUnitsMILLIMETERS
Dimension LimitsMINNOMMAXDimension LimitsMINMAXOM
Outer Contact PitchE10.50 BSCC4Inner Contact Pad Spacing
Inner Contact Pitch 0.50 BSCE2Outer Contact Pad Length (X72) Y10.78
Outer Contact Pad Width (X72)X1 0.30Inner Contact Pad Length (X60)Y2 0.59
Inner Contact Pad Width (X60)X2 0.30Contact Pad to Center Pad (X60) G11.20 REF
Optional Center Pad WidthX35.60Inner Pad Row to Outer Pad RowG20.20
Optional Center Pad LengthY35.60Contact Pad to Contact Pad (X68)G30.20
C1Outer Contact Pad SpacingContact Pad to Contact Pad (X56)G40.20
Outer Contact Pad SpacingC29.93Thermal Via DiameterV0.30
C3Inner Contact Pad SpacingThermal Via PitchEV1.00

Notes:
1. Dimensioning and tolerancing per ASME Y14.5M
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
2. For best soldering results, thermal vias, if used, should be filled or tented to avoid solder loss during reflow process

Microchip Technology Drawing C04-2472 Rev. A

42.2 WFI32 Module Packaging Information

42.2.1 MODULE PACKAGE MARKING

42.2.1.1 WFI32E01 Module Package Marking

FIGURE 42-5: WFI32E01 MODULE PACKAGE MARKINGS
XXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXX YYWWNNN XX XX

WFI32E01PC FCC ID: 2ADHKWFI32E01 IC: 20266-WFI32E01 CMIIT ID: 2022DJ7691 YYWWNNN UK CA CE

WFI32E01PE FCC ID: 2ADHKWFI32E01 IC: 20266-WFI32E01 CMIIT ID: 2022DJ7744 YYWWNNN UK CA CE

WFI32E01UC FCC ID: 2ADHKWFI32E01 IC: 20266-WFI32E01 CMIIT ID: 2022DJ8550(M) YYWWNNN UK CA CE

WFI32E01UE FCC ID: 2ADHKWFI32E01 IC: 20266-WFI32E01 CMIIT ID: 2022DJ8558(M) YYWWNNN UK CA CE

Legend:

XX....X Module part number and version and regulatory designator

YY: Year code (last 2 digits of calendar year)

WW Week code (week of January 1 is week "01")

NNN Alphanumeric traceability code

42.2.1.2 WFI32E02 Module Package Marking

FIGURE 42-6: WFI32E02 MODULE PACKAGE MARKINGS
XXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXX YYWWNNN XX XX

WFI32E02UC FCC ID: 2ADHKWFI32E02 IC: 20266-WFI32E02 CMIIT: 2023DJ15297 (M) YYWWNNN UK CA CE

WFI32E02UE FCC ID: 2ADHKWFI32E02 IC: 20266-WFI32E02 CMIIT: 2023DJ15301 (M) YYWWNNN UK CA CE

Legend:

XX....X Module part number and version and regulatory designator

YY: Year code (last 2 digits of calendar year)

WW Week code (week of January 1 is week "01")

NNN Alphanumeric traceability code

42.2.2 MODULE PACKAGING DIMENSION

Note: Module dimensions mentioned in the following figure are applicable to the PCB antenna and U.FL connector variants.

42.2.2.1 WFI32E01 Module Packaging Dimension

FIGURE 42-7: 54-PIN RF MODULE WITH SHIELD (6YX) - 20.5X24.5 MM [MODULE]

54-Lead RF Module With Shield (6YX) - 20.5x24.5 mm [MODULE]

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

Microchip PIC32MZ1025W104132 - MODULE PACKAGING DIMENSION - 1
Microchip Technology Drawing C04-10050 Rev D Sheet 1 of 2
© 2023 Microchip Technology Inc.

FIGURE 42-8: 54-PIN RF MODULE WITH SHIELD (6YX) - 20.5X24.5 MM [MODULE]

54-Lead RF Module With Shield (6YX) - 20.5x24.5 mm [MODULE]

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

Microchip PIC32MZ1025W104132 - 54-Lead RF Module With Shield (6YX) - 20.5x24.5 mm [MODULE] - 1

natural_image Technical line drawing of two electronic components with visible internal structures and mounting points (no text or symbols)
UnitsMILLIMETERS
Dimension LimitsMINNOMMAX
Number of TerminalsN54
Overall HeightA2.402.502.60
PCB ThicknessA20.700.800.90
Shield HeightA31.70 REF
UFL Connector Height A4 1.25 REF
Overall Length D 20.50 BSC
Overall WidthE24.50 BSC
Shield Length D1 18.8018.70 1890
Shield Width E1 17.0016.90 1710
Terminal Widthb0.500.600.70
Terminal LengthL0.700.800.90

Microchip Technology Drawing C04-10050 Rev D Sheet 2 of 2

© 2023 Microchip Technology Inc.

42.2.2.2 WFI32E02 Module Packaging Dimension

FIGURE 42-9: 87-PIN MODULE (TFC) WITH METAL SHIELD AND COAXIAL CONNECTOR - 22.5X24.50 MM [MODULE]

87L-PCB Module (TFC) - 22.50x24.50mm - [MODULE] With Metal Shield and Coaxial Connector

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

Microchip PIC32MZ1025W104132 - 54-Lead RF Module With Shield (6YX) - 20.5x24.5 mm [MODULE] - 2
Microchip Technology Drawing C04-21568 Rev C Sheet 1 of 2

FIGURE 42-10: 87-PIN MODULE (TFC) WITH METAL SHIELD AND COAXIAL CONNECTOR - 22.5X24.5 MM [MODULE]

87L-PCB Module (TFC) - 22.50x24.50mm - [MODULE] With Metal Shield and Coaxial Connector

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

Microchip PIC32MZ1025W104132 - 87L-PCB Module (TFC) - 22.50x24.50mm - [MODULE] With Metal Shield and Coaxial Connector - 1

natural_image Technical line drawing of a microchip or electronic component with two views: top shows top plate with grid pattern and central slot, bottom shows base with screw and mounting base (no text or symbols)
UnitsMILLIMETERS
Dimension LimitsMINNOMMAX
Number of TerminalsN87
Terminal Pitche1.27 BSC
Overall HeightA2.402.502.60
PCB ThicknessA20.700.800.90
Shield HeightA31.70 REF
UFL Connector Height A4 1.25 REF
Overall Length D 22.50 BSC
Overall WidthE24.50 BSC
Shield LengthD120.73 20.93 20.83
Shield Width E1 18.0317.93 18.13
Terminal Widthb0.500.600.70
Terminal LengthL0.700.800.90

Notes:

  1. All Dimensions are in Millimeters

BSC: Basic Dimension. Theoretically exact value shown without tolerances.

REF: Reference Dimension, usually without tolerance, for information purposes only.

Sheet 2 of 2Micro

42.2.3 MODULE RECOMMENDED FOOTPRINT

42.2.3.1 WFI32E01 Module Recommended Footprint

FIGURE 42-11: WFI32E01 RECOMMENDED MODULE FOOTPRINT ON THE HOST BOARD

54-Lead RF Module With Shield (6YX) - 20.5x24.5 mm [MODULE]

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

Microchip PIC32MZ1025W104132 - 87L-PCB Module (TFC) - 22.50x24.50mm - [MODULE] With Metal Shield and Coaxial Connector - 2

other | Measurement | Value | |---|---| | 4.26 | 17.34 | | 4.54 | 17.34 | | 11.25 | 14.07 | | 16.51 | 14.07 | | 27 | 14.07 | | 62 | 14.07 | | 15.58 | 14.07 | | 1.27 | 14.07 | | 7.23 | 14.07 | | 6.26 | 14.07 | | 5.46 | 14.07 | | 2.17 | 14.07 | | 0.00 | 14.07 | | 1 | 14.07 | | 2 | 14.07 | | 4 | 14.07 | | 5 | 14.07 | | 6 | 14.07 | | 8 | 14.07 | | 9 | 14.07 | | 10 | 14.07 | | 11 | 14.07 | | 12 | 14.07 | | 13 | 14.07 | | 14 | 14.07 | | 15 | 14.07 | | 16 | 14.07 | | 17 | 14.07 | | 18 | 14.07 | | 19 | 14.07 | | 20 | 14.07 | | 21 | 14.07 | | 22 | 14.07 | | 23 | 14.07 | | 24 | 14.07 | | 25 | 14.07 | | 26 | 14.07 | | 27 | 14.07 | | 28 | 14.07 | | 29 | 14.07 | | 30 | 14.07 | | 31 | 14.07 | | 32 | 14.07 | | 33 | 14.07 | | 34 | 14.07 | | 35 | 14.07 | | 36 | 14.07 | | 37 | 14.07 | | 38 | 14.07 | | 39 | 14.07 | | 40 | 14.07 | | 41 | 14.07 | | 42 | 14.07 | | 43 | 14.07 | | 44 | 14.07 | | 45 | 14.07 | | 46 | 14.07 | | 47 | 14.07 | | 48 | 14.07 | | 49 | 14.07 | | 50 | 14.07 | | 51 | 14.07 | | 52 | 14.07 | | 53 | 14.07 | | 54 | 14.07 | | 55 | 14.07 | | 56 | 14.07 | | 57 | 14.07 | | 58 | 14.07 | | 59 | 14.07 | | 60 | 14.07 | | Note: The values in the table represent numerical data points, not percentages or units specified in the chart.

RECOMMENDED LAND PATTERN
NOTE: Place pins 53, 54, 61, and 63 with 45^ angle

1.20 2.42 RF TEST POINT CUTOUT COPPER KEEPOUT COPPER KEEPOUT R0.90 1.42 1.50 1.00 2.00 EXPOSED GROUND PADS (SOLDER MASK DIMENSION) 5.50 4.64 1.00 0.70 TERMINAL PAD

Notes:
All dimensions are in millimeters.1.
Microchip Technology Drawing C04-12050 Rev D
© 2023 Microchip Technology Inc.
Note: For routing guidelines, refer to Section 3.4 "WFI32 Module Routing Guidelines".

87L-PCB Module (TFC) - 22.50x24.50mm - [MODULE] With Metal Shield and Coaxial Connector

Note: For the most current package drawings, please see the Microchip Packaging Specification located at http://www.microchip.com/packaging

Microchip PIC32MZ1025W104132 - 87L-PCB Module (TFC) - 22.50x24.50mm - [MODULE] With Metal Shield and Coaxial Connector - 1

other | Label | Value | |-------|-------| | A40 | 19.356 | | B25 | 15.098 | | B24 | 13.903 | | A41 | 9.586 | | B25 | 7.366 | | B24 | 6.299 | | B24 | 6.325 | | B35 | 4.435 | | B35 | 3.800 | | B35 | 3.296 | | B35 | 2.204 | | B35 | 0.823 | | A1 | 0.950 | | A1 | 2.204 | | A1 | 2.995 | | A1 | 3.630 | | A1 | 9.906 | | A1 | 11.278 | | A1 | 12.104 | | A1 | 14.655 | | A1 | 14.714 | | A1 | 16.123 | | A1 | 16.123 | | A1 | 88 | | A1 | 89 | | A1 | 90 | | A1 | 91 | | A1 | 96 | | A1 | 97 | | A1 | 98 | | A1 | 99 | | A1 | 100 | | A1 | 101 | | A1 | 92 | | A26 | 22.50 | | B24 | 4.00 | | B24 | 1.27 | | B24 | 1.27 | | B24 | 1.27 | | B24 | 1.27 | | B24 | 1.27 | | B24 | 1.27 | | B24 | 1.27 | | B24 | 1.27 | | B24 | - | | B24 | - | | B24 | - | | B24 | - | | B24 | - | | B24 | - | | B24 | - | | B24 | - | | B24 | - | | B24 | - | | B24 | - | | B24 | - |

RECOMMENDED LAND PATTERN

Microchip PIC32MZ1025W104132 - 87L-PCB Module (TFC) - 22.50x24.50mm - [MODULE] With Metal Shield and Coaxial Connector - 2

1.50 4.21 4.21 1.20 1.20 EXPOSED GROUND PADS

Microchip PIC32MZ1025W104132 - 87L-PCB Module (TFC) - 22.50x24.50mm - [MODULE] With Metal Shield and Coaxial Connector - 4
Notes:
All dimensions are in millimeters.1.

Microchip Technology Drawing C04-23568 Rev C

Note: For routing guidelines, refer to Section 3.4 "WFI32 Module Routing Guidelines".

APPENDIX A: REGULATORY APPROVALS

This chapter provides the information on the regulatory approval of the WFI32 Module.

The WFI32E01PC module has received regulatory approval from the following countries:

• United States/FCC ID: 2ADHKWFI32E01

- Canada/ISED

- IC: 20266-WFI32E01

- HVIN: WFI32E01PC

- PMN: WFI32E01 Module

- Europe/CE

• UKCA

- Japan

- Korea

• Taiwan

• China (SRRC)/CMIIT ID: 2022DJ7691

The WFI32E01PE module has received regulatory approval from the following countries:

• United States/FCC ID: 2ADHKWFI32E01

- Canada/ISED

- IC: 20266-WFI32E01

- HVIN: WFI32E01PE

- PMN: WFI32E01 Module

- Europe/CE

• UKCA

- Japan

- Korea

• Taiwan

• China (SRRC)/CMIIT ID: 2022DJ7744

The WFI32E01UC module has received regulatory approval from the following countries:

• United States/FCC ID: 2ADHKWFI32E01

- Canada/ISED

- IC: 20266-WFI32E01

- HVIN: WFI32E01UC

- PMN: WFI32E01 Module

- Europe/CE

• UKCA

- Japan

- Korea

• Taiwan

• China (SRRC)/CMIIT ID: 2022DJ8550(M)

The WFI32E01UE module has received regulatory approval from the following countries:

• United States/FCC ID: 2ADHKWFI32E01

- Canada/ISED

- IC: 20266-WFI32E01

- HVIN: WFI32E01UE

- PMN: WFI32E01 Module

- Europe/CE

• UKCA

- Japan

- Korea

• Taiwan

• China (SRRC)/CMIIT ID: 2022DJ8558(M)

The WFI32E02UC module has received regulatory approval from the following countries:

• United States/FCC ID: 2ADHKWFI32E02

- Canada/ISED

- IC: 20266-WFI32E02

- HVIN: WFI32E02UC

- PMN: WFI32E02 Module

- Europe/CE

• UKCA

- Japan

- Korea

• Taiwan

• China (SRRC)/CMIIT ID: 2023DJ15297 (M)

The WFI32E02UE module has received regulatory approval from the following countries:

• United States/FCC ID: 2ADHKWFI32E02

- Canada/ISED

- IC: 20266-WFI32E02

- HVIN: WFI32E02UE

- PMN: WFI32E02 Module

- Europe/CE

• UKCA

- Japan

- Korea

• Taiwan

• China (SRRC)/CMIIT ID: 2023DJ15301 (M)

A.1 United States

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Modules have received Federal Communications Commission (FCC) CFR47 Telecommunications, Part 15 Subpart C "Intentional Radiators" single-modular approval in accordance with Part 15.212 Modular Transmitter approval. Single-modular transmitter approval is defined as a complete RF transmission sub-assembly, designed to be incorporated into another device, that must demonstrate compliance with FCC rules and policies independent of any host. A transmitter with a mod-

ular grant can be installed in different end-use products (referred to as a host, host product, or host device) by the grantee or other equipment manufacturer, then the host product may not require additional testing or equipment authorization for the transmitter function provided by that specific module or limited module device.

The user must comply with all of the instructions provided by the Grantee, which indicate installation and/or operating conditions necessary for compliance.

The host product itself is required to comply with all other applicable FCC equipment authorizations regulations, requirements and equipment functions that are not associated with the transmitter module portion. For example, compliance must be demonstrated: to regulations for other transmitter components within a host product; to requirements for unintentional radiators (Part 15 Subpart B), such as digital devices, computer peripherals, radio receivers, etc.; and to additional authorization requirements for the non-transmitter functions on the transmitter module (i.e., Suppliers Declaration of Conformity (SDoC) or certification) as appropriate (for example, Bluetooth and Wi-Fi transmitter modules may also contain digital logic functions).

A.1.1 LABELING AND USER INFORMATION REQUIREMENTS

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules have been labeled with its own FCC ID number, and if the FCC ID is not visible when the module is installed inside another device, then the outside of the finished product into which the module is installed must also display a label referring to the enclosed module. This exterior label can use wording as follows:

For the WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE:

Contains Transmitter FCC ID: 2ADHKWFI32E01

or

Contains FCC ID: 2ADHKWFI32E01

This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation

For the WFI32E02UC/ WFI32E02UE:

Contains Transmitter FCC ID: 2ADHKWFI32E02

or

Contains FCC ID: 2ADHKWFI32E02

This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation

A user's manual for the finished product must include the following statement:

This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy, and if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures:

  • Reorient or relocate the receiving antenna
  • Increase the separation between the equipment and receiver
  • Connect the equipment into an outlet on a circuit e different from that to which the receiver is connected

- Consult the dealer or an experienced radio/TV technician for help

Additional information on labeling and user information requirements for Part 15 devices can be found in KDB Publication 784748, which is available at the FCC Office of Engineering and Technology (OET) Laboratory Division Knowledge Database (KDB) https://apps.fcc.gov/oetcf/kdb/index.cfm

A.1.2 RF EXPOSURE

All transmitters regulated by FCC must comply with RF exposure requirements. KDB 447498 General RF Exposure Guidance provides guidance in determining whether proposed or existing transmitting facilities, operations or devices comply with limits for human exposure to Radio Frequency (RF) fields adopted by the Federal Communications Commission (FCC).

From the FCC Grant: Power output listed is conducted. Single Modular Approval. This module is granted for use in mobile only configuration as described in this filing.

Approval is limited to OEM installation only.

The antenna(s) used for this transmitter must be installed to provide a separation distance of at least 8 cm from all persons and must not be co-located or operating in conjunction with any other antenna or transmitter, except in accordance with FCC multi-transmitter product procedures. OEM integrators and end-users must be provided with specific operating instructions for satisfying RF exposure compliance requirements.

A.1.3 APPROVED ANTENNAS

To maintain modular approval in the United States, only the antenna types that have been tested shall be used. It is permissible to use different antenna, provided the same antenna type, antenna gain (equal to or less than), with similar in-band and out-of-band characteristics (refer to specification sheet for cutoff frequencies).

For WFI32E01PC/WFI32E01PE, the approval is received using the integral PCB antenna.

For

WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE, approved antennas are listed in the Table 3-4.

A.1.4 MODULE INTEGRATION IN THE HOST PRODUCT

Host products are to ensure continued compliance as per KDB 996369 Module Integration Guide.

A.1.5 HELPFUL WEBSITES

Federal Communications Commission (FCC): https://www.fcc.gov/

FCC Office of Engineering and Technology (OET) Laboratory Division Knowledge Database (KDB): https://apps.fcc.gov/oetcf/kdb/index.cfm

A.2 Canada

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules have been certified for use in Canada under Innovation, Science and Economic Development Canada (ISED, formerly Industry Canada) Radio Standards Procedure (RSP) RSP-100, Radio Standards Specification (RSS) RSS-Gen and RSS-247. Modular approval permits the installation of a module in a host device without the need to re-certify the device.

A.2.1 LABELING AND USER

INFORMATION REQUIREMENTS

Labeling Requirements (from RSP-100, Issue 12, Section 5): The host product shall be properly labeled to identify the module within the host device.

The Innovation, Science and Economic Development Canada certification label of a module shall be clearly visible at all times when installed in the host product, otherwise the host device must be labeled to display the Innovation, Science and Economic Development Canada certification number of the module, preceded by the word “Contains”, or similar word expressing the same meaning, as follows:

For the WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE:

Contains IC: 20266-WFI32E01

For the WFI32E02UC/ WFI32E02UE:

Contains IC: 20266-WFI32E02

User Manual Notice for License-Exempt Radio Apparatus (from Section 8.4 RSS-Gen, Issue 5, March 2019): User manuals for license-exempt radio apparatus shall contain the following or equivalent notice in a conspicuous location in the user manual or alternatively on the device or both:

This device contains license-exempt transmitter(s)/receiver(s) that comply with Innovation, Science and Economic Development Canada's license-exempt RSS(s). Operation is subject to the following two conditions:

Transmitter Antenna (From Section 6.8 RSS-GEN, Issue 5, March 2019): User manuals, for transmitters shall display the following notice in a conspicuous location:

This radio transmitter [IC: 20266-WFI32E01 and 20266-WFI32E02] has been approved by Innovation, Science and Economic Development Canada to operate with the antenna types listed below, with the maximum permissible gain indicated. Antenna types not included in this list that have a gain greater than the maximum gain indicated for any type listed are strictly prohibited for use with this device.

Immediately following the above notice, the manufacturer shall provide a list of all antenna types approved for use with the transmitter, indicating the maximum permissible antenna gain (in dBi) and required impedance for each.

A.2.2 RF EXPOSURE

All transmitters regulated by the Innovation, Science and Economic Development Canada (ISED) must comply with RF exposure requirements listed in RSS-102 - Radio Frequency (RF) Exposure Compliance of Radio communication Apparatus (All Frequency Bands).

This transmitter is restricted for use with a specific antenna tested in this application for certification, and must not be co-located or operating in conjunction with any other antenna or transmitters, except in accordance with Innovation, Science and Economic Development Canada multi-transmitter guidelines.

The module antenna must be installed to meet the RF exposure compliance separation distance of "20 cm" and any additional testing and authorization process as required. The host integrator installing this module into their product must ensure that the final composite product complies with the ISED requirements by a technical assessment.

A.2.3 APPROVED ANTENNAS

For WFI32E01PC/WFI32E01PE, the approval is received using the integral PCB antenna.

For

WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE, approved antennas are listed in the Table 3-4.

A.2.4 HELPFUL WEBSITES

Innovation, Science and Economic Development Canada (ISED): http://www.ic.gc.ca/

A.3 Europe

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules are Radio Equipment Directive (RED) assessed, CE marked, and have been manufactured and tested with the intention of being integrated into a final product.

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules have been tested to RED 2014/53/EU Essential Requirements mentioned in the following European Compliance table.

TABLE A-1: EUROPEAN COMPLIANCE

Certification Standards Article
SafetyEN62368
Health EN 62311
Electro Magnetic Compatibility (EMC)EN 301 489-1 3.1b
EN 301 489-17
RadioEN 300 3283.2

The ETSI provides guidance on modular devices in "Guide to the application of harmonised standards covering Article 3.1b and Article 3.2 of the Directive 2014/53/EU RED to multi-radio and combined radio and non-radio equipment" document available at http://www.etsi.org/deliver/etsi_eg/203300_203399/203367/01.01.01_60/eg_203367v010101p.pdf.

Note: To maintain conformance to the standards listed in the preceding European Compliance table, the module shall be installed in accordance with the installation instructions in this data sheet and shall not be modified. When integrating a radio module into a completed product, the integrator becomes the manufacturer of the final product and is therefore responsible for demonstrating compliance of the final product with the essential requirements against the RED.

A.3.1 LABELING AND USER INFORMATION REQUIREMENTS

The label on the final product, which contains the WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules must follow CE marking requirements.

A.3.2 CONFORMITY ASSESSMENT

From ETSI Guidance Note EG 203367, section 6.1 Non-radio products are combined with a radio product:

If the manufacturer of the combined equipment installs the radio product in a host non-radio product in equivalent assessment conditions (i.e., host equivalent to the one used for the assessment of the radio product) and according to the installation instructions for the radio product, then no additional assessment of the combined equipment against article 3.2 of the RED is required.

A.3.3 APPROVED ANTENNAS

For WFI32E01PC/WFI32E01PE, the approval is received using the integral PCB antenna.

For

WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE, the approval is received using the antennas listed in Table 3-4.

A.3.3.1 SIMPLIFIED EU DECLARATION OF CONFORMITY

Hereby, Microchip Technology Inc. declares that the radio equipment type WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE is in compliance with Directive 2014/53/EU.

The full text of the EU declaration of conformity for this product is available at http://www.micro-chip.com/PIC32MZW1 (available under Documents >Certifications).

A.3.4 HELPFUL WEBSITES

A document that can be used as a starting point in understanding the use of Short Range Devices (SRD) in Europe is the European Radio Communications Committee (ERC) Recommendation 70-03 E, which can be downloaded from the European Communications Committee (ECC) at: http://www.ecodocdb.dk/.

Additional helpful websites are:

• Radio Equipment Directive (2014/53/EU): https://ec.europa.eu/growth/single-market/european-standards/harmonised-standards/red_en
• European Conference of Postal and Telecommunications Administrations (CEPT): http://www.cept.org
• European Telecommunications Standards Institute (ETSI): http://www.etsi.org
• The Radio Equipment Directive Compliance Association (REDCA): http://www.redca.eu/

A.4 UKCA

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules are UKCA assessed radio module that meets all the essential requirements according to CE RED requirements.

A.4.1 LABELING AND USER INFORMATION REQUIREMENTS

The label on the final product, which contains the WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules must follow UKCA marking requirements.

UK CA

This UKCA mark is printed on the module or on the packaging label. For more details on the label requirements, refer to the https://www.gov.uk/guidance/using-the-ukca-marking#check-whether-you-need-to-use-the-new-ukca-marking.

A.4.2 UKCA DECLARATION OF CONFORMITY

Hereby, Microchip Technology Inc. declares that the radio equipment type WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE is in compliance with the Radio Equipment Regulations 2017.

The full text of the EU declaration of conformity for this product is available at http://www.micro-chip.com/PIC32MZW1 (available under Documents >Certifications).

A.4.3 APPROVED ANTENNAS

For WFI32E01PC/WFI32E01PE, the approval is received using the integral PCB antenna.

For

WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE, the approval is received using the antennas listed in Table34.

A.4.4 HELPFUL WEBSITES

For additional information, refer to the following website:

- https://www.gov.uk/guidance/placing-manufactured-goods-on-the-market-in-great-britain.

A.5 Japan

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules have received type certification and is required to be labeled with its own technical conformity mark and certification number as required to conform to the technical standards regulated by the Ministry of Internal Affairs and Communications (MIC) of Japan pursuant to the Radio Act of Japan.

Integration of this module into a final product does not require additional radio certification provided installation instructions are followed and no modifications of the module are allowed. Additional testing may be required:

  • If the host product is subject to electrical appliance safety (for example, powered from an AC mains), the host product may require Product Safety Electrical Appliance and Material (PSE) testing. The integrator must contact their conformance laboratory to determine if this testing is required
  • There is an voluntary Electromagnetic Compatibility (EMC) test for the host product administered by VCCI: http://www.vcci.jp/vcci_e/index.html.

A.5.1 LABELING AND USER

INFORMATION REQUIREMENTS

The label on the final product, which contains the WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE modules must follow Japan marking requirements. The integrator of the module must refer to the labeling requirements for Japan available at the Ministry of Internal Affairs and Communications (MIC) website.

For the WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE modules module/s, due to a limited module size, the technical conformity logo and ID is displayed in the data sheet and/or packaging and cannot be displayed on the module label. The final product in which this module is being used must have a label referring to the type certified module inside:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 1

005-102870

For the WFI32E02UC/

WFI32E02UE modules module/s, due to a limited module size, the technical conformity logo and ID is displayed in the data sheet and/or packaging and cannot be displayed on the module label. The final product in which this module is being used must have a label referring to the type certified module inside:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 2

020-230255

A.5.2 HELPFUL WEBSITES

  • Ministry of Internal Affairs and Communications (MIC): http://www.tele.soumu.go.jp/e/index.htm.
  • Association of Radio Industries and Businesses (ARIB): http://www.arib.or.jp/english/.

A.6 Korea

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Modules have received certification of conformity in accordance with the Radio Waves Act. Integration of this module into a final product does not require additional radio certification provided installation instructions are followed and no modifications of the module are allowed.

A.6.1 LABELING AND USER

INFORMATION REQUIREMENTS

The label on the final product which contains the WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Modules must follow KC marking requirements. The integrator of the module must refer to the labeling requirements for Korea available on the Korea Communications Commission (KCC) website.

On the WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE module, due to the limited module size, the KC mark and identifier is displayed in the data sheet only and cannot be displayed on the module label. The final product requires the KC mark and certificate number of the module:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 1

R-R-mcp-WFI32E01

On the WFI32E02UC/

WFI32E02UE module, due to the limited module size, the KC mark and identifier is displayed in the data sheet

only and cannot be displayed on the module label. The final product requires the KC mark and certificate number of the module:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 2

R-R-mcp-WFI32E02

A.6.2 HELPFUL WEBSITES

  • Korea Communications Commission (KCC): http://www.kcc.go.kr.
    • National Radio Research Agency (RRA): http://rra.go.kr.

A.7 Taiwan

The WFI32E01PC/WFI32E01PE/WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02UE Modules have received compliance approval in accordance with the Telecommunications Act. Customers seeking to use the compliance approval in their product must contact Microchip Technology sales or distribution partners to obtain a Letter of Authority.

Integration of this module into a final product does not require additional radio certification provided installation instructions are followed and no modifications of the module are allowed.

A.7.1 LABELING AND USER

INFORMATION REQUIREMENTS

For the WFI32E01UC/WFI32E01UE/WFI32E01PC/WFI32E01PE/WFI32E02UC/WFI32E02UE Modules, due to the limited module size, the NCC mark and ID are displayed in the data sheet and/or packaging and cannot be displayed on the module label.

WFI32E01UC Module:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 1

CCAN21Y11030T2

WFI32E01UE Module:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 2

CCAN21Y11031T1

WFI32E01PC Module:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 3

CCAN21Y11032T3

WFI32E01PE Module:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 4

CCAN21Y11033T5

WFI32E02UC Module:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 5

CCAN23Y10660T4

WFI32E02UE Module:

Microchip PIC32MZ1025W104132 - INFORMATION REQUIREMENTS - 6

CCAN23Y10661T6

The user's manual must contain following warning (for RF device) in traditional Chinese:

National Communications Commission (NCC): http://www.ncc.gov.tw

A.8 China

The WFI32E01PC/WFI32E01PE Modules have received certification of conformity in accordance with the China MIIT Notice 2014-01 of State Radio Regulation Committee (SRRC) certification scheme. Integration of this module into a final product does not require additional radio certification, provided installation instructions are followed and no modifications of the module are allowed. Refer to SRRC certificate available in WFI32E01PC/WFI32E01PE product page for expiry date.

The

WFI32E01UC/WFI32E01UE/WFI32E02UC/WFI32E02 UE Modules have received certification of conformity in accordance with the China MIIT Notice 2014-01 of State Radio Regulation Committee (SRRC) certification scheme under Limited Modular Approval (LMA). Integration of this module into a final product does require additional radio certification (radiated spurious emission test and EMC test), provided installation instructions are followed and no modifications of the module are allowed. Refer to SRRC certificate available in WFI32E01UC/WFI32E01UE product page for expiry date. Refer to the WFI32E01 Module with Wi-Fi® for China SRRC KBA (https://microchipsupport.force.com/s/article/WFI32E01-Module-with-Wi-Fi--for-China-SRRC) for more information regarding the use for LMA module.

A.8.1 LABELING AND USER

INFORMATION REQUIREMENTS

The WFI32E01PC Module is labeled with its own CMIIT ID as follows:

CMIIT ID: 2022DJ7691

The WFI32E01PE Module is labeled with its own CMIIT ID as follows:

CMIIT ID: 2022DJ7744

The WFI32E01UC Module is labeled with its own CMIIT ID as follows:

CMIIT ID: 2022DJ8550(M)

The WFI32E01UE Module is labeled with its own CMIIT ID as follows:

CMIIT ID: 2022DJ8558(M)

The WFI32E02UC Module is labeled with its own CMIIT ID as follows:

CMIIT ID: 2023DJ15297(M)

The WFI32E02UE Module is labeled with its own CMIIT ID as follows:

CMIIT ID: 2023DJ15301(M)

When Host system is using an approved Full Modular Approval (FMA) radio: The host must bear a label containing the statement "This device contains SRRC approved Radio module CMIIT ID: 2022DJ7691". (The CMIIT ID as per the Module selection).

A.8.2 HELPFUL WEBSITES

State Radio Regulation of China

A.9 Other Regulatory Information

- For information on the approvals received from the other countries' jurisdictions, which are not covered here, are available in the http://www.microchip.com/PIC32MZW1 (available under Documents > Certifications).

If the customer needs another regulatory jurisdiction certification or to re-certify the module for other reasons, contact Microchip for the required utilities and documentation.

NOTES:

APPENDIX B: ALTERNATE MODULE PLACEMENT GUIDELINES

  • For any Wi-Fi product, the antenna placement affects the performance of the whole system. The antenna requires free space to radiate RF signals and it must not be surrounded by the ground plane. Thus, for best PCB antenna performance, the WFI32E01PC/WFI32E01PE module must be placed at the edge of the host board.
  • The WFI32E01PC/WFI32E01PE module ground outline edge must be aligned with the edge of the host board ground plane (see the following figure).
    • A low-impedance ground plane for the WFI32E01

module will ensure the best radio performance (best range and lowest noise). The ground plane can be extended beyond the minimum recommendation as required for the host board EMC and noise reduction.

  • For best performance, keep metal structures and components (such as mechanical spacers, bump-on and so on) at least 31.75 mm away from the PCB trace antenna as illustrated in Figure 3-7.
  • The antenna on the WFI32E01 module must not be placed in direct contact with or close proximity to plastic casing or objects. Keep a minimum clearance of 10 mm in all directions around the PCB antenna (see the following figure).
  • Microchip uses the following module placement for EV12F11A.

FIGURE B-1: WFI32E01PC/WFI32E01PE MODULE PLACEMENT RECOMMENDATION (TOP VIEW)
Keepout area around antenna (approximately 31.75 mm) from metallic structures Module Ground Outline 6.2 mm Edge of the Host PCB Ground Plane 18.3 mm Host PCB Ground Plane Edge of the WFI32E01 Module 31.75 mm 31.75 mm 2.6 mm Edge of the Host PCB 3.7 mm Edge of the Host PCB Ground Plane

NOTES:

APPENDIX C: DOCUMENT REVISION HISTORY

Revision A (September 2020)

This is the initial version of this document.

Revision B (February 2021)

  • Updated Figure 2-1.
  • Updated Table 2-17.
  • Updated Table 2-8.
  • Updated Table 2-15.
  • Updated note 4. in Table3.
  • Updated Table 3-1.
  • Updated 3.6.1 "WFI32E01 PCB Antenna".
  • Updated Table 3-4.
  • Updated Table 6-1.
  • Updated Figure 14-1.
  • Updated Table 26-1.
  • Updated 26.0 "Asymmetric Crypto Engine".
  • Added a note in 29.0 "12-bit High-Speed Successive Approximation Register (SAR) ADC".
  • Updated 34.0 "Enhanced Capacitive Voltage Divider (CVD) touch Controller".
  • Updated Table 34-1.
  • Updated Register 34-1.
  • Added 37.0 "Programmable Low Voltage Detect (PLVD)".
  • Updated Register 38-1.
  • Updated Register 38-5.
  • Updated 41.1 "PIC32MZ1025W104 Electrical Specifications".
  • Updated Table 41-37.
  • Updated Table 41-12.
  • Updated 41.2 "WFI32 Module Electrical Specifications".
  • Updated Table 41-44.
  • Updated note under Table 41-45.
  • Updated Figure 42-11.

Revision C (November 2021)

- Updated the following in 1.0 "Ordering Information":

- Table 1-1 and Table 1-2

- Updated the following in 3.0 "WFI32 Module Description":

- 3.4 "WFI32 Module Routing Guidelines"

- Figure 3-19 in 3.6.1 "WFI32E01 PCB Antenna"

- Updated "Power Management and System Recovery".

- Updated the following in "Clock Management":

- Table 3, Figure 2-1 and Table 2-17

- Updated the following in 7.0 "Resets":

- Figure 11-1, Table 11-1, Register 11-7, Register 14-1.

- Updated Register 23-1 and Register 23-2

- Updated the following in 35.0 "Power Management Unit (PMU)":

- Added 35.1 "PMU Operations".

- Updated Table 35-1.

- Updated Register 35-1, Register 35-2, Register 35-3, Register 35-4, Register 35-5.

- Updated the contents and removed WCM related register information from 35.0 "Power Management Unit (PMU)".

- Updated the following in 36.0 "Power-Saving Features":

- Added 36.4.4 "Deep Sleep Mode".

- Added 36.5 "Deep Sleep Controller Registers".

- Updated low power mode information supported with the B0 silicon revision.

- Included design limitations/decisions from the errata sheet.

- Updated the following in 41.0 "Electrical Specifications":

- Ambient temperature value is updated from 105°C to 85°C.

- B0 characteristics information are updated in the relevant tables.

- Updated Table 41-6, Table 41-7, Table 41-8, Table 41-9, Table 41-10, Table 41-18, Table 41-19, Table 41-39, Table 41-42, Table 41-43, Table 41-45, Table 41-47 and Table 41-48.

- Added the following in 41.0 "Electrical Specifications"

- Table 41-4

- 41.1.4 "PIC32MZ1025W104 SOC Characteristics Graphs" and 41.2.4 "WFI32 Module Characteristics Graph"

- Updated with the new terminologies. For more details, see the following note.

Note: Microchip is aware that some terminologies used in the technical documents and existing software codes of this product are outdated and unsuitable. This document may use these new terminologies, which may or may not reflect on the source codes, software GUIs, and the documents referenced within this document. The following table shows the relevant terminology changes made in this document.

TABLE 42-1: TERMINOLOGY RELATED CHANGES

Old TerminologyNew Terminology Description
Master HostThe following tables/sections/figures are updated with new terminologies:
Slave ClientTable 2-10, Table 2-11, Table 3-121.0 “Serial Peripheral Interface (SPI) and Inter-IC Sound ( I^2S )”23.0 “Inter-Integrated Circuit ( I^2C )”41.0 “Electrical Specifications”
MasterManager6.0 “Memory Organization”10.0 “Direct Memory Access (DMA) Controller”30.0 “Controller Area Network (CAN)”33.0 “Ethernet Controller”
MasterInitiatorFigure 22-1
SlaveTarget

Revision D (January 2022)

  • Updated Register 11-3 and Register 36-1
  • Updated Figure 42-4
  • Updated Register 35-1
  • Updated 36.6 "Wi-Fi Power Save Modes"

Revision E (July 2022)

  • Updated "Wireless Feature"
  • Updated "Certifications"
  • Updated Table 1-2
  • Updated Register 11-3
  • Updated 32.0 "Wi-Fi Controller"
  • Added 32.4 "Cycle Time Register (CTR)"
  • Updated Register 38-1
  • Added Table 41-10
  • Updated Table 41-15
  • Updated 42.0 "Packaging Information"
  • Added A.8 "China"

Revision F (April 2023)

  • Updated "Communication Interfaces"
  • Updated Table 2-13
  • Updated Table 3-1
  • Updated "Absolute Maximum Ratings"
  • Updated Table 41-12
  • Updated "Absolute Maximum Ratings"
  • Updated Table 41-44

Revision G (February 2024)

TABLE 42-2: REVISION G CHANGE SUMMARY

Section Description
Document • Updated document title to PIC32MZ W1 MCU and WFI32 Module with Wi-Fi® and Hardware-Based Security Accelerator Data Sheet. All the information related to the WFI32E02 Module in this data sheet is Preliminary Information.
“Introduction” • Added WFI32E02 Module variant.
“WFI32 Module Features” • Added WFI32E02 Module variant. • Added features related to WFI32E02 Module variant. Table 1 and Table 2 updated with WFI32E02 Module variant. Table 3 updated with EPAD pin information for the PIC32MZ1025W104 SOC.
1.2 “WFI32 Module Ordering Information”• Updated title to WFI32 Module Ordering Information. Table 1-2 updated with WFI32E02 Module variant ordering information. Updated Figure 1-2.
2.2 “Function-wise Pinout Description”• Added function-wise pinout details for the WFI32E02 Module variant.
3.0 “WFI32 Module Descrip-tion”• Updated title to WFI32 Module Description. • Added WFI32E02 Module variant. • Updated Figure 3-1 by adding I2C2 peripheral text information near the Trust & Go block. • Added Figure 3-2 for WFI32E02 Module variant.
3.1.1 “WFI32E01 Pinout details”• Updated Figure 3-3 with test points.
3.1.2 “WFI32E02 Module Pinout Details”• Added Figure 3-4 for WFI32E02 Module pinout. • Added Table 3-2 for WFI32E02 Module pin description.
3.2 “Basic Connection Require-ment”• Updated Figure 3-5. • Added Figure 3-6 for WFI32E02 Module basic connections.
3.2.1 “Power Pins”• Added Figure 3-8.
3.2.5 “Unused I/O pins”• Updated section to include the usage of unused pins in Low Power modes.
3.3 “WFI32 Module Placement Guidelines”• Updated title to WFI32 Module Placement Guidelines. • Added Figure 3-11 for Module placement recommendations. • Added Figure 3-15
3.4 “WFI32 Module Routing Guidelines”• Added Figure 3-18. • Updated Figure 3-19 by removing module pad pin text.
14.0 “Peripheral Trigger Generator (PTG)”• Added Note 4 for bit “10” of “PTGSWT: Software Trigger bit”. • Updated Note 2 for bit “7” of “PTGSTRT: Start PTG Sequencer bit”.
20.0 “Output Compare”• Updated Table 20-1 by swapping X(MSB) Clock/Data and Y(MSB) Clock/Data columns.
22.0 “Serial Quad Interface (SQI)”• Updated Note 1 of FIGURE 22-1: “SQI Module Block Diagram” to include the information about configuration of CFGCON3.SPLLPOSTDIV2.

TABLE 42-2: REVISION G CHANGE SUMMARY

Section Description
24.0 “UART”Updated Introduction with the information regarding the usage of CFG-CON1.HSUARTEN bit to enable the UART1 on PPS pins.Added Note for bit “3” of Register 24-1: “UxMODE: UARTx Mode Register”.
31.0 “Controller Area Network-Flexible Data-Rate (CAN-FD) Module”Updated bit “7” description of Register 31-1: “CFD2CON: CAN Control Register”Added Note for bit “7” of Register 31-1: “CFD2CON: CAN Control Register”.
41.1.1 “DC Characteristics”Updated Table 41-10, WSM current to 2.7 mA and WDS current to 1.2 mA.
41.1.2 “AC Characteristics and Timing Parameters”Updated Table 41-30 with latest supported clock frequency and related parameters.
41.2 “WFI32 Module Electrical Specifications”Updated Table 41-44 with AV_DD parameters.
42.2 “WFI32 Module Packaging Information”Added section 42.2.1.2 “WFI32E02 Module Package Marking” for module package marking information.Added section 42.2.2.2 “WFI32E02 Module Packaging Dimension” for module packing dimension.Added section 42.2.3.2 “WFI32E02 Module Recommended Footprint” for module recommended footprint.
42.2.1 “Module Package Mark-ing”Updated the section with latest package marking information.
Appendix A: “Regulatory Approvals”Updated with WFI32E02 Module variant regulatory information.
Appendix B: “Alternate Module Placement Guidelines”Added for alternate module placement recommendation.

Note the following details of the code protection feature on Microchip products:

• Microchip products meet the specifications contained in their particular Microchip Data Sheet.
- Microchip believes that its family of products is secure when used in the intended manner, within operating specifications, and under normal conditions.
- Microchip values and aggressively protects its intellectual property rights. Attempts to breach the code protection features of Microchip product is strictly prohibited and may violate the Digital Millennium Copyright Act.
- Neither Microchip nor any other semiconductor manufacturer can guarantee the security of its code. Code protection does not mean that we are guaranteeing the product is "unbreakable" Code protection is constantly evolving. Microchip is committed to continuously improving the code protection features of our products.

This publication and the information herein may be used only with Microchip products, including to design, test, and integrate Microchip products with your application. Use of this information in any other manner violates these terms. Information regarding device applications 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. Contact your local Microchip sales office for additional support or, obtain additional support at https://www.microchip.com/en-us/support/design-help/client-support-services.

THIS INFORMATION IS PROVIDED BY MICROCHIP "AS IS". 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 ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE, OR WARRANTIES RELATED TO ITS CONDITION, QUALITY, OR PERFORMANCE.

IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL LOSS, DAMAGE, COST, OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE INFORMATION OR ITS USE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY RELATED TO THE INFORMATION OR ITS USE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THE INFORMATION.

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 unless otherwise stated.

Trademarks

The Microchip name and logo, the Microchip logo, Adaptec, AVR, AVR logo, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, Microsemi logo, MOST, MOST logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, SST Logo, SuperFlash, Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron, and XMEGA are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.

AgileSwitch, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed Control, HyperLight Load, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, ProASIC Plus logo, Quiet-Wire, SmartFusion, SyncWorld, TimeCesium, TimeHub, TimePictra, TimeProvider, and ZL are registered trademarks of Microchip Technology Incorporated in the U.S.A.

Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, Clockstudio, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, Espresso T1S, EtherGREEN, EyeOpen, GridTime, IdealBridge, IGaT, In-Circuit Serial Programming, ICSP, INICnet, Intelligent Paralleling, IntelliMOS, InterChip Connectivity, JitterBlocker, Knob-on-Display, MarginLink, maxCrypto, maxView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, mSiC, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, Power MOS IV, Power MOS 7, PowerSmart, PureSilicon, QMatrix, REAL ICE, Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-I.S., storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, Trusted Time, TSHARC, Turing, USBCheck, VariSense, VectorBlox, VerIPHY, ViewSpan, WiperLock, XpressConnect, 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.

The Adaptec logo, Frequency on Demand, Silicon Storage Technology, and Symmcom are registered trademarks of Microchip Technology Inc. in other countries.

GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other countries.

All other trademarks mentioned herein are property of their respective companies. © 2020-2024, Microchip Technology Incorporated and its subsidiaries.

All Rights Reserved.

ISBN: 978-1-6683-3781-3

For information regarding Microchip's Quality Management Systems, please visit www.microchip.com/quality.

Worldwide Sales and Service

AMERICAS

Corporate Office

2355 West Chandler Blvd.

Chandler, AZ 85224-6199

Tel: 480-792-7200

Fax: 480-792-7277

Technical Support:

http://www.microchip.com/

support

Web Address:

www.microchip.com

Atlanta

Duluth, GA

Tel: 678-957-9614

Fax: 678-957-1455

Austin, TX

Tel: 512-257-3370

Boston

Westborough, MA

Tel: 774-760-0087

Fax: 774-760-0088

Chicago

Itasca, IL

Tel: 630-285-0071

Fax: 630-285-0075

Dallas

Addison, TX

Tel: 972-818-7423

Fax: 972-818-2924

Detroit

Novi, MI

Tel: 248-848-4000

Houston, TX

Tel: 281-894-5983

Indianapolis

Noblesville, IN

Tel: 317-773-8323

Fax: 317-773-5453

Tel: 317-536-2380

Los Angeles

Mission Viejo, CA

Tel: 949-462-9523

Fax: 949-462-9608

Tel: 951-273-7800

Raleigh, NC

Tel: 919-844-7510

New York, NY

Tel: 631-435-6000

San Jose, CA

Tel: 408-735-9110

Tel: 408-436-4270

Canada - Toron

Tel: 905-695-1980

Fax: 905-695-2078

ASIA/PACIFIC

Australia - Sydney

Tel: 61-2-9868-6733

China - Beijing

Tel: 86-10-8569-7000

China - Chengdu

Tel: 86-28-8665-5511

China - Chongqing

Tel: 86-23-8980-9588

China - Dongguan

Tel: 86-769-8702-9880

China - Guangzhou

Tel: 86-20-8755-8029

China - Hangzhou

Tel: 86-571-8792-8115

China - Hong Kong SAR

Tel: 852-2943-5100

China - Nanjing

Tel: 86-25-8473-2460

China - Qingdao

Tel: 86-532-8502-7355

China - Shanghai

Tel: 86-21-3326-8000

China - Shenyang

Tel: 86-24-2334-2829

China - Shenzhen

Tel: 86-755-8864-2200

China - Suzhou

Tel: 86-186-6233-1526

China - Wuhan

Tel: 86-27-5980-5300

China - Xian

Tel: 86-29-8833-7252

China - Xiamen

Tel: 86-592-2388138

China - Zhuhai

Tel: 86-756-3210040

ASIA/PACIFIC

India - Bangalore

Tel: 91-80-3090-4444

India - New Delhi

Tel: 91-11-4160-8631

India - Pune

Tel: 91-20-4121-0141

Japan - Osaka

Tel: 81-6-6152-7160

Japan - Tokyo

Tel: 81-3-6880-3770

Korea - Daegu

Tel: 82-53-744-4301

Korea - Seoul

Tel: 82-2-554-7200

Malaysia - Kuala Lumpur

Tel: 60-3-7651-7906

Malaysia - Penang

Tel: 60-4-227-8870

Philippines - Manila

Tel: 63-2-634-9065

Singapore

Tel: 65-6334-8870

Taiwan - Hsin Chu

Tel: 886-3-577-8366

Taiwan - Kaohsiung

Tel: 886-7-213-7830

Taiwan - Taipei

Tel: 886-2-2508-8600

Thailand - Bangkok

Tel: 66-2-694-1351

Tel: 43-7242-2244-39

Fax: 43-7242-2244-393

Denmark - Copenhagen

Tel: 45-4485-5910

Fax: 45-4485-2829

Finland - Espoo

Tel: 358-9-4520-820

France - Paris

Tel: 33-1-69-53-63-20

Fax: 33-1-69-30-90-79

Germany - Garching

Tel: 49-8931-9700

Germany - Haan

Tel: 49-2129-3766400

Germany - Heilbronn

Tel: 49-7131-72400

Germany - Karlsruhe

Tel: 49-721-625370

Germany - Munich

Tel: 49-89-627-144-0

Fax: 49-89-627-144-44

Germany - Rosenheim

Tel: 49-8031-354-560

Israel - Ra'anana

Tel: 972-9-744-7705

Italy - Milan

Tel: 39-0331-742611

Fax: 39-0331-466781

Italy - Padova

Tel: 39-049-7625286

Netherlands - Drunen

Tel: 31-416-690399

Fax: 31-416-690340

Norway - Trondheim

Tel: 47-7288-4388

Poland - Warsaw

Tel: 48-22-3325737

Romania - Bucharest

Tel: 40-21-407-87-50

Spain - Madrid

Tel: 34-91-708-08-90

Fax: 34-91-708-08-91

Sweden - Gothenberg

Tel: 46-31-704-60-40

Sweden - Stockholm

Tel: 46-8-5090-4654

UK - Wokingham

Tel: 44-118-921-5800

Fax: 44-118-921-5820

Table of contents Click a title to access it
Manual assistant
Powered by Anthropic
Waiting for your message
Product information

Brand : Microchip

Model : PIC32MZ1025W104132

Category : Uncategorized