14. Extended interrupt and event controller (EXTI)
The Extended interrupt and event controller (EXTI) manages the individual CPU and system wakeup through configurable and direct event inputs. It provides wakeup requests to the power control, and generates an interrupt request to the CPUs interrupt controller and events to the CPUs event input. For each CPU an additional event generation block (EVG) is needed to generate the CPU event signal.
The EXTI wakeup requests allow the system to be woken up from STOP modes, and the CPU to be woken up from the CSTOP and CSTANDBY modes.
The interrupt request and event request generation can also be used in RUN modes.
14.1 EXTI main features
The EXTI main features are the following:
- • 49 input events supported
- • Two CPUs supported
- • All event inputs allow to wake up the system
- • Events which do not have an associated wakeup flag in the peripheral, have a flag in the EXTI and generate an interrupt to the CPU from the EXTI
- • Some events can be used to generate a CPU wakeup event
The asynchronous event inputs are classified in two groups:
- • Configurable events (signals from I/Os or peripherals able to generate a pulse)
- – Configurable events have the following features:
- - Selectable active trigger edge
- - Interrupt pending status register bit.
- - Individual interrupt and event generation mask, used for conditioning the CPU wakeup, interrupt and event generation
- - SW trigger possibility
- – Configurable events have the following features:
- • Direct events (interrupt and wakeup sources from peripherals having an associated flag which requiring to be cleared in the peripheral)
- – Direct events have the following features:
- - Fixed rising edge active trigger
- - No interrupt pending status register bit in the EXTI (the interrupt pending status flag is provided by the peripheral generating the event)
- - Individual interrupt and event generation mask, used for conditioning the CPU wakeup and event generation
- - No SW trigger possibility
- – Direct events have the following features:
14.2 EXTI block diagram
The EXTI consists of a register block accessed via an AHB interface, the event input Trigger block, and the masking block as shown in Figure 29 .
The register block contains all the EXTI registers.
The event input trigger block provides event input edge trigger logic.
The masking block provides the event input distribution to the different wakeup, interrupt and event outputs, and the masking of these.
Figure 29. EXTI block diagram

