【银杏科技ARM+FPGA双核心应用】GD32F4系列三十三—FSMC_DMA实验

[复制链接]
34607|396
benjaminka 发表于 2026-1-16 10:56 | 显示全部楼层
GD32与FPGA可实现高效、低延迟的通信,满足工业控制、实时信号处理等场景的需求。
51xlf 发表于 2026-1-16 11:49 | 显示全部楼层
用于批量传输数据,避免 单片机 频繁干预。
eefas 发表于 2026-1-16 12:42 | 显示全部楼层
FPGA可以根据地址线的不同位域,实现多个功能寄存器的映射,而不仅仅是RAM。
mikewalpole 发表于 2026-1-16 13:39 | 显示全部楼层
FPGA 侧的读写建立 / 保持时间需≥GD32 FSMC 手册中的最小值,否则会出现数据错误。
abotomson 发表于 2026-1-16 14:33 | 显示全部楼层
将内部 RAM挂载到 FSMC 总线上,模拟外部 SRAM 的时序,响应 GD32 的 FSMC 读写指令。
geraldbetty 发表于 2026-1-16 16:24 | 显示全部楼层
根据 FSMC 的控制信号,在 FPGA 中添加相应的控制逻辑,以实现对 RAM 存储块的正确读写操作。如当检测到 GD32 发出的读使能有效信号时,将指定地址的数据放到数据总线上供 GD32 读取;当写使能有效时,将数据总线上的数据写入到指定地址的 RAM 存储单元中
mnynt121 发表于 2026-1-16 20:17 | 显示全部楼层
强烈建议FPGA端使用FSMC_CLK来同步接口,避免异步问题。
biechedan 发表于 2026-1-16 21:17 | 显示全部楼层
在 FPGA 内部使用硬件描述语言例化一个 RAM 存储块,可设置合适的位宽和深度。
1988020566 发表于 2026-1-16 22:10 | 显示全部楼层
在进行读操作时,将 FSMC 的基地址作为 DMA 传输的源地址,将目标内存地址作为目的地址,设置好传输长度等参数后,启动 DMA 传输,DMA 控制器会自动将数据从 FSMC 对应的 RAM 存储块中读取到指定的内存区域。
jackcat 发表于 2026-1-17 10:46 | 显示全部楼层
如果 GD32 和 FPGA 内部逻辑 同时 读写双口 RAM 的 同一地址,会产生数据冲突或读到无效数据。
gygp 发表于 2026-1-17 11:04 | 显示全部楼层
这种方法非常适合入门级到进阶级的高速数据采集与处理,能够轻松达到 10MB/s ~ 50MB/s 甚至更高的传输速率,且几乎不占用 单片机 资源。
fengm 发表于 2026-1-17 11:24 | 显示全部楼层
将 FPGA 的 RAM 映射到 FSMC 的指定地址空间,配置 FSMC 为 SRAM 模式,再通过 DMA 实现数据在 GD32 内存与 FPGA RAM 之间的高速传输,全程无需 CPU 参与。
cemaj 发表于 2026-1-17 11:41 | 显示全部楼层
通过 FSMC + DMA 实现 GD32 与 FPGA 之间的高速通信,是一种高效、低 单片机 占用的方案。
phoenixwhite 发表于 2026-1-17 12:01 | 显示全部楼层
FPGA需要模拟一个与FSMC时序匹配的同步SRAM接口。
fengm 发表于 2026-1-17 12:29 | 显示全部楼层
通过将 FPGA 内部的 RAM 模拟成 GD32 的外部 SRAM,利用 FSMC 总线进行并行数据传输,并结合 DMA 实现数据的自动搬运,可以实现 高吞吐量、低 单片机 占用率 的数据交互。
juliestephen 发表于 2026-1-17 12:49 | 显示全部楼层
GD32通过FSMC总线连接到这个RAM的一个端口,将其视为一片外部SRAM。
juliestephen 发表于 2026-1-20 16:54 | 显示全部楼层
GD32通过FSMC总线连接到这个RAM的一个端口,将其视为一片外部SRAM。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0