20. Extended interrupt and event controller (EXTI)

The Extended Interrupt and event controller (EXTI) manages wakeup through configurable and direct event inputs. It provides wakeup requests to the Power Control, and generates interrupt requests to the CPU NVIC and to the D3 domain DMAMUX2, and events to the CPU event input.

The EXTI wakeup requests allow the system to be woken up from Stop mode, and the CPU to be woken up from CStop mode.

Both the interrupt request and event request generation can also be used in Run modes.

20.1 EXTI main features

The EXTI main features are the following:

The asynchronous event inputs are classified in 2 groups:

20.2 EXTI block diagram

As shown in Figure 90 , the EXTI consists of a Register block accessed via an APB interface, an Event input Trigger block, and a Masking block.

The Register block contains all EXTI registers.

The Event input trigger block provides Event input edge triggering logic.

The Masking block provides the Event input distribution to the different wakeup, interrupt and event outputs, and their masking.

Figure 90. EXTI block diagram

Figure 90. EXTI block diagram. The diagram shows the internal structure of the EXTI block. On the left, 'Peripherals' are connected to the 'Event trigger' block via 'Configurable event(x)' and 'Direct event(x)' inputs. The 'Event trigger' block is connected to the 'Registers' block and the 'Masking' block. The 'Registers' block is connected to an 'APB interface'. The 'Masking' block is connected to the 'Registers' block and the 'Event trigger' block. The 'Masking' block outputs are connected to the 'CPU' (via 'cpu_it_exti_per(x)', 'cpu_event', and 'rxev'), 'PWR' (via 'exti_cpu_wkup' and 'exti_d3_wkup'), and 'D3' (via 'd3_it_exti_per(x)' and 'd3_pendclear_in[3:0]'). The 'D3' block has a feedback signal 'd3_pendclear_in[3:0]' back to the 'Masking' block. The entire EXTI block is labeled 'EXTI' at the bottom left. The diagram is labeled 'MSv41947V1' at the bottom right.
Figure 90. EXTI block diagram. The diagram shows the internal structure of the EXTI block. On the left, 'Peripherals' are connected to the 'Event trigger' block via 'Configurable event(x)' and 'Direct event(x)' inputs. The 'Event trigger' block is connected to the 'Registers' block and the 'Masking' block. The 'Registers' block is connected to an 'APB interface'. The 'Masking' block is connected to the 'Registers' block and the 'Event trigger' block. The 'Masking' block outputs are connected to the 'CPU' (via 'cpu_it_exti_per(x)', 'cpu_event', and 'rxev'), 'PWR' (via 'exti_cpu_wkup' and 'exti_d3_wkup'), and 'D3' (via 'd3_it_exti_per(x)' and 'd3_pendclear_in[3:0]'). The 'D3' block has a feedback signal 'd3_pendclear_in[3:0]' back to the 'Masking' block. The entire EXTI block is labeled 'EXTI' at the bottom left. The diagram is labeled 'MSv41947V1' at the bottom right.

20.2.1 EXTI connections between peripherals, CPU, and D3 domain

The peripherals able to generate wakeup events when the system is in Stop mode or the CPU is in CStop mode are connected to an EXTI Configurable event input or Direct Event input:

The Event inputs able to wakeup D3 for autonomous Run mode are provided with a D3 domain pending request function, that has to be cleared. This clearing request is taken care of by the signal selected by the Pending clear selection.

The CPU interrupts are connected to their respective CPU NVIC, and, similarly, the CPU event is connected to the CPU rxev input.

The EXTI Wakeup signals are connected to the PWR block, and are used to wakeup the D3 domain and/or the CPU.

The D3 domain interrupts allow the system to trigger events for D3 domain autonomous Run mode operation.

20.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:

Table 146. EXTI Event input configurations and register control (1)

Event input typeWakeup target(s)Logic implementationEXTI_RTSREXTI_FTSREXTI_SWIEREXTI_CPUIMREXTI_CPUEMREXTI_D3PMR
ConfigurableCPUConfigurable event input, CPU wakeup logicXXXXX-
Any (2)Configurable event input, Any wakeup logicX
DirectCPUDirect event input, CPU wakeup logic---XX-
Any (2)Direct event input, Any wakeup logicX

1. X indicates that functionality is available.

2. Waking-up D3 domain for autonomous Run mode, and/or CPU.

20.3.1 EXTI Configurable event input CPU wakeup

Figure 92 is a detailed representation of the logic associated with Configurable Event inputs which will always wake up the CPU.

Figure 91. Configurable event triggering logic CPU wakeup

Figure 91. Configurable event triggering logic CPU wakeup. This block diagram shows the internal logic of the EXTI (Extended Interrupt) controller. At the top, a 'Peripheral interface' block is connected to an 'APB interface'. Below it are several registers: 'Software interrupt event register', 'Falling trigger selection register', 'Rising trigger selection register', 'CPU Event mask register', 'CPU Interrupt mask register', and 'CPU Pending request register'. The 'CPU Pending request register' is connected to 'rcc_fclk_cpu'. On the left, 'Configurable Event input(x)' enters a block labeled 'EXTI'. Inside, an OR gate combines the input with the 'Software interrupt event register'. The output goes to an 'Asynchronous edge detection circuit' which has a 'rst' input. This circuit's output goes to a 'CPU Rising Edge detect Pulse generator' which has a 'Delay' block and is also connected to 'rcc_fclk_cpu'. The pulse generator's output goes to an AND gate. This AND gate also receives inputs from the 'CPU Event mask register' and 'CPU Interrupt mask register'. The output of this AND gate goes to an OR gate labeled 'CPU Event(x)'. This OR gate also receives 'Other CPU Events'. The output of 'CPU Event(x)' goes to 'cpu_event'. Below this, another AND gate combines the output of the first AND gate with the 'CPU Pending request register'. The output of this second AND gate goes to an OR gate labeled 'CPU Wakeup(x)'. This OR gate also receives 'Other CPU Wakeups'. The output of 'CPU Wakeup(x)' goes to a 'Synch' block which has a 'ck_sys' input. The output of 'Synch' goes to an OR gate labeled 'd3_wakeup'. This OR gate also receives 'D3 Wakeup(x)' and 'Other D3 Wakeups'. The output of 'd3_wakeup' goes to 'd3_wakeup'. On the far right, there are three output labels: 'cpu_it_exti_per(x)', 'cpu_event', and 'd3_wakeup'. The diagram is labeled 'MSV41948V1' at the bottom right.
Figure 91. Configurable event triggering logic CPU wakeup. This block diagram shows the internal logic of the EXTI (Extended Interrupt) controller. At the top, a 'Peripheral interface' block is connected to an 'APB interface'. Below it are several registers: 'Software interrupt event register', 'Falling trigger selection register', 'Rising trigger selection register', 'CPU Event mask register', 'CPU Interrupt mask register', and 'CPU Pending request register'. The 'CPU Pending request register' is connected to 'rcc_fclk_cpu'. On the left, 'Configurable Event input(x)' enters a block labeled 'EXTI'. Inside, an OR gate combines the input with the 'Software interrupt event register'. The output goes to an 'Asynchronous edge detection circuit' which has a 'rst' input. This circuit's output goes to a 'CPU Rising Edge detect Pulse generator' which has a 'Delay' block and is also connected to 'rcc_fclk_cpu'. The pulse generator's output goes to an AND gate. This AND gate also receives inputs from the 'CPU Event mask register' and 'CPU Interrupt mask register'. The output of this AND gate goes to an OR gate labeled 'CPU Event(x)'. This OR gate also receives 'Other CPU Events'. The output of 'CPU Event(x)' goes to 'cpu_event'. Below this, another AND gate combines the output of the first AND gate with the 'CPU Pending request register'. The output of this second AND gate goes to an OR gate labeled 'CPU Wakeup(x)'. This OR gate also receives 'Other CPU Wakeups'. The output of 'CPU Wakeup(x)' goes to a 'Synch' block which has a 'ck_sys' input. The output of 'Synch' goes to an OR gate labeled 'd3_wakeup'. This OR gate also receives 'D3 Wakeup(x)' and 'Other D3 Wakeups'. The output of 'd3_wakeup' goes to 'd3_wakeup'. On the far right, there are three output labels: 'cpu_it_exti_per(x)', 'cpu_event', and 'd3_wakeup'. The diagram is labeled 'MSV41948V1' at the bottom right.

