17. DMA request multiplexer (DMAMUX)

17.1 Introduction

A peripheral indicates a request for DMA transfer by setting its DMA request signal. The DMA request is pending until served by the DMA controller that generates a DMA acknowledge signal, and the corresponding DMA request signal is deasserted.

In this document, the set of control signals required for the DMA request/acknowledge protocol is not explicitly shown or described, and it is referred to as DMA request line.

The DMAMUX request multiplexer enables routing a DMA request line between the peripherals and the DMA controller of the product. The routing function is ensured by a programmable multi-channel DMA request line multiplexer. Each channel selects a unique DMA request line, unconditionally or synchronously with events from its DMAMUX synchronization inputs. The DMAMUX may also be used as a DMA request generator from programmable events on its input trigger signals.

The number of DMAMUX instances and their main characteristics are specified in Section 17.3.1 .

The assignment of DMAMUX request multiplexer inputs to the DMA request lines from peripherals and to the DMAMUX request generator outputs, the assignment of DMAMUX request multiplexer outputs to DMA controller channels, and the assignment of DMAMUX synchronizations and trigger inputs to internal and external signals depend upon product implementation. They are detailed in Section 17.3.2 .

17.2 DMAMUX main features

17.3 DMAMUX implementation

17.3.1 DMAMUX1 and DMAMUX2 instantiation

The product integrates two instances of DMA request multiplexer:

DMAMUX1 and DMAMUX2 are instantiated with the hardware configuration parameters listed in the following table.

Table 101. DMAMUX1 and DMAMUX2 instantiation

FeatureDMAMUX1DMAMUX2
Number of DMAMUX output request channels168
Number of DMAMUX request generator channels88
Number of DMAMUX request trigger inputs832
Number of DMAMUX synchronization inputs816
Number of DMAMUX peripheral request inputs1018

17.3.2 DMAMUX1 mapping

The mapping of resources to DMAMUX is hardwired.

DMAMUX1 is used with DMA1 and DMA2 in CD domain

Table 102. DMAMUX1: assignment of multiplexer inputs to resources

DMA request MUX inputResourceDMA request MUX inputResourceDMA request MUX inputResource
1dmamux1_req_gen043USART2_RX85SPI5_RX
2dmamux1_req_gen144USART2_TX86SPI5_TX
3dmamux1_req_gen245USART3_RX87SAI1_A
4dmamux1_req_gen346USART3_TX88SAI1_B
5dmamux1_req_gen447TIM8_CH189SAI2_A
6dmamux1_req_gen548TIM8_CH290SAI2_B
7dmamux1_req_gen649TIM8_CH391SWPMI_RX
8dmamux1_req_gen750TIM8_CH492SWPMI_TX
9ADC151TIM8_UP93SPDIFRX_DT
10ADC252TIM8_TRIG94SPDIFRX_CS
11TIM1_CH153TIM8_COM95Reserved
12TIM1_CH254Reserved96Reserved
13TIM1_CH355TIM5_CH197Reserved
14TIM1_CH456TIM5_CH298Reserved
15TIM1_UP57TIM5_CH399Reserved
16TIM1_TRIG58TIM5_CH4100Reserved
17TIM1_COM59TIM5_UP101DFSDM1_dma0
18TIM2_CH160TIM5_TRIG102DFSDM1_dma1
19TIM2_CH261SPI3_RX103DFSDM1_dma2
20TIM2_CH362SPI3_TX104DFSDM1_dma3
21TIM2_CH463UART4_RX105TIM15_CH1
22TIM2_UP64UART4_TX106TIM15_UP
23TIM3_CH165UART5_RX107TIM15_TRIG
24TIM3_CH266UART5_TX108TIM15_COM
25TIM3_CH367DAC1_out1109TIM16_CH1
26TIM3_CH468DAC1_out2110TIM16_UP
27TIM3_UP69TIM6_UP111TIM17_CH1
28TIM3_TRIG70TIM7_UP112TIM17_UP
29TIM4_CH171USART6_RX113Reserved
30TIM4_CH272USART6_TX114Reserved
31TIM4_CH373I2C3_RX115Reserved
32TIM4_UP74I2C3_TX116UART9_RX
33I2C1_RX75DCMI_PSSI117UART9_TX
34I2C1_TX76CRYP_IN118USART10_RX
35I2C2_RX77CRYP_OUT119USART10_TX
36I2C2_TX78HASH_IN120Reserved

Table 102. DMAMUX1: assignment of multiplexer inputs to resources (continued)

DMA request MUX inputResourceDMA request MUX inputResourceDMA request MUX inputResource
37SPI1_RX79UART7_RX121Reserved
38SPI1_TX80UART7_TX122Reserved
39SPI2_RX81UART8_RX123Reserved
40SPI2_TX82UART8_TX124Reserved
41USART1_RX83SPI4_RX125Reserved
42USART1_TX84SPI4_TX127Reserved

Table 103. DMAMUX1: assignment of trigger inputs to resources

Trigger inputResourceTrigger inputResource
0DMAMUX1_evt04lptim2_out
1DMAMUX1_evt15lptim3_out
2DMAMUX1_evt26extitf0
3lptim1_out7TIM12_TRGO

