应用笔记|如何使用 STM32U575/585 微控制器的 GPDMA

发布者:乡村乐园最新更新时间:2024-09-25 来源: elecfans关键字:微控制器  GPDMA 手机看文章 扫描二维码
随时随地手机看文章

1.概述


本应用笔记适用于 STM32U575/585 微控制器,这些微控制器是基于 Arm Cortex核心的器件。


提示: Arm 是 Arm Limited(或其子公司)在美国和/或其他地区的注册商标。


参考文档:

• 参考手册基于 Arm的 STM32U575/585 32 位 MCU(RM0456)

• STM32U585xx 数据手册(DS13086)

• STM32U575xx 数据手册(DS13737)


2.GPDMA 通用指南


2.1GPDMA 概述

在减载 CPU 的控制下,GPDMA 控制器通过链表执行存储器映射外设和/或存储器之间的可编程数据传输。


GPDMA 是双端口 AHB 主设备和系统外设。大多数外设和存储器都与之建立连接。在需要数据传输时,这一点提 供了很大的灵活性并提高了系统性能。链表是存储器中程序化的数据结构,旨在让每个 GPDMA 通道为链接和安排 DMA 数据传输做好准备。GPDMA 有 16 个通道。


2.2 GPDMA 通道分配


用户必须分配一个通道用于 GPDMA 传输。为了能够同时处理来自源的 GPDMA 传输(读访问)和到达目标的GPDMA 传输(写访问),GPDMA 对给定 GPDMA 通道使用专用 FIFO。FIFO 单元的单位是一个字节。


FIFO 的大小决定了通道能够有效处理的最大 DMA 突发大小(突发长度与数据宽度的乘积)。注意,通常突发越大,系统总体性能越好:更高吞吐率/带宽传输,更低系统总线占用率。


鉴于系统总线为 32 位字宽,建议将 DMA 源/目标数据宽度设定为 32 位(GPDMA_CxTR1 中的 S/DDW_LOG2[1:0]),以便最大限度减少总线使用量。


如下表所示,有两类通道,分别具有不同的 FIFO 大小和寻址模式:

• 通道 0 至 11:

– FIFO 大小为 8 字节(2 字)。

– 寻址限于线性模式:固定寻址(通常用于外设寄存器访问)或连续数据增量寻址(通常用于存储器访问)。


• 通道 12 至 15:

– FIFO 大小为 32 字节(8 字)。

– 支持线性和二维寻址模式:二者均适用于源和目标,可设定两个地址跳转/偏移量:

◦ 每个编程突发后

◦ 每个编程块后

714152bc-8006-11ed-8abf-dac502259ad0.png


建议将通道 0 至 11 分配用于从 AHB/APB 外设到 SRAM 的传输或从 SRAM 到 AHB/APB 外设的传输,除非存储器需要二维寻址或外设是支持突发请求的 AHB 外设。


然后,建议将突发设定为 1 字(FIFO 大小的一半),除非应用需要处理 8 或 16 位数据宽度。建议将通道 12 至 15 分配用于存储器之间的传输。然后,出于性能方面的考虑,建议将突发设定为默认的 4 字(FIFO 大小的一半)。


同样地,将通道 12 至 15 优先用于始于支持突发请求的 AHB 外设,比如 OCTOSPI、HASH 和 ADC。然后,通常将始于/止于外设的半传输设定为突发。建议将始于/止于存储器的(半)传输设定为 4 字突发。


对于具有更高带宽要求的 AHB 外设的始于/止于一些外设的传输,同样优先选择通道 12 至 15。建议将始于/止于存储器的(半)传输也设定为 4 字突发。


2.3 GPDMA 端口选择

用户必须为始于源(GPDMA_CxTR1 中的 SAP)的传输分配一个端口,并且为止于目标(GPDMA_CxTR1 中的 DAP)的传输分配一个端口。在执行下一次数据传输之前,会通过下一个链表项和数据结构动态更新此分配。


关于 GPDMA 的总线拓扑可总结如下(参见第 4 节 了解更多信息):

• GPDMA 端口 0 直接连接到 APB1 和 APB2 外设,不穿过 AHB 矩阵(参见图 2 和图 4)。


• AHB 矩阵的默认从设备(参见图 2 和第 4.3.2 节 )为:

– GPDMA 端口 0 的 AHB1 外设(MDF、FMAC 和 CORDIC)