The Software interrupt event register allows the system to trigger Configurable events by software, writing the EXTI software interrupt event register (EXTI_SWIER1) , the EXTI software interrupt event register (EXTI_SWIER2) , or the EXTI software interrupt event register (EXTI_SWIER3) register bit.

The rising edge EXTI rising trigger selection register (EXTI_RTSR1) , EXTI rising trigger selection register (EXTI_RTSR2) , EXTI rising trigger selection register (EXTI_RTSR3) , and falling edge EXTI falling trigger selection register (EXTI_FTSR1) , EXTI falling trigger selection register (EXTI_FTSR2) , EXTI falling trigger selection register (EXTI_FTSR3) selection registers allow the system to enable and select the Configurable event active trigger edge or both edges.

The devices feature dedicated interrupt mask registers, namely EXTI interrupt mask register (EXTI_CPUIMR1) and EXTI interrupt mask register (EXTI_CPUIMR2) , EXTI interrupt mask register (EXTI_CPUIMR3) , and EXTI pending register (EXTI_CPUPR1) , EXTI pending register (EXTI_CPUPR2) , EXTI pending register (EXTI_CPUPR3) for Configurable events pending request registers. The CPU pending register will only be set for an unmasked CPU interrupt. Each event provides a individual CPU interrupt to the CPU NVIC. The Configurable events interrupts need to be acknowledged by software in the EXTI_CPUPR register.

The devices feature dedicated event mask registers, i.e. EXTI event mask register (EXTI_CPUEMR1) , EXTI event mask register (EXTI_CPUEMR2) , and EXTI event mask register (EXTI_CPUEMR3) . The enabled event then generates an event on the CPU. All events for a CPU are OR-ed together into a single CPU event signal. The CPU Pending register (EXTI_CPUPR) will not be set for an unmasked CPU event.

When a CPU interrupt or CPU event is enabled, the Asynchronous edge detection circuit is reset by the clocked Delay and Rising edge detect pulse generator. This guarantees that the CPU clock is woken up before the Asynchronous edge detection circuit is reset.

Note: A detected Configurable event, enabled by the CPU, is only cleared when the CPU wakes up.

20.3.2 EXTI configurable event input Any wakeup

Figure 92 is a detailed representation of the logic associated with Configurable Event inputs that can wakeup D3 domain for autonomous Run mode and/or CPU (“Any” target). It provides the same functionality as the Configurable event input CPU wakeup, with additional functionality to wake up the D3 domain independently.

When all CPU interrupts and CPU events are disabled, the Asynchronous edge detection circuit is reset by the D3 domain clocked Delay and Rising edge detect pulse generator. This guarantees that the D3 domain clock is woken up before the Asynchronous edge detection circuit is reset.

Table 147. Configurable Event input Asynchronous Edge detector reset

EXTI_C1IMREXTI_C1EMRAsynchronous Edge detector reset by
Both = 0D3 domain clock rising edge detect pulse generator
At least one = 1CPU clock rising edge detect pulse generator

Figure 92. Configurable event triggering logic Any wakeup

Figure 92: Block diagram of the Configurable event triggering logic Any wakeup (EXTI).

The diagram shows the internal logic of the EXTI (Extended Interrupt and Event Controller) for configurable event inputs. At the top is the Peripheral interface connected to the APB interface . Below the interface are several registers:

The Configurable Event input(x) enters an OR gate with the software interrupt event register, then goes to an Asynchronous edge detection circuit (controlled by falling/rising trigger selection). The output passes through a multiplexer (controlled by 'rst') and splits into two paths: 1. A CPU Rising Edge detect Pulse generator (clocked by rcc_fclk_cpu ) which feeds into logic for CPU Event(x) and CPU Pending request register . 2. A D3 Domain Rising Edge detect Pulse generator (clocked by ck_fclk_d3 ) which feeds into logic for D3 Pending request . The final outputs on the right side are:Various logic gates (AND, OR) combine individual signals with 'Other CPU Events', 'Other CPU Wakeups', and 'Other D3 Wakeups'. A Synch block synchronized by ck_sys is used for the CPU Wakeup path.

Figure 92: Block diagram of the Configurable event triggering logic Any wakeup (EXTI).

The event triggering logic for “Any” target has additional D3 Pending mask register EXTI D3 pending mask register (EXTI_D3PMR1) , EXTI D3 pending mask register (EXTI_D3PMR2) , EXTI D3 pending mask register (EXTI_D3PMR3) and D3 Pending request logic. The D3 Pending request logic will only be set for unmasked D3 Pending events. The D3 Pending request logic keeps the D3 domain in Run mode until the D3 Pending request logic is cleared by the selected D3 domain pendclear source.

20.3.3 EXTI direct event input CPU wakeup

Figure 93 is a detailed representation of the logic associated with Direct Event inputs waking up the CPU.

Direct events only provide CPU interrupt enable and CPU event enable functionality.

Figure 93. Direct event triggering logic CPU Wakeup

