标签专题 · 共 7 篇文章

# DMA

关于「DMA」的技术文章、设计资料与工程师讨论,持续更新。

7
篇文章
22
人关注
368
次浏览
极海芯得 EP.82 | 玩转APM32的DMA-用UART和DMA配合乒乓操作实现批量数据接收

极海芯得 EP.82 | 玩转APM32的DMA-用UART和DMA配合乒乓操作实现批量数据接收

一、前言 1.1 应用场景 UART是一种应用广泛的通信接口,使用简单,绝大部分MCU都有这种接口。 MCU端如果想接收串口的数据,简单的做法是在“接收寄存器非空”中断中一个字节一个字节的接收,这种方式代码处理起来简单些,一般情况下够用,但是如果接收的数据量非常大就不太合适,此外,这种方式需要CPU频繁处理中断,占用大量CPU时间不说,MCU性能低点还容易丢数据。 这是就需要用DMA来进行批量数据

直播预告 | 睿擎派 AD7606 高速采集:FlexBus + DMA 实战,8通道同步采样

8通道同步采样,CPU占用却几乎为零? FlexBus并行总线怎么配置?DMA如何与ADC配合实现零拷贝? 工业数据采集的痛点,我们直播里一次性解决。 5月13日(周三)晚8点,我们用睿擎派 RC3506 + AD7606 扩展板,完整演示 FlexBus + DMA 驱动开发,从硬件连接到波形显示。 这场直播能帮你解决什么问题? 直播核心内容 1. 硬件连接与驱动框架 AD7606 关键信号

实战 | 睿擎派 + AD7606:FlexBus + DMA 高速数据采集实战,200kSPS 8通道同步采样

实战 | 睿擎派 + AD7606:FlexBus + DMA 高速数据采集实战,200kSPS 8通道同步采样

在工业数据采集、电力监控、振动分析等场景中,高速、多通道、同步采样 是核心需求。传统 MCU 方案往往面临 CPU 占用高、数据吞吐不足的瓶颈。 今天分享一个基于睿擎派 RC3506 的完整方案——利用 FlexBus 并行总线 驱动 AD7606 ADC,配合 DMA 数据搬运,实现 8通道高速同步采样,CPU 几乎零介入。 效果先看 通过串口将采集数据发送至 VOFA+ 上位机,波形实时显示:

FPGA漫谈PCI-E:TLP包

FPGA漫谈PCI-E:TLP包

前言 本系列不会从零讲PCIe,也不会照搬规范条款,标准文档已经够厚,这里更像是一份工程师视角下的PCIe手边笔记 , 以更简洁的方式记录PCIe的关键点。 TLP包 由于PCIe-DMA的实现始终在事务层通过TLP包完成,因此深入理解TLP包的构成至关重要。 TLP包所在位置 在PCIe协议的传输层中,TLP包的结构相较于链路层与物理层的报文而言,最为简单清晰。 ‍ TLP的结构 TLP的结构

ESP32-C3 学习测试(一、ADC采样)

ESP32-C3 学习测试(一、ADC采样)

经过前面的折腾,设计好了自己的测试开发板 搭建好了开发环境, 然后正式开始进行功能测试了,测试顺序先从简单的开始吧,一步一步来 前言 1、ADC采样示例测试 1.1 DMA连续采样 1.2 单次采样 1.3 测试源码 2、 ESP32-C3 ADC相关介绍 2.1 实际电压的计算 2.2 连续采样步骤 2.3 单步采样步骤 2.4 ADC使用注意事项 前

开源AFX-SATA-DMA 控制器:高速存储接口的完整实现(附源码)

前言 开源 AFX-SATA-DMA 控制器:高速存储接口的完整实现(附源码) SATA 的开源并不是我的主要目的。这个项目最初的出发点,其实是想借此验证和实践 cocotb 仿真的完整流程,以及构建一套自主可控的 FPGA 开发工具链。可以说,是为了这点醋,才包了这顿饺子。不过既然 SATA 协议都已经实现出来了,索性就把它开源出来。开源的好处是双向的:对大家来说,可以借此深入学习SATA 协议

漫谈PCIe——如何进行内存读写

漫谈PCIe——如何进行内存读写

DMA与MMIO的读写操作均通过三种基本报文实现:MWr(写请求)、MRd(读请求)和CPLD(完成带数据)。 MMIO的读写机制较为简单:写操作直接发起一次MWr请求;读操作则先发起MRd请求,然后等待一个包含数据的CPLD报文作为响应。 相比之下,DMA的读写行为则复杂得多,但其原理依然可以理解。 Request ‍ Memory请求包在传输时需遵循以下规范 4KB 地址边界限制 Memor