23.3.3 Interrupts and DMA Triggers

The MVIO module has three top level system interrupts in the PIRx registers. An interrupt request is generated when the corresponding interrupt source has been enabled and when the interrupt flag is set. The interrupt request remains active until the interrupt flag has been cleared in hardware when the interrupt condition is no longer met. Refer to the “VIC - Vectored Interrupt Controller Module” chapter for more information.

These system level interrupts also act as DMA triggers. The interrupt does not need to be enabled to be used as a trigger for DMA transfers. Refer to the “Types of Hardware Triggers” section in the “DMA – Direct Memory Access” chapter for more information on how to use these DMA triggers.

The VDDIOxRDYIF interrupt flag of the PIRx register is used to monitor the status of the respective VDDIOx power domain. The VDDIOxRDYIF will be set when the integrated I/O monitor circuitry detects that the MVIO supply does not meet or exceed the minimum specified voltage requirements for the module to operate properly. Once the integrated I/O voltage monitors detect that the VDDIOx domains are fully powered up and that the proper voltage level thresholds are being met for the MVIO module to function properly, the VDDIOxRDYIF interrupt flag will be cleared in hardware. This system level interrupt can be enabled or disabled by writing to the VDDIOxRDYIE bit in the PIEx register.
Important: VDDIOxRDYIF is a level sensitive interrupt, not edge sensitive. VDDIOxRDYIF cannot be cleared and will remain high as long as the VDDIOx supply voltage is below the minimum specified voltage requirements for the module to operate properly.
The RDY bit of VDDIOxCON is a status bit that corresponds with the VDDIOxRDYIF and can be used to monitor the status of the MVIO module voltage supply in software.
When the VDDIOx Low-Voltage detection circuit is enabled using the LVD selection bits, and the corresponding VDDIOx supply voltage drops below the configured LVD threshold during normal operation, the VDDIOxLVDIF of the PIRx register will be set. Once the VDDIOx supply voltage recovers and is no longer lower than the LVD threshold, the VDDIOxLVDIF will be cleared in hardware. This system level interrupt can be enabled or disabled by writing to the VDDIOxLVDIE bit in the PIEx register. The LVDSTAT bit of VDDIOxCON represents the VDDIOxLVDIF and can be used to monitor the status of the LVD detection circuitry in software.
Important: The VDDIOx LVD Interrupt is level sensitive, not edge sensitive. VDDIOxLVDIF cannot be cleared as long as the VDDIOx supply voltage is below the configured LVD threshold.

Since the MVIO system level interrupts are level sensitive, once an interrupt has occurred, the corresponding interrupt enable bit should be cleared to prevent the CPU from continuously jumping into the same Interrupt Service Routine repeatedly. The corresponding status bits can be monitored in software to determine when the VDDIOx supply has recovered from either event after which the system level interrupt should then be re-enabled.