\n
address_offset : 0x0 Bytes (0x0)
size : 0x86 byte (0x0)
mem_usage : registers
protection :
Start address Low A of DMA channel 0
address_offset : 0x0 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA0_A_STARTL : Source start address, lower 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address Low A of DMA channel 1
address_offset : 0x10 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA1_A_STARTL : Source start address, lower 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address High A of DMA channel 1
address_offset : 0x12 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA1_A_STARTH : Source start address, upper 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address Low B of DMA channel 1
address_offset : 0x14 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA1_B_STARTL : Destination start address, lower 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address High B of DMA channel 1
address_offset : 0x16 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA1_B_STARTH : Destination start address, upper 16 bits
bits : 0 - 15 (16 bit)
access : read-write
DMA receive interrupt register channel 1
address_offset : 0x18 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA1_INT : Number of transfers until an interrupt is generated. The interrupt is generated after a transfer, if DMAx_INT_REG is equal to DMAx_IDX_REG and before DMAx_IDX_REG is incremented. The bit-field IRQ_ENABLE of DMAx_CTRL_REG must be set to '1' to let the controller generate the interrupt.
bits : 0 - 15 (16 bit)
access : read-write
DMA receive length register channel 1
address_offset : 0x1A Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA1_LEN : DMA channel's transfer length. DMAx_LEN of value 0, 1, 2, ... results into an actual transfer length of 1, 2, 3, ...
bits : 0 - 15 (16 bit)
access : read-write
Control register for the DMA channel 1
address_offset : 0x1C Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA_ON : 0 = DMA channel is off, clocks are disabled 1 = DMA channel is enabled. This bit will be automatically cleared after the completion of a transfer, if circular mode is not enabled. In circular mode, this bit stays set.
bits : 0 - 0 (1 bit)
access : read-write
BW : Bus transfer width: 00 = 1 Byte (suggested for peripherals like UART and 8-bit SPI) 01 = 2 Bytes (suggested for peripherals like I2C and 16-bit SPI) 10 = 4 Bytes (suggested for Memory-to-Memory transfers) 11 = Reserved
bits : 1 - 3 (3 bit)
access : read-write
IRQ_ENABLE : 0 = disable interrupt on this channel 1 = enable interrupt on this channel
bits : 3 - 6 (4 bit)
access : read-write
DREQ_MODE : 0 = DMA channel starts immediately 1 = DMA channel must be triggered by peripheral DMA request (see also the description of DMA_REQ_MUX_REG)
bits : 4 - 8 (5 bit)
access : read-write
BINC : Enable increment of destination address. 0 = do not increment (destination address stays the same during the transfer) 1 = increment according to the value of BW bit-field (by 1, when BW= 00 by 2, when BW= 01 by 4, when BW= 10 )
bits : 5 - 10 (6 bit)
access : read-write
AINC : Enable increment of source address. 0 = do not increment (source address stays the same during the transfer) 1 = increment according to the value of BW bit-field (by 1, when BW= 00 by 2, when BW= 01 by 4, when BW= 10 )
bits : 6 - 12 (7 bit)
access : read-write
CIRCULAR : 0 = Normal mode. The DMA channel stops after having completed the transfer of length determined by DMAx_LEN_REG. DMA_ON automatically deasserts when the transfer is completed. 1 = Circular mode (applicable only if DREQ_MODE = '1'). In this mode, DMA_ON never deasserts, as the DMA channel automatically resets DMAx_IDX_REG and starts a new transfer.
bits : 7 - 14 (8 bit)
access : read-write
DMA_PRIO : The priority level determines which DMA channel will be granted access for transferring data, in case more than one channels are active and request the bus at the same time. The greater the value, the higher the priority. In specific: 000 = lowest priority 111 = highest priority If different channels with equal priority level values request the bus at the same time, an inherent priority mechanism is applied. According to this mechanism, if, for example, both the DMA0 and DMA1 channels have the same priority level, then DMA0 will first be granted access to the bus.
bits : 8 - 18 (11 bit)
access : read-write
DMA_IDLE : 0 = Blocking mode, the DMA performs a fast back-to-back copy, disabling bus access for any bus master with lower priority. 1 = Interrupting mode, the DMA inserts a wait cycle after each store allowing the CPU to steal cycles or cache to perform a burst read. If DREQ_MODE='1', DMA_IDLE is don't care.
bits : 11 - 22 (12 bit)
access : read-write
DMA_INIT : 0 = DMA performs copy A1 to B1, A2 to B2, etc ... 1 = DMA performs copy of A1 to B1, B2, etc ... This feature is useful for memory initialization to any value. Thus, BINC must be set to '1', while AINC is don't care, as only one fetch from A is done. This process cannot be interrupted by other DMA channels. It is also noted that DMA_INIT should not be used when DREQ_MODE='1'.
bits : 12 - 24 (13 bit)
access : read-write
REQ_SENSE : 0 = DMA operates with level-sensitive peripheral requests (default) 1 = DMA operates with (positive) edge-sensitive peripheral requests
bits : 13 - 26 (14 bit)
access : read-write
Index value of DMA channel 1
address_offset : 0x1E Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA1_IDX : This (read-only) register determines the data items currently fetched by the DMA channel, during an on-going transfer. When the transfer is completed, the register is automatically reset to 0. The DMA channel uses this register to form the source/destination address of the next DMA cycle, considering also AINC/BINC and BW.
bits : 0 - 15 (16 bit)
access : read-only
Start address High A of DMA channel 0
address_offset : 0x2 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA0_A_STARTH : Source start address, upper 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address Low A of DMA channel 2
address_offset : 0x20 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA2_A_STARTL : Source start address, lower 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address High A of DMA channel 2
address_offset : 0x22 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA2_A_STARTH : Source start address, upper 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address Low B of DMA channel 2
address_offset : 0x24 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA2_B_STARTL : Destination start address, lower 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address High B of DMA channel 2
address_offset : 0x26 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA2_B_STARTH : Destination start address, upper 16 bits
bits : 0 - 15 (16 bit)
access : read-write
DMA receive interrupt register channel 2
address_offset : 0x28 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA2_INT : Number of transfers until an interrupt is generated. The interrupt is generated after a transfer, if DMAx_INT_REG is equal to DMAx_IDX_REG and before DMAx_IDX_REG is incremented. The bit-field IRQ_ENABLE of DMAx_CTRL_REG must be set to '1' to let the controller generate the interrupt.
bits : 0 - 15 (16 bit)
access : read-write
DMA receive length register channel 2
address_offset : 0x2A Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA2_LEN : DMA channel's transfer length. DMAx_LEN of value 0, 1, 2, ... results into an actual transfer length of 1, 2, 3, ...
bits : 0 - 15 (16 bit)
access : read-write
Control register for the DMA channel 2
address_offset : 0x2C Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA_ON : 0 = DMA channel is off, clocks are disabled 1 = DMA channel is enabled. This bit will be automatically cleared after the completion of a transfer, if circular mode is not enabled. In circular mode, this bit stays set.
bits : 0 - 0 (1 bit)
access : read-write
BW : Bus transfer width: 00 = 1 Byte (suggested for peripherals like UART and 8-bit SPI) 01 = 2 Bytes (suggested for peripherals like I2C and 16-bit SPI) 10 = 4 Bytes (suggested for Memory-to-Memory transfers) 11 = Reserved
bits : 1 - 3 (3 bit)
access : read-write
IRQ_ENABLE : 0 = disable interrupt on this channel 1 = enable interrupt on this channel
bits : 3 - 6 (4 bit)
access : read-write
DREQ_MODE : 0 = DMA channel starts immediately 1 = DMA channel must be triggered by peripheral DMA request (see also the description of DMA_REQ_MUX_REG)
bits : 4 - 8 (5 bit)
access : read-write
BINC : Enable increment of destination address 0 = do not increment 1 = increment according value of BW
bits : 5 - 10 (6 bit)
access : read-write
AINC : Enable increment of destination address. 0 = do not increment (destination address stays the same during the transfer) 1 = increment according to the value of BW bit-field (by 1, when BW= 00 by 2, when BW= 01 by 4, when BW= 10 )
bits : 6 - 12 (7 bit)
access : read-write
CIRCULAR : 0 = Normal mode. The DMA channel stops after having completed the transfer of length determined by DMAx_LEN_REG. DMA_ON automatically deasserts when the transfer is completed. 1 = Circular mode (applicable only if DREQ_MODE = '1'). In this mode, DMA_ON never deasserts, as the DMA channel automatically resets DMAx_IDX_REG and starts a new transfer.
bits : 7 - 14 (8 bit)
access : read-write
DMA_PRIO : The priority level determines which DMA channel will be granted access for transferring data, in case more than one channels are active and request the bus at the same time. The greater the value, the higher the priority. In specific: 000 = lowest priority 111 = highest priority If different channels with equal priority level values request the bus at the same time, an inherent priority mechanism is applied. According to this mechanism, if, for example, both the DMA0 and DMA1 channels have the same priority level, then DMA0 will first be granted access to the bus.
bits : 8 - 18 (11 bit)
access : read-write
DMA_IDLE : 0 = Blocking mode, the DMA performs a fast back-to-back copy, disabling bus access for any bus master with lower priority. 1 = Interrupting mode, the DMA inserts a wait cycle after each store allowing the CPU to steal cycles or cache to perform a burst read. If DREQ_MODE='1', DMA_IDLE is don't care.
bits : 11 - 22 (12 bit)
access : read-write
DMA_INIT : 0 = DMA performs copy A1 to B1, A2 to B2, etc ... 1 = DMA performs copy of A1 to B1, B2, etc ... This feature is useful for memory initialization to any value. Thus, BINC must be set to '1', while AINC is don't care, as only one fetch from A is done. This process cannot be interrupted by other DMA channels. It is also noted that DMA_INIT should not be used when DREQ_MODE='1'.
bits : 12 - 24 (13 bit)
access : read-write
REQ_SENSE : 0 = DMA operates with level-sensitive peripheral requests (default) 1 = DMA operates with (positive) edge-sensitive peripheral requests
bits : 13 - 26 (14 bit)
access : read-write
Index value of DMA channel 2
address_offset : 0x2E Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA2_IDX : This (read-only) register determines the data items currently fetched by the DMA channel, during an on-going transfer. When the transfer is completed, the register is automatically reset to 0. The DMA channel uses this register to form the source/destination address of the next DMA cycle, considering also AINC/BINC and BW.
bits : 0 - 15 (16 bit)
access : read-only
Start address Low A of DMA channel 3
address_offset : 0x30 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA3_A_STARTL : Source start address, lower 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address High A of DMA channel 3
address_offset : 0x32 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA3_A_STARTH : Source start address, upper 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address Low B of DMA channel 3
address_offset : 0x34 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA3_B_STARTL : Destination start address, lower 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address High B of DMA channel 3
address_offset : 0x36 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA3_B_STARTH : Destination start address, upper 16 bits
bits : 0 - 15 (16 bit)
access : read-write
DMA receive interrupt register channel 3
address_offset : 0x38 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA3_INT : Number of transfers until an interrupt is generated. The interrupt is generated after a transfer, if DMAx_INT_REG is equal to DMAx_IDX_REG and before DMAx_IDX_REG is incremented. The bit-field IRQ_ENABLE of DMAx_CTRL_REG must be set to '1' to let the controller generate the interrupt.
bits : 0 - 15 (16 bit)
access : read-write
DMA receive length register channel 3
address_offset : 0x3A Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA3_LEN : DMA channel's transfer length. DMAx_LEN of value 0, 1, 2, ... results into an actual transfer length of 1, 2, 3, ...
bits : 0 - 15 (16 bit)
access : read-write
Control register for the DMA channel 3
address_offset : 0x3C Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA_ON : 0 = DMA channel is off, clocks are disabled 1 = DMA channel is enabled. This bit will be automatically cleared after the completion of a transfer, if circular mode is not enabled. In circular mode, this bit stays set.
bits : 0 - 0 (1 bit)
access : read-write
BW : Bus transfer width: 00 = 1 Byte (suggested for peripherals like UART and 8-bit SPI) 01 = 2 Bytes (suggested for peripherals like I2C and 16-bit SPI) 10 = 4 Bytes (suggested for Memory-to-Memory transfers) 11 = Reserved
bits : 1 - 3 (3 bit)
access : read-write
IRQ_ENABLE : 0 = disable interrupt on this channel 1 = enable interrupt on this channel
bits : 3 - 6 (4 bit)
access : read-write
DREQ_MODE : 0 = DMA channel starts immediately 1 = DMA channel must be triggered by peripheral DMA request (see also the description of DMA_REQ_MUX_REG)
bits : 4 - 8 (5 bit)
access : read-write
BINC : Enable increment of destination address. 0 = do not increment (destination address stays the same during the transfer) 1 = increment according to the value of BW bit-field (by 1, when BW= 00 by 2, when BW= 01 by 4, when BW= 10 )
bits : 5 - 10 (6 bit)
access : read-write
AINC : Enable increment of source address. 0 = do not increment (source address stays the same during the transfer) 1 = increment according to the value of BW bit-field (by 1, when BW= 00 by 2, when BW= 01 by 4, when BW= 10 )
bits : 6 - 12 (7 bit)
access : read-write
CIRCULAR : 0 = Normal mode. The DMA channel stops after having completed the transfer of length determined by DMAx_LEN_REG. DMA_ON automatically deasserts when the transfer is completed. 1 = Circular mode (applicable only if DREQ_MODE = '1'). In this mode, DMA_ON never deasserts, as the DMA channel automatically resets DMAx_IDX_REG and starts a new transfer.
bits : 7 - 14 (8 bit)
access : read-write
DMA_PRIO : The priority level determines which DMA channel will be granted access for transferring data, in case more than one channels are active and request the bus at the same time. The greater the value, the higher the priority. In specific: 000 = lowest priority 111 = highest priority If different channels with equal priority level values request the bus at the same time, an inherent priority mechanism is applied. According to this mechanism, if, for example, both the DMA0 and DMA1 channels have the same priority level, then DMA0 will first be granted access to the bus.
bits : 8 - 18 (11 bit)
access : read-write
DMA_IDLE : 0 = Blocking mode, the DMA performs a fast back-to-back copy, disabling bus access for any bus master with lower priority. 1 = Interrupting mode, the DMA inserts a wait cycle after each store allowing the CPU to steal cycles or cache to perform a burst read. If DREQ_MODE='1', DMA_IDLE is don't care.
bits : 11 - 22 (12 bit)
access : read-write
DMA_INIT : 0 = DMA performs copy A1 to B1, A2 to B2, etc ... 1 = DMA performs copy of A1 to B1, B2, etc ... This feature is useful for memory initialization to any value. Thus, BINC must be set to '1', while AINC is don't care, as only one fetch from A is done. This process cannot be interrupted by other DMA channels. It is also noted that DMA_INIT should not be used when DREQ_MODE='1'.
bits : 12 - 24 (13 bit)
access : read-write
REQ_SENSE : 0 = DMA operates with level-sensitive peripheral requests (default) 1 = DMA operates with (positive) edge-sensitive peripheral requests
bits : 13 - 26 (14 bit)
access : read-write
Index value of DMA channel 3
address_offset : 0x3E Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA3_IDX : This (read-only) register determines the data items currently fetched by the DMA channel, during an on-going transfer. When the transfer is completed, the register is automatically reset to 0. The DMA channel uses this register to form the source/destination address of the next DMA cycle, considering also AINC/BINC and BW.
bits : 0 - 15 (16 bit)
access : read-only
Start address Low B of DMA channel 0
address_offset : 0x4 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA0_B_STARTL : Destination start address, lower 16 bits
bits : 0 - 15 (16 bit)
access : read-write
Start address High B of DMA channel 0
address_offset : 0x6 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA0_B_STARTH : Destination start address, upper 16 bits
bits : 0 - 15 (16 bit)
access : read-write
DMA receive interrupt register channel 0
address_offset : 0x8 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA0_INT : Number of transfers until an interrupt is generated. The interrupt is generated after a transfer, if DMAx_INT_REG is equal to DMAx_IDX_REG and before DMAx_IDX_REG is incremented. The bit-field IRQ_ENABLE of DMAx_CTRL_REG must be set to '1' to let the controller generate the interrupt.
bits : 0 - 15 (16 bit)
access : read-write
DMA channel assignments
address_offset : 0x80 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA01_SEL : Select which combination of peripherals are mapped on the DMA channels. The peripherals are mapped as pairs on two channels. Here, the first DMA request is mapped on channel 0 and the second on channel 1. 0x0: SPI_rx / SPI_tx 0x1: Reserved 0x2: UART_rx / UART_tx 0x3: UART2_rx / UART2_tx 0x4: I2C_rx / I2C_tx 0x5: GP_ADC (Rx only) 0x6-0xE: Reserved 0xF: None Note: If any of the two available peripheral selector fields (DMA01_SEL, DMA23_SEL) have the same value, the lesser significant selector has higher priority and will control the dma acknowledge. Hence, if DMA01_SEL = DMA23_SEL, the channels 0 and 1 will generate the DMA acknowledge signals for the selected peripheral. Consequently, it is suggested to assign the intended peripheral value to a unique selector field.
bits : 0 - 3 (4 bit)
access : read-write
DMA23_SEL : Select which combination of peripherals are mapped on the DMA channels. The peripherals are mapped as pairs on two channels. Here, the first DMA request is mapped on channel 2 and the second on channel 3. See DMA01_SEL for the peripherals' mapping.
bits : 4 - 11 (8 bit)
access : read-write
DMA interrupt status register
address_offset : 0x82 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA_IRQ_CH0 : 0: IRQ on channel 0 is not set 1: IRQ on channel 0 is set
bits : 0 - 0 (1 bit)
access : read-only
DMA_IRQ_CH1 : 0: IRQ on channel 1 is not set 1: IRQ on channel 1 is set
bits : 1 - 2 (2 bit)
access : read-only
DMA_IRQ_CH2 : 0: IRQ on channel 2 is not set 1: IRQ on channel 2 is set
bits : 2 - 4 (3 bit)
access : read-only
DMA_IRQ_CH3 : 0: IRQ on channel 3 is not set 1: IRQ on channel 3 is set
bits : 3 - 6 (4 bit)
access : read-only
DMA clear interrupt register
address_offset : 0x84 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA_RST_IRQ_CH0 : Writing a 1 will reset the status bit of DMA_INT_STATUS_REG for channel 0 writing a 0 will have no effect
bits : 0 - 0 (1 bit)
access : write-only
DMA_RST_IRQ_CH1 : Writing a 1 will reset the status bit of DMA_INT_STATUS_REG for channel 1 writing a 0 will have no effect
bits : 1 - 2 (2 bit)
access : write-only
DMA_RST_IRQ_CH2 : Writing a 1 will reset the status bit of DMA_INT_STATUS_REG for channel 2 writing a 0 will have no effect
bits : 2 - 4 (3 bit)
access : write-only
DMA_RST_IRQ_CH3 : Writing a 1 will reset the status bit of DMA_INT_STATUS_REG for channel 3 writing a 0 will have no effect
bits : 3 - 6 (4 bit)
access : write-only
DMA receive length register channel 0
address_offset : 0xA Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA0_LEN : DMA channel's transfer length. DMAx_LEN of value 0, 1, 2, ... results into an actual transfer length of 1, 2, 3, ...
bits : 0 - 15 (16 bit)
access : read-write
Control register for the DMA channel 0
address_offset : 0xC Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA_ON : 0 = DMA channel is off, clocks are disabled 1 = DMA channel is enabled. This bit will be automatically cleared after the completion of a transfer, if circular mode is not enabled. In circular mode, this bit stays set.
bits : 0 - 0 (1 bit)
access : read-write
BW : Bus transfer width: 00 = 1 Byte (suggested for peripherals like UART and 8-bit SPI) 01 = 2 Bytes (suggested for peripherals like I2C and 16-bit SPI) 10 = 4 Bytes (suggested for Memory-to-Memory transfers) 11 = Reserved
bits : 1 - 3 (3 bit)
access : read-write
IRQ_ENABLE : 0 = disable interrupt on this channel 1 = enable interrupt on this channel
bits : 3 - 6 (4 bit)
access : read-write
DREQ_MODE : 0 = DMA channel starts immediately 1 = DMA channel must be triggered by peripheral DMA request (see also the description of DMA_REQ_MUX_REG)
bits : 4 - 8 (5 bit)
access : read-write
BINC : Enable increment of destination address. 0 = do not increment (destination address stays the same during the transfer) 1 = increment according to the value of BW bit-field (by 1, when BW= 00 by 2, when BW= 01 by 4, when BW= 10 )
bits : 5 - 10 (6 bit)
access : read-write
AINC : Enable increment of source address. 0 = do not increment (source address stays the same during the transfer) 1 = increment according to the value of BW bit-field (by 1, when BW= 00 by 2, when BW= 01 by 4, when BW= 10 )
bits : 6 - 12 (7 bit)
access : read-write
CIRCULAR : 0 = Normal mode. The DMA channel stops after having completed the transfer of length determined by DMAx_LEN_REG. DMA_ON automatically deasserts when the transfer is completed. 1 = Circular mode (applicable only if DREQ_MODE = '1'). In this mode, DMA_ON never deasserts, as the DMA channel automatically resets DMAx_IDX_REG and starts a new transfer.
bits : 7 - 14 (8 bit)
access : read-write
DMA_PRIO : The priority level determines which DMA channel will be granted access for transferring data, in case more than one channels are active and request the bus at the same time. The greater the value, the higher the priority. In specific: 000 = lowest priority 111 = highest priority If different channels with equal priority level values request the bus at the same time, an inherent priority mechanism is applied. According to this mechanism, if, for example, both the DMA0 and DMA1 channels have the same priority level, then DMA0 will first be granted access to the bus.
bits : 8 - 18 (11 bit)
access : read-write
DMA_IDLE : 0 = Blocking mode, the DMA performs a fast back-to-back copy, disabling bus access for any bus master with lower priority. 1 = Interrupting mode, the DMA inserts a wait cycle after each store allowing the CPU to steal cycles or cache to perform a burst read. If DREQ_MODE='1', DMA_IDLE is don't care.
bits : 11 - 22 (12 bit)
access : read-write
DMA_INIT : 0 = DMA performs copy A1 to B1, A2 to B2, etc ... 1 = DMA performs copy of A1 to B1, B2, etc ... This feature is useful for memory initialization to any value. Thus, BINC must be set to '1', while AINC is don't care, as only one fetch from A is done. This process cannot be interrupted by other DMA channels. It is also noted that DMA_INIT should not be used when DREQ_MODE='1'.
bits : 12 - 24 (13 bit)
access : read-write
REQ_SENSE : 0 = DMA operates with level-sensitive peripheral requests (default) 1 = DMA operates with (positive) edge-sensitive peripheral requests
bits : 13 - 26 (14 bit)
access : read-write
Index value of DMA channel 0
address_offset : 0xE Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0
DMA0_IDX : This (read-only) register determines the data items currently fetched by the DMA channel, during an on-going transfer. When the transfer is completed, the register is automatically reset to 0. The DMA channel uses this register to form the source/destination address of the next DMA cycle, considering also AINC/BINC and BW.
bits : 0 - 15 (16 bit)
access : read-only
Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !
This website is sponsored by Embeetle, an IDE designed from scratch for embedded software developers.