\n

DMA

Peripheral Memory Blocks

address_offset : 0x0 Bytes (0x0)
size : 0x1000 byte (0x0)
mem_usage : registers
protection :

Registers

INTEN

CTRL

STATUS

SRC

DST

CNT

SRCRLD

DSTRLD

CNTRLD

INTFL


INTEN

DMA Control Register.
address_offset : 0x0 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

INTEN INTEN read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CH0 CH1 CH2 CH3 CH4 CH5 CH6 CH7

CH0 : Channel 0 Interrupt Enable.
bits : 0 - 0 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.

CH1 : Channel 1 Interrupt Enable.
bits : 1 - 1 (1 bit)

CH2 : Channel 2 Interrupt Enable.
bits : 2 - 2 (1 bit)

CH3 : Channel 3 Interrupt Enable.
bits : 3 - 3 (1 bit)

CH4 : Channel 4 Interrupt Enable.
bits : 4 - 4 (1 bit)

CH5 : Channel 5 Interrupt Enable.
bits : 5 - 5 (1 bit)

CH6 : Channel 6 Interrupt Enable.
bits : 6 - 6 (1 bit)

CH7 : Channel 7 Interrupt Enable.
bits : 7 - 7 (1 bit)


CTRL

DMA Channel Control Register.
address_offset : 0x100 Bytes (0x0)
size : 0 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CTRL CTRL read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 EN RLDEN PRI REQUEST TO_WAIT TO_PER TO_CLKDIV SRCWD SRCINC DSTWD DSTINC BURST_SIZE DIS_IE CTZ_IE

EN : Channel Enable. This bit is automatically cleared when DMA_ST.CH_ST changes from 1 to 0.
bits : 0 - 0 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.

RLDEN : Reload Enable. Setting this bit to 1 enables DMA_SRC, DMA_DST and DMA_CNT to be reloaded with their corresponding reload registers upon count-to-zero. This bit is also writeable in the Count Reload Register. Refer to the description on Buffer Chaining for use of this bit. If buffer chaining is not used this bit must be written with a 0. This bit should be set after the reload registers have been programmed.
bits : 1 - 1 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.

PRI : DMA Priority.
bits : 2 - 3 (2 bit)

Enumeration:

0 : high

Highest Priority.

1 : medHigh

Medium High Priority.

2 : medLow

Medium Low Priority.

3 : low

Lowest Priority.

End of enumeration elements list.

REQUEST : Request Select. Select DMA request line for this channel. If memory-to-memory is selected, the channel operates as if the request is always active.
bits : 4 - 9 (6 bit)

Enumeration:

0x00 : MEMTOMEM

Memory To Memory

0x01 : SPI0RX

SPI0 RX

0x02 : SPI1RX

SPI1 RX

0x03 : SPI2RX

SPI2 RX

0x04 : UART0RX

UART0 RX

0x05 : UART1RX

UART1 RX

0x07 : I2C0RX

I2C0 RX

0x08 : I2C1RX

I2C1 RX

0x09 : ADC

ADC

0x0A : I2C2RX

I2C2 RX

0x0E : UART2RX

UART2 RX

0x0F : SPI3RX

SPI3 RX

0x10 : AESRX

AES RX

0x1C : UART3RX

UART3 RX

0x1E : I2SRX

I2S RX

0x21 : SPI0TX

SPI0 TX

0x22 : SPI1TX

SPI1 TX

0x23 : SPI2TX

SPI2 TX

0x24 : UART0TX

UART0 TX

0x25 : UART1TX

UART1 TX

0x27 : I2C0TX

I2C0 TX

0x28 : I2C1TX

I2C1 TX

0x2A : I2C2TX

I2C2 TX

0x2C : CRCTX

CRC TX

0x2E : UART2TX

UART2 TX

0x2F : SPI3TX

SPI3 TX

0x30 : AESTX

AES TX

0x3C : UART3TX

UART3 TX

0x3E : I2STX

