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).
Peripheral Source | Peripheral Interrupt(s) | NVIC IRQ Index | |
---|---|---|---|
SUPC - Supply Controller |
SM, SMRST | 0 | |
RSTC - Reset Controller | URST | 1 | |
RTC - Real-Time Clock | ACK, ALR, SEC, TIM, CAL, TDERR | 2 | |
RTT - Real-Time Timer | RTTINC, ALM | 3 | |
WDT - Watch Dog Timer | WDF | 4 | |
PMC - Power Management Controller | MOSCXTS, LOCKA, MCKRDY, LOCKU, PCKRDY0-7, MOSCSELS, MOSCRCS, CFDEV, XT32KERR | 5 | |
EEFC - Enhanced Embedded Flash Controller | FRDY | 6 | |
UART0 - Universal Asynchronous Receiver/Transmitter 0 | RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP | 7 | |
UART1 - Universal Asynchronous Receiver/Transmitter 1 | RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP | 8 | |
SMC - Static Memory Controller | — | 9 | |
PIOA - Parallel I/O Controller A | P0-P31 | 10 | |
PIOB - Parallel I/O Controller B | P0-P31 | 11 | |
PIOC - Parallel I/O Controller C | P0-P31 | 12 | |
USART0 - Universal Synchronous/Asynchronous Receiver/Transmitter 0 | Common mode |
RXRDY, TXRDY, RXBRK, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, ITER, NACK, RIIC, DSRIC, DCDIC, CTSIC, MANE | 13 |
SPI mode | RXRDY, TXRDY, OVRE, TXEMPTY, UNRE, NSSE | ||
LIN mode | RXRDY, TXRDY, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, LINBK, LINID, LINTC, LINBE, LINISFE, LINIPE, LINCE, LINSNRE, LINSTE, LINHTE | ||
USART1 - Universal Synchronous/Asynchronous Receiver/Transmitter 1 | USART Mode |
RXRDY, TXRDY, RXBRK, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, ITER, NACK, RIIC, DSRIC, DCDIC, CTSIC, MANE | 14 |
SPI Mode | RXRDY, TXRDY, OVRE, TXEMPTY, UNRE, NSSE | ||
LIN Mode | RXRDY, TXRDY, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, LINBK, LINID, LINTC, LINBE, LINISFE, LINIPE, LINCE, LINSNRE, LINSTE, LINHTE | ||
LON Mode | RXRDY, TXRDY, OVRE, LSFE, LCRCE, TXEMPTY, UNRE, LTXD, LCOL, LFET, LRXD, LBLOVFE | ||
USART2 - Universal Synchronous/Asynchronous Receiver/Transmitter 2 | USART mode |
RXRDY, TXRDY, RXBRK, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, ITER, NACK, RIIC, DSRIC, DCDIC, CTSIC, MANE | 15 |
SPI mode | RXRDY, TXRDY, OVRE, TXEMPTY, UNRE, NSSE | ||
LIN mode | RXRDY, TXRDY, OVRE, FRAME, PARE, TIMEOUT, TXEMPTY, LINBK, LINID, LINTC, LINBE, LINISFE, LINIPE, LINCE, LINSNRE, LINSTE, LINHTE | ||
PIOD - Parallel I/O Controller D | P0-P31 | 16 | |
PIOE - Parallel I/O Controller E | P0-P31 | 17 | |
HSMCI - High-Speed Multimedia Card Interface | CMDRDY, RXRDY, TXRDY, BLKE, DTIP, NOTBUSY, SDIOIRQA, SDIOWAIT, CSRCV, RINDE, RDIRE, RCRCE, RENDE, RTOE, DCRCE, DTOE, CSTOE, BLKOVRE, FIFOEMPTY, XFRDONE, ACKRCV, ACKRCVE, OVRE, UNRE | 18 | |
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, SMBHHM | 19 | |
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, SMBHHM | 20 | |
SPI0 - Serial Peripheral Interface 0 | RDRF, TDRE, MODF, OVRES, NSSR, TXEMPTY, UNDES | 21 | |
SSC - Synchronous Serial Controller | TXRDY, TXEMPTY, RXRDY, OVRUN, CP0, CP1, TXSYN, RXSYN | 22 | |
TC0_CHANNEL0 - 16-bit Timer Counter 0, Channel 0 | COVFS, LOVRS, CPAS, CPBS, CPCS, LDRAS, LDRBS, ETRGS | 23 | |
TC0_CHANNEL1 - 16-bit Timer Counter 0, Channel 1 | 24 | ||
TC0_CHANNEL2 - 16-bit Timer Counter 0, Channel 2 | 25 | ||
TC1_CHANNEL0 - 16-bit Timer Counter 1, Channel 0 | 26 | ||
TC1_CHANNEL1 - 16-bit Timer Counter 1, Channel 1 | 27 | ||
TC1_CHANNEL2 - 16-bit Timer Counter 1, Channel 2 | 28 | ||
AFEC0 - Analog Front-End Controller 0 | EOC0-11, DRDY, GOVRE, COMPE, TEMPCHG | 29 | |
DACC - Digital-to-Analog Converter Controller | TXRDY0-1, EOC0-1 | 30 | |
PWMC0 - Pulse-Width Modulation Controller 0 | CHID0-3, FCHID0-3, WRDY, UNRE, CMPM0-7, CMPU0-7 | 31 | |
ICM - Integrity Check Monitor | RHC [3:0], RDM [3:0], RBE [3:0], RWC [3:0], REC [3:0], RSU [3:0], URAD | 32 | |
ACC - Analog Comparator Controller | CE | 33 | |
USBHS - USB High-Speed Interface | Device Global | SUSPES, MSOFES, SOFES, EORSTES, WAKEUPES, EORSMES, UPRSMES, PEP_0-9, DMA_7-DMA_1 | 34 |
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 0 | RF0N, 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, ARA | 35 | |
36 | |||
MCAN1 – Controller Area Network 1 | 37 | ||
38 | |||
GMAC - Ethernet MAC | MFS, RCOMP, RXUBR, TXUBR, TUR, RLEX, TFC, TCOMP, ROVR, HRESP, PFNZ, PTZ, PFTR, EXINT, DRQFR, SFR, DRQRT, SFT, PDRQFR, PDRSFR, PDRQFT, PDRSFT, SRI, RXLPISBC, WOL, TSUTIMCMP | 39 | |
AFEC1 - Analog Front-End Controller 1 | EOC0-11, DRDY, GOVRE, COMPE, TEMPCHG | 40 | |
TWIHS2 - Two-wire Interface High-Speed 2 | TXCOMP, RXRDY, TXRDY, SVACC, GACC, OVRE, UNRE, NACK, ARBLST, SCL_WS, EOSACC, MCACK, TOUT, PECERR, SMBDAM, SMBHHM | 41 | |
SPI1 - Serial Peripheral Interface 1 | RDRF, TDRE, MODF, OVRES, NSSR, TXEMPTY, UNDES | 42 | |
QSPI - Quad I/O Serial Peripheral Interface | RDRF, TDRE, TXEMPTY, OVRES, CSR, CSS, INSTRE | 43 | |
UART2 - Universal Asynchronous Receiver/Transmitter 2 | RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP | 44 | |
UART3 - Universal Asynchronous Receiver/Transmitter 3 | RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP | 45 | |
UART4 - Universal Asynchronous Receiver/Transmitter 4 | RXRDY, TXRDY, OVRE, FRAME, PARE, TXEMPTY, CMP | 46 | |
TC2_CHANNEL0 - 16-bit Timer Counter 2, Channel 0 | COVFS, LOVRS, CPAS, CPBS, CPCS, LDRAS, LDRBS, ETRGS | 47 | |
TC2_CHANNEL1 - 16-bit Timer Counter 2, Channel 1 | 48 | ||
TC2_CHANNEL2 - 16-bit Timer Counter 2, Channel 2 | 49 | ||
TC3_CHANNEL0 - 16-bit Timer Counter 3, Channel 0 | 50 | ||
TC3_CHANNEL1 - 16-bit Timer Counter 3, Channel 1 | 51 | ||
TC3_CHANNEL2 - 16-bit Timer Counter 3, Channel 2 | 52 | ||
MLB - MediaLB | ISOC_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_BREAK | 53 | |
AES - Advanced Encryption Standard | DATRDY, URAD, TAGRDY | 56 | |
TRNG - True Random Number Generator | DATRDY | 57 | |
XDMAC - DMA Controller | BIE, LIE, DIE, FIE, RBIE, WBIE, ROIE | 58 | |
ISI - Image Sensor Interface | DIS_DONE, SRST, VSYNC, PXFR_DONE, CXFR_DONE, P_OVR, C_OVR, CRC_ERR, FR_OVR | 59 | |
PWMC1 - Pulse-Width Modulation Controller 1 | CHID0-3, FCHID0-3, WRDY, UNRE, CMPM0-7, CMPU0-7 | 60 | |
System Core | — | — | |
RSWDT - Reinforced Safety Watch Dog Timer | WDF | 63 | |
I2SC0 - Inter-IC Sound Controller 0 | RXRDY, RXOR, TXRDY, TXUR | 69 | |
I2SC1 - Inter-IC Sound Controller 1 | RXRDY, RXOR, TXRDY, TXUR | 70 |
- Number of peripheral interrupts can differ between the different packages.