Figure 93. Direct event triggering logic CPU Wakeup. This block diagram shows the internal logic of the EXTI (Extended Interrupt) controller. On the left, 'Direct Event input(x)' signals enter the 'EXTI' block. One path goes through an 'Asynchronous Rising edge detection circuit rst' and then a 'Delay' block (clocked by 'ck_sys'). Another path goes through a 'Falling edge detect Pulse generator' (also clocked by 'ck_sys'). Both paths lead to an OR gate. The output of this OR gate is connected to a 'Synch' block (synchronized with 'rcc_folk_cpu') and also to an AND gate. The 'Synch' block outputs 'rcc_folk_cpu'. The 'CPU Event mask register' and 'CPU Interrupt mask register' are connected to the 'Peripheral interface' (which is connected to the 'APB interface'). The 'CPU Event mask register' output is connected to an AND gate. The 'CPU Interrupt mask register' output is connected to another AND gate. The 'CPU Rising Edge detect Pulse generator' (clocked by 'rcc_folk_cpu') output is connected to the second AND gate. The outputs of the two AND gates are combined in an OR gate to produce 'CPU Event(x)'. The 'CPU Event(x)' signal is also connected to an OR gate that produces 'cpu_event'. The 'CPU Wakeup(x)' signal (from the first OR gate) is connected to an OR gate that produces 'cpu_wakeup'. This 'cpu_wakeup' signal is also connected to a 'Synch' block (clocked by 'ck_sys'). The output of this 'Synch' block is connected to an OR gate that produces 'd3_wakeup'. The 'd3_wakeup' signal is also connected to an OR gate that produces 'cpu_wakeup'. The 'Other CPU Events' and 'Other CPU Wakeups' signals are also inputs to the OR gates that produce 'cpu_event' and 'd3_wakeup' respectively. The 'cpu_event' signal is connected to 'cpu_it_exti_per(x)'. The 'd3_wakeup' signal is connected to 'cpu_wakeup'. The 'cpu_wakeup' signal is connected to 'd3_wakeup'. The 'EXTI' block is labeled 'MSv41954V1'.
Figure 93. Direct event triggering logic CPU Wakeup. This block diagram shows the internal logic of the EXTI (Extended Interrupt) controller. On the left, 'Direct Event input(x)' signals enter the 'EXTI' block. One path goes through an 'Asynchronous Rising edge detection circuit rst' and then a 'Delay' block (clocked by 'ck_sys'). Another path goes through a 'Falling edge detect Pulse generator' (also clocked by 'ck_sys'). Both paths lead to an OR gate. The output of this OR gate is connected to a 'Synch' block (synchronized with 'rcc_folk_cpu') and also to an AND gate. The 'Synch' block outputs 'rcc_folk_cpu'. The 'CPU Event mask register' and 'CPU Interrupt mask register' are connected to the 'Peripheral interface' (which is connected to the 'APB interface'). The 'CPU Event mask register' output is connected to an AND gate. The 'CPU Interrupt mask register' output is connected to another AND gate. The 'CPU Rising Edge detect Pulse generator' (clocked by 'rcc_folk_cpu') output is connected to the second AND gate. The outputs of the two AND gates are combined in an OR gate to produce 'CPU Event(x)'. The 'CPU Event(x)' signal is also connected to an OR gate that produces 'cpu_event'. The 'CPU Wakeup(x)' signal (from the first OR gate) is connected to an OR gate that produces 'cpu_wakeup'. This 'cpu_wakeup' signal is also connected to a 'Synch' block (clocked by 'ck_sys'). The output of this 'Synch' block is connected to an OR gate that produces 'd3_wakeup'. The 'd3_wakeup' signal is also connected to an OR gate that produces 'cpu_wakeup'. The 'Other CPU Events' and 'Other CPU Wakeups' signals are also inputs to the OR gates that produce 'cpu_event' and 'd3_wakeup' respectively. The 'cpu_event' signal is connected to 'cpu_it_exti_per(x)'. The 'd3_wakeup' signal is connected to 'cpu_wakeup'. The 'cpu_wakeup' signal is connected to 'd3_wakeup'. The 'EXTI' block is labeled 'MSv41954V1'.
  1. 1. The CPU interrupt for asynchronous Direct Event inputs (peripheral Wakeup signals) is synchronized with the CPU clock. The synchronous Direct Event inputs (peripheral interrupt signals), after the asynchronous edge detection, are directly sent to the CPU interrupt without resynchronization.

20.3.4 EXTI direct event input Any wakeup

Figure 94 is a detailed representation of the logic associated with Direct Event inputs waking up D3 domain for autonomous Run mode and/or CPU, (“Any” target). It provides the same functionality as the Direct event input CPU wakeup, plus additional functionality to wakeup the D3 domain independently.

Figure 94. Direct event triggering logic Any Wakeup

Logic diagram showing the EXTI direct event triggering for Any Wakeup. It includes a peripheral interface, mask registers (CPU Event, CPU Interrupt, D3 Pending), synchronization blocks, edge detection circuits, and various logic gates (AND, OR) leading to output signals like cpu_event, cpu_wakeup, and d3_wakeup.

The diagram shows the internal logic of the EXTI for direct event inputs. A Peripheral interface connects to the APB interface and manages three registers: CPU Event mask register , CPU Interrupt mask register , and D3 Pending mask register . The Direct Event input(x) enters an Asynchronous Rising edge detection circuit . This circuit's output, along with a Failing edge detect Pulse generator (clocked by ck_sys ), feeds into logic gates. Synchronization blocks ( Synch ) are used for clock domain crossing between ck_sys , rcc_fclk_cpu , and ck_fclk_d3 . The logic combines these signals with the mask register values to generate several outputs: d3_pendclear(x) , cpu_it_exti_per(x) , d3_it_exti_per(x) , cpu_event , cpu_wakeup , and d3_wakeup . The D3 Pending request block specifically handles the D3 domain's pending state.

Logic diagram showing the EXTI direct event triggering for Any Wakeup. It includes a peripheral interface, mask registers (CPU Event, CPU Interrupt, D3 Pending), synchronization blocks, edge detection circuits, and various logic gates (AND, OR) leading to output signals like cpu_event, cpu_wakeup, and d3_wakeup.
  1. 1. The CPU interrupt and D3 domain interrupt for asynchronous Direct Event inputs (peripheral Wakeup signals) are synchronized, respectively, with the CPU clock and the D3 domain clock. The synchronous Direct Event inputs (peripheral interrupt signals), after the asynchronous edge detection, are directly sent to the CPU interrupt and the D3 domain interrupt without resynchronization in the EXTI.

20.3.5 EXTI D3 pending request clear selection

Event inputs able to wake up D3 domain for autonomous Run mode have D3 Pending request logic that can be cleared by the selected D3 pendclear source. For each D3 Pending request a D3 domain pendclear source can be selected from four different inputs.

Figure 95 is a detailed representation of the logic selecting the D3 pendclear source.

