Module rp2040_pac::dma[][src]

Expand description

DMA with separate read and write masters

Modules

ch

Register block Cluster CH%s, containing CH?_READ_ADDR,CH??_READ_ADDR, CH?_WRITE_ADDR,CH??_WRITE_ADDR, CH?_TRANS_COUNT,CH??_TRANS_COUNT, CH?_CTRL_TRIG,CH??_CTRL_TRIG, CH?_AL1_CTRL,CH??_AL1_CTRL, CH?_AL1_READ_ADDR,CH??_AL1_READ_ADDR, CH?_AL1_WRITE_ADDR,CH??_AL1_WRITE_ADDR, CH?_AL1_TRANS_COUNT_TRIG,CH??_AL1_TRANS_COUNT_TRIG, CH?_AL2_CTRL,CH??_AL2_CTRL, CH?_AL2_TRANS_COUNT,CH??_AL2_TRANS_COUNT, CH?_AL2_READ_ADDR,CH??_AL2_READ_ADDR, CH?_AL2_WRITE_ADDR_TRIG,CH??_AL2_WRITE_ADDR_TRIG, CH?_AL3_CTRL,CH??_AL3_CTRL, CH?_AL3_WRITE_ADDR,CH??_AL3_WRITE_ADDR, CH?_AL3_TRANS_COUNT,CH??_AL3_TRANS_COUNT, CH?_AL3_READ_ADDR_TRIG,CH??_AL3_READ_ADDR_TRIG

ch0_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch0_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch1_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch1_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch2_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch2_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch3_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch3_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch4_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch4_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch5_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch5_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch6_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch6_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch7_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch7_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch8_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch8_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch9_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch9_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch10_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch10_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

ch11_dbg_ctdreq

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

ch11_dbg_tcr

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

chan_abort

Abort an in-progress transfer sequence on one or more channels

fifo_levels

Debug RAF, WAF, TDF levels

inte0

Interrupt Enables for IRQ 0

inte1

Interrupt Enables for IRQ 1

intf0

Force Interrupts

intf1

Force Interrupts for IRQ 1

intr

Interrupt Status (raw)

ints0

Interrupt Status for IRQ 0

ints1

Interrupt Status (masked) for IRQ 1

multi_chan_trigger

Trigger one or more channels simultaneously

n_channels

The number of channels this DMA instance is equipped with. This DMA supports up to 16 hardware channels, but can be configured with as few as one, to minimise silicon area.

sniff_ctrl

Sniffer Control

sniff_data

Data accumulator for sniff hardware\n Write an initial seed value here before starting a DMA transfer on the channel indicated by SNIFF_CTRL_DMACH. The hardware will update this register each time it observes a read from the indicated channel. Once the channel completes, the final result can be read from this register.

timer0

Pacing (X/Y) Fractional Timer\n The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less.

timer1

Pacing (X/Y) Fractional Timer\n The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less.

Structs

CH

Register block

RegisterBlock

Register block

Type Definitions

CH0_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH0_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH1_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH1_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH2_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH2_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH3_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH3_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH4_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH4_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH5_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH5_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH6_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH6_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH7_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH7_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH8_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH8_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH9_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH9_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH10_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH10_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CH11_DBG_CTDREQ

Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.

CH11_DBG_TCR

Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer

CHAN_ABORT

Abort an in-progress transfer sequence on one or more channels

FIFO_LEVELS

Debug RAF, WAF, TDF levels

INTE0

Interrupt Enables for IRQ 0

INTE1

Interrupt Enables for IRQ 1

INTF0

Force Interrupts

INTF1

Force Interrupts for IRQ 1

INTR

Interrupt Status (raw)

INTS0

Interrupt Status for IRQ 0

INTS1

Interrupt Status (masked) for IRQ 1

MULTI_CHAN_TRIGGER

Trigger one or more channels simultaneously

N_CHANNELS

The number of channels this DMA instance is equipped with. This DMA supports up to 16 hardware channels, but can be configured with as few as one, to minimise silicon area.

SNIFF_CTRL

Sniffer Control

SNIFF_DATA

Data accumulator for sniff hardware\n Write an initial seed value here before starting a DMA transfer on the channel indicated by SNIFF_CTRL_DMACH. The hardware will update this register each time it observes a read from the indicated channel. Once the channel completes, the final result can be read from this register.

TIMER0

Pacing (X/Y) Fractional Timer\n The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less.

TIMER1

Pacing (X/Y) Fractional Timer\n The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less.