The diagram illustrates the internal structure of the EXTI block. On the left, 'Peripherals' are connected to the 'Event Trigger' block via 'Wakeups' and 'Interrupts'. The 'Event Trigger' also receives 'Direct event(x)' or 'Configurable event(y)' signals. The 'Event Trigger' sends 'events' to the 'Masking' block. The 'Masking' block is connected to 'Registers' and has multiple output paths. One path goes to 'PWR' via 'sys_wakeup', 'c1_wakeup', 'c(m)_wakeup', and 'it_exti_per(y)' signals. Another path goes to 'CPU1' and 'CPU(m)' via 'c1_evt_exti', 'c1_evt_rst', 'c(m)_evt_exti', and 'c(m)_evt_rst' signals. These signals pass through 'Pulse' and 'EVG' blocks, which also receive 'c1_fclk' and 'c(m)_fclk' signals. The 'EVG' blocks output 'c1_event', 'c(m)_event', 'c1_fclk', and 'c(m)_fclk' signals to the CPUs. The 'Registers' block is connected to the 'AHB interface' and receives 'hclk' signals. A note at the bottom left states: '* it_exti_per(y) are only available for Configurable events (y)'. The diagram is labeled 'MS44723V1' at the bottom right.
Table 57. EXTI pin overview
| Pin name | I/O | Description |
|---|---|---|
| AHB interface | I/O | EXTI register bus interface. When one event is configured to allow security, the AHB interface supports secure accesses. |
| hclk | I | AHB bus clock and EXTI system clock. |
| Configurable event(y) | I | Asynchronous wakeup events from peripherals that do not have an associated interrupt and flag in the peripheral. |
| Direct event(x) | I | Synchronous and asynchronous wakeup events from peripherals having an associated interrupt and flag in the peripheral. |
| it_exti_per (y) | O | Interrupts to the CPU1 to CPU(m) associated with Configurable event (y). |
| c(m)_evt_exti | O | High level sensitive event output for CPU(m) synchronous to hclk. (m= 1 to 2) |
| c(m)_evt_rst | I | Asynchronous reset input to clear c(m)_evt_exti. (m= 1 to 2) |
| sys_wakeup | O | Asynchronous system wakeup request to PWR for ck_sys and hclk. |
| c(m)_wakeup | O | Wakeup request to PWR for CPU(m), synchronous to hclk. (m= 1 to 2) |
Table 58. EVG pin overview
| Pin name | I/O | Description |
|---|---|---|
| c_fclk | I | CPU free running clock. |
| c_evt_in | I | High level sensitive Events input from EXTI, asynchronous to CPU clock. |
| c_event | O | Event pulse, synchronous to CPU clock. |
| c_evt_rst | O | Event reset signal, synchronous to CPU clock. |
14.2.1 EXTI connections between peripherals and CPU
The peripherals able to generate wakeup or interrupt events when the system is in STOP mode or a CPU is in CSTOP mode are connected to the EXTI.
- • Peripheral wakeup signals that generate a pulse or which do not have an interrupt status bits in the peripheral, are connected to an EXTI configurable event input. For these events the EXTI provides a status pending bit that has to be cleared. It is the EXTI interrupt associated with the status bit that will interrupt the CPU.
- • Peripheral interrupt and wakeup signals that have a status bit in the peripheral that has to be cleared in the peripheral, are connected to an EXTI direct event input. There is no status pending bit within the EXTI. The interrupt or wakeup is cleared by the CPU in the peripheral. It is the peripheral interrupt that will interrupt the CPU directly.
The EXTI configurable event interrupts are connected to the respective interrupt controller of each CPU(m).
The dedicated EXTI/EVG CPU(m) event is connected to the respective CPU(m) rxeiv input.
The EXTI CPU(m) wakeup signals are connected to the PWR block, and are used to wake up the system and CPU(m) sub-system bus clocks.
14.3 EXTI functional description
Depending on the EXTI event input type and wakeup target(s), different logic implementations are used. The applicable features are controlled from register bits:
- Active trigger edge enable, by rising edge selection
EXTI rising trigger selection register (EXTI_RTSR1) ,
EXTI rising trigger selection register (EXTI_RTSR2) ,
and falling edge selection
EXTI falling trigger selection register (EXTI_FTSR1) ,
EXTI falling trigger selection register (EXTI_FTSR2) . - Software trigger, by
EXTI software interrupt event register (EXTI_SWIER1) ,
EXTI software interrupt event register (EXTI_SWIER2) . - Interrupt pending flag, by
EXTI pending register (EXTI_PR1) ,
EXTI pending register (EXTI_PR2) . - CPU wakeup and interrupt enable, by
EXTI CPU wakeup with interrupt mask register (EXTI_IMR1) ,
EXTI CPU2 wakeup with interrupt mask register (EXTI_C2IMR1) ,
EXTI CPU wakeup with interrupt mask register (EXTI_IMR2) ,
EXTI CPU2 wakeup with interrupt mask register (EXTI_C2IMR2) . - CPU wakeup and event enable, by
EXTI CPU wakeup with event mask register (EXTI_EMR1) ,
EXTI CPU2 wakeup with event mask register (EXTI_C2EMR1) ,
EXTI CPU wakeup with event mask register (EXTI_EMR2) ,
EXTI CPU2 wakeup with event mask register (EXTI_C2EMR2) .
Table 59. EXTI event input configurations and register control
| Event input type | Logic implementation | EXTI_RTSR | EXTI_FTSR | EXTI_SWIER | EXTI_PR | EXTI_CnIMR | EXTI_CnEMR (1) |
|---|---|---|---|---|---|---|---|
| Configurable | Configurable event input wakeup logic | x | x | x | x | x | x |
| Direct | Direct event input wakeup logic | - | - | - | - | x | x |
1. Only for input events with configuration “rxev generation” enabled.
14.3.1 EXTI configurable event input wakeup
Figure 30 is a detailed representation of the logic associated with configurable event inputs which will wake up the CPU(m) sub-system bus clocks and generated an EXTI pending flag and interrupt to the CPU(m) and or a CPU(m) wakeup event.
Figure 30. Configurable event trigger logic CPU wakeup