I2S TX

End of enumeration elements list.

TO_WAIT : Request Wait Enable. When enabled, delay timer start until DMA request transitions from active to inactive.
bits : 10 - 10 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.

TO_PER : Timeout Period Select.
bits : 11 - 13 (3 bit)

Enumeration:

0 : to4

Timeout of 3 to 4 prescale clocks.

1 : to8

Timeout of 7 to 8 prescale clocks.

2 : to16

Timeout of 15 to 16 prescale clocks.

3 : to32

Timeout of 31 to 32 prescale clocks.

4 : to64

Timeout of 63 to 64 prescale clocks.

5 : to128

Timeout of 127 to 128 prescale clocks.

6 : to256

Timeout of 255 to 256 prescale clocks.

7 : to512

Timeout of 511 to 512 prescale clocks.

End of enumeration elements list.

TO_CLKDIV : Pre-Scale Select. Selects the Pre-Scale divider for timer clock input.
bits : 14 - 15 (2 bit)

Enumeration:

0 : dis

Disable timer.

1 : div256

hclk / 256.

2 : div64k

hclk / 64k.

3 : div16M

hclk / 16M.

End of enumeration elements list.

SRCWD : Source Width. In most cases, this will be the data width of each AHB transactions. However, the width will be reduced in the cases where DMA_CNT indicates a smaller value.
bits : 16 - 17 (2 bit)

Enumeration:

0 : byte

Byte.

1 : halfWord

Halfword.

2 : word

Word.

End of enumeration elements list.

SRCINC : Source Increment Enable. This bit enables DMA_SRC increment upon every AHB transaction. This bit is forced to 0 for DMA receive from peripherals.
bits : 18 - 18 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.

DSTWD : Destination Width. Indicates the width of the each AHB transactions to the destination peripheral or memory. (The actual width may be less than this if there are insufficient bytes in the DMA FIFO for the full width).
bits : 20 - 21 (2 bit)

Enumeration:

0 : byte

Byte.

1 : halfWord

Halfword.

2 : word

Word.

End of enumeration elements list.

DSTINC : Destination Increment Enable. This bit enables DMA_DST increment upon every AHB transaction. This bit is forced to 0 for DMA transmit to peripherals.
bits : 22 - 22 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.

BURST_SIZE : Burst Size. The number of bytes to be transferred into and out of the DMA FIFO in a single burst. Burst size equals 1 + value stored in this field.
bits : 24 - 28 (5 bit)

DIS_IE : Channel Disable Interrupt Enable. When enabled, the IPEND will be set to 1 whenever CH_ST changes from 1 to 0.
bits : 30 - 30 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.

CTZ_IE : Count-to-zero Interrupts Enable. When enabled, the IPEND will be set to 1 whenever a count-to-zero event occurs.
bits : 31 - 31 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.


STATUS

DMA Channel Status Register.
address_offset : 0x104 Bytes (0x0)
size : 0 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

STATUS STATUS read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 STATUS IPEND CTZ_IF RLD_IF BUS_ERR TO_IF

STATUS : Channel Status. This bit is used to indicate to the programmer when it is safe to change the configuration, address, and count registers for the channel. Whenever this bit is cleared by hardware, the DMA_CFG.CHEN bit is also cleared (if not cleared already).
bits : 0 - 0 (1 bit)
access : read-only

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.

IPEND : Channel Interrupt.
bits : 1 - 1 (1 bit)
access : read-only

Enumeration:

0 : inactive

No interrupt is pending.

1 : pending

An interrupt is pending.

End of enumeration elements list.

CTZ_IF : Count-to-Zero (CTZ) Interrupt Flag
bits : 2 - 2 (1 bit)

RLD_IF : Reload Event Interrupt Flag.
bits : 3 - 3 (1 bit)

BUS_ERR : Bus Error. Indicates that an AHB abort was received and the channel has been disabled.
bits : 4 - 4 (1 bit)

