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:

The asynchronous event inputs are classified in two groups:

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

Figure 29. EXTI block diagram showing the internal architecture of the EXTI block. It includes an AHB interface, Registers, Event Trigger, Masking, and connections to PWR, CPU1, and CPU(m).

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.

Figure 29. EXTI block diagram showing the internal architecture of the EXTI block. It includes an AHB interface, Registers, Event Trigger, Masking, and connections to PWR, CPU1, and CPU(m).

Table 57. EXTI pin overview

Pin nameI/ODescription
AHB interfaceI/OEXTI register bus interface. When one event is configured to allow security, the AHB interface supports secure accesses.
hclkIAHB bus clock and EXTI system clock.
Configurable event(y)IAsynchronous wakeup events from peripherals that do not have an associated interrupt and flag in the peripheral.
Direct event(x)ISynchronous and asynchronous wakeup events from peripherals having an associated interrupt and flag in the peripheral.
it_exti_per (y)OInterrupts to the CPU1 to CPU(m) associated with Configurable event (y).
c(m)_evt_extiOHigh level sensitive event output for CPU(m) synchronous to hclk. (m= 1 to 2)
c(m)_evt_rstIAsynchronous reset input to clear c(m)_evt_exti. (m= 1 to 2)
sys_wakeupOAsynchronous system wakeup request to PWR for ck_sys and hclk.
c(m)_wakeupOWakeup request to PWR for CPU(m), synchronous to hclk. (m= 1 to 2)

Table 58. EVG pin overview

Pin nameI/ODescription
c_fclkICPU free running clock.
c_evt_inIHigh level sensitive Events input from EXTI, asynchronous to CPU clock.
c_eventOEvent pulse, synchronous to CPU clock.
c_evt_rstOEvent 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.

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:

Table 59. EXTI event input configurations and register control

Event input typeLogic implementationEXTI_RTSREXTI_FTSREXTI_SWIEREXTI_PREXTI_CnIMREXTI_CnEMR (1)
ConfigurableConfigurable event input wakeup logicxxxxxx
DirectDirect event input wakeup logic----xx

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

Figure 30. Configurable event trigger logic CPU wakeup. This block diagram illustrates the internal architecture of the EXTI. On the left, an 'AHB interface' and 'hclk' clock are connected to a 'Peripheral interface' block. This block contains 'Falling trigger selection register', 'Rising trigger selection register', and 'Software interrupt event register'. A 'Configurable Event input(y)' enters from the left and is processed by an 'Asynchronous Edge detection circuit' which has a 'rst' (reset) input. The output of this circuit goes through a 'Delay' block and a 'Rising Edge detect Pulse generator' (also with 'rst'). The 'hclk' clock is fed into this pulse generator. The output of the pulse generator is connected to a series of logic gates. One gate takes 'CPU(m) Event mask register' and 'CPU(other) lmask(y)' as inputs. Another gate takes 'CPU(m) Event(y)' and 'Other CPU(m) Events(x,y)' as inputs. These signals are combined and fed into a 'Rising Edge detect' block (part of a 'Same circuit for Configurable and Direct events' which also receives 'hclk'). The output of this block is 'c(m)_evt_rst' and 'c(m)_evt_exti'. These signals are then processed by an 'EVG' (External Event Generator) block which has 'ck_fclk_c(m)' as an input. The EVG block outputs 'c(m)_event'. Below the main logic, there are 'CPU(m) Wakeup(y)' and 'Other CPU(m) Wakeups' signals. These are combined and fed into a 'Synch' block which has 'hclk' as an input. The output of the 'Synch' block is 'c(m)_wakeups'. This signal is then combined with 'Other Wakeups' and 'Wakeups(y)' to produce the 'sys_wakeup' signal. A legend at the bottom left indicates that logic is duplicated for each CPU. The diagram is labeled 'EXTI' and 'MS46538V1'.
Figure 30. Configurable event trigger logic CPU wakeup. This block diagram illustrates the internal architecture of the EXTI. On the left, an 'AHB interface' and 'hclk' clock are connected to a 'Peripheral interface' block. This block contains 'Falling trigger selection register', 'Rising trigger selection register', and 'Software interrupt event register'. A 'Configurable Event input(y)' enters from the left and is processed by an 'Asynchronous Edge detection circuit' which has a 'rst' (reset) input. The output of this circuit goes through a 'Delay' block and a 'Rising Edge detect Pulse generator' (also with 'rst'). The 'hclk' clock is fed into this pulse generator. The output of the pulse generator is connected to a series of logic gates. One gate takes 'CPU(m) Event mask register' and 'CPU(other) lmask(y)' as inputs. Another gate takes 'CPU(m) Event(y)' and 'Other CPU(m) Events(x,y)' as inputs. These signals are combined and fed into a 'Rising Edge detect' block (part of a 'Same circuit for Configurable and Direct events' which also receives 'hclk'). The output of this block is 'c(m)_evt_rst' and 'c(m)_evt_exti'. These signals are then processed by an 'EVG' (External Event Generator) block which has 'ck_fclk_c(m)' as an input. The EVG block outputs 'c(m)_event'. Below the main logic, there are 'CPU(m) Wakeup(y)' and 'Other CPU(m) Wakeups' signals. These are combined and fed into a 'Synch' block which has 'hclk' as an input. The output of the 'Synch' block is 'c(m)_wakeups'. This signal is then combined with 'Other Wakeups' and 'Wakeups(y)' to produce the 'sys_wakeup' signal. A legend at the bottom left indicates that logic is duplicated for each CPU. The diagram is labeled 'EXTI' and 'MS46538V1'.
  1. 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