- 1. Only for the input events that support CPU rxeu generation \( c(n)\_event \) .
The software interrupt event register allows to trigger configurable events by software, writing the corresponding register bit, irrespective of the edge selection setting.
The rising edge and falling edge selection registers allow to enable and select the configurable event active trigger edge or both edges.
Each CPU has its dedicated interrupt mask register and a dedicated event mask registers. The enabled event allows to generate an event on the CPU. All events for a CPU are OR-ed together into a single CPU event signal. The event pending register (EXTI_PR) is not set for an unmasked CPU event.
The configurable events have unique interrupt pending request registers, shared by the CPUs. The pending register is only set for an unmasked interrupt. Each configurable event provides a common interrupt to all CPUs. The configurable event interrupts need to be acknowledged by software in the EXTI_PR register.
When a CPU(m) interrupt or CPU(m) event is enabled the asynchronous edge detection circuit is reset by the clocked delay and rising edge detect pulse generator. This guarantees that the EXTI hclk clock is woken up before the asynchronous edge detection circuit is reset.
Note: A detected configurable event interrupt pending request, may be cleared by any CPU. The system is unable to enter into Low-power modes as long as an interrupt pending request is active.
14.3.2 EXTI direct event input wakeup
Figure 31 is a detailed representation of the logic associated with direct event inputs waking up the system.
The direct events do not have an associated EXTI interrupt. The EXTI only wakes up the system and CPU sub-system clocks and may generate a CPU wakeup event. The peripheral synchronous interrupt, associated with the direct wakeup event wakes up the CPU.
The EXTI direct event is able to generate a CPU event. This CPU event wakes up the CPU. The CPU event may occur before the associated Peripheral interrupt flag is set.
Note: The direct events are cleared in the peripheral generating the event. When a direct event input enabled by CPU(m) is cleared by another CPU before the CPU(m) clock is running, the CPU(m) no longer receives a CPU(m) interrupt nor a CPU(m) event and does not wake up. However the system stays in RUN mode, generating the CPU(m) clock. For this reason CPU(m) direct events must NOT be cleared by the other CPU.
Figure 31. Direct event trigger logic CPU wakeup