Block diagram of D3 domain Pending request clear logic. An APB interface connects to a Peripheral interface, which in turn connects to a D3 pending clear selection register. The register outputs to a multiplexer. The multiplexer has four inputs: d3_pendclear_in[0] (DMA_ch6_evt), d3_pendclear_in[1] (DMA_ch7_evt), d3_pendclear_in[2] (LPTIM4 out), and d3_pendclear_in[3] (LPTIM5 out). The output of the multiplexer is labeled d3_pendclear(x) and is connected to a D3 pending request block within an Event(x) block. The Event(x) block is part of the EXTI system. The diagram is labeled MS40541V2.

Figure 95. D3 domain Pending request clear logic

Block diagram of D3 domain Pending request clear logic. An APB interface connects to a Peripheral interface, which in turn connects to a D3 pending clear selection register. The register outputs to a multiplexer. The multiplexer has four inputs: d3_pendclear_in[0] (DMA_ch6_evt), d3_pendclear_in[1] (DMA_ch7_evt), d3_pendclear_in[2] (LPTIM4 out), and d3_pendclear_in[3] (LPTIM5 out). The output of the multiplexer is labeled d3_pendclear(x) and is connected to a D3 pending request block within an Event(x) block. The Event(x) block is part of the EXTI system. The diagram is labeled MS40541V2.

The D3 Pending request clear selection registers EXTI D3 pending clear selection register low (EXTI_D3PCR1L) , EXTI D3 pending clear selection register high (EXTI_D3PCR1H) , EXTI D3 pending clear selection register low (EXTI_D3PCR2L) , EXTI D3 pending clear selection register high (EXTI_D3PCR2H) , EXTI D3 pending clear selection register low (EXTI_D3PCR3L) and EXTI D3 pending clear selection register high (EXTI_D3PCR3H) allow the system to select the source to reset the D3 Pending request.

20.4 EXTI event input mapping

For the sixteen GPIO Event inputs the associated IOPORT pin has to be selected in the SYSCFG register SYSCFG_EXTICRn. The same pin from each IOPORT maps to the corresponding EXTI Event input.

The wakeup capabilities of each Event input are detailed in Table 148 . An Event input can either wake up the CPU, and in the case of “Any” can also wake up D3 domain for autonomous Run mode.

The EXTI Event inputs with a connection to the CPU NVIC are indicated in the Connection to NVIC column. For the EXTI events not having a connection to the NVIC, the peripheral interrupt is directly connected to the NVIC in parallel with the connection to the EXTI.

All EXTI Event inputs are OR-ed together and connected to the CPU event input (rxev).

Table 148. EXTI Event input mapping

Event inputSourceEvent input typeWakeup target(s)Connection to NVIC
0 - 15EXTI[15:0]ConfigurableAnyYes
16PVD and AVD (1)ConfigurableCPU onlyYes
17RTC alarmsConfigurableCPU onlyYes
18RTC tamper, RTC timestamp, RCC LSECSS (2)ConfigurableCPU onlyYes
19RTC wakeup timerConfigurableAnyYes
20COMP1ConfigurableAnyYes
21COMP2ConfigurableAnyYes
22I2C1 wakeupDirectCPU onlyYes
23I2C2 wakeupDirectCPU onlyYes
24I2C3 wakeupDirectCPU onlyYes
25I2C4 wakeupDirectAnyYes
26USART1 wakeupDirectCPU onlyYes
27USART2 wakeupDirectCPU onlyYes
28USART3 wakeupDirectCPU onlyYes
29USART6 wakeupDirectCPU onlyYes
30UART4 wakeupDirectCPU onlyYes
31UART5 wakeupDirectCPU onlyYes
32UART7 wakeupDirectCPU onlyYes
33UART8 wakeupDirectCPU onlyYes
34LPUART1 RX wakeupDirectAnyYes
35LPUART1 TX wakeupDirectAnyYes
36SPI1 wakeupDirectCPU onlyYes
37SPI2 wakeupDirectCPU onlyYes
38SPI3 wakeupDirectCPU onlyYes
39SPI4 wakeupDirectCPU onlyYes
40SPI5 wakeupDirectCPU onlyYes
41SPI6 wakeupDirectAnyYes
42MDIO wakeupDirectCPU onlyYes
43USB1 wakeupDirectCPU onlyYes
44USB2 wakeupDirectCPU onlyYes
45Reserved---
46Reserved---
47LPTIM1 wakeupDirectCPU onlyYes
48LPTIM2 wakeupDirectAnyYes

Table 148. EXTI Event input mapping (continued)

Event inputSourceEvent input typeWakeup target(s)Connection to NVIC
49LPTIM2 outputConfigurableAnyNo (3)
50LPTIM3 wakeupDirectAnyYes
51LPTIM3 outputConfigurableAnyNo (3)
52LPTIM4 wakeupDirectAnyYes
53LPTIM5 wakeupDirectAnyYes
54SWPMI wakeupDirectCPU onlyYes
55 (4)WKUP1DirectCPU onlyYes
56 (4)WKUP2DirectCPU onlyYes
57 (4)WKUP3DirectCPU onlyYes
58 (4)WKUP4DirectCPU onlyYes
59 (4)WKUP5DirectCPU onlyYes
60 (4)WKUP6DirectCPU onlyYes
61RCC interruptDirectCPU onlyNo (5)
62I2C4 Event interruptDirectCPU onlyNo (5)
63I2C4 Error interruptDirectCPU onlyNo (5)
64LPUART1 global InterruptDirectCPU onlyNo (5)
65SPI6 interruptDirectCPU onlyNo (5)
66BDMA CH0 interruptDirectCPU onlyNo (5)
67BDMA CH1 interruptDirectCPU onlyNo (5)
68BDMA CH2 interruptDirectCPU onlyNo (5)
69BDMA CH3 interruptDirectCPU onlyNo (5)
70BDMA CH4 interruptDirectCPU onlyNo (5)
71BDMA CH5 interruptDirectCPU onlyNo (5)
72BDMA CH6 interruptDirectCPU onlyNo (5)
73BDMA CH7 interruptDirectCPU onlyNo (5)
74DMAMUX2 interruptDirectCPU onlyNo (5)
75ADC3 interruptDirectCPU onlyNo (5)
76SAI4 interruptDirectCPU onlyNo (5)
77Reserved---
78Reserved---
79Reserved---
80Reserved---
81Reserved---
82Reserved---
83Reserved---

Table 148. EXTI Event input mapping (continued)

Event inputSourceEvent input typeWakeup target(s)Connection to NVIC
84Reserved---
85HDMI-CEC wakeupConfigurableCPU onlyYes
86ETHERNET wakeupConfigurableCPU onlyYes
87HSECSS interruptDirectCPU onlyNo (5)
88Reserved---
  1. 1. PVD and AVD signals are OR-ed together on the same EXTI event input.
  2. 2. RTC Tamper, RTC timestamp and RCC LSECSS signals are OR-ed together on the same EXTI event input.
  3. 3. Not available on CPU NVIC, to be used for system wakeup only or CPU event input (rxev).
  4. 4. Signals of WKUP1 to WKUP6 correspond to WKUPn pin+1.
  5. 5. Available on CPU NVIC directly from the peripheral