Figure 31: Direct event trigger logic CPU wakeup. This block diagram illustrates the logic for generating CPU wakeups from direct event inputs. On the left, 'Direct Event input(x)' enters the 'EXTI' block. Inside, it branches into an 'Asynchronous Rising Edge detect circuit rst' and a 'Falling Edge detect Pulse generator', both clocked by 'hclk'. These signals are processed through a series of AND and OR gates. The 'AND' gates also take inputs from 'CPU(m) Interrupt mask register' and 'CPU(m) Event mask register' within the 'Peripheral interface' block. The 'Peripheral interface' is connected to an 'AHB interface' and 'hclk'. The output of the first 'OR' gate is 'CPU(m) Event(x)' (labeled with (1)), which goes to a 'Rising Edge detect rst' block. The output of the second 'OR' gate is 'CPU(m) Wakeup(x)', which goes to a 'Sync' block. Both 'Rising Edge detect rst' and 'Sync' blocks are clocked by 'hclk'. The 'Rising Edge detect rst' block also receives 'c(m) evt rst' and 'c(m) evt exti' signals and outputs 'c(m)_event'. The 'Sync' block outputs 'c(m)_wakeup'. Both 'c(m)_event' and 'c(m)_wakeup' are inputs to the 'EVG' (Event Vector Generator) block, which is clocked by 'ck_fclk_c(m)'. The 'EVG' block also receives 'Other CPU(m)Events(x,y)' and 'Other CPU(m) Wakeups' signals and outputs 'sys_wakeup'. A dashed box labeled 'Same circuit for Configurable and Direct events' encloses the 'Rising Edge detect rst' and 'Sync' blocks. A legend at the bottom left indicates that logic is duplicated for each CPU. The diagram is labeled MS44725V1.
Figure 31: Direct event trigger logic CPU wakeup. This block diagram illustrates the logic for generating CPU wakeups from direct event inputs. On the left, 'Direct Event input(x)' enters the 'EXTI' block. Inside, it branches into an 'Asynchronous Rising Edge detect circuit rst' and a 'Falling Edge detect Pulse generator', both clocked by 'hclk'. These signals are processed through a series of AND and OR gates. The 'AND' gates also take inputs from 'CPU(m) Interrupt mask register' and 'CPU(m) Event mask register' within the 'Peripheral interface' block. The 'Peripheral interface' is connected to an 'AHB interface' and 'hclk'. The output of the first 'OR' gate is 'CPU(m) Event(x)' (labeled with (1)), which goes to a 'Rising Edge detect rst' block. The output of the second 'OR' gate is 'CPU(m) Wakeup(x)', which goes to a 'Sync' block. Both 'Rising Edge detect rst' and 'Sync' blocks are clocked by 'hclk'. The 'Rising Edge detect rst' block also receives 'c(m) evt rst' and 'c(m) evt exti' signals and outputs 'c(m)_event'. The 'Sync' block outputs 'c(m)_wakeup'. Both 'c(m)_event' and 'c(m)_wakeup' are inputs to the 'EVG' (Event Vector Generator) block, which is clocked by 'ck_fclk_c(m)'. The 'EVG' block also receives 'Other CPU(m)Events(x,y)' and 'Other CPU(m) Wakeups' signals and outputs 'sys_wakeup'. A dashed box labeled 'Same circuit for Configurable and Direct events' encloses the 'Rising Edge detect rst' and 'Sync' blocks. A legend at the bottom left indicates that logic is duplicated for each CPU. The diagram is labeled MS44725V1.
  1. 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 CPUs0NoMaskedMaskedMasked
1MaskedYesYes
1 for any CPU0Status latchedYesMaskedYes (2)
1YesYesYes
  1. 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. 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