Table 104. DMAMUX1: assignment of synchronization inputs to resources

Sync. inputResourceSync. inputResource
0DMAMUX1_evt04lptim2_out
1DMAMUX1_evt15lptim3_out
2DMAMUX1_evt26extitf0
3lptim1_out7TIM12_TRGO

17.3.3 DMAMUX2 mapping

DMAMUX2 channels 0 to 7 are connected to BDMA channels 0 to 7.

Table 105. DMAMUX2: assignment of multiplexer inputs to resources

DMA request MUX inputResourceDMA request MUX inputResource
1dmamux2_req_gen017DAC2
2dmamux2_req_gen118DFSDM2_dma0
3dmamux2_req_gen219Reserved
4dmamux2_req_gen320Reserved
5dmamux2_req_gen421Reserved
6dmamux2_req_gen522Reserved
7dmamux2_req_gen623Reserved
8dmamux2_req_gen724Reserved
9LP UART1_RX25Reserved

Table 105. DMAMUX2: assignment of multiplexer inputs to resources (continued)

DMA request MUX inputResourceDMA request MUX inputResource
10LP UART1_TX26Reserved
11SPI6_RX27Reserved
12SPI6_TX28Reserved
13I2C4_RX29Reserved
14I2C4_TX30Reserved
15Reserved31Reserved
16Reserved--
Table 106. DMAMUX2: assignment of trigger inputs to resources
Trigger inputResourceTrigger inputResource
0DMAMUX2_evt016Spi6_it_async
1DMAMUX2_evt117Comp1_out
2DMAMUX2_evt218Comp2_out
3DMAMUX2_evt319RTC_wkup
4DMAMUX2_evt420Syscfg_exti0_mux
5DMAMUX2_evt521Syscfg_exti2_mux
6DMAMUX2_evt622I2c4_it_event
7Lpuart1_it_R_WUP_ASYNC23Spi6_it
8Lpuart1_it_T_WUP_ASYNC24Lpuart1_it_T
9Lptim2_ait25Lpuart1_it_R
10Lptim2_out26Reserved
11Lptim3_ait27Reserved
12Lptim3_out28BDMA2_ch0_it
13Reserved29BDMA2_ch1_it
14Reserved30Reserved
15I2c4_it_async31Reserved
Table 107. DMAMUX2: assignment of synchronization inputs to resources
Sync inputResourceSync inputResource
0dmamux2_ch0_evt8Lptim2_out
1dmamux2_ch1_evt9Lptim3_out
2dmamux2_ch2_evt10I2c4_it_async
3dmamux2_ch3_evt11Spi6_it_async
4dmamux2_ch4_evt12Comp1_out
5dmamux2_ch5_evt13RTC_wkup
6Lpuart1_it_R_WUP_ASYNC14Syscfg_exti0_mux
7Lpuart1_it_T_WUP_ASYNC15Syscfg_exti2_mux

17.4 DMAMUX functional description

17.4.1 DMAMUX block diagram

Figure 89 shows the DMAMUX block diagram.

Figure 89. DMAMUX block diagram

Figure 89. DMAMUX block diagram. The diagram shows the internal architecture of the DMAMUX block. At the top, a 32-bit AHB bus is connected to an AHB slave interface. The DMAMUX block contains several sub-blocks: a Request generator, a Request multiplexer, a Sync block, and an Interrupt interface. The Request generator has multiple channels (0 to n) with control registers (DMAMUX_RGC0CR to DMAMUX_RGCnCR). The Request multiplexer has multiple channels (0 to m) with control registers (DMAMUX_C0CR to DMAMUX_CmCR). The Sync block takes inputs from the Request generator and the Request multiplexer. The Interrupt interface generates an interrupt signal (dmamux_ovr_it). External inputs include DMA requests from peripherals (dmamux_req_inx), trigger inputs (dmamux_trgx), and synchronization inputs (dmamux_syncx). External outputs include DMA requests to DMA controllers (dmamux_req_outx) and DMA channel events (dmamux_evt).

The block diagram illustrates the internal structure of the DMAMUX. At the top, a 32-bit AHB bus is connected to an AHB slave interface. The DMAMUX block contains several sub-blocks: a Request generator, a Request multiplexer, a Sync block, and an Interrupt interface. The Request generator has multiple channels (0 to n) with control registers (DMAMUX_RGC0CR to DMAMUX_RGCnCR). The Request multiplexer has multiple channels (0 to m) with control registers (DMAMUX_C0CR to DMAMUX_CmCR). The Sync block takes inputs from the Request generator and the Request multiplexer. The Interrupt interface generates an interrupt signal (dmamux_ovr_it). External inputs include DMA requests from peripherals (dmamux_req_inx), trigger inputs (dmamux_trgx), and synchronization inputs (dmamux_syncx). External outputs include DMA requests to DMA controllers (dmamux_req_outx) and DMA channel events (dmamux_evt).