- 1. Only for the input events that support CPU rxev generation c(n)_event.
14.4 EXTI functional behavior
The direct event inputs are enabled in the respective peripheral generating the wakeup event. The configurable events are enabled by enabling at least one of the trigger edges.
Once an event input is enabled, the generation of a CPU(m) wakeup is conditioned by the CPU(m) interrupt mask and CPU(m) event mask.
Table 60. Masking functionality
| CPU interrupt enable EXTI_CnIMR.IMn | CPU event enable EXTI_CnEMR.EMn | Configurable event inputs EXTI_PR.PIFn | exti(n) interrupt (1) | CPU(m) event | CPU(m) wakeup |
|---|---|---|---|---|---|
| 0 for all CPUs | 0 | No | Masked | Masked | Masked |
| 1 | Masked | Yes | Yes | ||
| 1 for any CPU | 0 | Status latched | Yes | Masked | Yes (2) |
| 1 | Yes | Yes | Yes |
- 1. The single exti(n) interrupt goes to all CPUs. If no interrupt is required for CPU(m), the exti(n) interrupt must be masked in the CPU(m) interrupt controller.
- 2. Only if CPU(m) interrupt is enabled in EXTI_CnIMR.IMn.
For configurable event inputs, when the enabled edge(s) occur on the event input, an event request is generated. When the associated CPU(m) interrupt is unmasked the corresponding pending bit EXTI_PR.PIFn is set and the CPU(m) sub-system is woken up and CPU interrupt signal is activated. The EXTI_PR.PIFn pending bit must be cleared by software writing, it to '1'. This clears the CPU interrupt.
For direct event inputs, when enabled in the associated peripheral, an event request is generated on the rising edge only. There is no corresponding CPU pending bit in the EXTI. When the associated CPU(m) interrupt is unmasked the corresponding CPU sub-system is woken up. The CPU is woken up (interrupted) by the peripheral synchronous interrupt.
The CPU(m) event must be unmasked to generate an event. When the enabled edge(s) occur on the event input a CPU(m) event pulse is generated. There is no event pending bit.
For the configurable event inputs an event request can be generated by software when writing a '1' in the software interrupt/event register EXTI_SWIER, generating a rising edge on the event. The edge event pending bit is set in EXTI_PR, irrespective of the setting in EXTI_RTSR.
14.5 EXTI registers
The EXTI register map is divided as detailed in Table 61 .
Table 61. EXTI register map sections
| Address | Description |
|---|---|
| 0x000 - 0x01C | General configurable event [31:0] configuration |
| 0x020 - 0x03C | General configurable event [63:32] configuration |
| 0x040 - 0x05C | General configurable event [95:64] configuration |
| 0x080 - 0x0BC | CPU1 input event configuration |
| 0x0C0 - 0x0FC | CPU2 input event configuration |
All the registers can be accessed with word (32-bit), half-word (16-bit) and byte (8-bit) access.
14.5.1 EXTI rising trigger selection register (EXTI_RTSR1)
Address offset: 0x000
Reset value: 0x0000 0000
Contains only register bits for configurable events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | RT19 | RT18 | RT17 | RT16 |
| rw | rw | rw | rw | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RT15 | RT14 | RT13 | RT12 | RT11 | RT10 | RT9 | RT8 | RT7 | RT6 | RT5 | RT4 | RT3 | RT2 | RT1 | RT0 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:20 Reserved, must be kept at reset value.
Bits 19:0 RT[19:0] : Rising trigger event configuration bit of configurable event input x (x = 19 to 0) (1) .
0: Rising trigger disabled (for event and Interrupt) for input line
1: Rising trigger enabled (for event and Interrupt) for input line
- 1. The configurable event inputs are edge triggered, no glitch must be generated on these inputs. If a rising edge on the configurable event input occurs during writing of the register, the associated pending bit is not set. Rising and falling edge triggers can be set for the same configurable event input. In this case, both edges generate a trigger.
14.5.2 EXTI falling trigger selection register (EXTI_FTSR1)
Address offset: 0x004
Reset value: 0x0000 0000
Contains only register bits for configurable events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FT19 | FT18 | FT17 | FT16 |
| rw | rw | rw | rw | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| FT15 | FT14 | FT13 | FT12 | FT11 | FT10 | FT9 | FT8 | FT7 | FT6 | FT5 | FT4 | FT3 | FT2 | FT1 | FT0 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:20 Reserved, must be kept at reset value.
Bits 19:0 FT[19:0] : Falling trigger event configuration bit of configurable event input x (x = 19 to 0) (1) .
0: Falling trigger disabled (for event and Interrupt) for input line
1: Falling trigger enabled (for event and Interrupt) for input line.
- 1. The configurable event inputs are edge triggered, no glitch must be generated on these inputs. If a falling edge on the configurable event input occurs during writing of the register, the associated pending bit is not set. Rising and falling edge triggers can be set for the same configurable event input. In this case, both edges generate a trigger.
14.5.3 EXTI software interrupt event register (EXTI_SWIER1)
Address offset: 0x008
Reset value: 0x0000 0000
Contains only register bits for configurable events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SWI19 | SWI18 | SWI17 | SWI16 |
| rw | rw | rw | rw | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SWI15 | SWI14 | SWI13 | SWI12 | SWI11 | SWI10 | SWI9 | SWI8 | SWI7 | SWI6 | SWI5 | SWI4 | SWI3 | SWI2 | SWI1 | SWI0 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:20 Reserved, must be kept at reset value.
Bits 19:0 SWI[19:0] : Software interrupt on event x (x = 19 to 0)
A software interrupt is generated independent from the setting in EXTI_RTSR and EXTI_FTSR. Will always return 0 when read.
0: Writing 0 has no effect.
1: Writing a 1 to this bit will trigger a rising edge event on event x.
This bit is auto cleared by HW.
14.5.4 EXTI pending register (EXTI_PR1)
Address offset: 0x00C
Reset value: 0x0000 0000
Contains only register bits for configurable events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PIF19 | PIF18 | PIF17 | PIF16 |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PIF15 | PIF14 | PIF13 | PIF12 | PIF11 | PIF10 | PIF9 | PIF8 | PIF7 | PIF6 | PIF5 | PIF4 | PIF3 | PIF2 | PIF1 | PIF0 |
| rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 | rc_w1 |
Bits 31:20 Reserved, must be kept at reset value.
Bits 19:0 PIF[19:0] : configurable event inputs x (x = 19 to 0) Pending bit.
0: No trigger request occurred
1: Selected trigger request occurred
This bit is set when the selected edge event or an EXTI_SWIER software trigger arrives on the configurable event line. This bit is cleared by writing a 1 into the bit.
14.5.5 EXTI rising trigger selection register (EXTI_RTSR2)
Address offset: 0x020
Reset value: 0x0000 0000
Contains only register bits for configurable events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | RT41 | RT40 | Res. | Res. | Res. | Res. | Res. | Res. | RT33 | Res. |
| rw | rw | rw |
Bits 31:10 Reserved, must be kept at reset value.
Bit 9 RT41 : Rising trigger event configuration bit of configurable event input 41 (1)
0: Rising trigger disabled (for event and interrupt) for input line
1: Rising trigger enabled (for event and interrupt) for input line
Bit 8 RT40 : Rising trigger event configuration bit of configurable event input 40 (1)
0: Rising trigger disabled (for event and interrupt) for input line
1: Rising trigger enabled (for event and interrupt) for input line
Bits 7:2 Reserved, must be kept at reset value.
Bit 1 RT33 : Rising trigger event configuration bit of configurable event input 33 (1)
0: Rising trigger disabled (for event and interrupt) for input line
1: Rising trigger enabled (for event and interrupt) for input line
Bit 0 Reserved, must be kept at reset value.
- 1. The configurable event inputs are edge triggered, no glitch must be generated on these inputs. If a rising edge on the configurable event input occurs during writing of the register, the associated pending bit is not set. Rising and falling edge triggers can be set for the same configurable Event input. In this case, both edges generate a trigger.
14.5.6 EXTI falling trigger selection register (EXTI_FTSR2)
Address offset: 0x024
Reset value: 0x0000 0000
Contains only register bits for configurable events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | FT41 | FT40 | Res. | Res. | Res. | Res. | Res. | Res. | FT33 | Res. |
| rw | rw | rw |
Bits 31:10 Reserved, must be kept at reset value.
Bit 9 FT41 : Falling trigger event configuration bit of configurable event input 41 (1)
0: Falling trigger disabled (for event and interrupt) for input line
1: Falling trigger enabled (for event and interrupt) for input line
Bit 8 FT40 : Falling trigger event configuration bit of configurable event input 40 (1)
0: Falling trigger disabled (for event and interrupt) for input line
1: Falling trigger enabled (for event and interrupt) for input line
Bits 7:2 Reserved, must be kept at reset value.
Bit 1 FT33 : Falling trigger event configuration bit of configurable event input 33 (1)
0: Falling trigger disabled (for event and interrupt) for input line
1: Falling trigger enabled (for event and interrupt) for input line
Bit 0 Reserved, must be kept at reset value.
- 1. The configurable event inputs are edge triggered, no glitch must be generated on these inputs. If a falling edge on the configurable event input occurs during writing of the register, the associated pending bit is not set. Rising and falling edge triggers can be set for the same configurable event input. In this case, both edges generate a trigger.
14.5.7 EXTI software interrupt event register (EXTI_SWIER2)
Address offset: 0x028
Reset value: 0x0000 0000
Contains only register bits for configurable events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | SWI41 | SWI40 | Res. | Res. | Res. | Res. | Res. | Res. | SWI33 | Res. |
| rw | rw | rw |
Bits 31:10 Reserved, must be kept at reset value.
Bit 9 SWI41 : Software interrupt on event 41
A software interrupt is generated independent from the setting in EXTI_RTSR and EXTI_FTSR. Will always return 0 when read.
0: Writing 0 has no effect.
1: Writing a 1 to this bit will trigger a rising edge event on event 41.
This bit is auto cleared by HW.
Bit 8 SWI40 : Software interrupt on event 40
A software interrupt is generated independent from the setting in EXTI_RTSR and EXTI_FTSR. Will always return 0 when read.
0: Writing 0 has no effect.
1: Writing a 1 to this bit will trigger a rising edge event on event 40.
This bit is auto cleared by HW.
Bits 7:2 Reserved, must be kept at reset value.
Bit 1 SWI33 : Software interrupt on event 33
A software interrupt is generated independent from the setting in EXTI_RTSR and EXTI_FTSR. Will always return 0 when read.
0: Writing 0 has no effect.
1: Writing a 1 to this bit will trigger a rising edge event on event 33.
This bit is auto cleared by HW.
Bit 0 Reserved, must be kept at reset value.
14.5.8 EXTI pending register (EXTI_PR2)
Address offset: 0x02C
Reset value: 0x0000 0000
Contains only register bits for configurable events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | PIF41 | PIF40 | Res. | Res. | Res. | Res. | Res. | Res. | PIF33 | Res. |
| rc_w1 | rc_w1 | rc_w1 |
Bits 31:10 Reserved, must be kept at reset value.
Bit 9 PIF41 : configurable event inputs 41 pending bit
0: No trigger request occurred
1: selected trigger request occurred
This bit is set when the selected edge event or an EXTI_SWIER software trigger arrives on the configurable event line. This bit is cleared by writing a 1 into the bit.
Bit 8 PIF40 : configurable event inputs 40 pending bit
0: No trigger request occurred
1: selected trigger request occurred
This bit is set when the selected edge event or an EXTI_SWIER software trigger arrives on the configurable event line. This bit is cleared by writing a 1 into the bit.
Bits 7:2 Reserved, must be kept at reset value.
Bit 1 PIF33 : configurable event inputs 33 pending bit
0: No trigger request occurred
1: selected trigger request occurred
This bit is set when the selected edge event or an EXTI_SWIER software trigger arrives on the configurable event line. This bit is cleared by writing a 1 into the bit.
Bit 0 Reserved, must be kept at reset value.
14.5.9 EXTI CPU wakeup with interrupt mask register (EXTI_IMR1)
Address offset: 0x080
Reset value: 0x7FC0 0000
Contains register bits for configurable events and direct events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | IM30 | IM29 | Res. | IM27 | IM26 | Res. | IM24 | Res. | IM22 | Res. | Res. | IM19 | IM18 | IM17 | IM16 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| IM15 | IM14 | IM13 | IM12 | IM11 | IM10 | IM9 | IM8 | IM7 | IM6 | IM5 | IM4 | IM3 | IM2 | IM1 | IM0 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31, 28, 25, 23, Reserved, must be kept at reset value.
21:20
Bits 30:29, 27:26, IM[30:29, 27:26, 24, 22, 19:0] : CPU wakeup with interrupt mask on event input x (x = 30:29, 27:26, 24, 22, 19:0) (1)(2) .
0: Wakeup with interrupt request from Line x is masked
1: Wakeup with interrupt request from Line x is unmasked
- 1. The reset value for configurable event inputs is set to '0' in order to disable the interrupt by default.
- 2. The reset value for direct event inputs is set to '1' in order to enable the interrupt by default.
14.5.10 EXTI CPU2 wakeup with interrupt mask register (EXTI_C2IMR1)
Address offset: 0x0C0
Reset value: 0x7FC0 0000
Contains register bits for configurable events and direct events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | IM30 | IM29 | Res. | IM27 | IM26 | Res. | IM24 | Res. | IM22 | Res. | Res. | IM19 | IM18 | IM17 | IM16 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| IM15 | IM14 | IM13 | IM12 | IM11 | IM10 | IM9 | IM8 | IM7 | IM6 | IM5 | IM4 | IM3 | IM2 | IM1 | IM0 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31, 28, 25, 23, Reserved, must be kept at reset value.
21:20
Bits 30:29, 27:26, IM[30:29, 27:26, 24, 22, 19 :0] : CPU2 wakeup with interrupt mask on event input x (x = 30:29, 24, 22, 19:0 27:26, 24, 22, 19 to 0) (1)(2) .
0: Wakeup with interrupt request from Line x is masked
1: Wakeup with interrupt request from Line x is unmasked
- 1. The reset value for configurable event inputs is set to '0' in order to disable the interrupt by default.
- 2. The reset value for direct event inputs is set to '1' in order to enable the interrupt by default.
14.5.11 EXTI CPU wakeup with event mask register (EXTI_EMR1)
Address offset: 0x084
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | EM19 | EM18 | EM17 | Res. |
| rw | rw | rw | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EM15 | EM14 | EM13 | EM12 | EM11 | EM10 | EM9 | EM8 | EM7 | EM6 | EM5 | EM4 | EM3 | EM2 | EM1 | EM0 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:20 Reserved, must be kept at reset value.
Bits 19:17 EM[19:17] : CPU wakeup with event generation mask on event input x (x = 19 to 17)
0: Wakeup with event generation from Line x is masked
1: Wakeup with event generation from Line x is unmasked
Bit 16 Reserved, must be kept at reset value.
Bits 15:0 EM[15:0] : CPU wakeup with event generation mask on event input x (x = 15 to 0)
0: Wakeup with event generation from Line x is masked
1: Wakeup with event generation from Line x is unmasked
14.5.12 EXTI CPU2 wakeup with event mask register (EXTI_C2EMR1)
Address offset: 0x0C4
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | EM19 | EM18 | EM17 | Res. |
| rw | rw | rw | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EM15 | EM14 | EM13 | EM12 | EM11 | EM10 | EM9 | EM8 | EM7 | EM6 | EM5 | EM4 | EM3 | EM2 | EM1 | EM0 |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:20 Reserved, must be kept at reset value.
Bits 19:17 EM[19:17] : CPU2 wakeup with event generation mask on event input x (x = 19 to 17)
0: Wakeup with event generation from Line x is masked
1: Wakeup with event generation from Line x is unmasked
Bit 16 Reserved, must be kept at reset value.
Bits 15:0 EM[ \( x \) ]:0 : CPU2 wakeup with event generation mask on event input \( x \) ( \( x = 15 \) to 0)
0: Wakeup with event generation from Line \( x \) is masked
1: Wakeup with event generation from Line \( x \) is unmasked
14.5.13 EXTI CPU wakeup with interrupt mask register (EXTI_IMR2)
Address offset: 0x090
Reset value: 0x0001 FCFD
Contains register bits for configurable events and direct events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | IM48 |
| rw | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | IM46 | IM45 | IM44 | Res. | IM42 | IM41 | IM40 | IM39 | IM38 | IM37 | IM36 | Res. | Res. | IM33 | Res. |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:17, 15, 11, Reserved, must be kept at reset value.
3:2, 0
Bits 16, 14:12, IM[48, 46:44, 42:36, 33] : CPU wakeup with interrupt mask on event input \( x \) ( \( x = 48, 46 \) to 44, 10:4, 1 42 to 36, 33) (1)(2)
0: Wakeup with interrupt request from Line \( x \) is masked
1: Wakeup with interrupt request from Line \( x \) is unmasked
- 1. The reset value for configurable event inputs is set to '0' in order to disable the interrupt by default.
- 2. The reset value for direct event inputs is set to '1' in order to enable the interrupt by default.
14.5.14 EXTI CPU2 wakeup with interrupt mask register (EXTI_C2IMR2)
Address offset: 0x0D0
Reset value: 0x0001 FCFD
Contains register bits for configurable events and direct events.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | IM48 |
| rw | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | IM46 | IM45 | IM44 | Res. | IM42 | IM41 | IM40 | IM39 | IM38 | IM37 | IM36 | Res. | Res. | IM33 | Res. |
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:17, 15, 11, Reserved, must be kept at reset value.
3:2, 0
Bits 16, 14:12, 10:4, IM[48, 46:44, 42:36, 33] : CPU wakeup with interrupt mask on event input \( x \) ( \( x = 48, 46 \) to 44, 1 42 to 36, 33) (1)(2)
0: Wakeup with interrupt request from Line \( x \) is masked
1: Wakeup with interrupt request from Line \( x \) is unmasked
- 1. The reset value for configurable event inputs is set to '0' in order to disable the interrupt by default.
- 2. The reset value for direct event inputs is set to '1' in order to enable the interrupt by default.
14.5.15 EXTI CPU wakeup with event mask register (EXTI_EMR2)
Address offset: 0x094
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | EM41 | EM40 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| rw | rw |
Bits 31:10 Reserved, must be kept at reset value.
Bit 9 EM41 : CPU wakeup with event generation mask on event input 41
0: Wakeup with event generation from Line 41 is masked
1: Wakeup with event generation from Line 41 is unmasked
Bit 8 EM40 : CPU wakeup with event generation mask on event input 40.
0: Wakeup with event generation from Line 40 is masked
1: Wakeup with event generation from Line 40 is unmasked
Bits 7:0 Reserved, must be kept at reset value.
14.5.16 EXTI CPU2 wakeup with event mask register (EXTI_C2EMR2)
Address offset: 0x0D4
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | EM41 | EM40 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| rw | rw |
Bits 31:10 Reserved, must be kept at reset value.
Bit 9 EM41 : CPU2 wakeup with event generation mask on event input 41
0: Wakeup with event generation from Line 41 is masked
1: Wakeup with event generation from Line 41 is unmasked
Bit 8 EM40 : CPU2 wakeup with event generation mask on event input 40.
0: Wakeup with event generation from Line 40 is masked
1: Wakeup with event generation from Line 40 is unmasked
Bits 7:0 Reserved, must be kept at reset value.
14.5.17 EXTI register map
The following table gives the EXTI register map and the reset values.
Table 62. EXTI register map and reset values
| Offset | Register | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x000 | EXTI_RTSR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | RT[19:0] | ||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||
| 0x004 | EXTI_FTSR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FT[19:0] | ||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||
| 0x008 | EXTI_SWIER1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SW[19:0] | ||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||
| 0x00C | EXTI_RPR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PIF[19:0] | ||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||
| 0x010-0x01C | Reserved | Res. | ||||||||||||||||||||||||||||||||
| 0x020 | EXTI_RTSR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | RT [41:40] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | RT33 | Res. | |
| Reset value | 0 | 0 | 0 | |||||||||||||||||||||||||||||||
| 0x024 | EXTI_FTSR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FT [41:40] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FT33 | Res. | |
| Reset value | 0 | 0 | 0 | |||||||||||||||||||||||||||||||
| 0x028 | EXTI_SWIER2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SWI [41:40] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SWI33 | Res. | |
| Reset value | 0 | 0 | 0 | |||||||||||||||||||||||||||||||
| 0x02C | EXTI_PR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PIF [41:40] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PIF33 | Res. | |
| Reset value | 0 | 0 | 0 | |||||||||||||||||||||||||||||||
| 0x030-0x07C | Reserved | Res. | ||||||||||||||||||||||||||||||||
| 0x080 | EXTI_IMR1 | Res. | IM [30:29] | Res. | IM [27:26] | Res. | IM 24 | Res. | IM 22 | Res. | Res. | IM[19:0] | ||||||||||||||||||||||
| Reset value | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||
| 0x084 | EXTI_EMR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | EM[19:17] | Res. | EM[15:0] | ||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||
| 0x088-0x08C | Reserved | Res. | ||||||||||||||||||||||||||||||||
| 0x090 | EXTI_IMR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | IM[48] | Res. | IM[46:44] | Res. | Res. | IM [42:36] | Res. | Res. | IM[33] | Res. | ||||||||
| Reset value | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | ||||||||||||||||||||||
| 0x094 | EXTI_EMR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | EM [41:40] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |
| Reset value | 0 | 0 | ||||||||||||||||||||||||||||||||
| 0x098-0x0BC | Reserved | Res. | ||||||||||||||||||||||||||||||||
Table 62. EXTI register map and reset values (continued)
| Offset | Register | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x0C0 | EXTI_C2IMR1 | Res. | IM [30:29] | Res. | IM [27:26] | Res. | IM 24 | Res. | IM 22 | Res. | Res. | IM[19:0] | |||||||||||||||||||||
| Reset value | 1 1 | 1 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||
| 0x0C4 | EXTI_C2EMR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | EM[19:17] | Res. | EM[15:0] | ||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||
| 0x0C8-0x0CC | Reserved | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 0x0D0 | EXTI_C1MR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | IM 48 | Res. | IM[46:44] | IM [42:36] | Res. | Res. | IM 33 | Res. | |||||||||
| Reset value | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | |||||||||||||||||||||
| 0x0D4 | EXTI_C2EMR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | EM [41:40] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |
| Reset value | 0 | 0 | |||||||||||||||||||||||||||||||
Refer to Section 2.2 on page 56 for the register boundary addresses.