10. DMA controller (DMA)

10.1 DMA introduction

Direct memory access (DMA) is used in order to provide high-speed data transfer between peripherals and memory as well as memory-to-memory. Data can be quickly moved by DMA without any CPU actions. This keeps CPU resources free for other operations.

The DMA has an arbiter to handle the priority between DMA requests.

10.2 DMA main features

10.3 DMA functional description

The DMA controller performs a direct memory transfer by sharing the system bus with the other masters of the device. The DMA request may stop the CPU access to the system bus for some bus cycles, when the CPU and DMA are targeting the same destination (memory or peripheral). The bus matrix implements round-robin scheduling, thus ensuring at least half of the system bus bandwidth (both to memory and peripheral) for the CPU.

10.3.1 DMA transactions

After an event, the peripheral sends a request signal to the DMA controller. The DMA controller serves the request depending on the channel priorities. As soon as the DMA controller accesses the peripheral, an acknowledge is sent to the peripheral by the DMA controller. The peripheral releases its request as soon as it gets the acknowledge from the DMA controller. Once the request is deasserted by the peripheral, the DMA controller releases the acknowledge. If there are more requests, the peripheral can initiate the next transaction. In summary, each DMA transfer consists of three operations:

10.3.2 Arbiter

The arbiter manages the channel requests based on their priority and launches the peripheral/memory access sequences.

The priorities are managed in two stages:

10.3.3 DMA channels

Each channel can handle DMA transfer between a peripheral register located at a fixed address and a memory address. The amount of data to be transferred (up to 65535) is programmable. The register which contains the amount of data items to be transferred is decremented after each transaction.

Programmable data sizes

Transfer data sizes of the peripheral and memory are fully programmable through the PSIZE and MSIZE bits in the DMA_CCRx register.

Pointer incrementation

Peripheral and memory pointers can optionally be automatically post-incremented after each transaction depending on the PINC and MINC bits in the DMA_CCRx register. If incremented mode is enabled, the address of the next transfer is the address of the previous one incremented by 1, 2 or 4 depending on the chosen data size. The first transfer address is the one programmed in the DMA_CPARx/DMA_CMARx registers. During transfer operations, these registers keep the initially programmed value. The current transfer addresses (in the current internal peripheral/memory address register) are not accessible by software.

If the channel is configured in non circular mode, no DMA request is served after the last transfer (that is once the number of data items to be transferred has reached zero). In order to reload a new number of data items to be transferred into the DMA_CNDTRx register, the DMA channel must be disabled.

Note: If a DMA channel is disabled, the DMA registers are not reset. The DMA channel registers (DMA_CCRx, DMA_CPARx and DMA_CMARx) retain the initial values programmed during the channel configuration phase.

In circular mode, after the last transfer, the DMA_CNDTRx register is automatically reloaded with the initially programmed value. The current internal address registers are reloaded with the base address values from the DMA_CPARx/DMA_CMARx registers.

Channel configuration procedure

The following sequence should be followed to configure a DMA channelx (where x is the channel number).

  1. 1. Set the peripheral register address in the DMA_CPARx register. The data are moved from/to this address to/from the memory after the peripheral event.
  2. 2. Set the memory address in the DMA_CMARx register. The data are written to or read from this memory after the peripheral event.
  3. 3. Configure the total number of data to be transferred in the DMA_CNDTRx register. After each peripheral event, this value is decremented.
  4. 4. Configure the channel priority using the PL[1:0] bits in the DMA_CCRx register.
  5. 5. Configure data transfer direction, circular mode, peripheral and memory incremented mode, peripheral and memory data size, and interrupt after half and/or full transfer in the DMA_CCRx register.
  6. 6. Activate the channel by setting the ENABLE bit in the DMA_CCRx register.

As soon as the channel is enabled, it can serve any DMA request from the peripheral connected on the channel. Once half of the bytes are transferred, the half-transfer flag (HTIF) is set and an interrupt is generated if the half-transfer interrupt enable bit (HTIE) is set. At the end of the transfer, the transfer complete flag (TCIF) is set and an interrupt is generated if the transfer complete interrupt enable bit (TCIE) is set.

Circular mode