Figure 89. DMAMUX block diagram. The diagram shows the internal architecture of the DMAMUX block. At the top, a 32-bit AHB bus is connected to an AHB slave interface. The DMAMUX block contains several sub-blocks: a Request generator, a Request multiplexer, a Sync block, and an Interrupt interface. The Request generator has multiple channels (0 to n) with control registers (DMAMUX_RGC0CR to DMAMUX_RGCnCR). The Request multiplexer has multiple channels (0 to m) with control registers (DMAMUX_C0CR to DMAMUX_CmCR). The Sync block takes inputs from the Request generator and the Request multiplexer. The Interrupt interface generates an interrupt signal (dmamux_ovr_it). External inputs include DMA requests from peripherals (dmamux_req_inx), trigger inputs (dmamux_trgx), and synchronization inputs (dmamux_syncx). External outputs include DMA requests to DMA controllers (dmamux_req_outx) and DMA channel events (dmamux_evt).

DMAMUX features two main sub-blocks: the request line multiplexer and the request line generator.

The implementation assigns:

17.4.2 DMAMUX signals

Table 108 lists the DMAMUX signals.

Table 108. DMAMUX signals

Signal nameDescription
dmamux_hclkDMAMUX AHB clock
dmamux_req_inxDMAMUX DMA request line inputs from peripherals
dmamux_trgxDMAMUX DMA request triggers inputs (to request generator sub-block)
dmamux_req_genxDMAMUX request generator sub-block channels outputs
dmamux_reqxDMAMUX request multiplexer sub-block inputs (from peripheral requests and request generator channels)
dmamux_syncxDMAMUX synchronization inputs (to request multiplexer sub-block)
dmamux_req_outxDMAMUX requests outputs (to DMA controller)
dmamux_evttxDMAMUX events outputs
dmamux_ovr_itDMAMUX overrun interrupts

17.4.3 DMAMUX channels

A DMAMUX channel is a request multiplexer channel that can include, depending upon the selected input of the request multiplexer, an additional DMAMUX request generator channel.

A DMAMUX request multiplexer channel is connected and dedicated to a single channel of DMA controller.

Channel configuration procedure

Follow the sequence below to configure a DMAMUX x channel and the related DMA channel y:

  1. 1. Set and configure completely the DMA channel y, except enabling the channel y.
  2. 2. Set and configure completely the related DMAMUX y channel.
  3. 3. Last, activate the DMA channel y by setting the EN bit in the DMA y channel register.

17.4.4 DMAMUX request line multiplexer

The DMAMUX request multiplexer with its multiple channels ensures the actual routing of DMA request/acknowledge control signals, named DMA request lines.

Each DMA request line is connected in parallel to all the channels of the DMAMUX request line multiplexer.

A DMA request is sourced either from the peripherals, or from the DMAMUX request generator.

The DMAMUX request line multiplexer channel x selects the DMA request line number as configured by the DMAREQ_ID field in the DMAMUX_CxCR register.

Note: The null value in the field DMAREQ_ID corresponds to no DMA request line selected.

Caution: A same non-null DMAREQ_ID cannot be programmed to different x and y DMAMUX request multiplexer channels (via DMAMUX_CxCR and DMAMUX_CyCR), except when the application guarantees that the two connected DMA channels are not simultaneously active. On top of the DMA request selection, the synchronization mode and/or the event generation may be configured and enabled, if required.

Synchronization mode and channel event generation

Each DMAMUX request line multiplexer channel x can be individually synchronized by setting the synchronization enable (SE) bit in the DMAMUX_CxCR register.

DMAMUX has multiple synchronization inputs. The synchronization inputs are connected in parallel to all the channels of the request multiplexer.

The synchronization input is selected via the SYNC_ID field in the DMAMUX_CxCR register of a given channel x.

When a channel is in this synchronization mode, the selected input DMA request line is propagated to the multiplexer channel output, once a programmable rising/falling edge is detected on the selected input synchronization signal, via the SPOL[1:0] field of the DMAMUX_CxCR register.

Additionally, internally to the DMAMUX request multiplexer, there is a programmable DMA request counter, which can be used for the channel request output generation, and for an event generation. An event generation on the channel x output is enabled through the EGE bit (event generation enable) of the DMAMUX_CxCR register.

As shown in Figure 91 , upon the detected edge of the synchronization input, the pending selected input DMA request line is connected to the DMAMUX multiplexer channel x output.

Note: If a synchronization event occurs while there is no pending selected input DMA request line, it is discarded. The following asserted input request lines is not connected to the DMAMUX multiplexer channel output until a synchronization event occurs again.

From this point on, each time the connected DMAMUX request is served by the DMA controller (a served request is deasserted), the DMAMUX request counter is decremented. At its underrun, the DMA request counter is automatically loaded with the value in the NBREQ field of the DMAMUX_CxCR register and the input DMA request line is disconnected from the multiplexer channel x output.

Thus, the number of DMA requests transferred to the multiplexer channel x output following a detected synchronization event, is equal to the value in the NBREQ field, plus one.

Note: The NBREQ field value can be written by software only when both synchronization enable bit (SE) and event generation enable bit (EGE) of the corresponding multiplexer channel x are disabled.

Figure 90. Synchronization mode of the DMAMUX request line multiplexer channel

