13.2 Nested Vector Interrupt Controller

Overview

The Nested Vector Interrupt Controller (NVIC) in the PIC32CZ CA70/MC70 devices supports up to 74 interrupt lines with 8 different priority levels + 1 Non-Maskable Interrupt (NMI) line.

For additional information, refer to the "Cortex-M7 Technical Reference Manual" which is avaialbe for download at www.arm.com.

Interrupt Line Mapping

Each interrupt line is connected to one peripheral instance, as shown in the following table. Each peripheral can have one or more interrupt flags, located in the peripheral’s Status Register (SR).

An interrupt flag is set when the interrupt condition occurs. Each interrupt in the peripheral can be individually enabled by writing a ‘1’ to the corresponding bit in the peripheral’s Interrupt Enable Register (IER) and disabled by writing a ‘1’ to the corresponding bit in the peripheral’s Interrupt Disable Register (IDR).

An interrupt request is generated from the peripheral when the interrupt flag is set and the corresponding interrupt is enabled.

The interrupt request for one peripheral are ORed together on system level, generating one interrupt request for each peripheral. An interrupt request will set the corresponding interrupt pending bit in the NVIC interrupt pending registers (SETPEND/CLRPEND bits in the ISPR/ICPR registers).

For the NVIC to activate the interrupt, it must be enabled in the NVIC interrupt enable register (SETENA/CLRENA bits in the ISER/ICER registers). The NVIC interrupt priority registers IPR0-IPR7 provide a priority field for each interrupt.

For additional infromation on peripheral interrupts and associated NVIC lines, refer to the Peripherals section and the respective Interrupt Enable Register (IER).

Table 13-3. Interrupt Line Mapping
Peripheral SourcePeripheral Interrupt(s)NVIC IRQ Index
SUPC - Supply Controller

SM, SMRST

0
RSTC - Reset ControllerURST1
RTC - Real-Time ClockACK, ALR, SEC, TIM, CAL, TDERR2
RTT - Real-Time TimerRTTINC, ALM3
WDT - Watch Dog TimerWDF4
PMC - Power Management ControllerMOSCXTS, LOCKA, MCKRDY, LOCKU, PCKRDY0-7, MOSCSELS, MOSCRCS, CFDEV, XT32KERR5
EEFC - Enhanced Embedded Flash ControllerFRDY6
UART0 - Universal Asynchronous Receiver/Transmitter 0RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP7
UART1 - Universal Asynchronous Receiver/Transmitter 1RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP8
SMC - Static Memory Controller9
PIOA - Parallel I/O Controller AP0-P3110
PIOB - Parallel I/O Controller BP0-P3111
PIOC - Parallel I/O Controller CP0-P3112
USART0 - Universal Synchronous/Asynchronous Receiver/Transmitter 0Common mode

RXRDY, TXRDY, RXBRK, OVRE, FRAME, PARE,

TIMEOUT, TXEMPTY,

ITER, NACK, RIIC, DSRIC, DCDIC, CTSIC, MANE

13
SPI modeRXRDY, TXRDY, OVRE, TXEMPTY, UNRE, NSSE
LIN modeRXRDY, TXRDY, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, LINBK, LINID, LINTC, LINBE, LINISFE, LINIPE, LINCE, LINSNRE, LINSTE, LINHTE
USART1 - Universal Synchronous/Asynchronous Receiver/Transmitter 1USART Mode

RXRDY, TXRDY, RXBRK, OVRE, FRAME, PARE,

TIMEOUT, TXEMPTY,

ITER, NACK, RIIC, DSRIC, DCDIC, CTSIC, MANE

14
SPI ModeRXRDY, TXRDY, OVRE, TXEMPTY, UNRE, NSSE
LIN ModeRXRDY, TXRDY, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, LINBK, LINID, LINTC, LINBE, LINISFE, LINIPE, LINCE, LINSNRE, LINSTE, LINHTE
LON ModeRXRDY, TXRDY, OVRE, LSFE, LCRCE, TXEMPTY, UNRE, LTXD, LCOL, LFET, LRXD, LBLOVFE
USART2 - Universal Synchronous/Asynchronous Receiver/Transmitter 2USART mode