Circular mode is available to handle circular buffers and continuous data flows (e.g. ADC scan mode). This feature can be enabled using the CIRC bit in the DMA_CCRx register. When circular mode is activated, the number of data to be transferred is automatically reloaded with the initial value programmed during the channel configuration phase, and the DMA requests continue to be served.

Memory-to-memory mode

The DMA channels can also work without being triggered by a request from a peripheral. This mode is called memory-to-memory mode.

If the MEM2MEM bit in the DMA_CCRx register is set, then the channel initiates transfers as soon as it is enabled by software by setting the enable bit (EN) in the DMA_CCRx register. The transfer stops once the DMA_CNDTRx register reaches zero. Memory-to-memory mode may not be used at the same time as circular mode.

10.3.4 Programmable data width, data alignment and endians

When PSIZE and MSIZE are not equal, the DMA performs some data alignments as described in Table 25. Programmable data width and endian behavior (when PINC=MINC=1 and NDT=4).

Note that NDT means number of data items to transfer.

Table 25. Programmable data width and endian behavior (when PINC=MINC=1 and NDT=4)

Port widthSource contentTransfer operationDest content
Src => Destaddr / dataaddr / data
8 => 8@0x0 / B0Read B0[7:0] @0x0 then write B0[7:0]@0x0@0x0 / B0
@0x1 / B1Read B1[7:0] @0x1 then write B1[7:0] @0x1@0x1 / B1
@0x2 / B2Read B2[7:0] @0x2 then write B2[7:0] @0x2@0x2 / B2
@0x3 / B3Read B3[7:0] @0x3 then write B3[7:0] @0x3@0x3 / B3
8 => 16@0x0 / B0Read B0[7:0] @0x0 then write 00B0[15:0] @0x0@0x0 / 00B0
@0x1 / B1Read B1[7:0] @0x1 then write 00B1[15:0] @0x2@0x2 / 00B1
@0x2 / B2Read B2[7:0] @0x2 then write 00B2[15:0] @0x4@0x4 / 00B2
@0x3 / B3Read B3[7:0] @0x3 then write 00B3[15:0] @0x6@0x6 / 00B3
8 => 32@0x0 / B0Read B0[7:0] @0x0 then write 000000B0[31:0] @0x0@0x0 / 000000B0
@0x1 / B1Read B1[7:0] @0x1 then write 000000B1[31:0] @0x4@0x4 / 000000B1
@0x2 / B2Read B2[7:0] @0x2 then write 000000B2[31:0] @0x8@0x8 / 000000B2
@0x3 / B3Read B3[7:0] @0x3 then write 000000B3[31:0] @0xC@0xC / 000000B3
16 => 8@0x0 / B1B0Read B1B0[15:0] @0x0 then write B0[7:0] @0x0@0x0 / B0
@0x2 / B3B2Read B3B2[15:0] @0x2 then write B2[7:0] @0x1@0x1 / B2
@0x4 / B5B4Read B5B4[15:0] @0x4 then write B4[7:0] @0x2@0x2 / B4
@0x6 / B7B6Read B7B6[15:0] @0x6 then write B6[7:0] @0x3@0x3 / B6
16 => 16@0x0 / B1B0Read B1B0[15:0] @0x0 then write B1B0[15:0] @0x0@0x0 / B1B0
@0x2 / B3B2Read B3B2[15:0] @0x2 then write B3B2[15:0] @0x2@0x2 / B3B2
@0x4 / B5B4Read B5B4[15:0] @0x4 then write B5B4[15:0] @0x4@0x4 / B5B4
@0x6 / B7B6Read B7B6[15:0] @0x6 then write B7B6[15:0] @0x6@0x6 / B7B6
16 => 32@0x0 / B1B0Read B1B0[15:0] @0x0 then write 0000B1B0[31:0] @0x0@0x0 / 0000B1B0
@0x2 / B3B2Read B3B2[15:0] @0x2 then write 0000B3B2[31:0] @0x4@0x4 / 0000B3B2
@0x4 / B5B4Read B5B4[15:0] @0x4 then write 0000B5B4[31:0] @0x8@0x8 / 0000B5B4
@0x6 / B7B6Read B7B6[15:0] @0x6 then write 0000B7B6[31:0] @0xC@0xC / 0000B7B6
32 => 8@0x0 / B3B2B1B0Read B3B2B1B0[31:0] @0x0 then write B0[7:0] @0x0@0x0 / B0
@0x4 / B7B6B5B4Read B7B6B5B4[31:0] @0x4 then write B4[7:0] @0x1@0x1 / B4
@0x8 / BBBAB9B8Read BBBAB9B8[31:0] @0x8 then write B8[7:0] @0x2@0x2 / B8
@0xC/BFBEBDBCRead BFBEBDBC[31:0] @0xC then write BC[7:0] @0x3@0x3 / BC
Port widthSource contentTransfer operationDest content
Src => Destaddr / dataaddr / data
32 => 16@0x0 / B3B2B1B0Read B3B2B1B0[31:0] @0x0 then write B1B0[15:0] @0x0@0x0 / B1B0
@0x4 / B7B6B5B4Read B7B6B5B4[31:0] @0x4 then write B5B4[15:0] @0x2@0x2 / B5B4
@0x8 / BBBAB9B8Read BBBAB9B8[31:0] @0x8 then write B9B8[15:0] @0x4@0x4 / B9B8
@0xC/BFBEBDBCRead BFBEBDBC[31:0] @0xC then write BDBC[15:0] @0x6@0x6 / BDBC
32 => 32@0x0 / B3B2B1B0Read B3B2B1B0[31:0] @0x0 then write B3B2B1B0[31:0] @0x0@0x0 / B3B2B1B0
@0x4 / B7B6B5B4Read B7B6B5B4[31:0] @0x4 then write B7B6B5B4[31:0] @0x4@0x4 / B7B6B5B4
@0x8 / BBBAB9B8Read BBBAB9B8[31:0] @0x8 then write BBBAB9B8[31:0] @0x8@0x8 / BBBAB9B8
@0xC/BFBEBDBCRead BFBEBDBC[31:0] @0xC then write BFBEBDBC[31:0] @0xC@0xC/BFBEBDBC