Timing diagram for Figure 90 showing synchronization mode. It includes signals: Selected dmamux_reqx, dmamux_syncx, dmamux_req_outx, DMA request counter, and dmamux_evtx. The diagram shows the counter counting down from 4 to 0 and then auto-reloading to 4. The dmamux_evtx signal pulses when the counter reaches 0. Labels indicate 'Selected DMA request line transferred to the output', 'DMA requests served', 'DMA request pending', 'Not pending', 'Synchronization event Input DMA request line connected to output', and 'DMA request counter underrun DMA request counter auto-reload to NBREQ Input DMA request line disconnected from output'.

Example: DMAMUX_CCRx configured with: NBREQ=4, SE=1, EGE=1, SPOL=01 (rising edge)

MSv41974V1

Timing diagram for Figure 90 showing synchronization mode. It includes signals: Selected dmamux_reqx, dmamux_syncx, dmamux_req_outx, DMA request counter, and dmamux_evtx. The diagram shows the counter counting down from 4 to 0 and then auto-reloading to 4. The dmamux_evtx signal pulses when the counter reaches 0. Labels indicate 'Selected DMA request line transferred to the output', 'DMA requests served', 'DMA request pending', 'Not pending', 'Synchronization event Input DMA request line connected to output', and 'DMA request counter underrun DMA request counter auto-reload to NBREQ Input DMA request line disconnected from output'.

Figure 91. Event generation of the DMA request line multiplexer channel

Timing diagram for Figure 91 showing event generation. It includes signals: Selected dmamux_reqx, dmamux_req_outx, DMA request counter, SE, EGE, and dmamux_evtx. The counter counts down from 3 to 0 and then auto-reloads to 3. The dmamux_evtx signal pulses when the counter reaches 0. Labels indicate 'Selected DMA request line transferred to the output', 'DMA request pending', 'Not pending', 'DMA request counter reaches zero Event is generated on the output DMA request counter auto-reloads with NBREQ value'.

Example with: DMAMUX_CCRx configured with: NBREQ=3, SE=0, EGE=1

MSv41975V1

Timing diagram for Figure 91 showing event generation. It includes signals: Selected dmamux_reqx, dmamux_req_outx, DMA request counter, SE, EGE, and dmamux_evtx. The counter counts down from 3 to 0 and then auto-reloads to 3. The dmamux_evtx signal pulses when the counter reaches 0. Labels indicate 'Selected DMA request line transferred to the output', 'DMA request pending', 'Not pending', 'DMA request counter reaches zero Event is generated on the output DMA request counter auto-reloads with NBREQ value'.

If EGE is enabled, the multiplexer channel generates a channel event, as a pulse of one AHB clock cycle, when its DMA request counter is automatically reloaded with the value of the programmed NBREQ field, as shown in Figure 90 and Figure 91 .

Note: If EGE is enabled and NBREQ = 0, an event is generated after each served DMA request.

Note: A synchronization event (edge) is detected if the state following the edge remains stable for more than two AHB clock cycles.

Upon writing into DMAMUX_CxCR register, the synchronization events are masked during three AHB clock cycles.

Synchronization overrun and interrupt

If a new synchronization event occurs before the request counter underrun (the internal request counter programmed via the NBREQ field of the DMAMUX_CxCR register), the synchronization overrun flag bit SOFx is set in the DMAMUX_CSR register.

Note: The request multiplexer channel x synchronization must be disabled (DMAMUX_CxCR.SE = 0) when the use of the related channel of the DMA controller is completed. Else, upon a new detected synchronization event, there is a synchronization overrun due to the absence of a DMA acknowledge (that is, no served request) received from the DMA controller.

The overrun flag SOFx is reset by setting the associated clear synchronization overrun flag bit CSOFx in the DMAMUX_CFR register.

Setting the synchronization overrun flag generates an interrupt if the synchronization overrun interrupt enable bit SOIE is set in the DMAMUX_CxCR register.

17.4.5 DMAMUX request generator

The DMAMUX request generator produces DMA requests following trigger events on its DMA request trigger inputs.

The DMAMUX request generator has multiple channels. DMA request trigger inputs are connected in parallel to all channels.

The outputs of DMAMUX request generator channels are inputs to the DMAMUX request line multiplexer.

Each DMAMUX request generator channel x has an enable bit GE (generator enable) in the corresponding DMAMUX_RGxCR register.

The DMA request trigger input for the DMAMUX request generator channel x is selected through the SIG_ID (trigger signal ID) field in the corresponding DMAMUX_RGxCR register.

Trigger events on a DMA request trigger input can be rising edge, falling edge or either edge. The active edge is selected through the GPOL (generator polarity) field in the corresponding DMAMUX_RGxCR register.

Upon the trigger event, the corresponding generator channel starts generating DMA requests on its output. Each time the DMAMUX generated request is served by the connected DMA controller (a served request is deasserted), a built-in (inside the DMAMUX request generator) DMA request counter is decremented. At its underrun, the request generator channel stops generating DMA requests and the DMA request counter is automatically reloaded to its programmed value upon the next trigger event.

Thus, the number of DMA requests generated after the trigger event is GNBREQ + 1.

Note: The GNBREQ field value can be written by software only when the enable GE bit of the corresponding generator channel x is disabled.

There is no hardware write protection.

A trigger event (edge) is detected if the state following the edge remains stable for more than two AHB clock cycles.