AddressDescription
0x000 - 0x01CGeneral configurable event [31:0] configuration
0x020 - 0x03CGeneral configurable event [63:32] configuration
0x040 - 0x05CGeneral configurable event [95:64] configuration
0x080 - 0x0BCCPU1 input event configuration
0x0C0 - 0x0FCCPU2 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.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RT19RT18RT17RT16
rwrwrwrw
1514131211109876543210
RT15RT14RT13RT12RT11RT10RT9RT8RT7RT6RT5RT4RT3RT2RT1RT0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FT19FT18FT17FT16
rwrwrwrw
1514131211109876543210
FT15FT14FT13FT12FT11FT10FT9FT8FT7FT6FT5FT4FT3FT2FT1FT0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWI19SWI18SWI17SWI16
rwrwrwrw
1514131211109876543210
SWI15SWI14SWI13SWI12SWI11SWI10SWI9SWI8SWI7SWI6SWI5SWI4SWI3SWI2SWI1SWI0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PIF19PIF18PIF17PIF16
1514131211109876543210
PIF15PIF14PIF13PIF12PIF11PIF10PIF9PIF8PIF7PIF6PIF5PIF4PIF3PIF2PIF1PIF0
rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_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.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.RT41RT40Res.Res.Res.Res.Res.Res.RT33Res.
rwrwrw

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

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.FT41FT40Res.Res.Res.Res.Res.Res.FT33Res.
rwrwrw

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

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.SWI41SWI40Res.Res.Res.Res.Res.Res.SWI33Res.
rwrwrw

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.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.PIF41PIF40Res.Res.Res.Res.Res.Res.PIF33Res.
rc_w1rc_w1rc_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.

31302928272625242322212019181716
Res.IM30IM29Res.IM27IM26Res.IM24Res.IM22Res.Res.IM19IM18IM17IM16
rwrwrwrwrwrwrwrwrwrw
1514131211109876543210
IM15IM14IM13IM12IM11IM10IM9IM8IM7IM6IM5IM4IM3IM2IM1IM0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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. 1. The reset value for configurable event inputs is set to '0' in order to disable the interrupt by default.
  2. 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.

31302928272625242322212019181716
Res.IM30IM29Res.IM27IM26Res.IM24Res.IM22Res.Res.IM19IM18IM17IM16
rwrwrwrwrwrwrwrwrwrw
1514131211109876543210
IM15IM14IM13IM12IM11IM10IM9IM8IM7IM6IM5IM4IM3IM2IM1IM0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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. 1. The reset value for configurable event inputs is set to '0' in order to disable the interrupt by default.
  2. 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

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EM19EM18EM17Res.
rwrwrw
1514131211109876543210
EM15EM14EM13EM12EM11EM10EM9EM8EM7EM6EM5EM4EM3EM2EM1EM0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EM19EM18EM17Res.
rwrwrw
1514131211109876543210
EM15EM14EM13EM12EM11EM10EM9EM8EM7EM6EM5EM4EM3EM2EM1EM0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.IM48
rw
1514131211109876543210
Res.IM46IM45IM44Res.IM42IM41IM40IM39IM38IM37IM36Res.Res.IM33Res.
rwrwrwrwrwrwrwrwrwrwrw

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. 1. The reset value for configurable event inputs is set to '0' in order to disable the interrupt by default.
  2. 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.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.IM48
rw
1514131211109876543210
Res.IM46IM45IM44Res.IM42IM41IM40IM39IM38IM37IM36Res.Res.IM33Res.
rwrwrwrwrwrwrwrwrwrwrw

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. 1. The reset value for configurable event inputs is set to '0' in order to disable the interrupt by default.
  2. 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

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.EM41EM40Res.Res.Res.Res.Res.Res.Res.Res.
rwrw

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

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.EM41EM40Res.Res.Res.Res.Res.Res.Res.Res.
rwrw

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

OffsetRegister313029282726252423222120191817161514131211109876543210
0x000EXTI_RTSR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RT[19:0]
Reset value00000000000000000000
0x004EXTI_FTSR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FT[19:0]
Reset value00000000000000000000
0x008EXTI_SWIER1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SW[19:0]
Reset value00000000000000000000
0x00CEXTI_RPR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PIF[19:0]
Reset value00000000000000000000
0x010-0x01CReservedRes.
0x020EXTI_RTSR2Res.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.RT33Res.
Reset value000
0x024EXTI_FTSR2Res.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.FT33Res.
Reset value000
0x028EXTI_SWIER2Res.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.SWI33Res.
Reset value000
0x02CEXTI_PR2Res.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.PIF33Res.
Reset value000
0x030-0x07CReservedRes.
0x080EXTI_IMR1Res.IM [30:29]Res.IM [27:26]Res.IM 24Res.IM 22Res.Res.IM[19:0]
Reset value11111100000000000000000000
0x084EXTI_EMR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EM[19:17]Res.EM[15:0]
Reset value0000000000000000000
0x088-0x08CReservedRes.
0x090EXTI_IMR2Res.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 value111110011110
0x094EXTI_EMR2Res.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 value00
0x098-0x0BCReservedRes.

Table 62. EXTI register map and reset values (continued)

OffsetRegister313029282726252423222120191817161514131211109876543210
0x0C0EXTI_C2IMR1Res.IM [30:29]Res.IM [27:26]Res.IM 24Res.IM 22Res.Res.IM[19:0]
Reset value1 11 1110000000000000000000000
0x0C4EXTI_C2EMR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EM[19:17]Res.EM[15:0]
Reset value0000000000000000000
0x0C8-0x0CCReservedRes.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.
0x0D0EXTI_C1MR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.IM 48Res.IM[46:44]IM [42:36]Res.Res.IM 33Res.
Reset value111110011110
0x0D4EXTI_C2EMR2Res.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 value00

Refer to Section 2.2 on page 56 for the register boundary addresses.