0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

應(yīng)用筆記|如何使用 STM32U575/585 微控制器的 GPDMA

STM32單片機(jī) ? 來源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2022-12-20 09:35 ? 次閱讀

目錄預(yù)覽

1.前言

2.GPDMA 通用指南

3.外設(shè)、存儲器和 GPDMA 配置

4.系統(tǒng)性能

1.概述

本應(yīng)用筆記適用于 STM32U575/585 微控制器,這些微控制器是基于 Arm Cortex核心的器件。

提示: Arm 是 Arm Limited(或其子公司)在美國和/或其他地區(qū)的注冊商標(biāo)。

參考文檔:

? 參考手冊基于 Arm的 STM32U575/585 32 位 MCU(RM0456)

? STM32U585xx 數(shù)據(jù)手冊(DS13086)

? STM32U575xx 數(shù)據(jù)手冊(DS13737)

2.GPDMA 通用指南

2.1GPDMA 概述

在減載 CPU 的控制下,GPDMA 控制器通過鏈表執(zhí)行存儲器映射外設(shè)和/或存儲器之間的可編程數(shù)據(jù)傳輸。

GPDMA 是雙端口 AHB 主設(shè)備和系統(tǒng)外設(shè)。大多數(shù)外設(shè)和存儲器都與之建立連接。在需要數(shù)據(jù)傳輸時,這一點(diǎn)提 供了很大的靈活性并提高了系統(tǒng)性能。鏈表是存儲器中程序化的數(shù)據(jù)結(jié)構(gòu),旨在讓每個 GPDMA 通道為鏈接和安排 DMA 數(shù)據(jù)傳輸做好準(zhǔn)備。GPDMA 有 16 個通道。

2.2 GPDMA 通道分配

用戶必須分配一個通道用于 GPDMA 傳輸。為了能夠同時處理來自源的 GPDMA 傳輸(讀訪問)和到達(dá)目標(biāo)的GPDMA 傳輸(寫訪問),GPDMA 對給定 GPDMA 通道使用專用 FIFO。FIFO 單元的單位是一個字節(jié)。

FIFO 的大小決定了通道能夠有效處理的最大 DMA 突發(fā)大小(突發(fā)長度與數(shù)據(jù)寬度的乘積)。注意,通常突發(fā)越大,系統(tǒng)總體性能越好:更高吞吐率/帶寬傳輸,更低系統(tǒng)總線占用率。

鑒于系統(tǒng)總線為 32 位字寬,建議將 DMA 源/目標(biāo)數(shù)據(jù)寬度設(shè)定為 32 位(GPDMA_CxTR1 中的 S/DDW_LOG2[1:0]),以便最大限度減少總線使用量。

如下表所示,有兩類通道,分別具有不同的 FIFO 大小和尋址模式:

? 通道 0 至 11:

– FIFO 大小為 8 字節(jié)(2 字)。

– 尋址限于線性模式:固定尋址(通常用于外設(shè)寄存器訪問)或連續(xù)數(shù)據(jù)增量尋址(通常用于存儲器訪問)。

? 通道 12 至 15:

– FIFO 大小為 32 字節(jié)(8 字)。

– 支持線性和二維尋址模式:二者均適用于源和目標(biāo),可設(shè)定兩個地址跳轉(zhuǎn)/偏移量:

? 每個編程突發(fā)后

? 每個編程塊后

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

建議將通道 0 至 11 分配用于從 AHB/APB 外設(shè)到 SRAM 的傳輸或從 SRAM 到 AHB/APB 外設(shè)的傳輸,除非存儲器需要二維尋址或外設(shè)是支持突發(fā)請求的 AHB 外設(shè)。

然后,建議將突發(fā)設(shè)定為 1 字(FIFO 大小的一半),除非應(yīng)用需要處理 8 或 16 位數(shù)據(jù)寬度。建議將通道 12 至 15 分配用于存儲器之間的傳輸。然后,出于性能方面的考慮,建議將突發(fā)設(shè)定為默認(rèn)的 4 字(FIFO 大小的一半)。

同樣地,將通道 12 至 15 優(yōu)先用于始于支持突發(fā)請求的 AHB 外設(shè),比如 OCTOSPI、HASH 和 ADC。然后,通常將始于/止于外設(shè)的半傳輸設(shè)定為突發(fā)。建議將始于/止于存儲器的(半)傳輸設(shè)定為 4 字突發(fā)。

對于具有更高帶寬要求的 AHB 外設(shè)的始于/止于一些外設(shè)的傳輸,同樣優(yōu)先選擇通道 12 至 15。建議將始于/止于存儲器的(半)傳輸也設(shè)定為 4 字突發(fā)。