– GPDMA 端口 1 的 SRAM1


建议按照以下方式使用 GPDMA 的两个主设备端口:

• 将端口 0 分配用于始于/止于外设的(半)传输,无论是 AHB 还是 APB 外设。将端口 1 分配用于其他(半) 传输(分别止于/始于存储器)。对于 APB1 和 APB2 外设,端口 0 避免穿过互连矩阵,减少了相应通道上的 总体延迟。这也减少了互连总线矩阵包含的和之后的 AHB 总线活动。

• 端口 1 被分配用于存储器至存储器的传输(特别是访问 SRAM1 时,但不仅限于此)。对外设使用端口 0 并 对任何存储器使用端口 1 的优势在于:

– 外设至存储器和存储器至外设的传输过程中两个端口上的带宽平衡

– 避免至存储器的突发直接影响外设访问的延迟


这是针对性能的典型和推荐配置。当然,用户可以自由地选择任何可以访问源位置的端口,以及任何可以访问目标 位置的端口。


当通道未激活时,GPDMA 为加载下一个链表项而分配的链接端口由用户在通道层面进行定义(GPDMA_CxCR 中 的 LAP)。下一个链接列表项已准备就绪并存储在内存中。然后,建议将端口 1 分配用于加载下一个链表项。


本文档以 GPDMA 和可能受到 GPDMA 协助的外设的组合功能为基础,为系统开发人员提供一些以性能为导向的编程指南


关键字:微控制器  GPDMA 引用地址:应用笔记|如何使用 STM32U575/585 微控制器的 GPDMA

上一篇:如何才能移植一个AC6例子到STM32CubeIDE
下一篇:使用STM32WL系列Sub-GHz无线驱动程序的应用示例

推荐阅读最新更新时间:2024-11-05 17:42