20.5 EXTI functional behavior

The Direct event inputs are enabled in the respective peripheral generating the event. The Configurable events are enabled by enabling at least one of the trigger edges.

When in Stop mode an event will always wake up the D3 domain. In system Run and Stop modes an event will always generate an associated D3 domain interrupt. An event will only wake up the CPU when the event associated CPU interrupt is unmasked and/or the CPU event is unmasked.

Table 149. Masking functionality

CPUConfigurable event inputs PRx bits of EXTI_CPUPRCPUD3 domain wakeup
Interrupt enable MRx bits of EXTI_CPUIMREvent enable MRx bits of EXTI_CPUREMRInterruptEventWakeup
00NoMaskedMaskedMaskedYes (1) / Masked (2)
01NoMaskedYesYesYes
10Status latchedYesMaskedYesYes
11Status latchedYesYesYesYes
  1. 1. Only for Event inputs that allow the system to wakeup D3 domain for autonomous Run mode (Any target).
  2. 2. For Event inputs that will always wake up CPU.

For Configurable event inputs, when the enabled edge(s) occur on the event input, an event request is generated. When the associated CPU interrupt is unmasked, the corresponding pending PRx bit in EXTI_CPUPR is set and the CPU interrupt signal is activated. EXTI_CPUPR PRx pending bit shall be cleared by software writing it to '1'. This will clear 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. When the associated CPU interrupt is unmasked the corresponding CPU interrupt signal is activated.

The CPU event has to be unmasked to generate an event. When the enabled edge(s) occur on the Event input a CPU event pulse is generated. There is no CPU Event pending bit.

Both a CPU interrupt and a CPU event may be enabled on the same Event input. They will both trigger the same Event input condition(s).

For the Configurable Event inputs an event input request can be generated by software when writing a '1' in the software interrupt/event register EXTI_SWIER.

Whenever an Event input is enabled and a CPU interrupt and/or CPU event is unmasked, the Event input will also generate a D3 domain wakeup next to the CPU wakeup.

Some Event inputs are able to wakeup the D3 domain autonomous Run mode, in this case the CPU interrupt and CPU event are masked, preventing the CPU to be woken up. Two D3 domain autonomous Run mode wakeup mechanisms are supported:

20.5.1 EXTI CPU interrupt procedure

20.5.2 EXTI CPU event procedure

20.5.3 EXTI CPU wakeup procedure

20.5.4 EXTI D3 domain wakeup for autonomous Run mode procedure

20.5.5 EXTI software interrupt/event trigger procedure

Any of the Configurable Event inputs can be triggered from the software interrupt/event register (the associated CPU interrupt and/or CPU event shall be enabled by their respective procedure).

Note: An edge on the Configurable event input will also trigger an interrupt/event.

A software trigger can be used to set the D3 Pending request logic, keeping the D3 domain in Run until the D3 Pending request logic is cleared.

20.6 EXTI registers

Every register can only be accessed with 32-bit (word). A byte or half-word cannot be read or written.

20.6.1 EXTI rising trigger selection register (EXTI_RTSR1)

Address offset: 0x00

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TR21TR20TR19TR18TR17TR16
rwrwrwrwrwrw
1514131211109876543210
TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR1TR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:22 Reserved, must be kept at reset value.

Bits 21:0 TRx : Rising trigger event configuration bit of Configurable Event input x. (1)

0: Rising trigger disabled (for Event and Interrupt) for input line

1: Rising trigger enabled (for Event and Interrupt) for input line

  1. 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 will not be set.
    Rising and falling edge triggers can be set for the same Configurable Event input. In this case, both edges generate a trigger.

20.6.2 EXTI falling trigger selection register (EXTI_FTSR1)

Address offset: 0x04

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TR21TR20TR19TR18TR17TR16
rwrwrwrwrwrw
1514131211109876543210
TR15TR14TR13TR12TR11TR10TR9TR8TR7TR6TR5TR4TR3TR2TR1TR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:22 Reserved, must be kept at reset value.

Bits 21:0 TRx : Falling trigger event configuration bit of Configurable Event input x. (1)

0: Falling trigger disabled (for Event and Interrupt) for input line

1: Falling trigger enabled (for Event and Interrupt) for input line.

  1. 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 will not be set.
    Rising and falling edge triggers can be set for the same Configurable Event input. In this case, both edges generate a trigger.

20.6.3 EXTI software interrupt event register (EXTI_SWIER1)

Address offset: 0x08

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWIER 21SWIER 20SWIER 19SWIER 18SWIER 17SWIER 16
rwrwrwrwrwrw

1514131211109876543210
SWIER 15SWIER 14SWIER 13SWIER 12SWIER 11SWIER 10SWIER 9SWIER 8SWIER 7SWIER 6SWIER 5SWIER 4SWIER 3SWIER 2SWIER 1SWIER 0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:22 Reserved, must be kept at reset value.

Bits 21:0 SWIERx : Software interrupt on line x

Will always return 0 when read.

0: Writing 0 has no effect.

1: Writing a 1 to this bit will trigger an event on line x. This bit is auto cleared by HW.

20.6.4 EXTI D3 pending mask register (EXTI_D3PMR1)

Address offset: 0x0C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.MR25Res.Res.Res.MR21MR20MR19Res.Res.Res.
rwrwrwrw

1514131211109876543210
MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR1MR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bit 25 MRx : D3 Pending Mask on Event input x

0: D3 Pending request from Line x is masked. Writing this bit to 0 will also clear the D3 Pending request.

1: D3 Pending request from Line x is unmasked. The D3 domain pending signal when triggered will keep D3 domain wakeup active until cleared.

Bits 24:22 Reserved, must be kept at reset value.

Bits 21:19 MRx : D3 Pending Mask on Event input x

0: D3 Pending request from Line x is masked. Writing this bit to 0 will also clear the D3 Pending request.

1: D3 Pending request from Line x is unmasked. The D3 domain pending signal when triggered will keep D3 domain wakeup active until cleared.

Bits 18:16 Reserved, must be kept at reset value.

Bits 15:0 MRx : D3 Pending Mask on Event input x

0: D3 Pending request from Line x is masked. Writing this bit to 0 will also clear the D3 Pending request.

1: D3 Pending request from Line x is unmasked. The D3 domain pending signal when triggered will keep D3 domain wakeup active until cleared.

20.6.5 EXTI D3 pending clear selection register low (EXTI_D3PCR1L)

Address offset: 0x10

Reset value: 0x0000 0000

31302928272625242322212019181716
PCS15PCS14PCS13PCS12PCS11PCS10PCS9PCS8
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
PCS7PCS6PCS5PCS4PCS3PCS2PCS1PCS0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 PCSx : D3 Pending request clear input signal selection on Event input x = truncate (n/2)

00: DMA ch6 event selected as D3 domain pendclear source