Addressing an AHB peripheral that does not support byte or halfword write operations

When the DMA initiates an AHB byte or halfword write operation, the data are duplicated on the unused lanes of the HWDATA[31:0] bus. So when the used AHB slave peripheral does not support byte or halfword write operations (when HSIZE is not used by the peripheral) and does not generate any error, the DMA writes the 32 HWDATA bits as shown in the two examples below:

Assuming that the AHB/APB bridge is an AHB 32-bit slave peripheral that does not take the HSIZE data into account, it transforms any AHB byte or halfword operation into a 32-bit APB operation in the following manner:

For instance, if you want to write the APB backup registers (16-bit registers aligned to a 32-bit address boundary), you must configure the memory source size (MSIZE) to “16-bit” and the peripheral destination size (PSIZE) to “32-bit”.

10.3.5 Error management

A DMA transfer error can be generated by reading from or writing to a reserved address space. When a DMA transfer error occurs during a DMA read or a write access, the faulty channel is automatically disabled through a hardware clear of its EN bit in the corresponding channel configuration register (DMA_CCRx). The channel transfer error interrupt flag (TEIF) in the DMA_IFR register is set and an interrupt is generated if the transfer error interrupt enable bit (TEIE) in the DMA_CCRx register is set.

10.3.6 Interrupts

An interrupt can be produced on a half-transfer, transfer complete or transfer error for each DMA channel. Separate interrupt enable bits are available for flexibility.

Table 26. DMA interrupt requests

Interrupt eventEvent flagEnable control bit
Half-transferHTIFHTIE
Transfer completeTCIFTCIE
Transfer errorTEIFTEIE

10.3.7 DMA request mapping

A DMAMUX is present in the STM32WB05xZ and allows selecting which requester is connected to which DMA channel. See Table 30. DMAMUX register map and reset values.

10.4 DMA registers

Refer to Section 1.5: Acronyms for a list of abbreviations used in register descriptions. The peripheral registers must be accessed by words (32-bit) only.

10.4.1 DMA interrupt status register (DMA_ISR)

Address offset: 0x000

Reset value: 0x0000 0000