AVR单片机的端口位操作方法解析
一、常规方法 AVR单片机的各类教材或编程应用参考资料,对介绍的端口位操作方法不外乎宏定义及整体和某个常量相或、相与来实现某一单个位状态的改变。如: PORT&=-(1《1);等价于:PORTB&=oxfd;作用是PB1清零而其余位不变。与之类似的还有: PORTBl=(1《4);PB4置位,其余位不变。 PORTB=(k《4);PB4翻转,其余位不变。 上述方法,无论是常量值参与还是移位操作,用起来总嫌麻烦,不够直观,且具体常量值还需人工推算,易出错。移位操作生成的目标代码偏大,在大量运用时,占用系统内存或flash空间,执行效率低。 以实际运用效果来看,宏定义比较好。也偏好运用宏定义。C编译器在编译之前会事先进行宏替换
[单片机]
AVR<font color='red'>单片机</font>的端口位操作方法解析
基于AVR单片机与FPGA的低频数字式相位测量仪设计
在工业领域中经常要用到低频数字式相位仪来精确测量两信号之问的相位差,比如在电力系统、频率特性的研究、激光测距等领域均有广泛的应用,相位检测的精度直接决定系统的整体性能。这就要求测量仪逐渐向智能化和测试自动化方向发展,本设计采用MCU和FPGA相结合的系统方案,以AVR单片机ATmega128和Altera公司的Cyclone系列EP1C3T100为核心,充分发挥各自的优势,如AVR单片机先进的RISC结构和强劲的运算、控制功能,Altera公司的FPGA运算速度快、资源丰富以及易编程的特点,合理设计,此方案的相位仪具备速度快、稳定可靠、精度高等优点,而且容易实现“智能化”和“自动化”。 1 系统方案设计 1.1 测量方法的比较
[单片机]
基于AVR<font color='red'>单片机</font>与FPGA的低频数字式相位测量仪设计
ZiLOG的8位MCU用于PC电视调谐卡,增强遥控功能
ZiLOG公司在推进8位集成微控制器和通用远程处理方案技术革新的同时,又宣布了与Hauppauge Computer Work公司的战略伙伴关系。Hauppauge公司是个人电脑数字视频、电视和信息广播接收机类产品的开发和生产商。在合作计划中ZiLOG的Z8 Encore! F08闪存微控制器系列将会使Hauppauge公司的WinTV-PVR-150型板卡先进的遥控功能得到进一步的增强。 WinTV-PVR是一款便于安装的个人电脑电视调谐卡,它使消费者可以通过他们的电脑观看、暂停或录制有线电视和卫星电视。消费者无需购买新的多媒体娱乐电脑就可以廉价快捷地在已有的电脑上收看电视或享受其它娱乐功能。 除了为Hauppauge公司提
[嵌入式]
51单片机玩转物联网基础篇02-点亮LED灯,实现跑马灯效果
前言 上一节,我们完成了51单片机开发环境的搭建,本节我们正式学习51单片机,编程语言的学习,通常是从第一个 hello world 开始,而点灯实验便是单片机学习的开始。 一、基础知识 1.单片机最小系统 一个最小的单片机系统,需要有单片机、电源电路、晶振电路、复位电路组成,这几部分存在就可以使单片机正常工作,如果需要频繁的下载程序,还需增加下载电路。 (1) 单片机 首先,我们先介绍下单片机, 引脚序号名称说明 以下为I/O端口: P0: 第一功能:8位,漏极开路的双向I/O口。用时要加上拉电阻,可驱动8个LS型负载。 第二功能:低8位地址线和8位数据线分时复用;此时为真正的双向三态口。 P1: 8位准
[单片机]
51<font color='red'>单片机</font>玩转物联网基础篇02-点亮LED灯,实现跑马灯效果
恩智浦针对传感器处理市场推出系列微控制器
LPC54100系列微控制器设立了全新标准,为各种基于“始终开启”传感器的产品提供更加智能的客户体验,并延长电池续航时间。 中国上海,2014年11月12日讯——恩智浦半导体(NXP Semiconductors N.V.)(纳斯达克代码:NXPI)日前推出LPC54100系列微控制器,这是基于传感器产品的一大进步,也是超低功耗“始终开启”传感器处理方面的重大突破。该系列利用经过市场验证的创新专利架构,实现了无与伦比的能效,相比最接近的竞争产品,其能耗平均降低了20%。 LPC54100系列仅需3µA的极小电流即可实现持续传感器监听,这对始终开启的应用至关重要。作为传感器应用领域的首创功能,该系列产品的非对称双核架
[嵌入式]
基于单片机的数码管动态显示器的设计方案
  1.前言   数码管静态显示系统需要占用过多的单片机口线,但是可以保证正常的亮度。为了解决占用口线较多而浪费硬件资源等问题,研究人员开发了一系列诸如74HC595的数码管驱动芯片,该类芯片可以实现串行转并行的工作方式,驱动数码管实现静态和动态显示。但是,这样一种工作方式暴露出控制系统实时性不足等问题,在某些对系统响应时间要求比较高的场合的应用产生了一定的限制。为了解决上述几个弊端,本文提出了一种基于单片机的数码管动态显示器的设计方案,以IAP15F2K61S2系列单片机做控制核心,并采用全新的软硬件电路实现数码管的动态显示。   2.控制系统硬件设计   2.1 显示器外观设计   本显示器采用六个共阳极的数码管,按照
[单片机]
基于<font color='red'>单片机</font>的数码管动态显示器的设计方案
单片机复位电路的工作原理
如何进行复位呢?只要在单片机的RST引脚上加上高电平就可以了,时间不少于5ms。 基本的复位电路的原理图如下所示:                   这种复位电路的工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度为低电平,单片机开始正常工作。 改进的复位电路如下:                      在满足单片机可靠复位的前提下,该复位电路的优点在于降低复位引脚的对地阻抗,可以显著增强单片机复位电路的抗干扰能力。二极管可以实现快速释放电容电量的功能,满足短时间复位的要求。
[单片机]
GD32 MCU机械按键状态的识别
GPIO口的输入功能-机械按键状态的识别 硬件: 深圳标航科技有限公司 暴风 开发板 处理器:GD32F103VET6 开发环境:MDK(keil 5) + STM32CubeMX 1.1 GPIO口的输入的作用 输入,其意是指将处理器外部的逻辑信号0或者1输入到处理器的内部。输入是每一个处理器的IO引脚的基本功能。利用处理器的输入功能我们可以获取外部电路的状态,进而做出进一步的判断。GPIO的输入功能的典型应用是获取机械按键的状态—判断按键是按下还是弹起。 1.2 机械按键状态的识别 1.2.1 机械按键电路的设计 按键有两个状态,一个是按下一个是弹起。通过巧妙的电路设计,会使得按键的按下与弹起时IO引脚的逻辑电平不一样。通
[单片机]
GD32 <font color='red'>MCU</font>机械按键状态的识别
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved