Edit online

外设源端和终端传输模式

通过寄存器 GPDMA_CH_CTL_3 可以配置外设源端 (Source Mode Config) 和终端 (Destination Mode Config) 模式参数。

源端 (Source Mode Config) 和终端 (Destination Mode Config) 模式参数仅适用于外设(Type=io_single、 io_multi 或 io_fast io_multi),不适用于存储设备(Type=memory 或 memoryset)。
  • 0x0: 使用握手模式,默认值

    推荐使用默认值。

使用握手模式

1. 握手模式下外设源端和终端模式配置
Multiple Domain Single Domain
使用方式 GPDMA 剩余传输数据量大于等于 block_len GPDMA 剩余传输数据量小于 block_len
GPDMA 行为
  • 当检测到 periph_multi_req,GPDMA 发起 transaction。
  • 检测到总线最后一个 外设 返回 ready,拉高 dma_ack。
  • 检测到 periph_multi_req 为低,拉低 dma_ack。

  • 当检测到 periph_single_req,GPDMA 发起 transaction。

  • 检测到总线 外设 返回 ready,拉高 dma_ack。

  • 检测到 periph_single_req 为低,拉低 dma_ack。

外设 FIFO
  • Multiple Domain:当外设 FIFO 到达水位并且 dma_ack 为低时,拉高 periph_multi_req。检测到 dma_ack 为低,拉低 periph_multi_req

  • Single Domain:当外设 FIFO 只要有数据 (读)或空间 (写)并且 ack 为低时,拉高 periph_single_req。检测到 dma_ack 为低,拉低 periph_single_req


dma_burst4_req1

1. GPDMA Burst 4 Handshakes

dma_single_req1

2. GPDMA Single Handshakes