Upon writing into DMAMUX_RGxCR register, the trigger events are masked during three AHB clock cycles.

Trigger overrun and interrupt

If a new DMA request trigger event occurs before the DMAMUX request generator counter underrun (the internal counter programmed via the GNBREQ field of the DMAMUX_RGxCR register), and if the request generator channel x was enabled via GE, then the request trigger event overrun flag bit OFx is asserted by the hardware in the DMAMUX_RGSR register.

Note: The request generator channel x must be disabled (DMAMUX_RGxCR.GE = 0) when the usage of the related channel of the DMA controller is completed. Else, upon a new detected trigger event, there is a trigger overrun due to the absence of an acknowledge (that is, no served request) received from the DMA.

The overrun flag OFx is reset by setting the associated clear overrun flag bit COFx in the DMAMUX_RGCFR register.

Setting the DMAMUX request trigger overrun flag generates an interrupt if the DMA request trigger event overrun interrupt enable bit OIE is set in the DMAMUX_RGxCR register.

17.5 DMAMUX interrupts

An interrupt can be generated upon:

For each case, per-channel individual interrupt enable, status, and clear flag register bits are available.

Table 109. DMAMUX interrupts

Interrupt signalInterrupt eventEvent flagClear bitEnable bit
dmamuxovr_itSynchronization event overrun on channel x of the DMAMUX request line multiplexerSOFxCSOFxSOIE
Trigger event overrun on channel x of the DMAMUX request generatorOFxCOFxOIE

17.6 DMAMUX registers

Refer to the table containing register boundary addresses for the DMAMUX1 and DMAMUX2 base address.

DMAMUX registers may be accessed per byte (8-bit), half-word (16-bit), or word (32-bit). The address must be aligned with the data size.

17.6.1 DMAMUX1 request line multiplexer channel x configuration register (DMAMUX1_CxCR)

Address offset: 0x000 + 0x04 * x (x = 0 to 15)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.SYNC_ID[2:0]NBREQ[4:0]SPOL[1:0]SE
rwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.EGESOIERes.DMAREQ_ID[6:0]
rwrwrwrwrwrwrwrwrw

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

Bits 26:24 SYNC_ID[2:0] : Synchronization identification

Selects the synchronization input (see Table 102: DMAMUX1: assignment of multiplexer inputs to resources and Table 107: DMAMUX2: assignment of synchronization inputs to resources ).

Bits 23:19 NBREQ[4:0] : Number of DMA requests minus 1 to forward

Defines the number of DMA requests to forward to the DMA controller after a synchronization event, and/or the number of DMA requests before an output event is generated.

This field must only be written when both SE and EGE bits are low.

Bits 18:17 SPOL[1:0] : Synchronization polarity

Defines the edge polarity of the selected synchronization input:

00: No event (no synchronization, no detection).

01: Rising edge

10: Falling edge

11: Rising and falling edges

Bit 16 SE : Synchronization enable

0: Synchronization disabled

1: Synchronization enabled

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

Bit 9 EGE : Event generation enable

0: Event generation disabled

1: Event generation enabled

Bit 8 SOIE : Synchronization overrun interrupt enable

0: Interrupt disabled

1: Interrupt enabled

Bit 7 Reserved, must be kept at reset value.

Bits 6:0 DMAREQ_ID[6:0] : DMA request identification

Selects the input DMA request. See the DMAMUX table about assignments of multiplexer inputs to resources.

17.6.2 DMAMUX2 request line multiplexer channel x configuration register (DMAMUX2_CxCR)

Address offset: 0x000 + 0x04 * x, where x = 0 to 7

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.SYNC_ID[3:0]NBREQ[4:0]SPOL[1:0]SE
rwrwrwrwrwrwrwrwrwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.EGESOIERes.Res.Res.DMAREQ_ID[4:0]
rwrwrwrwrwrwrw

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

Bits 27:24 SYNC_ID[3:0] : Synchronization identification

Selects the synchronization input (see )

Bits 23:19 NBREQ[4:0] : Number of DMA requests minus 1 to forward

Defines the number of DMA requests to forward to the DMA controller after a synchronization event, and/or the number of DMA requests before an output event is generated.

This field shall only be written when both SE and EGE bits are low.

Bits 18:17 SPOL[1:0] : Synchronization polarity

Defines the edge polarity of the selected synchronization input:

Bit 16 SE : Synchronization enable

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

Bit 9 EGE : Event generation enable

Bit 8 SOIE : Synchronization overrun interrupt enable

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

Bits 4:0 DMAREQ_ID[4:0] : DMA request identification

Selects the input DMA request. (see the DMAMUX table about assignments of multiplexer inputs to resources).

17.6.3 DMAMUX1 request line multiplexer interrupt channel status register (DMAMUX1_CSR)

Address offset: 0x080

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
SOF15SOF14SOF13SOF12SOF11SOF10SOF9SOF8SOF7SOF6SOF5SOF4SOF3SOF2SOF1SOF0
rrrrrrrrrrrrrrrr

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

Bits 15:0 SOF[15:0] : Synchronization overrun event flag

The flag is set when a synchronization event occurs on a DMA request line multiplexer channel x, while the DMA request counter value is lower than NBREQ.

