The I3C Target module has five top level system interrupts in the PIRx register as shown in Table 1. Refer to the “VIC – Vectored Interrupt Controller” chapter for more information on how to activate and use these interrupts.
When enabled, each of these system level interrupts can wake up the device if the Interrupt condition happens when the device is in Sleep mode. Refer to the “Wake-up From Sleep” section in the “VIC – Vectored Interrupt Controller” chapter for more information. This is important for the I3CxRIF Reset Interrupt since the I3C protocol recommends the device to wake up when it receives a Target Reset Pattern in Sleep mode. Refer to Target Reset Pattern Received While in Sleep section for more information. The I3CxRIF Reset Interrupt can also be used to perform a Reset of the I3C Target module or the entire device as outlined in Target Reset.
Each of these system level interrupts also act as DMA triggers. The interrupts do not need to be enabled with their associated enable bits to be used as triggers for DMA transfers.
Refer to section “Types of Hardware Triggers” in “DMA – Direct Memory Access” chapter for more information on how to use these DMA triggers.
I3C® System Level Interrupts and DMA Triggers | Description | Section Reference |
---|---|---|
General Interrupt (I3CxIF) | An OR of all General Interrupts in the I3C module. This is a read-only interrupt flag. The interrupt is cleared when each of the enabled interrupt flags in the I3CxPIRx registers are cleared. | Table 2 |
Error Interrupt (I3CxEIF) | An OR of all Error Interrupts in the I3C module. This is a read-only interrupt flag. The interrupt is cleared when each of the enabled interrupt flags in the I3CxERRIRx registers are cleared. | Table 3 |
Transmit Interrupt (I3CxTXIF) | I3CxTXB Transmit Buffer is empty and ready be written. This is a read-only interrupt flag representing the status of the TXBE bit. The interrupt flag is cleared when I3CxTXB Transmit Buffer becomes full. | Transmit and Receive Buffers |
Receive Interrupt (I3CxRXIF) | I3CxRXB Receive Buffer is full and is ready to be read from. This is a read-only interrupt flag representing the status of the RXBF bit. The interrupt flag is cleared when I3CxRXB Receive Buffer becomes empty. | Transmit and Receive Buffers |
Reset Interrupt (I3CxRIF) | Target Reset Pattern is detected on the bus. The user must read the I3CxRSTACT Defining Byte Register and proceed accordingly. | Target Reset |
The system level General I3C Interrupt (I3CxIF) is a logical OR of various general interrupts at the I3C module level available through the I3CxPIR0 and I3CxPIR1 registers and are listed in Table 2. Each of these interrupts can be individually enabled through the I3CxPIE0 and I3CxPIE1 registers.
The system level Error I3C Interrupt (I3CxEIF) is a logical OR of various error interrupts at the I3C module level available through the I3CxERRIR0 and I3CxERRIR1 registers and are listed in Table 3. Each of these interrupts can be individually enabled through the I3CxERRIE0 and I3CxERRIE1 registers.
Figure 1 shows how the module level and system level I3C interrupts are activated and how they interact with each other.
I3C® Module Level General Interrupts I3CxPIRx | Description | Section Reference |
---|---|---|
Start Condition (SCIF) | Start condition detected on the bus | Start, Stop and Restart Conditions |
Stop Condition (PCIF) | Stop condition detected on the bus | Start, Stop and Restart Conditions |
Restart Condition (RSCIF) | Restart condition detected on the bus | Start, Stop and Restart Conditions |
I2C ACK Received (I2CACKIF) | Controller responded with an ACK during an I2C Read Transaction | Legacy I2C Transaction on I3C Bus |
Static Address Match (SADRIF) | Controller transmitted Target’s Static Address on the
bus during a Legacy I2C Transaction. This bit is set only
when the Target has not been assigned a Dynamic Address yet and is
operating in I2C mode (OPMD = 0b00 ). |
Legacy I2C Transaction on I3C Bus |
Dynamic Address Match (DADRIF) | Controller transmitted Target’s Dynamic Address on
the bus during a Private or Direct CCC Transaction. This bit is set only
when the Target has been assigned a Dynamic Address and is operating in
I3C SDR mode (OPMD = 0b01 ). |
|
Byte Transfer Finished (BTFIF) | Target has completed sending or receiving an address or data byte during a Private I3C/I2C Transaction | |
Transmission Complete (TCOMPIF) | Target has detected a Stop condition after a Private I3C/I2C or an IBI Transaction | |
Hot-Join Done (HJDONEIF) | Hot-Join process has successfully completed. The
Target now has a Dynamic Address assigned in I3CxDADR register and is
operating in I3C SDR mode (OPMD = 0b01 ). |
Hot-Join Mechanism |
In-Band Interrupt Done (IBIDONEIF) | In-Band Interrupt request has been successfully processed by the Controller. The Target was able to send the entire Mandatory Data Byte (I3CxIBIMB) and Payload to the Controller. | In-Band Interrupt (IBI) |
I3C® Module Level Error Interrupts I3CxERRIRx | Description | Section Reference |
---|---|---|
I2C NACK Received (I2CNACKIF) | Controller responded with a NACK during an I2C Read Transaction | Legacy I2C Transaction on I3C Bus |
Transmit Underrun (TXUIF) | Controller attempted to read from an empty Transmit FIFO during Target Transmit mode | Transmit and Receive Buffers |
Receive Overrun (RXOIF) | Controller attempted to write to a full Receive FIFO during Target Receive mode | Transmit and Receive Buffers |
Hot-Join Error (HJEIF) | Hot-Join request exceeded the arbitration retry limit set in I3CxRETRY register | Hot-Join Mechanism |
In-Band Interrupt Error (IBIEIF) | In-Band Interrupt request exceeded the arbitration retry limit set in I3CxRETRY register | In-Band Interrupt (IBI) |
Bus Error (BUSEIF) | Target detected an S0-S6 type error on the bus | Error Detection and Recovery in SDR Mode |
Bus Time-out (BTOIF) | Bus Time-out detected on the bus. If BTOEN is enabled in I3CxCON register, this will perform a Bus Time-out Reset of the Target module. | Bus Time-out Reset |
Unknown CCC Received (UNKNCCCIF) | Target received a CCC from the Controller that is not supported in Table 1 | Unknown CCCs |
In-Band Interrupt Abort (IBIAEIF) | Controller aborted transmission of IBI Payload by asserting End-of-Data T-bit (Restart condition) or by sending a Stop condition | In-Band Interrupt (IBI) |
Maximum Write Length Over Size (MWLOEIF) | Controller attempted to write one more byte than the Maximum Write Length size in I3CxMWL register during Private Write transaction | Private Transaction |
Transmit Buffer Write Error (TXWEIF) | User attempted to write to I3CxTXB Transmit Buffer when not empty
(TXBE = 0 ). |
Transmit and Receive Buffers |
Receive Buffer Read Error (RXREIF) | User attempted to read from I3CxRXB Receive Buffer when not full
(RXBF = 0 ) |
Transmit and Receive Buffers |