31302928272625242322212019181716
TEIF8HTIF8TCIF8GIF8TEIF7HTIF7TCIF7GIF7TEIF6HTIF6TCIF6GIF6TEIF5HTIF5TCIF5GIF5
rrrrrrrrrrrrrrrr
1514131211109876543210
TEIF4HTIF4TCIF4GIF4TEIF3HTIF3TCIF3GIF3TEIF2HTIF2TCIF2GIF2TEIF1HTIF1TCIF1GIF1
rrrrrrrrrrrrrrrr
Bits 31:28Reserved, must be kept at reset value.
Bits 31, 27, 23, 19, 15, 11, 7, 3TEIFx: Channel x transfer error flag (x = 1..8).
This bit is set by hardware. It is cleared by software writing 1 to the corresponding bit in the DMA_IFCR register.
0: No transfer error (TE) on channel x
1: A transfer error (TE) occurred on channel x
Bits 30, 26, 22, 18, 14, 10, 6, 2HTIFx: Channel x half transfer flag (x = 1..8).
This bit is set by hardware. It is cleared by software writing 1 to the corresponding bit in the DMA_IFCR register.
0: No half transfer (HT) event on channel x
1: A half transfer (HT) event occurred on channel x
Bits 29, 25, 21, 17, 13, 9, 5, 1TCIFx: Channel x transfer complete flag (x = 1..8).
This bit is set by hardware. It is cleared by software writing 1 to the corresponding bit in the DMA_IFCR register.
0: No transfer complete (TC) event on channel x
1: A transfer complete (TC) event occurred on channel x
Bits 28, 24, 20, 16, 12, 8, 4, 0GIFx: Channel x global interrupt flag (x = 1..8).
This bit is set by hardware. It is cleared by software writing 1 to the corresponding bit in the DMA_IFCR register.
0: No TE, HT or TC event on channel x
1: A TE, HT or TC event occurred on channel x

10.4.2 DMA interrupt flag clear register (DMA_IFCR)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
CTEIF8CHTIF8CTCIF8CGIF8CTEIF7CHTIF7CTCIF7CGIF7CTEIF6CHTIF6CTCIF6CGIF6CTEIF5CHTIF5CTCIF5CGIF5
wwwwwwwwwwwwwwww
1514131211109876543210
CTEIF4CHTIF4CTCIF4CGIF4CTEIF3CHTIF3CTCIF3CGIF3CTEIF2CHTIF2CTCIF2CGIF2CTEIF1CHTIF1CTCIF1CGIF1
wwwwwwwwwwwwwwww
Bits 31:28Reserved, must be kept at reset value.
Bits 31, 27, 23, 19, 15, 11, 7, 3CTEIFx: Channel x transfer error clear (x = 1..8). This bit is set and cleared by software.
0: No effect
1: Clears the corresponding TEIF flag in the DMA_ISR register
Bits 30, 26, 22, 18, 14, 10, 6, 2CHTIFx: Channel x half transfer clear (x = 1..8). This bit is set and cleared by software.
0: No effect
1: Clears the corresponding HTIF flag in the DMA_ISR register
Bits 29, 25, 21, 17, 13, 9, 5, 1CTCIFx: Channel x transfer complete clear (x = 1..8). This bit is set and cleared by software.
0: No effect
1: Clears the corresponding TCIF flag in the DMA_ISR register
Bits 28, 24, 20, 16, 12, 8, 4, 0CGIFx: Channel x global interrupt clear (x = 1..8). This bit is set and cleared by software.
0: No effect
1: Clears the GIF, TEIF, HTIF and TCIF flags in the DMA_ISR register

10.4.3 DMA channel x configuration register (DMA_CCRx) (x = 1..8, where x = channel number)