01: DMA ch7 event selected as D3 domain pendclear source

10: LPTIM4 out selected as D3 domain pendclear source

11: LPTIM5 out selected as D3 domain pendclear source

20.6.6 EXTI D3 pending clear selection register high (EXTI_D3PCR1H)

Address offset: 0x14

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCS25Res.Res.
rwrw
1514131211109876543210
Res.Res.Res.Res.PCS21PCS20PCS19Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrw

Bits 31:20 Reserved, must be kept at reset value.

Bits 19:18 PCSx : D3 Pending request clear input signal selection on Event input x = truncate ((n+32)/2)

00: DMA ch6 event selected as D3 domain pendclear source

01: DMA ch7 event selected as D3 domain pendclear source

10: LPTIM4 out selected as D3 domain pendclear source

11: LPTIM5 out selected as D3 domain pendclear source

Bits 17:12 Reserved, must be kept at reset value.

Bits 11:6 PCSx : D3 Pending request clear input signal selection on Event input x = truncate ((n+32)/2)

00: DMA ch6 event selected as D3 domain pendclear source

01: DMA ch7 event selected as D3 domain pendclear source

10: LPTIM4 out selected as D3 domain pendclear source

11: LPTIM5 out selected as D3 domain pendclear source

Bits 5:0 Reserved, must be kept at reset value.

20.6.7 EXTI rising trigger selection register (EXTI_RTSR2)

Address offset: 0x20

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TR51Res.TR49Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rwrw

Bits 31:20 Reserved, must be kept at reset value.

Bit 19 TRx : Rising trigger event configuration bit of Configurable Event input x+32. (1)

0: Rising trigger disabled (for Event and Interrupt) for input line

1: Rising trigger enabled (for Event and Interrupt) for input line

Bit 18 Reserved, must be kept at reset value.

Bit 17 TRx : Rising trigger event configuration bit of Configurable Event input x+32. (1)

0: Rising trigger disabled (for Event and Interrupt) for input line

1: Rising trigger enabled (for Event and Interrupt) for input line

Bits 16:0 Reserved, must be kept at reset value.

  1. 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 will not be set.
    Rising and falling edge triggers can be set for the same Configurable Event input. In this case, both edges generate a trigger.

20.6.8 EXTI falling trigger selection register (EXTI_FTSR2)

Address offset: 0x24
Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TR51Res.TR49Res.
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:20 Reserved, must be kept at reset value.

Bit 19 TRx : Falling trigger event configuration bit of Configurable Event input x+32. (1)

Bit 18 Reserved, must be kept at reset value.

Bit 17 TRx : Falling trigger event configuration bit of Configurable Event input x+32. (1)

Bits 16:0 Reserved, must be kept at reset value.

  1. 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 will not be set.
    Rising and falling edge triggers can be set for the same Configurable Event input. In this case, both edges generate a trigger.

20.6.9 EXTI software interrupt event register (EXTI_SWIER2)

Address offset: 0x28
Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWIER 51Res.SWIER 49Res.
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:20 Reserved, must be kept at reset value.

Bit 19 SWIERx : Software interrupt on line x+32
Will always return 0 when read.

Bit 18 Reserved, must be kept at reset value.

Bit 17 SWIERx : Software interrupt on line x+32

Will always return 0 when read.

0: Writing 0 has no effect.

1: Writing a 1 to this bit will trigger an event on line x. This bit is auto cleared by HW.

Bits 16:0 Reserved, must be kept at reset value.

20.6.10 EXTI D3 pending mask register (EXTI_D3PMR2)

Address offset: 0x2C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MR53MR52MR51MR50MR49MR48
rwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.MR41Res.Res.Res.Res.Res.MR35MR34Res.Res.
rwrwrw

Bits 31:22 Reserved, must be kept at reset value.

Bits 21:16 MRx : D3 Pending Mask on Event input x+32

0: D3 Pending request from Line x+32 is masked. Writing this bit to 0 will also clear the D3 Pending request.

1: D3 Pending request from Line x+32 is unmasked. The D3 domain pending signal when triggered will keep D3 domain wakeup active until cleared.

Bits 15:10 Reserved, must be kept at reset value.

Bit 9 MRx : D3 Pending Mask on Event input x+32

0: D3 Pending request from Line x+32 is masked. Writing this bit to 0 will also clear the D3 Pending request.

1: D3 Pending request from Line x+32 is unmasked. The D3 domain pending signal when triggered will keep D3 domain wakeup active until cleared.

Bits 8:4 Reserved, must be kept at reset value.

Bits 3:2 MRx : D3 Pending Mask on Event input x+32

0: D3 Pending request from Line x+32 is masked. Writing this bit to 0 will also clear the D3 Pending request.

1: D3 Pending request from Line x+32 is unmasked. The D3 domain pending signal when triggered will keep D3 domain wakeup active until cleared.

Bits 1:0 Reserved, must be kept at reset value.

20.6.11 EXTI D3 pending clear selection register low (EXTI_D3PCR2L)

Address offset: 0x30
Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCS41Res.Res.
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PCS35PCS34Res.Res.Res.Res.
rwrwrwrw

Bits 31:20 Reserved, must be kept at reset value.

Bits 19:18 PCSx : D3 Pending request clear input signal selection on Event input x = truncate ((n+64)/2)

Bits 17:8 Reserved, must be kept at reset value.

Bits 7:4 PCSx : D3 Pending request clear input signal selection on Event input x= truncate ((n+64)/2)

Bits 3:0 Reserved, must be kept at reset value.

20.6.12 EXTI D3 pending clear selection register high (EXTI_D3PCR2H)

Address offset: 0x34
Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.PCS53PCS52PCS51PCS50PCS49PCS48
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:12 Reserved, must be kept at reset value.

Bits 11:0 PCSx : D3 Pending request clear input signal selection on Event input x= truncate ((n+96)/2)

20.6.13 EXTI rising trigger selection register (EXTI_RTSR3)

Address offset: 0x40

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.TR86TR85TR84Res.TR82Res.Res.
rwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:23 Reserved, must be kept at reset value.

Bits 22:20 TRx : Rising trigger event configuration bit of Configurable Event input x+64. (1)

0: Rising trigger disabled (for Event and Interrupt) for input line

1: Rising trigger enabled (for Event and Interrupt) for input line

Bit 19 Reserved, must be kept at reset value.

Bit 18 TRx : Rising trigger event configuration bit of Configurable Event input x+64. (1)

0: Rising trigger disabled (for Event and Interrupt) for input line

1: Rising trigger enabled (for Event and Interrupt) for input line

Bits 17: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 will not be set.
    Rising and falling edge triggers can be set for the same Configurable Event input. In this case, both edges generate a trigger.

20.6.14 EXTI falling trigger selection register (EXTI_FTSR3)

Address offset: 0x44

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.TR86TR85TR84Res.TR82Res.Res.
rwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:23 Reserved, must be kept at reset value.

