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

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 27. EXTI block diagram

Figure 27. EXTI block diagram. The diagram shows the internal architecture of the EXTI block. On the left, 'Peripherals' provide 'Wakeups' (Direct event(x) or Configurable event(y)) and 'Interrupts' (Direct event(x)) to an 'Event Trigger' block. The 'Event Trigger' sends 'events' to a 'Masking' block. The 'Masking' block is connected to 'Registers' and an 'AHB interface'. The 'Registers' are connected to the 'AHB interface' and receive 'hclk'. The 'Masking' block outputs various signals: 'sys_wakeup', 'c1_wakeup', 'c(m)_wakeup', and 'it_exti_per(y)' to a 'PWR' block. It also outputs 'c1_evt_exti', 'c1_evt_rst', 'c(m)_evt_exti', and 'c(m)_evt_rst' to 'Pulse' blocks. These 'Pulse' blocks are connected to 'EVG' blocks. The 'EVG' blocks output 'c1_event', 'c1_fclk', 'c(m)_event', and 'c(m)_fclk' to 'CPU' blocks (CPU1, CPU(m)). The 'CPU' blocks are connected to 'nvic(x)' and 'nvic(y)' blocks. 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 27. EXTI block diagram. The diagram shows the internal architecture of the EXTI block. On the left, 'Peripherals' provide 'Wakeups' (Direct event(x) or Configurable event(y)) and 'Interrupts' (Direct event(x)) to an 'Event Trigger' block. The 'Event Trigger' sends 'events' to a 'Masking' block. The 'Masking' block is connected to 'Registers' and an 'AHB interface'. The 'Registers' are connected to the 'AHB interface' and receive 'hclk'. The 'Masking' block outputs various signals: 'sys_wakeup', 'c1_wakeup', 'c(m)_wakeup', and 'it_exti_per(y)' to a 'PWR' block. It also outputs 'c1_evt_exti', 'c1_evt_rst', 'c(m)_evt_exti', and 'c(m)_evt_rst' to 'Pulse' blocks. These 'Pulse' blocks are connected to 'EVG' blocks. The 'EVG' blocks output 'c1_event', 'c1_fclk', 'c(m)_event', and 'c(m)_fclk' to 'CPU' blocks (CPU1, CPU(m)). The 'CPU' blocks are connected to 'nvic(x)' and 'nvic(y)' blocks. A note at the bottom left states: '* it_exti_per(y) are only available for Configurable events (y)'. The diagram is labeled 'MS44723V1' at the bottom right.

Table 56. 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 57. 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) rxev 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 58. 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 28 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 28. Configurable event trigger logic CPU wakeup

Figure 28. Configurable event trigger logic CPU wakeup. This block diagram illustrates the internal logic of the EXTI for CPU wakeups. 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 an 'Asynchronous Edge detection circuit' which is reset by 'rst'. Its output passes through a 'Delay' block and a 'Rising Edge detect Pulse generator' (clocked by 'hclk'). The pulse is ANDed with 'CPU(m) Event mask register' and 'CPU(other) Imask(y)'. The result is ORed with 'Other CPU(m) Events(x,y)' and sent to a 'Rising Edge detect' block (also reset by 'rst'). This block generates 'c(m)_evt_rst' and 'c(m)_evt_exti' signals to an 'EVG' (Event Generation) block. The 'EVG' block, clocked by 'ck_fclk_c(m)', generates the 'c(m)_event' signal. Below the main logic, 'CPU(m) Wakeup(y)' signals are ORed with 'Other CPU(m) Wakeups' and passed through a 'Sync' block (clocked by 'hclk') to generate 'c(m)_wakeup' and 'sys_wakeup' signals. A 'Pending request register' is also shown in the peripheral interface. A legend indicates that logic is duplicated for each CPU.
Figure 28. Configurable event trigger logic CPU wakeup. This block diagram illustrates the internal logic of the EXTI for CPU wakeups. 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 an 'Asynchronous Edge detection circuit' which is reset by 'rst'. Its output passes through a 'Delay' block and a 'Rising Edge detect Pulse generator' (clocked by 'hclk'). The pulse is ANDed with 'CPU(m) Event mask register' and 'CPU(other) Imask(y)'. The result is ORed with 'Other CPU(m) Events(x,y)' and sent to a 'Rising Edge detect' block (also reset by 'rst'). This block generates 'c(m)_evt_rst' and 'c(m)_evt_exti' signals to an 'EVG' (Event Generation) block. The 'EVG' block, clocked by 'ck_fclk_c(m)', generates the 'c(m)_event' signal. Below the main logic, 'CPU(m) Wakeup(y)' signals are ORed with 'Other CPU(m) Wakeups' and passed through a 'Sync' block (clocked by 'hclk') to generate 'c(m)_wakeup' and 'sys_wakeup' signals. A 'Pending request register' is also shown in the peripheral interface. A legend indicates that logic is duplicated for each CPU.
  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 29 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 29. Direct event trigger logic CPU wakeup