2.3 GPDMA 端口選擇

用戶必須為始于源(GPDMA_CxTR1 中的 SAP)的傳輸分配一個端口,并且為止于目標(biāo)(GPDMA_CxTR1 中的 DAP)的傳輸分配一個端口。在執(zhí)行下一次數(shù)據(jù)傳輸之前,會通過下一個鏈表項(xiàng)和數(shù)據(jù)結(jié)構(gòu)動態(tài)更新此分配。

關(guān)于 GPDMA 的總線拓?fù)淇煽偨Y(jié)如下(參見第 4 節(jié) 了解更多信息):

? GPDMA 端口 0 直接連接到 APB1 和 APB2 外設(shè),不穿過 AHB 矩陣(參見圖 2 和圖 4)。

? AHB 矩陣的默認(rèn)從設(shè)備(參見圖 2 和第 4.3.2 節(jié) )為:

– GPDMA 端口 0 的 AHB1 外設(shè)(MDF、FMAC 和 CORDIC)

– GPDMA 端口 1 的 SRAM1

建議按照以下方式使用 GPDMA 的兩個主設(shè)備端口:

? 將端口 0 分配用于始于/止于外設(shè)的(半)傳輸,無論是 AHB 還是 APB 外設(shè)。將端口 1 分配用于其他(半) 傳輸(分別止于/始于存儲器)。對于 APB1 和 APB2 外設(shè),端口 0 避免穿過互連矩陣,減少了相應(yīng)通道上的 總體延遲。這也減少了互連總線矩陣包含的和之后的 AHB 總線活動。

? 端口 1 被分配用于存儲器至存儲器的傳輸(特別是訪問 SRAM1 時,但不僅限于此)。對外設(shè)使用端口 0 并 對任何存儲器使用端口 1 的優(yōu)勢在于:

– 外設(shè)至存儲器和存儲器至外設(shè)的傳輸過程中兩個端口上的帶寬平衡

– 避免至存儲器的突發(fā)直接影響外設(shè)訪問的延遲

這是針對性能的典型和推薦配置。當(dāng)然,用戶可以自由地選擇任何可以訪問源位置的端口,以及任何可以訪問目標(biāo) 位置的端口。

當(dāng)通道未激活時,GPDMA 為加載下一個鏈表項(xiàng)而分配的鏈接端口由用戶在通道層面進(jìn)行定義(GPDMA_CxCR 中 的 LAP)。下一個鏈接列表項(xiàng)已準(zhǔn)備就緒并存儲在內(nèi)存中。然后,建議將端口 1 分配用于加載下一個鏈表項(xiàng)。

本文檔以 GPDMA 和可能受到 GPDMA 協(xié)助的外設(shè)的組合功能為基礎(chǔ),為系統(tǒng)開發(fā)人員提供一些以性能為導(dǎo)向的編程指南


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7455

    瀏覽量

    150856
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631996
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7434

    瀏覽量

    163519
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354300
  • GPDMA
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1584