Address offset: 0x008 + 0d20 × (channel number - 1)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.MEM2 MEMPL[1:0]MSIZE[1:0]PSIZE[1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
Bits 31:15Reserved, must be kept at reset value.
Bit 14MEM2MEM: Memory-to-memory mode. This bit is set and cleared by software.
0: Memory-to-memory mode disabled
1: Memory-to-memory mode enabled
Bits 13:12PL[1:0]: Channel priority level.
These bits are set and cleared by software.
00: Low
01: Medium
10: High
11: Very high
Bits 11:10MSIZE[1:0]: Memory size.
These bits are set and cleared by software.
00: 8-bits
01: 16-bits
10: 32-bits
11: Reserved
Bits 9:8PSIZE[1:0]: Peripheral size.
These bits are set and cleared by software.
00: 8-bits
01: 16-bits
10: 32-bits
11: Reserved
Bit 7MINC: Memory increment mode.
This bit is set and cleared by software.
0: Memory increment mode disabled
1: Memory increment mode enabled
Bit 6PINC: Peripheral increment mode. This bit is set and cleared by software.
0: Peripheral increment mode disabled
1: Peripheral increment mode enabled
Bit 5CIRC: Circular mode.
This bit is set and cleared by software.
0: Circular mode disabled
1: Circular mode enabled
Bit 4DIR: Data transfer direction.
This bit is set and cleared by software.
0: Read from peripheral
1: Read from memory
Bit 3TEIE: Transfer error interrupt enable. This bit is set and cleared by software.
0: TE interrupt disabled
1: TE interrupt enabled
Bit 2HTIE: Half transfer interrupt enable. This bit is set and cleared by software.
0: HT interrupt disabled
1: HT interrupt enabled
Bit 1TCIE: Transfer complete interrupt enable. This bit is set and cleared by software.
0: TC interrupt disabled
1: TC interrupt enabled
Bit 0EN: Channel enable.
This bit is set and cleared by software.
0: Channel disabled
1: Channel enabled

10.4.4 DMA channel x number of data register (DMA_CNDTRx) (x = 1..8, where x = channel number)

Address offset: 0x00C + 0d20 × (channel number - 1)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
NDT[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
Bits 31:16Reserved, must be kept at reset value.
Bits 15:0

NDT[15:0]: Number of data to transfer.

Number of data to be transferred (0 up to 65535). This register can only be written when the channel is disabled. Once the channel is enabled, this register is read-only, indicating the remaining bytes to be transmitted. This register decrements after each DMA transfer.

Once the transfer is completed, this register can either stay at zero or be reloaded automatically by the value previously programmed if the channel is configured in auto-reload mode.

If this register is zero, no transaction can be served whether the channel is enabled or not.

10.4.5 DMA channel x peripheral address register (DMA_CPARx) (x = 1..8, where x = channel number)

Address offset: 0x010 + 0d20 × (channel number - 1)

Reset value: 0x0000 0000

This register must not be written when the channel is enabled.

31302928272625242322212019181716
PA [31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
PA [15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
Bits
31:0

PA[31:0]: Peripheral address.

Base address of the peripheral data register from/to which the data is read/written. When PSIZE is 01 (16-bit), the PA[0] bit is ignored. Access is automatically aligned to a half-word address.

When PSIZE is 10 (32-bit), PA[1:0] are ignored. Access is automatically aligned to a word address.

10.4.6 DMA channel x memory address register (DMA_CMARx) (x = 1..8, where x = channel number)

Address offset: 0x014 + 0d20 × (channel number - 1)

Reset value: 0x0000 0000

This register must not be written when the channel is enabled.

31302928272625242322212019181716
MA [31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
MA [15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
Bits 31:0

MA[31:0]: Memory address.

Base address of the memory area from/to which the data are read/written.

When MSIZE is 01 (16-bit), the MA[0] bit is ignored. Access is automatically aligned to a half-word address.

When MSIZE is 10 (32-bit), MA[1:0] are ignored. Access is automatically aligned to a word address.

10.4.7 DMA register map

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

Table 27. DMA register map and reset values

OffsetRegister313029282726252423222120191817161514131211109876543210
0x000DMA_ISRTEIF8HTIF8TCIF8GIF8TEIF7HTIF7TCIF7GIF7TEIF6HTIF6TCIF6GIF6TEIF5HTIF5TCIF5GIF5TEIF4HTIF4TCIF4GIF4TEIF3HTIF3TCIF3GIF3TEIF2HTIF2TCIF2GIF2TEIF1HTIF1TCIF1GIF1
Reset value00000000000000000000000000000000
0x004DMA_IFCRCTEIF8CHTIF8CTCIF8CGIF8CTEIF7CHTIF7CTCIF7CGIF7CTEIF6CHTIF6CTCIF6CGIF6CTEIF5CHTIF5CTCIF5CGIF5CTEIF4CHTIF4CTCIF4CGIF4CTEIF3CHTIF3CTCIF3CGIF3CTEIF2CHTIF2CTCIF2CGIF2CTEIF1CHTIF1CTCIF1CGIF1
Reset value00000000000000000000000000000000
0x008DMA_CCR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEM2MEMPL [1:0]M SIZE [1:0]PSIZE [1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
Reset value000000000000000
0x00CDMA_CNDTR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NDT[15:0]
Reset value000000000000000
0x010DMA_CPAR1PA[31:0]
Reset value00000000000000000000000000000000
0x014DMA_CMAR1MA[31:0]
Reset value00000000000000000000000000000000
0x01CDMA_CCR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEM2MEMPL [1:0]M SIZE [1:0]PSIZE [1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
Reset value00000000000000
0x020DMA_CNDTR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NDT[15:0]
Reset value000000000000000
0x024DMA_CPAR2PA[31:0]
Reset value00000000000000000000000000000000
0x028DMA_CMAR2MA[31:0]
Reset value00000000000000000000000000000000
STMicroelectronics logo
STMicroelectronics logo
OffsetRegister313029282726252423222120191817161514131211109876543210
0x030DMA_CCR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEM2MEMPL [1:0]M SIZE [1:0]PSIZE [1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
Reset value0000000000000000
0x034DMA_CNDTR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NDT[15:0]
Reset value0000000000000000
0x038DMA_CPAR3PA[31:0]
Reset value00000000000000000000000000000000
0x03CDMA_CMAR3MA[31:0]
Reset value00000000000000000000000000000000
0x044DMA_CCR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEM2MEMPL [1:0]M SIZE [1:0]PSIZE [1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
Reset value0000000000000000
0x048DMA_CNDTR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NDT[15:0]
Reset value0000000000000000
0x04CDMA_CPAR4PA[31:0]
Reset value00000000000000000000000000000000
0x050DMA_CMAR4MA[31:0]
Reset value00000000000000000000000000000000
0x054Reserved
0x058DMA_CCR5Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEM2MEMPL [1:0]M SIZE [1:0]PSIZE [1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
Reset value000000000000000
0x05CDMA_CNDTR5Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NDT[15:0]
Reset value0000000000000000
0x060DMA_CPAR5PA[31:0]
Reset value00000000000000000000000000000000
OffsetRegister313029282726252423222120191817161514131211109876543210
0x064DMA_CMAR5MA[31:0]
Reset value00000000000000000000000000000000
0x068Reserved
0x06CDMA_CCR6Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEM2MEMPL [1:0]M SIZE [1:0]PSIZE [1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
Reset value000000000000000
0x070DMA_CNDTR6Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NDT[15:0]
Reset value000000000000000
0x074DMA_CPAR6PA[31:0]
Reset value00000000000000000000000000000000
0x078DMA_CMAR6MA[31:0]
Reset value00000000000000000000000000000000
0x07CReserved
0x080DMA_CCR7Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEM2MEMPL [1:0]M SIZE [1:0]PSIZE [1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
Reset value000000000000000
0x084DMA_CNDTR7Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NDT[15:0]
Reset value000000000000000
0x088DMA_CPAR7PA[31:0]
Reset value00000000000000000000000000000000
0x08CDMA_CMAR7MA[31:0]
Reset value00000000000000000000000000000000
0x090Reserved
0x094DMA_CCR8Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEM2MEMPL [1:0]M SIZE [1:0]PSIZE [1:0]MINCPINCCIRCDIRTEIEHTIETCIEEN
Reset value000000000000000
STMicroelectronics logo
STMicroelectronics logo
STMicroelectronics logo
STMicroelectronics logo
OffsetRegister313029282726252423222120191817161514131211109876543210
0x098DMA_CNDTR8Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NDT[15:0]
Reset value00000000000000000
0x09CDMA_CPAR8PA[31:0]
Reset value00000000000000000000000000000000
0x0A0DMA_CMAR8MA[31:0]
Reset value00000000000000000000000000000000
x0A4
to
0x31C
Reserved

Refer to Section 2.2.2: Memory map and register boundary addresses for the register boundary addresses.