RXRDY, TXRDY, RXBRK, OVRE, FRAME, PARE,

TIMEOUT, TXEMPTY,

ITER, NACK, RIIC, DSRIC, DCDIC, CTSIC, MANE

15
SPI modeRXRDY, TXRDY, OVRE, TXEMPTY, UNRE, NSSE
LIN modeRXRDY, TXRDY, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, LINBK, LINID, LINTC, LINBE, LINISFE, LINIPE, LINCE, LINSNRE, LINSTE, LINHTE
PIOD - Parallel I/O Controller DP0-P3116
PIOE - Parallel I/O Controller EP0-P3117
HSMCI - High-Speed Multimedia Card InterfaceCMDRDY, RXRDY, TXRDY, BLKE, DTIP, NOTBUSY, SDIOIRQA, SDIOWAIT, CSRCV, RINDE, RDIRE, RCRCE, RENDE, RTOE, DCRCE, DTOE, CSTOE, BLKOVRE, FIFOEMPTY, XFRDONE, ACKRCV, ACKRCVE, OVRE, UNRE18
TWIHS0 - Two-wire Interface High-Speed 0 (I²C compatible)TXCOMP, RXRDY, TXRDY, SVACC, GACC, OVRE, UNRE, NACK, ARBLST, SCL_WS, EOSACC, MCACK, TOUT, PECERR, SMBDAM, SMBHHM19
TWIHS1 - Two-wire Interface High-Speed 1 (I²C compatible)TXCOMP, RXRDY, TXRDY, SVACC, GACC, OVRE, UNRE, NACK, ARBLST, SCL_WS, EOSACC, MCACK, TOUT, PECERR, SMBDAM, SMBHHM20
SPI0 - Serial Peripheral Interface 0RDRF, TDRE, MODF, OVRES, NSSR, TXEMPTY, UNDES21
SSC - Synchronous Serial ControllerTXRDY, TXEMPTY, RXRDY, OVRUN, CP0, CP1, TXSYN, RXSYN22
TC0_CHANNEL0 - 16-bit Timer Counter 0, Channel 0COVFS, LOVRS, CPAS, CPBS, CPCS, LDRAS, LDRBS, ETRGS23
TC0_CHANNEL1 - 16-bit Timer Counter 0, Channel 124
TC0_CHANNEL2 - 16-bit Timer Counter 0, Channel 225
TC1_CHANNEL0 - 16-bit Timer Counter 1, Channel 026
TC1_CHANNEL1 - 16-bit Timer Counter 1, Channel 127
TC1_CHANNEL2 - 16-bit Timer Counter 1, Channel 228
AFEC0 - Analog Front-End Controller 0EOC0-11, DRDY, GOVRE, COMPE, TEMPCHG29
DACC - Digital-to-Analog Converter ControllerTXRDY0-1, EOC0-130
PWMC0 - Pulse-Width Modulation Controller 0CHID0-3, FCHID0-3, WRDY, UNRE, CMPM0-7, CMPU0-731
ICM - Integrity Check MonitorRHC [3:0], RDM [3:0], RBE [3:0], RWC [3:0], REC [3:0], RSU [3:0], URAD32
ACC - Analog Comparator ControllerCE33
USBHS - USB High-Speed InterfaceDevice GlobalSUSPES, MSOFES, SOFES, EORSTES, WAKEUPES, EORSMES, UPRSMES, PEP_0-9, DMA_7-DMA_134
Device Endpoint (Control, Bulk, Interrupt Endpoints) TXINES, RXOUTES, RXSTPES, NAKOUTES, NAKINES, OVERFES, STALLEDES, SHORTPACKETES, NBUSYBKES, KILLBKS, FIFOCONS, EPDISHDMAS, NYETDISS, RSTDTS, STALLRQS
Device Endpoint (Isochronous Endpoints)TXINES, RXOUTES, UNDERFES, HBISOINERRE, HBISOFLUSHE, OVERFES, CRCERRES, SHORTPACKETES, MDATAES, DATAXES, ERRORTRANSES, NBUSYBKES, KILLBKS, FIFOCONS, EPDISHDMAS, RSTDTS
MCAN0 – Controller Area Network 0RF0N, RF0W, RF0F, RF0L, RF1N, RF1W, RF1F, RF1L, HPM, TC, TCF, TFE, TEFN, TEFW, TEFF, TEFL, TSW, MRAF, TOO, DRX, ELO, EP, EW, BO, WDI, PEA, PED, ARA35
36
MCAN1 – Controller Area Network 137
38
GMAC - Ethernet MACMFS, RCOMP, RXUBR, TXUBR, TUR, RLEX, TFC, TCOMP, ROVR, HRESP, PFNZ, PTZ, PFTR, EXINT, DRQFR, SFR, DRQRT, SFT, PDRQFR, PDRSFR, PDRQFT, PDRSFT, SRI, RXLPISBC, WOL, TSUTIMCMP39
AFEC1 - Analog Front-End Controller 1EOC0-11, DRDY, GOVRE, COMPE, TEMPCHG40
TWIHS2 - Two-wire Interface High-Speed 2TXCOMP, RXRDY, TXRDY, SVACC, GACC, OVRE, UNRE, NACK, ARBLST, SCL_WS, EOSACC, MCACK, TOUT, PECERR, SMBDAM, SMBHHM41
SPI1 - Serial Peripheral Interface 1RDRF, TDRE, MODF, OVRES, NSSR, TXEMPTY, UNDES42
QSPI - Quad I/O Serial Peripheral InterfaceRDRF, TDRE, TXEMPTY, OVRES, CSR, CSS, INSTRE43
UART2 - Universal Asynchronous Receiver/Transmitter 2RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP44
UART3 - Universal Asynchronous Receiver/Transmitter 3RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP45
UART4 - Universal Asynchronous Receiver/Transmitter 4RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP46
TC2_CHANNEL0 - 16-bit Timer Counter 2, Channel 0COVFS, LOVRS, CPAS, CPBS, CPCS, LDRAS, LDRBS, ETRGS47
TC2_CHANNEL1 - 16-bit Timer Counter 2, Channel 148
TC2_CHANNEL2 - 16-bit Timer Counter 2, Channel 249
TC3_CHANNEL0 - 16-bit Timer Counter 3, Channel 050
TC3_CHANNEL1 - 16-bit Timer Counter 3, Channel 151
TC3_CHANNEL2 - 16-bit Timer Counter 3, Channel 252
MLB - MediaLBISOC_PE, ISOC_BUFO, SYNC_PE, ARX_DONE, ARX_PE, ARX_BREAK, ATX_DONE, ATX_PE, ATX_BREAK, CRX_DONE, CRX_PE, CRX_BREAK, CTX_DONE, CTX_PE, CTX_BREAK53
AES - Advanced Encryption StandardDATRDY, URAD, TAGRDY56
TRNG - True Random Number GeneratorDATRDY57
XDMAC - DMA ControllerBIE, LIE, DIE, FIE, RBIE, WBIE, ROIE58
ISI - Image Sensor InterfaceDIS_DONE, SRST, VSYNC, PXFR_DONE, CXFR_DONE, P_OVR, C_OVR, CRC_ERR, FR_OVR59
PWMC1 - Pulse-Width Modulation Controller 1CHID0-3, FCHID0-3, WRDY, UNRE, CMPM0-7, CMPU0-760
System Core
RSWDT - Reinforced Safety Watch Dog TimerWDF63
I2SC0 - Inter-IC Sound Controller 0RXRDY, RXOR, TXRDY, TXUR69
I2SC1 - Inter-IC Sound Controller 1RXRDY, RXOR, TXRDY, TXUR70
Note:
  1. Number of peripheral interrupts can differ between the different packages.