SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The general-purpose interface has 16 interrupt lines (two interrupt lines per GPIO module instance). The 16 interrupt signals are GPIOi_IRQ_1 (used by the MPU, DSP and IPU subsystems) and GPIOi_IRQ_2 (used by the CROSSBAR), where i = 1 to 8.
Synchronous interrupt requests from each channel are processed by two identical interrupt generation submodules used independently by the CROSSBAR subsystem on one side and by the MPU, IPU, and DSP subsystems on the other side. Each submodule controls its own synchronous interrupt request line and has its own interrupt-enable registers (GPIOi.GPIO_IRQSTATUS_SET_0, GPIOi.GPIO_IRQSTATUS_SET_1, GPIOi.GPIO_IRQSTATUS_CLR_0, and GPIOi.GPIO_IRQSTATUS_CLR_1) and interrupt status registers (GPIOi.GPIO_IRQSTATUS_RAW_0 and GPIOi.GPIO_IRQSTATUS_RAW_1). The interrupt-enable register selects the channel(s) considered for the interrupt request generation, and the interrupt status register determines which channel(s) activate the interrupt request. Event detection on GPIO channels is reflected in the interrupt status registers independent of the content of the interrupt-enable registers.
In active mode, when the GPIO configuration registers are set to enable the interrupt generation (see Section 27.4.6, General-Purpose Interface Interrupt and Wake-Up Requests), a synchronous path samples the transitions and levels on the input GPIO with the internally gated interface clock (see Section 27.4.5.2.4, Module Power Saving). When an event matches the programmed settings (see Section 27.4.6, General-Purpose Interface Interrupt and Wake-Up Requests), the corresponding bit in the interrupt status register (GPIO_IRQSTATUS_RAW_x [where x = 0 or 1]) is set to 1, and on the following interface clock cycle, interrupt lines 1 and/or 2 are activated (depending on the interrupt-enable registers GPIO_IRQSTATUS_SET_x [where x = 0 or 1]).
Because of the sampling operation, the minimum pulse width on the input GPIO to trigger a synchronous interrupt request is two times the internally gated interface clock period (that is, N times the interface clock period; see Section 27.4.5.2.4, Module Power Saving). This minimum pulse width must be met before and after any expected level transition detection. Level detection requires the selected level to be stable for at least two times the internally gated interface clock period to trigger a synchronous interrupt.
Because the module is synchronous, latency is minimal between the expected event occurrence and the activation of the interrupt line(s). This latency must not exceed three internally gated interface clock cycles plus two interface clock cycles when the debounce feature is not used.
When the debounce feature is active, the latency depends on the value of the debouncing time register (GPIOi.GPIO_DEBOUNCINGTIME) (see Section 27.4.3, General-Purpose Interface Clock Configuration) and is less than three internally gated interface clock cycles plus two interface clock cycles plus GPIOi.GPIO_DEBOUNCINGTIME register value debounce clock cycles plus three debounce clock cycles.
Synchronous interrupt request line 1 is default mapped on the MPU, IPU, DSP subsystems.
Synchronous interrupt request line 2 is mapped on the CROSSBAR.
Figure 27-10 is an overview of the interrupt request generation.