The flag is cleared by writing 1 to the corresponding CSOFx bit in DMAMUX_CFR register.

For DMAMUX2 bits 15:8 are reserved, keep them at reset value.

17.6.4 DMAMUX2 request line multiplexer interrupt channel status register (DMAMUX2_CSR)

Address offset: 0x080

Reset value: 0x0000 0000

This register shall be accessed at bit level by a non-secure or secure read, according to the secure mode of the considered DMAMUX2 request line multiplexer channel x, depending on the secure control bit of the connected DMA controller channel y, and considering that the DMAMUX2 x channel output is connected to the y channel of the DMA (refer to the DMAMUX2 mapping implementation section).

This register shall be accessed at bit level by an unprivileged or privileged read, according to the privileged mode of the considered DMAMUX2 request line multiplexer channel x, depending on the privileged control bit of the connected DMA controller channel y, and considering that the DMAMUX2 x channel output is connected to the y channel of the DMA (refer to the DMAMUX2 mapping implementation section).

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

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

Bits 7:0 SOF[7:0] : Synchronization overrun event flag

The flag is set when a new synchronization event occurs on a DMA request line multiplexer channel x before the request counter underrun (the internal request counter programmed via the NBREQ field of the DMAMUX_CxCR register).

The flag is cleared by writing 1 to the corresponding CSOFx bit in DMAMUX2_CFR register.

17.6.5 DMAMUX1 request line multiplexer interrupt clear flag register (DMAMUX1_CFR)

Address offset: 0x084

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
CSOF 15CSOF 14CSOF 13CSOF 12CSOF 11CSOF 10CSOF 9CSOF 8CSOF 7CSOF 6CSOF 5CSOF 4CSOF 3CSOF 2CSOF 1CSOF 0
wwwwwwwwwwwwwwww

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

Bits 15:0 CSOF[15:0] : Clear synchronization overrun event flag

Writing 1 in each bit clears the corresponding overrun flag SOFx in the DMAMUX_CSR register.

17.6.6 DMAMUX2 request line multiplexer interrupt clear flag register (DMAMUX2_CFR)

Address offset: 0x084

Reset value: 0x0000 0000

This register shall be written at bit level by a non-secure or secure write, according to the secure mode of the considered DMAMUX request line multiplexer channel x, depending on the secure control bit of the connected DMA controller channel y, and considering that the DMAMUX x channel output is connected to the y channel of the DMA (refer to the DMAMUX mapping implementation section).

This register shall be written at bit level by an unprivileged or privileged write, according to the privileged mode of the considered DMAMUX request line multiplexer channel x, depending on the privileged control bit of the connected DMA controller channel y, and considering that the DMAMUX x channel output is connected to the y channel of the DMA (refer to the DMAMUX mapping implementation section).

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

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

Bits 7:0 CSOF[7:0] : Clear synchronization overrun event flag

Writing 1 in each bit clears the corresponding overrun flag SOFx in the DMAMUX2_CSR register.

17.6.7 DMAMUX1 request generator channel x configuration register (DMAMUX1_RGxCR)

Address offset: 0x100 + 0x04 * x (x = 0 to 7)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.GNBREQ[4:0]GPOL[1:0]GE
rwrwrwrwrwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.OIERes.Res.Res.Res.Res.SIG_ID[2:0]
rwrwrwrw

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

Bits 23:19 GNBREQ[4:0] : Number of DMA requests to be generated (minus 1)

Defines the number of DMA requests to be generated after a trigger event. The actual number of generated DMA requests is GNBREQ +1.

Note: This field must be written only when GE bit is disabled.

Bits 18:17 GPOL[1:0] : DMA request generator trigger polarity

Defines the edge polarity of the selected trigger input

00: No event, i.e. no trigger detection nor generation.

01: Rising edge

10: Falling edge

11: Rising and falling edges

Bit 16 GE : DMA request generator channel x enable

0: DMA request generator channel x disabled

1: DMA request generator channel x enabled

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

Bit 8 OIE : Trigger overrun interrupt enable

0: Interrupt on a trigger overrun event occurrence is disabled

1: Interrupt on a trigger overrun event occurrence is enabled

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

Bits 2:0 SIG_ID[2:0] : Signal identification

Selects the DMA request trigger input used for the channel x of the DMA request generator

17.6.8 DMAMUX2 request generator channel x configuration register (DMAMUX2_RGxCR)

Address offset: 0x100 + 0x04 * x (x = 0 to 7)

Reset value: 0x0000 0000

This register shall be written by a non-secure or secure write, according to the secure mode of the considered DMAMUX request line multiplexer channel y it is assigned to, and considering that the DMAMUX request generator x channel output is selected by the y channel of the DMAMUX request line channel (see the DMAREQ_ID field of the DMAMUX2_CyCR register and the DMAMUX mapping implementation section).

This register shall be written by an unprivileged or privileged write, according to the privileged mode of the considered DMAMUX request line multiplexer channel y it is assigned to, and considering that the DMAMUX request generator x channel output is selected by the y channel of the DMAMUX request line channel (see the DMAREQ_ID field of the DMAMUX2_CyCR register and the DMAMUX mapping implementation section).