TO_IF : Time-Out Event Interrupt Flag.
bits : 6 - 6 (1 bit)


SRC

Source Device Address. If SRCINC=1, the counter bits are incremented by 1,2, or 4, depending on the data width of each AHB cycle. For peripheral transfers, some or all of the actual address bits are fixed. If SRCINC=0, this register remains constant. In the case where a count-to-zero condition occurs while RLDEN=1, the register is reloaded with the contents of DMA_SRC_RLD.
address_offset : 0x108 Bytes (0x0)
size : 0 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SRC SRC read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADDR

ADDR :
bits : 0 - 31 (32 bit)


DST

Destination Device Address. For peripheral transfers, some or all of the actual address bits are fixed. If DSTINC=1, this register is incremented on every AHB write out of the DMA FIFO. They are incremented by 1, 2, or 4, depending on the data width of each AHB cycle. In the case where a count-to-zero condition occurs while RLDEN=1, the register is reloaded with DMA_DST_RLD.
address_offset : 0x10C Bytes (0x0)
size : 0 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

DST DST read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADDR

ADDR :
bits : 0 - 31 (32 bit)


CNT

DMA Counter. The user loads this register with the number of bytes to transfer. This counter decreases on every AHB cycle into the DMA FIFO. The decrement will be 1, 2, or 4 depending on the data width of each AHB cycle. When the counter reaches 0, a count-to-zero condition is triggered.
address_offset : 0x110 Bytes (0x0)
size : 0 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CNT CNT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CNT

CNT : DMA Counter.
bits : 0 - 23 (24 bit)


SRCRLD

Source Address Reload Value. The value of this register is loaded into DMA0_SRC upon a count-to-zero condition.
address_offset : 0x114 Bytes (0x0)
size : 0 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SRCRLD SRCRLD read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADDR

ADDR : Source Address Reload Value.
bits : 0 - 30 (31 bit)


DSTRLD

Destination Address Reload Value. The value of this register is loaded into DMA0_DST upon a count-to-zero condition.
address_offset : 0x118 Bytes (0x0)
size : 0 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

DSTRLD DSTRLD read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ADDR

ADDR : Destination Address Reload Value.
bits : 0 - 30 (31 bit)


CNTRLD

DMA Channel Count Reload Register.
address_offset : 0x11C Bytes (0x0)
size : 0 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CNTRLD CNTRLD read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CNT EN

CNT : Count Reload Value. The value of this register is loaded into DMA0_CNT upon a count-to-zero condition.
bits : 0 - 23 (24 bit)

EN : Reload Enable. This bit should be set after the address reload registers have been programmed. This bit is automatically cleared to 0 when reload occurs.
bits : 31 - 31 (1 bit)

Enumeration:

0 : dis

Disable.

1 : en

Enable.

End of enumeration elements list.


INTFL

DMA Interrupt Register.
address_offset : 0x4 Bytes (0x0)
size : -1 bit
access : read-only
reset_value : 0x0
reset_Mask : 0x0

INTFL INTFL read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CH0 CH1 CH2 CH3 CH4 CH5 CH6 CH7

CH0 : Channel Interrupt. To clear an interrupt, all active interrupt bits of the DMA_ST must be cleared. The interrupt bits are set only if their corresponding interrupt enable bits are set in DMA_CN.
bits : 0 - 0 (1 bit)

Enumeration:

0 : inactive

No interrupt is pending.

1 : pending

An interrupt is pending.

End of enumeration elements list.

CH1 :
bits : 1 - 1 (1 bit)

CH2 :
bits : 2 - 2 (1 bit)

CH3 :
bits : 3 - 3 (1 bit)

CH4 :
bits : 4 - 4 (1 bit)

CH5 :
bits : 5 - 5 (1 bit)

CH6 :
bits : 6 - 6 (1 bit)

CH7 :
bits : 7 - 7 (1 bit)



Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !

This website is sponsored by EmbeetleEmbeetle, an IDE designed from scratch for embedded software developers.