欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > AG32 DMAC实现内部MCU与FPGA通信【知识库】

AG32 DMAC实现内部MCU与FPGA通信【知识库】

2025/5/30 3:09:26 来源:https://blog.csdn.net/weixin_44179831/article/details/148256020  浏览:    关键词:AG32 DMAC实现内部MCU与FPGA通信【知识库】

一、DMAC是独立于MCU和FPGA之外的外设,连接到AHB总线,可通过寄存器配置实现直接内存存取。通过AHB总线实现MCU与FPGA进行高性能通信。理论最高传输速率可达 bus_clock * 32 = 168MHz * 32 = 5376Mbps = 5.25Gbps,超频到336MHz的形况下,可以翻倍。
二、DMAC可选的流控模式(DMAC_FlowControlTypeDef)有以下几种,流控模式是较为关键的参数,决定了数据流怎么传输、由什么控制:

typedef enum
{DMAC_MEM_TO_MEM_DMA_CTRL                          = 0,  // 内存到内存,DMAC控制DMAC_MEM_TO_PERIPHERAL_DMA_CTRL                   = 1,  // 内存到外设,DMAC控制 DMAC_PERIPHERAL_TO_MEM_DMA_CTRL                   = 2,  // 外设到内存,DMAC控制DMAC_PERIPHERAL_TO_PERIPHERAL_DMA_CTRL            = 3,  // 外设到外设,DMAC控制DMAC_PERIPHERAL_TO_PERIPHERAL_DST_PERIPHERAL_CTRL = 4,  // 外设到外设,DSI控制DMAC_MEM_TO_PERIPHERAL_PERIPHERAL_CTRL            = 5,  // 内存到外设,外设控制DMAC_PERIPHERAL_TO_MEM_PERIPHERAL_CTRL            = 6,  // 外设到内存,外设控制DMAC_PERIPHERAL_TO_PERIPHERAL_SRC_PERIPHERAL_CTRL = 7,  // 外设到外设,源端外设控制
} DMAC_FlowControlTypeDef;

在这里进行简单说明,以上配置中所说的内存就是指内部SRAM,外设可以是真实的内部外设比如UART、IIC,也可以是FPGA通过AHB实现的外设或者通过AHB2APB的桥连接实现的APB外设,也可以是通过AHB2HBUS连接的内置hyperRAM(?待定,未测试)。
如果是FPGA实现的外设,一般使用DMAC_PERIPHERAL_TO_MEM_PERIPHERAL_CTRL , 可以有4个通道,主要依赖两个信号进行流控,ext_dma_DMACLBREQ用于FPGA告知DMAC可以进行传输,ext_dma_DMACCLR用于DMAC告知FPGA本轮传输结束,可以清除REQ标志。
针对AHB外设 进行性传输支持最大256长度的突发,但针对APB外设则不支持突发(APB本身不支持)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com