Bits 22:20 TRx : Falling trigger event configuration bit of Configurable Event input x+64. (1)

0: Falling trigger disabled (for Event and Interrupt) for input line

1: Falling trigger enabled (for Event and Interrupt) for input line

Bit 19 Reserved, must be kept at reset value.

Bit 18 TRx : Falling trigger event configuration bit of Configurable Event input x+64. (1)

0: Falling trigger disabled (for Event and Interrupt) for input line
1: Falling trigger enabled (for Event and Interrupt) for input line

Bits 17:0 Reserved, must be kept at reset value.

  1. 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 will not be set.
    Rising and falling edge triggers can be set for the same Configurable Event input. In this case, both edges generate a trigger.

20.6.15 EXTI software interrupt event register (EXTI_SWIER3)

Address offset: 0x48
Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.SWIER 86SWIER 85SWIER 84Res.SWIER 82Res.Res.
rwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:23 Reserved, must be kept at reset value.

Bits 22:20 SWIERx : Software interrupt on line x+64
Will always return 0 when read.

0: Writing 0 has no effect.
1: Writing a 1 to this bit will trigger an event on line x. This bit is auto cleared by HW.

Bit 19 Reserved, must be kept at reset value.

Bit 18 SWIERx : Software interrupt on line x+64
Will always return 0 when read.

0: Writing 0 has no effect.
1: Writing a 1 to this bit will trigger an event on line x. This bit is auto cleared by HW.

Bits 17:0 Reserved, must be kept at reset value.

20.6.16 EXTI D3 pending mask register (EXTI_D3PMR3)

Address offset: 0x4C
Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.MR88Res.Res.Res.Res.Res.Res.Res.Res.
rw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:25 Reserved, must be kept at reset value.

Bit 24 MRx : D3 Pending Mask on Event input x+64

0: D3 Pending request from Line x+64 is masked. Writing this bit to 0 will also clear the D3 Pending request.
1: D3 Pending request from Line x+64 is unmasked. The D3 domain pending signal when triggered will keep D3 domain wakeup active until cleared.

Bits 23:0 Reserved, must be kept at reset value.

20.6.17 EXTI D3 pending clear selection register low (EXTI_D3PCR3L)

Address offset: 0x50
Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:0 Reserved, must be kept at reset value.

20.6.18 EXTI D3 pending clear selection register high (EXTI_D3PCR3H)

Address offset: 0x54
Reset value: 0x0000 0000

313029282726252423222120191817          16
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCS88
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:18 Reserved, must be kept at reset value.

Bits 17:16 PCSx : D3 Pending request clear input signal selection on Event input x= truncate \( ((n+160)/2) \)

Bits 15:0 Reserved, must be kept at reset value.

20.6.19 EXTI interrupt mask register (EXTI_CPUIMR1)

Address offset: 0x80

Reset value: 0xFFC0 0000

31302928272625242322212019181716
MR31MR30MR29MR28MR27MR26MR25MR24MR23MR22MR21MR20MR19MR18MR17MR16
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR1MR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:22 MRx : CPU interrupt Mask on Direct Event input x (1)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

Bits 21:0 MRx : CPU interrupt Mask on Configurable Event input x (2)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

  1. 1. The reset value for Direct Event inputs is set to '1' in order to enable the interrupt by default.
  2. 2. The reset value for Configurable Event inputs is set to '0' in order to disable the interrupt by default.

20.6.20 EXTI event mask register (EXTI_CPEMR1)

Address offset: 0x84

Reset value: 0x0000 0000

31302928272625242322212019181716
MR31MR30MR29MR28MR27MR26MR25MR24MR23MR22MR21MR20MR19MR18MR17MR16
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
MR15MR14MR13MR12MR11MR10MR9MR8MR7MR6MR5MR4MR3MR2MR1MR0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 MRx : CPU Event mask on Event input x

0: Event request from Line x is masked

1: Event request from Line x is unmasked

20.6.21 EXTI pending register (EXTI_CPUPR1)

Address offset: 0x88

Reset value: undefined

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PR21PR21PR19PR18PR17PR16
1514131211109876543210
PR15PR14PR13PR12PR11PR10PR9PR8PR7PR6PR5PR4PR3PR2PR1PR0
rc1rc1rc1rc1rc1rc1rc1rc1rc1rc1rc1rc1rc1rc1rc1rc1

Bits 31:22 Reserved, must be kept at reset value.

Bits 21:0 PRx : Configurable event inputs x Pending bit

0: No trigger request occurred

1: selected trigger request occurred

This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.

20.6.22 EXTI interrupt mask register (EXTI_CPUIMR2)

Address offset: 0x90

Reset value: 0xFFF5 FFFF

31302928272625242322212019181716
MR63MR62MR61MR60MR59MR58MR57MR56MR55MR54MR53MR52MR51MR50MR49MR48
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
MR47MR46Res.MR44MR43MR42MR41MR40MR39MR38MR37MR36MR35MR34MR33MR32
rwrw1rwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:20 MRx : CPU Interrupt Mask on Direct Event input x+32 (1)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

Bit 19 MRx : CPU interrupt Mask on Configurable Event input x+32 (2)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

Bit 18 MRx : CPU Interrupt Mask on Direct Event input x+32 (1)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

Bit 17 MRx : CPU interrupt Mask on Configurable Event input x+32 (2)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

Bits 16:14 MRx : CPU Interrupt Mask on Direct Event input x+32 (1)

Bit 13 Reserved, must be kept at reset value (1).

Bits 12:0 MRx : CPU Interrupt Mask on Direct Event input x+32 (1)

  1. 1. The reset value for Direct Event inputs is set to '1' in order to enable the interrupt by default.
  2. 2. The reset value for Configurable Event inputs is set to '0' in order to disable the interrupt by default.

20.6.23 EXTI event mask register (EXTI_CPUEMR2)

Address offset: 0x94

Reset value: 0x0000 0000

31302928272625242322212019181716
MR63MR62MR61MR60MR59MR58MR57MR56MR55MR54MR53MR52MR51MR50MR49MR48
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
MR47MR46Res.MR44MR43MR42MR41MR40MR39MR38MR37MR36MR35MR34MR33MR32
rwrw0rwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:14 MRx : CPU Event mask on Event input x+32

Bit 13 Reserved, must be kept at reset value.

Bits 12:0 MRx : CPU Event mask on Event input x+32

20.6.24 EXTI pending register (EXTI_CPUPR2)

Address offset: 0x98

Reset value: undefined

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PR51Res.PR49Res.
rc1rc1
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:20 Reserved, must be kept at reset value.

Bit 19 PRx : Configurable event inputs x+32 Pending bit

0: No trigger request occurred

1: selected trigger request occurred

This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.

Bit 18 Reserved, must be kept at reset value.

Bit 17 PRx : Configurable event inputs x+32 Pending bit