Note: With the request generator channel x disabled (GE=0) and thus ready to be configured again, the software shall operate (at least) two separated write accesses to this register. First, set/update the number of DMA requests to be generated (bits GNBREQ[4:0]), enable the request generator (i.e. set bit 16 GE), and disable the detection of the generator trigger input (i.e. set GPOL[1:0] to 00). Next, enable the detection of the generator trigger input by selecting as rising/falling the edge to be detected (i.e. set GPOL[1:0] to 01, 10 or 11).

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.GNBREQ[4:0]GPOL[1:0]GE
rwrwrwrwrwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.OIERes.Res.Res.SIG_ID[4:0]
rwrwrwrwrwrw

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

Bits 23:19 GNBREQ[4:0] : Number of DMA requests to be generated (minus 1)

Defines the number of DMA requests to be generated after a trigger event. The actual number of generated DMA requests is GNBREQ+1.

Note: This field shall only be written when GE bit is disabled.

Bits 18:17 GPOL[1:0] : DMA request generator trigger polarity

Defines the edge polarity of the selected trigger input

00: no event. I.e. none trigger detection nor generation.

01: rising edge

10: falling edge

11: rising and falling edge

Bit 16 GE : DMA request generator channel x enable

0: DMA request generator channel x disabled

1: DMA request generator channel x enabled

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

Bit 8 OIE : Trigger overrun interrupt enable

0: interrupt on a trigger overrun event occurrence is disabled

1: interrupt on a trigger overrun event occurrence is enabled

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

Bits 4:0 SIG_ID[4:0] : Signal identification

Selects the DMA request trigger input used for the channel x of the DMA request generator

17.6.9 DMAMUX1 request generator interrupt status register (DMAMUX1_RGSR)

Address offset: 0x140

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

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

Bits 7:0 OF[7:0] : Trigger overrun event flag

The flag is set when a new trigger event occurs on DMA request generator channel x, before the request counter underrun (the internal request counter programmed via the GNBREQ field of the DMAMUX_RGxCR register).

The flag is cleared by writing 1 to the corresponding COFx bit in the DMAMUX_RGCFR register.

17.6.10 DMAMUX2 request generator interrupt status register (DMAMUX2_RGSR)

Address offset: 0x140

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

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

Bits 7:0 OF[7:0] : Trigger overrun event flag

The flag is set when a new trigger event occurs on DMA request generator channel x.

The flag is cleared by writing 1 to the corresponding COFx bit in the DMAMUX2_RGCFR register.

17.6.11 DMAMUX1 request generator interrupt clear flag register (DMAMUX1_RGCFR)

Address offset: 0x144

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

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

Bits 7:0 COF[7:0] : Clear trigger overrun event flag

Writing 1 in each bit clears the corresponding overrun flag OFx in the DMAMUX_RGSR register.

17.6.12 DMAMUX2 request generator interrupt clear flag register (DMAMUX2_RGCFR)

Address offset: 0x144

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

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

Bits 7:0 COF[7:0] : Clear trigger overrun event flag

Writing 1 in each bit clears the corresponding overrun flag OFx in the DMAMUX2_RGSR register.

17.6.13 DMAMUX register map

The following table summarizes the DMAMUX registers and reset values. Refer to the register boundary address table for the DMAMUX register base address.

Table 110. DMAMUX register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000DMAMUX_C0CR (1)(2)Res.Res.Res.Res.Res.SYNC_ID [2:0]NBREQ[4:0]SPOL [1:0]SERes.Res.Res.Res.Res.Res.EGESOIERes.DMAREQ_ID[6:0]
Reset value00000000000000000000
0x004DMAMUX_C1CR (1)(2)Res.Res.Res.Res.Res.SYNC_ID [2:0]NBREQ[4:0]SPOL [1:0]SERes.Res.Res.Res.Res.Res.EGESOIERes.DMAREQ_ID[6:0]
Reset value00000000000000000000
0x020DMAMUX_C8CR (3)Res.Res.Res.Res.Res.SYNC_ID [2:0]NBREQ[4:0]SPOL [1:0]SERes.Res.Res.Res.Res.Res.EGESOIERes.DMAREQ_ID[6:0]
Reset value00000000000000000000
0x03CDMAMUX_C15CR (3)Res.Res.Res.Res.Res.SYNC_ID [2:0]NBREQ[4:0]SPOL [1:0]SERes.Res.Res.Res.Res.Res.EGESOIERes.DMAREQ_ID[6:0]
Reset value00000000000000000000
0x040 - 0x07CReservedRes.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.