Figure 29: Direct event trigger logic CPU wakeup. This block diagram illustrates the logic for generating CPU wakeups and events from direct input signals. On the left, 'Direct Event input(x)' signals enter the 'EXTI' block. These are processed by an 'Asynchronous Rising Edge detect circuit rst' and a 'Falling Edge detect Pulse generator', both clocked by 'hclk'. The rising edge detection output goes to an OR gate labeled 'CPU(m) Event(x) (1)'. The falling edge detection output goes to another OR gate labeled 'CPU(m) Wakeup(x)'. Both OR gates also receive inputs from 'Other CPU(m)Events(x,y)' and 'Other CPU(m) Wakeups' respectively. These signals then pass through a 'Same circuit for Configurable and Direct events' block, which contains 'Rising Edge detect rst' and 'Sync' blocks, also clocked by 'hclk'. The outputs are 'c(m) evt rst' and 'c(m) wakeup'. The 'c(m) evt rst' signal goes to an 'EVG' block containing a 'CPU(m) Rising Edge detect Pulse generator' clocked by 'ck_fclk_c(m)', which outputs 'c(m)_event'. The 'c(m) wakeup' signal is also output directly. A 'Peripheral interface' block contains 'CPU(m) Interrupt mask register' and 'CPU(m) Event mask register' which control the logic. The 'AHB interface' provides 'hclk' to various components. A legend indicates that logic is duplicated for each CPU. The diagram is labeled MS44725V1.
Figure 29: Direct event trigger logic CPU wakeup. This block diagram illustrates the logic for generating CPU wakeups and events from direct input signals. On the left, 'Direct Event input(x)' signals enter the 'EXTI' block. These are processed by an 'Asynchronous Rising Edge detect circuit rst' and a 'Falling Edge detect Pulse generator', both clocked by 'hclk'. The rising edge detection output goes to an OR gate labeled 'CPU(m) Event(x) (1)'. The falling edge detection output goes to another OR gate labeled 'CPU(m) Wakeup(x)'. Both OR gates also receive inputs from 'Other CPU(m)Events(x,y)' and 'Other CPU(m) Wakeups' respectively. These signals then pass through a 'Same circuit for Configurable and Direct events' block, which contains 'Rising Edge detect rst' and 'Sync' blocks, also clocked by 'hclk'. The outputs are 'c(m) evt rst' and 'c(m) wakeup'. The 'c(m) evt rst' signal goes to an 'EVG' block containing a 'CPU(m) Rising Edge detect Pulse generator' clocked by 'ck_fclk_c(m)', which outputs 'c(m)_event'. The 'c(m) wakeup' signal is also output directly. A 'Peripheral interface' block contains 'CPU(m) Interrupt mask register' and 'CPU(m) Event mask register' which control the logic. The 'AHB interface' provides 'hclk' to various components. A legend 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 59. Masking functionality

CPU interrupt enable
EXTI_CmIMR.IMn
CPU event enable
EXTI_CmEMR.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. The single exti(n) interrupt goes to all CPUs. If no interrupt is required for CPU(m), the exti(n) interrupt must be masked in the CPU(m) interrupt controller.

2. Only if CPU(m) interrupt is enabled in EXTI_CmIMR.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 60 .