0: No trigger request occurred

1: selected trigger request occurred

This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.

Bits 16:0 Reserved, must be kept at reset value.

20.6.25 EXTI interrupt mask register (EXTI_CPUIMR3)

Address offset: 0xA0

Reset value: 0x018B FFFF

31302928272625242322212019181716
ResResResResResResResMR88MR87MR86MR85MR84ResMR82ResMR80
rwrwrwrwrwrwrw
1514131211109876543210
MR79MR78MR77MR76MR75MR74MR73MR72MR71MR70MR69MR68MR67MR66MR65MR64
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:25 Reserved, must be kept at reset value.

Bits 24:23 MRx : CPU Interrupt Mask on Direct Event input x+64 (1)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

Bits 22:20 MRx : CPU interrupt Mask on Configurable Event input x+64 (2)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

Bit 19 Reserved, must be kept at reset value (1) .

Bit 18 MRx : CPU interrupt Mask on Configurable Event input x+64 (2)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

Bit 17 Reserved, must be kept at reset value (1) .

Bits 16:0 MRx : CPU Interrupt Mask on Direct Event input x+64 (1)

0: Interrupt request from Line x is masked

1: Interrupt request from Line x is unmasked

  1. 1. The reset value for Direct Event inputs is set to '1' in order to enable the interrupt by default.
  2. 2. The reset value for Configurable Event inputs is set to '0' in order to disable the interrupt by default.

20.6.26 EXTI event mask register (EXTI_CPUEMR3)

Address offset: 0xA4

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.MR88MR87MR86MR85MR84Res.MR82Res.MR80
rwrwrwrwrwrwrw
1514131211109876543210
MR79MR78MR77MR76MR75MR74MR73MR72MR71MR70MR69MR68MR67MR66MR65MR64
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:25 Reserved, must be kept at reset value.

Bits 24:0 MRx : CPU Event mask on Event input x+64

0: Event request from Line x is masked

1: Event request from Line x is unmasked

20.6.27 EXTI pending register (EXTI_CPUPR3)

Address offset: 0xA8

Reset value: undefined

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.PR86PR85PR84Res.PR82Res.Res.
rc1rc1rc1rc1
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:23 Reserved, must be kept at reset value.

Bits 22:20 PRx : Configurable event inputs x+64 Pending bit

0: No trigger request occurred

1: selected trigger request occurred

This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.

Bit 19 Reserved, must be kept at reset value.

Bit 18 PRx : Configurable event inputs x+64 Pending bit

0: No trigger request occurred

1: selected trigger request occurred

This bit is set when the selected edge event arrives on the external interrupt line. This bit is cleared by writing a 1 into the bit or by changing the sensitivity of the edge detector.

Bits 17:0 Reserved, must be kept at reset value.

20.6.28 EXTI register map

The following table gives the EXTI register map and the reset values.

Table 150. Asynchronous interrupt/event controller register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00EXTI_RTSR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TR[21:0]
Reset value0000000000000000000000
0x04EXTI_FTSR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TR[21:0]
Reset value0000000000000000000000
0x08EXTI_SWIER1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWIER[21:0]
Reset value0000000000000000000000
0x0CEXTI_D3PMR1Res.Res.Res.Res.Res.Res.MR[25]Res.Res.Res.MR[21:19]Res.Res.Res.MR[15:0]
Reset value00000000000000000000
0x10EXTI_D3PCR1LPCS[15]PCS[14]PCS[13]PCS[12]PCS[11]PCS[10]PCS[9]PCS[8]PCS[7]PCS[6]PCS[5]PCS[4]PCS[3]PCS[2]PCS[1]PCS[0]
Reset value0000000000000000
0x14EXTI_D3PCR1HRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCS[25]Res.Res.Res.Res.Res.Res.Res.PCS[21]PCS[20]PCS[19]Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value000000
0x20EXTI_RTSR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TR[51]Res.TR[49]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00
0x24EXTI_FTSR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TR[51]Res.TR[49]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00
0x28EXTI_SWIER2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWIER[51]Res.SWIER[49]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00
0x2CEXTI_D3PMR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MR[53:48]Res.Res.Res.Res.Res.Res.MR[41]Res.Res.Res.Res.Res.MR[35]MR[34]Res.Res.Res.
Reset value000000000
0x30EXTI_D3PCR2LRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCS[41]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCS[35]PCS[34]Res.Res.Res.Res.Res.Res.Res.
Reset value000000
0x34EXTI_D3PCR2HRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCS[53]PCS[52]PCS[51]PCS[50]PCS[49]PCS[48]Res.Res.Res.Res.Res.Res.
Reset value000000000000
0x40EXTI_RTSR3Res.Res.Res.Res.Res.Res.Res.Res.Res.TR[86]TR[85]TR[84]Res.TR[82]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000

Table 150. Asynchronous interrupt/event controller register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x44EXTI_FTSR3Res.Res.Res.Res.Res.Res.Res.Res.Res.TR[86]TR[85]TR[84]Res.TR[82]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000
0x48EXTI_SWIER3Res.Res.Res.Res.Res.Res.Res.Res.Res.SWIER[86]SWIER[85]SWIER[84]Res.SWIER[82]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000
0x4CEXTI_D3PMR3Res.Res.Res.Res.Res.Res.Res.MR[88]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0
0x50EXTI_D3PCR3LRes.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.
Reset value
0x54EXTI_D3PCR3HRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCS[88]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00
0x58-0x7CReserved
0x80EXTI_CPUIMR1MR[31:22]MR[21:0]
Reset value11111111110000000000000000000000
0x84EXTI_CPUEMR1MR[31:0]
Reset value00000000000000000000000000000000
0x88EXTI_CPUPR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PR[21:0]
Reset value0000000000000000000000
0x90EXTI_CPUIMR2MR[63:52]MR[51]MR[50]MR[49]MR[48:46]Res.MR[44:32]
Reset value1111111111110101111111111111111
0x94EXTI_CPUEMR2MR[63:46]Res.MR[44:32]
Reset value0000000000000000000000000000000
0x98EXTI_CPUPR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PR[51]Res.PR[49]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00
0xA0EXTI_CPUIMR3Res.Res.Res.Res.Res.Res.MR[88]MR[87]MR[86]MR[85]MR[84]Res.MR[82]Res.MR[80:64]
Reset value11000011111111111111111
0xA4EXTI_CPUEMR3Res.Res.Res.Res.Res.Res.MR[88:84]Res.MR[82]Res.MR[80:64]
Reset value00000000000000000000000

Table 150. Asynchronous interrupt/event controller register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xA8EXTI_CPUPR3Res.Res.Res.Res.Res.Res.Res.Res.Res.PR[86]PR[85]PR[84]Res.PR[82]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000
0xAC-0xBCReservedRes.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.

Refer to Section 2.3 on page 129 for the register boundary addresses.