Table 110. DMAMUX register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x080DMAMUX_CSR (4)ResResResResResResResResResResResResResResResResSOF15SOF14SOF13SOF12SOF11SOF10SOF9SOF8SOF7SOF6SOF5SOF4SOF3SOF2SOF1SOF0
Reset value0000000000000000
0x084DMAMUX_CFR (4)ResResResResResResResResResResResResResResResResCSOF15CSOF14CSOF13CSOF12CSOF11CSOF10CSOF9CSOF8CSOF7CSOF6CSOF5CSOF4CSOF3CSOF2CSOF1CSOF0
Reset value000000000000000
0x088 - 0x0FCReservedResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes
0x100DMAMUX_RG0CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000
0x104DMAMUX_RG1CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000
0x108DMAMUX_RG2CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000
0x10CDMAMUX_RG3CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000
0x110DMAMUX_RG4CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000
0x114DMAMUX_RG5CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000
0x118DMAMUX_RG6CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000
0x11CDMAMUX_RG7CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000
0x140DMAMUX_RGSRResResResResResResResResResResResResResResResResResResResResResResResResOF7OF6OF5OF4OF3OF2OF1OF0
Reset value00000000
0x144DMAMUX_RGCFRResResResResResResResResResResResResResResResResResResResResResResResResCOF7COF6COF5COF4COF3COF2COF1COF0
Reset value00000000
0x148 - 0x3FCReservedResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes
  1. 1. For DMAMUX2 bits 6:5 are reserved.
  2. 2. For DMAMUX2 bits 27:24 correspond to SYNC_ID[3:0]
  3. 3. Only applies to DMAMUX1. For DMAMUX2 the word is reserved.
  4. 4. For DMAMUX2 bits 15:8 are reserved.
  5. 5. Valid for DMAMUX1. For DMAMUX2 bits 4:0 are for SIG_ID[4:0].

Table 111. DMAMUX register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000DMAMUX_C0CR (1)(2)Res.Res.Res.Res.Res.SYNC_ID [2:0]NBREQ[4:0]SPOL [1:0]SERes.Res.Res.Res.Res.Res.EGESOIERes.DMAREQ_ID[6:0]
Reset value00000000000000000000
0x004DMAMUX_C1CR (1)(2)...same as 0x000...
Reset value...same as 0x000...
0x008DMAMUX_C2CR (1)(2)...same as 0x000...
Reset value...same as 0x000...
0x00CDMAMUX_C3CR (1)(2)...same as 0x000...
Reset value...same as 0x000...
0x010DMAMUX_C4CR (1)(2)...same as 0x000...
Reset value...same as 0x000...
0x014DMAMUX_C5CR (1)(2)...same as 0x000...
Reset value...same as 0x000...
0x018DMAMUX_C6CR (1)(2)...same as 0x000...
Reset value...same as 0x000...
0x01CDMAMUX_C7CR (1)(2)...same as 0x000...
Reset value...same as 0x000...
0x020DMAMUX_C8CR (3)...same as 0x000...
Reset value...same as 0x000...
0x024DMAMUX_C9CR (4)...same as 0x000...
Reset value...same as 0x000...
0x028DMAMUX_C10CR (3)...same as 0x000...
Reset value...same as 0x000...
0x02CDMAMUX_C11CR (3)...same as 0x000...
Reset value...same as 0x000...
0x030DMAMUX_C12CR (3)...same as 0x000...
Reset value...same as 0x000...
0x034DMAMUX_C13CR (3)...same as 0x000...
Reset value...same as 0x000...
0x038DMAMUX_C14CR (3)...same as 0x000...
Reset value...same as 0x000...
0x03CDMAMUX_C15CR (3)...same as 0x000...
Reset value...same as 0x000...
0x040 - 0x07CReservedRes.
0x080DMAMUX_CSR (4)Res.SOF15SOF14SOF13SOF12SOF11SOF10SOF9SOF8SOF7SOF6SOF5SOF4SOF3SOF2SOF1SOF0
Reset value0000000000000000
0x084DMAMUX_CFR (4)Res.CSOF15CSOF14CSOF13CSOF12CSOF11CSOF10CSOF9CSOF8CSOF7CSOF6CSOF5CSOF4CSOF3CSOF2CSOF1CSOF0
Reset value0000000000000000

Table 111. DMAMUX register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x088 - 0x0FCReservedResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes
0x100DMAMUX_RG0CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000000
0x104DMAMUX_RG1CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000000
0x108DMAMUX_RG2CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000000
0x10CDMAMUX_RG3CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000000
0x110DMAMUX_RG4CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000000
0x114DMAMUX_RG5CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000000
0x118DMAMUX_RG6CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000000
0x11CDMAMUX_RG7CR (5)ResResResResResResResResGNBREQ[4:0]GPOL [1:0]GEResResResResResResResResResResResResOIEResResResResResResSIG_ID [2:0]
Reset value0000000000000
0x140DMAMUX_RGSRResResResResResResResResResResResResResResResResResResResResResResResOF7OF6OF5OF4OF3OF2OF1OF0
Reset value000000000
0x144DMAMUX_RGCFRResResResResResResResResResResResResResResResResResResResResResResResCOF7COF6COF5COF4COF3COF2COF1COF0
Reset value000000000
0x148 - 0x3FCReservedResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes
  1. 1. For DMAMUX2 bits 6:5 are reserved.
  2. 2. For DMAMUX2 bits 27:24 correspond to SYNC_ID[3:0]
  3. 3. Only applies to DMAMUX1. For DMAMUX2 the word is reserved.
  4. 4. For DMAMUX2 bits 15:8 are reserved.
  5. 5. Valid for DMAMUX1. For DMAMUX2 bits 4:0 are for SIG_ID[4:0].

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