0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

STM32单片机 来源:STM32单片机 作者:STM32单片机 2022-12-20 09:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

目录预览

1.前言

2.GPDMA 通用指南

3.外设、存储器和 GPDMA 配置

4.系统性能

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 协助的外设的组合功能为基础,为系统开发人员提供一些以性能为导向的编程指南


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    8249

    浏览量

    162269
  • 单片机
    +关注

    关注

    6074

    文章

    45335

    浏览量

    663302
  • 存储器
    +关注

    关注

    39

    文章

    7714

    浏览量

    170798
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371053
  • GPDMA
    +关注

    关注

    0

    文章

    4

    浏览量

    1792

原文标题:应用笔记|如何使用 STM32U575/585 微控制器的 GPDMA

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32H7R3/S3:高性能微控制器的新标杆

    STMicroelectronics STM32H7R3/S3微控制器采用Arm® Cortex®-M7处理,时钟频率为600MHz。STMicroelectronics STM32
    的头像 发表于 10-21 11:39 476次阅读
    <b class='flag-5'>STM32</b>H7R3/S3:高性能<b class='flag-5'>微控制器</b>的新标杆

    STM32 Nucleo-U385RG-Q开发板技术解析与应用指南‌

    STMicroelectronics NUCLEO-U385RG-Q开发板(带STM32U3 MCU)是一款多功能、全面的评估平台,设计用于让开发人员使用STM32U385RGT6Q微控制器
    的头像 发表于 10-16 14:46 367次阅读
    ‌<b class='flag-5'>STM32</b> Nucleo-<b class='flag-5'>U</b>385RG-Q开发板技术解析与应用指南‌

    使用stm32u575rg通过spi读取外置adc的数据,如何设置才能让spi不需要中断重启持续读取数据?

    我打算使用stm32u575rg通过spi读取外置adc的数据,通过lptim2的ch2提供外置ad的触发信号,ch1提供触发信号给spi1,SPI->TSIZE=1
    发表于 07-10 08:22

    如何在MCXN947微控制器上配置安全启动和生命周期

    本文档旨在介绍如何在MCXN947微控制器上配置安全启动和生命周期,以确保产品在量产阶段的安全性,防止代码被窃取和篡改,并且能够安全地升级更新固件。通过本应用笔记,开发者可以更好地理解和实施安全启动和固件更新的最佳实践。
    的头像 发表于 06-26 09:49 2070次阅读
    如何在MCXN947<b class='flag-5'>微控制器</b>上配置安全启动和生命周期

    STM32U5+8bit_8080 LCD 怎么配置touchgfx?

    我参与的项目使用STM32U575做为主空,使用fmc来驱动8080接口的8bitLCD,配置touchgfx时不能配置为8bit,其他选型例如DMA2D也使用不了,我该怎么做?
    发表于 06-09 06:23

    昂科烧录支持ST意法半导体的主流微控制器STM32C031G6U

    芯片烧录领域的领导者昂科技术于近日宣布完成烧录软件的新一轮迭代升级,并同步公布了一系列新增兼容芯片型号。在此次更新中,意法半导体(ST)推出的主流微控制器 STM32C031G6U,已成功纳入昂科
    的头像 发表于 04-29 17:31 522次阅读
    昂科烧录<b class='flag-5'>器</b>支持ST意法半导体的主流<b class='flag-5'>微控制器</b><b class='flag-5'>STM32C031G6U</b>

    STM32U5+8bit_8080 LCD怎么配置touchgfx?

    我参与的项目使用STM32U575做为主空,使用fmc来驱动8080接口的8bitLCD,配置touchgfx时不能配置为8bit,其他选型例如DMA2D也使用不了,我该怎么做?
    发表于 04-28 08:12

    STM32U5+8bit_8080 LCD怎么配置touchgfx?

    我参与的项目使用STM32U575做为主空,使用fmc来驱动8080接口的8bitLCD,配置touchgfx时不能配置为8bit,其他选型例如DMA2D也使用不了,我该怎么做?
    发表于 04-27 07:11

    意法半导体推出全新STM32U3微控制器,物联网超低功耗创新

    近日,意法半导体(STMicroelectronics)宣布推出新一代STM32U3微控制器(MCU),旨在为物联网(IoT)设备带来革命性的超低功耗解决方案。这款新产品不仅延续了意法半导体在超低
    的头像 发表于 03-13 11:09 1256次阅读
    意法半导体推出全新<b class='flag-5'>STM32U</b>3<b class='flag-5'>微控制器</b>,物联网超低功耗创新

    STM32U575ZIT如何配置GPDMA+DCMI?

    配置完GPDMA后会报这个错误 然后就是GPDMA文件里这有这些
    发表于 03-12 07:13

    STM32Cubeprogrammer烧录TrustZone的示范程序不成功怎么解决?

    最近测试STM32U575 的TrustZone 保护机制。 用STM32Cubeprogrammer 2.17.0 烧录已编译好的以下地址的TrustZone 的HEX 文件
    发表于 03-07 08:28

    求助,关于U575RI的GPDMA_LINKED_list模式的疑问求解

    */ pNodeConfig.NodeType = DMA_GPDMA_LINEAR_NODE;//DMA_GPDMA_2D_NODE;//GPDMA二维寻址 pNodeConfig.Init.Request
    发表于 03-07 08:02

    STM32U575串口接收+GPDMA波特率不匹配怎么解决?

    我用CubeMX配置的串口+GPDMA接收,115200波特率正常能用, 然后如果波特率设置错误为9600,再改回来115200,接收就不能用了,调试好像时DMA出错了,然后启用HAL_UARTEx_ReceiveToIdle_DMA函数依然错误,有大神知道怎么解决吗
    发表于 03-07 07:59

    STM32F405xx和STM32F407xx微控制器数据手册

    电子发烧友网站提供《STM32F405xx和STM32F407xx微控制器数据手册.pdf》资料免费下载
    发表于 01-03 14:49 4次下载

    SEGGER工具全面支持STM32N6微控制器开发

    2024年12月,SEGGER宣布全面支持ST首款带有神经处理单元(NPU)的微控制器STM32N6。
    的头像 发表于 12-18 11:05 1140次阅读