原文標(biāo)題:應(yīng)用筆記|如何使用 STM32U575/585 微控制器的 GPDMA

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32U575為什么無法通過LPTIM3將MCU從STOP2模式喚醒?

    客戶在 STM32U575 的研發(fā)過程中發(fā)現(xiàn)了一個奇怪的問題,無法通過 LPTIM3 將MCU 從 STOP2 模式喚醒。
    發(fā)表于 09-27 07:22

    課程上線 | STM32單片機(jī)入門教程(1)基于HAL庫的多核心開發(fā)(F1/F4/G0/U5)

    STM32F103、STM32F405、STM32G070、STM32U575全系列課程體系①STM32裸機(jī)開發(fā)(多核心)②
    的頭像 發(fā)表于 08-08 16:42 ?297次閱讀
    課程上線 | <b class='flag-5'>STM32</b>單片機(jī)入門教程(1)基于HAL庫的多核心開發(fā)(F1/F4/G0/<b class='flag-5'>U</b>5)

    STM32U575串口接收+GPDMA波特率不匹配導(dǎo)致失敗怎么解決?

    我用CubeMX配置的串口+GPDMA接收,115200波特率正常能用, 然后如果波特率設(shè)置錯誤為9600,再改回來115200,接收就不能用了,調(diào)試好像時DMA出錯了,然后啟用HAL_UARTEx_ReceiveToIdle_DMA函數(shù)依然錯誤,有大神知道怎么解決嗎
    發(fā)表于 07-04 08:11

    STM32U575的Backup RAM的內(nèi)容短暫斷電以后能保存嗎?

    現(xiàn)在把一個項(xiàng)目從STM32F413移植到STM32U575,以前用函數(shù)HAL_RTCEx_BKUPWrite() 往F413 里面Backup RAM寫的內(nèi)容,短暫斷電一段時間后再上電,內(nèi)容不會丟失
    發(fā)表于 03-22 08:21

    STM32U575 flash擦除失敗的原因?怎么解決?

    型號:STM32U575VG型號 Flash大小1MB,未使用secure功能; 代碼如下:在對指定Page進(jìn)行擦除時發(fā)現(xiàn)擦除失敗,但是調(diào)用的相關(guān)驅(qū)動接口函數(shù)都沒有返回錯誤,請問有遇到類似問題
    發(fā)表于 03-21 07:42

    使用STM32u575配置USB host讀取U盤功能,是使用適應(yīng)M3的USB驅(qū)動還是必須使用M33的USB驅(qū)動?

    使用STM32u575配置USB host 讀取U盤功能,可以使用適應(yīng)M3的USB驅(qū)動嗎?還是必須使用M33的USB驅(qū)動?
    發(fā)表于 03-13 07:54

    關(guān)于stm32u575芯片作為usb device和PC實(shí)現(xiàn)雙向通信的疑問

    平臺:STM32U575qii-EV板 模塊:USBX,ThreadX 目的:stm32u575芯片作為usb device和PC實(shí)現(xiàn)雙向通信,device為HID Custom類 現(xiàn)狀:當(dāng)前
    發(fā)表于 03-13 06:56

    STM32U575定時PWM觸發(fā)DMA搬運(yùn)內(nèi)存時,為什么程序在DMA中斷里出不來?

    STM32U575 定時PWM觸發(fā)DMA搬運(yùn)內(nèi)存,為什么程序在DMA中斷里出不來?
    發(fā)表于 03-12 08:33

    STM32U575如何下載燒錄?

    STM32U575如何下載燒錄。
    發(fā)表于 03-08 07:50

    STM32U575 SPI2 MOSI發(fā)出數(shù)據(jù)異常怎么解決?

    STM32U575 SPI2 MOSI發(fā)出數(shù)據(jù)異常
    發(fā)表于 03-08 07:35

    STM32U5系列TIMER+DMA+DAC應(yīng)用演示

    有人使用STM32U575芯片的DAC功能。他希望使用TIMER事件觸發(fā)DMA,并通過DMA傳輸內(nèi)存數(shù)據(jù)到DAC輸出寄存,進(jìn)而產(chǎn)生相應(yīng)的DAC輸出波形??伤恢绾闻渲肈MA并實(shí)現(xiàn)期望的DAC輸出,在ST公司提供的HAL庫里也沒有找到相關(guān)例程可以參考。
    的頭像 發(fā)表于 01-24 09:10 ?1583次閱讀
    <b class='flag-5'>STM32U</b>5系列TIMER+DMA+DAC應(yīng)用演示

    基于STM32WB系列微控制器的構(gòu)建射頻應(yīng)用

    本文檔一步一步地指導(dǎo)設(shè)計(jì)人員基于 STM32WB 系列微控制器構(gòu)建特定 Bluetooth?低功耗或802.15.4 應(yīng)用。它匯集了最重要的信息,并且列出了需要處理的方面。為了充分利用本文檔中的信息
    發(fā)表于 12-12 16:48 ?0次下載

    微控制器基礎(chǔ)】——從歷史切入,了解微控制器的五個要素(上)

    微控制器基礎(chǔ)】——從歷史切入,了解微控制器的五個要素(上)
    的頭像 發(fā)表于 12-07 10:55 ?523次閱讀
    【<b class='flag-5'>微控制器</b>基礎(chǔ)】——從歷史切入,了解<b class='flag-5'>微控制器</b>的五個要素(上)

    微控制器基礎(chǔ)】—— 從歷史切入,了解微控制器的五個要素(下)

    微控制器基礎(chǔ)】—— 從歷史切入,了解微控制器的五個要素(下)
    的頭像 發(fā)表于 12-06 17:23 ?518次閱讀
    【<b class='flag-5'>微控制器</b>基礎(chǔ)】—— 從歷史切入,了解<b class='flag-5'>微控制器</b>的五個要素(下)

    控制器局域網(wǎng)(CAN)應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《控制器局域網(wǎng)(CAN)應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 11-28 09:30 ?5次下載
    <b class='flag-5'>控制器</b>局域網(wǎng)(CAN)應(yīng)<b class='flag-5'>用筆記</b>