SPRUJ17H March 2022 – October 2024 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1
The PRU-ICSS UART0 have dedicated interrupt signals to the CPU and the interrupts are not multiplexed with any other interrupt source.
PRU-ICSS UART0 Interrupt Request | Interrupt Source | Comment |
---|---|---|
THREINT | THR-empty condition: The transmitter holding register (THR) or the transmitter FIFO is empty. All of the data has been copied from THR, ( i.e. UART_RBR_TBR[7-0] RBR_DATA) to the transmitter shift register (TSR). | If THREINT is enabled in UART_INT_EN register by setting the [1]ETBEI bit, it is
recorded in [3-1]IIR_INTID bitfield. As an alternative to using THREINT, the CPU can poll the THRE bit in the line status register UART_LSR1. |
RDAINT | Receive data available in non-FIFO mode or trigger level reached in the FIFO mode. | If RDAINT is enabled in UART_INT_EN register, by setting the [0]ERBI bit, it is
recorded in INTID bitfield. As an alternative to using RDAINT, the CPU can poll the [0]DR bit in the line status register UART_LSR1. In the FIFO mode, this is not a functionally equivalent alternative because the [0]DR bit does not respond to the FIFO trigger level. The [0]DR bit only indicates the presence or absence of unread characters. |
RTOINT | Receiver time-out condition (in the FIFO mode only): No characters have been removed from or input to the receiver FIFO during the last four character times (see Table 7-68), and there is at least one character in the receiver FIFO during this time. | The receiver time-out interrupt prevents the PRU-ICSS
UART0 from waiting indefinitely, in the case when the receiver FIFO
level is below the trigger level and thus does not generate a
receiver data-ready interrupt. If RTOINT is enabled in UART_INT_EN register, by setting the [0]ERBI bit, it is recorded in UART_INT_FIFO[3-1] IIR_INTID bitfield. There is no status bit to reflect the occurrence of a time-out condition. |
RLSINT | Receiver line status condition: An overrun error, parity error, framing error, or break has occurred. | If RLSINT is enabled in INT_EN register, by setting the [2]ELSI bit, it is
recorded in UART_INT_FIFO[3-1] IIR_INTID bitfield. As an alternative to using RLSINT, the CPU can poll the following bits in the line status register UART_LSR1: overrun error indicator (bit [1]OE), parity error indicator (bit [2]PE), framing error indicator ([3]FE), and break indicator ([4]BI). |
Priority Level | IIR Bits | Interrupt Type | Interrupt Source | Event That Clears Interrupt | |||
---|---|---|---|---|---|---|---|
3 | 2 | 1 | 0 | ||||
None | 0 | 0 | 0 | 1 | None | None | None |
1 | 0 | 1 | 1 | 0 | Receiver line status | Overrun error, parity error, framing error, or break is detected. | For an overrun error, reading the line status register UART_LSR1, clears the interrupt. For a parity error, framing error, or break, the interrupt is cleared only after all the erroneous data have been read. |
2 | 0 | 1 | 0 | 0 | Receiver data-ready | Non-FIFO mode: Receiver data is ready. | Non-FIFO mode: The receiver buffer register (RBR) is read. |
FIFO mode: Trigger level reached. If four character times pass with no access of the FIFO, the interrupt is asserted again. | FIFO mode: The FIFO drops below the trigger level. (1) | ||||||
2 | 1 | 1 | 0 | 0 | Receiver time-out | FIFO mode only: No characters have been removed from or input to the receiver FIFO during the last four character times and there is at least one character in the receiver FIFO during this time. | One
of the following events:
|
3 | 0 | 0 | 1 | 0 | Transmitter holding register empty | Non-FIFO mode: Transmitter holding register (THR) is empty. | A character is written to the transmitter holding register (UART_RBR_TBR) or the interrupt identification register (UART_INT_FIFO) is read. |
FIFO mode: Transmitter FIFO is empty. |