Table 60. 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.RT20RT19RT18RT17RT16
rwrwrwrwrw
1514131211109876543210
RT15RT14RT13RT12RT11RT10RT9RT8RT7RT6RT5RT4RT3RT2RT1RT0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 20:0 RT[20:0] : Rising trigger event configuration bit of configurable event input x (x = 20 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.FT20FT19FT18FT17FT16
rwrwrwrwrw
1514131211109876543210
FT15FT14FT13FT12FT11FT10FT9FT8FT7FT6FT5FT4FT3FT2FT1FT0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 20:0 FT[20:0] : Falling trigger event configuration bit of configurable event input x (x = 20 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.SWI20SWI19SWI18SWI17SWI16
rwrwrwrwrw
1514131211109876543210
SWI15SWI14SWI13SWI12SWI11SWI10SWI9SWI8SWI7SWI6SWI5SWI4SWI3SWI2SWI1SWI0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 20:0 SWI[20:0] : Software interrupt on event x (x = 20 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.PIF20PIF19PIF18PIF17PIF16
rc_w1rc_w1rc_w1rc_w1rc_w1
1514131211109876543210
PIF15PIF14PIF13PIF12PIF11PIF10PIF9PIF8PIF7PIF6PIF5PIF4PIF3PIF2PIF1PIF0
rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1rc_w1

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

Bits 20:0 PIF[20:0] : configurable event inputs x (x = 20 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.Res.Res.Res.IM24Res.IM22Res.Res.IM19IM18IM17IM16
rwrwrwrwrwrwrwrw
1514131211109876543210
IM15IM14IM13IM12IM11IM10IM9IM8IM7IM6IM5IM4IM3IM2IM1IM0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31, 28:25, 23, Reserved, must be kept at reset value.
21:20

Bits 30:29, 24, 22, IM[30:29, 24, 22, 19:0] : CPU wakeup with interrupt mask on event input x (x = 30:29, 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.Res.Res.Res.IM24Res.IM22Res.Res.IM19IM18IM17IM16
rwrwrwrwrwrwrwrw
1514131211109876543210
IM15IM14IM13IM12IM11IM10IM9IM8IM7IM6IM5IM4IM3IM2IM1IM0
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31, 28:25, 23, Reserved, must be kept at reset value.
21:20

Bits 30:29, 24, 22, IM[30:29, 24, 22, 19:0] : CPU2 wakeup with interrupt mask on event input x (x = 30:29, 24, 22, 19:0 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[15: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
1514131211109876543210
Res.Res.IM45IM44Res.IM42IM41IM40IM39IM38IM37IM36Res.Res.Res.Res.
rwrwrwrwrwrwrwrwrw

Bits 31:17, 15:14, Reserved, must be kept at reset value.

11, 3:0

Bits 16, 13:12, 10:4 IM[48, 45:44, 42:36] : CPU wakeup with interrupt mask on event input x (x = 48, 45 to 44, 42 to 36) (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
1514131211109876543210
Res.Res.IM45IM44Res.IM42IM41IM40IM39IM38IM37IM36Res.Res.Res.Res.
rwrwrwrwrwrwrwrwrw

Bits 31:17, 15:14, Reserved, must be kept at reset value.

11, 3:0

Bits 16, 13:12, 10:4 IM[48, 45:44, 42:36] : CPU wakeup with interrupt mask on event input x (x = 48, 45 to 44, 42 to 36) (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

Bit 8 EM40 : CPU wakeup with event generation mask on event input 40.

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

Bit 8 EM40 : CPU2 wakeup with event generation mask on event input 40.

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 61. EXTI register map and reset values

OffsetRegister313029282726252423222120191817161514131211109876543210
0x000EXTI_RTSR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RT[20:0]
Reset value000000000000000000000
0x004EXTI_FTSR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FT[20:0]
Reset value000000000000000000000
0x008EXTI_SWIER1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWI[20:0]
Reset value000000000000000000000
0x00CEXTI_PR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PIF[20:0]
Reset value000000000000000000000
0x020EXTI_RTSR2Res.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.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.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.PIF
[41:40]
Res.Res.Res.Res.Res.Res.Res.PIF33Res.
Reset value000
0x080EXTI_IMR1Res.IM
[30:29]
Res.Res.Res.Res.Res.IM
24
Res.IM
22
Res.IM[19:0]
Reset value111100000000000000000000
0x084EXTI_EMR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EM[19:17]Res.EM[15:0]
Reset value0000000000000000000
0x088-
0x08C
ReservedRes.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.
0x090EXTI_IMR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.IM
48
Res.Res.IM
[45:44]
IM [42:36]Res.Res.Res.Res.Res.Res.
Reset value1111001111
0x094EXTI_EMR2Res.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
0x0C0EXTI_C2IMR1Res.IM
[30:29]
Res.Res.Res.Res.Res.IM
25
Res.IM
22
Res.IM[19:0]
Reset value111100000000000000000000
0x0C4EXTI_C2EMR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EM[19:17]Res.EM[15:0]
Reset value0000000000000000000

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

OffsetRegister313029282726252423222120191817161514131211109876543210
0x0D0EXTI_C2IMR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.IM
48
Res.Res.IM
[45:44]
Res.IM [42:36]Res.Res.Res.Res.Res.
Reset value1111001111
0x0D4EXTI_C2EMR2Res.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.
Reset value00

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