目錄預(yù)覽
1.前言
2.GPDMA 通用指南
3.外設(shè)、存儲(chǔ)器和 GPDMA 配置
4.系統(tǒng)性能
1.概述
本應(yīng)用筆記適用于 STM32U575/585 微控制器,這些微控制器是基于 Arm Cortex核心的器件。
提示: Arm 是 Arm Limited(或其子公司)在美國(guó)和/或其他地區(qū)的注冊(cè)商標(biāo)。
參考文檔:
? 參考手冊(cè)基于 Arm的 STM32U575/585 32 位 MCU(RM0456)
? STM32U585xx 數(shù)據(jù)手冊(cè)(DS13086)
? STM32U575xx 數(shù)據(jù)手冊(cè)(DS13737)
2.GPDMA 通用指南
2.1GPDMA 概述
在減載 CPU 的控制下,GPDMA 控制器通過(guò)鏈表執(zhí)行存儲(chǔ)器映射外設(shè)和/或存儲(chǔ)器之間的可編程數(shù)據(jù)傳輸。
GPDMA 是雙端口 AHB 主設(shè)備和系統(tǒng)外設(shè)。大多數(shù)外設(shè)和存儲(chǔ)器都與之建立連接。在需要數(shù)據(jù)傳輸時(shí),這一點(diǎn)提 供了很大的靈活性并提高了系統(tǒng)性能。鏈表是存儲(chǔ)器中程序化的數(shù)據(jù)結(jié)構(gòu),旨在讓每個(gè) GPDMA 通道為鏈接和安排 DMA 數(shù)據(jù)傳輸做好準(zhǔn)備。GPDMA 有 16 個(gè)通道。
2.2 GPDMA 通道分配
用戶必須分配一個(gè)通道用于 GPDMA 傳輸。為了能夠同時(shí)處理來(lái)自源的 GPDMA 傳輸(讀訪問(wèn))和到達(dá)目標(biāo)的GPDMA 傳輸(寫訪問(wèn)),GPDMA 對(duì)給定 GPDMA 通道使用專用 FIFO。FIFO 單元的單位是一個(gè)字節(jié)。
FIFO 的大小決定了通道能夠有效處理的最大 DMA 突發(fā)大?。ㄍ话l(fā)長(zhǎng)度與數(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è)寄存器訪問(wèn))或連續(xù)數(shù)據(jù)增量尋址(通常用于存儲(chǔ)器訪問(wèn))。
? 通道 12 至 15:
– FIFO 大小為 32 字節(jié)(8 字)。
– 支持線性和二維尋址模式:二者均適用于源和目標(biāo),可設(shè)定兩個(gè)地址跳轉(zhuǎn)/偏移量:
? 每個(gè)編程突發(fā)后
? 每個(gè)編程塊后

建議將通道 0 至 11 分配用于從 AHB/APB 外設(shè)到 SRAM 的傳輸或從 SRAM 到 AHB/APB 外設(shè)的傳輸,除非存儲(chǔ)器需要二維尋址或外設(shè)是支持突發(fā)請(qǐng)求的 AHB 外設(shè)。
然后,建議將突發(fā)設(shè)定為 1 字(FIFO 大小的一半),除非應(yīng)用需要處理 8 或 16 位數(shù)據(jù)寬度。建議將通道 12 至 15 分配用于存儲(chǔ)器之間的傳輸。然后,出于性能方面的考慮,建議將突發(fā)設(shè)定為默認(rèn)的 4 字(FIFO 大小的一半)。
同樣地,將通道 12 至 15 優(yōu)先用于始于支持突發(fā)請(qǐng)求的 AHB 外設(shè),比如 OCTOSPI、HASH 和 ADC。然后,通常將始于/止于外設(shè)的半傳輸設(shè)定為突發(fā)。建議將始于/止于存儲(chǔ)器的(半)傳輸設(shè)定為 4 字突發(fā)。
對(duì)于具有更高帶寬要求的 AHB 外設(shè)的始于/止于一些外設(shè)的傳輸,同樣優(yōu)先選擇通道 12 至 15。建議將始于/止于存儲(chǔ)器的(半)傳輸也設(shè)定為 4 字突發(fā)。
2.3 GPDMA 端口選擇
用戶必須為始于源(GPDMA_CxTR1 中的 SAP)的傳輸分配一個(gè)端口,并且為止于目標(biāo)(GPDMA_CxTR1 中的 DAP)的傳輸分配一個(gè)端口。在執(zhí)行下一次數(shù)據(jù)傳輸之前,會(huì)通過(guò)下一個(gè)鏈表項(xiàng)和數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)更新此分配。
關(guān)于 GPDMA 的總線拓?fù)淇煽偨Y(jié)如下(參見(jiàn)第 4 節(jié) 了解更多信息):
? GPDMA 端口 0 直接連接到 APB1 和 APB2 外設(shè),不穿過(guò) AHB 矩陣(參見(jiàn)圖 2 和圖 4)。
? AHB 矩陣的默認(rèn)從設(shè)備(參見(jiàn)圖 2 和第 4.3.2 節(jié) )為:
– GPDMA 端口 0 的 AHB1 外設(shè)(MDF、FMAC 和 CORDIC)
– GPDMA 端口 1 的 SRAM1
建議按照以下方式使用 GPDMA 的兩個(gè)主設(shè)備端口:
? 將端口 0 分配用于始于/止于外設(shè)的(半)傳輸,無(wú)論是 AHB 還是 APB 外設(shè)。將端口 1 分配用于其他(半) 傳輸(分別止于/始于存儲(chǔ)器)。對(duì)于 APB1 和 APB2 外設(shè),端口 0 避免穿過(guò)互連矩陣,減少了相應(yīng)通道上的 總體延遲。這也減少了互連總線矩陣包含的和之后的 AHB 總線活動(dòng)。
? 端口 1 被分配用于存儲(chǔ)器至存儲(chǔ)器的傳輸(特別是訪問(wèn) SRAM1 時(shí),但不僅限于此)。對(duì)外設(shè)使用端口 0 并 對(duì)任何存儲(chǔ)器使用端口 1 的優(yōu)勢(shì)在于:
– 外設(shè)至存儲(chǔ)器和存儲(chǔ)器至外設(shè)的傳輸過(guò)程中兩個(gè)端口上的帶寬平衡
– 避免至存儲(chǔ)器的突發(fā)直接影響外設(shè)訪問(wèn)的延遲
這是針對(duì)性能的典型和推薦配置。當(dāng)然,用戶可以自由地選擇任何可以訪問(wèn)源位置的端口,以及任何可以訪問(wèn)目標(biāo) 位置的端口。
當(dāng)通道未激活時(shí),GPDMA 為加載下一個(gè)鏈表項(xiàng)而分配的鏈接端口由用戶在通道層面進(jìn)行定義(GPDMA_CxCR 中 的 LAP)。下一個(gè)鏈接列表項(xiàng)已準(zhǔn)備就緒并存儲(chǔ)在內(nèi)存中。然后,建議將端口 1 分配用于加載下一個(gè)鏈表項(xiàng)。
本文檔以 GPDMA 和可能受到 GPDMA 協(xié)助的外設(shè)的組合功能為基礎(chǔ),為系統(tǒng)開(kāi)發(fā)人員提供一些以性能為導(dǎo)向的編程指南
-
微控制器
+關(guān)注
關(guān)注
48文章
7953瀏覽量
155068 -
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650504 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7653瀏覽量
167410 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
364984 -
GPDMA
+關(guān)注
關(guān)注
0文章
4瀏覽量
1701
原文標(biāo)題:應(yīng)用筆記|如何使用 STM32U575/585 微控制器的 GPDMA
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
STM32U5+8bit_8080 LCD 怎么配置touchgfx?
昂科燒錄器支持ST意法半導(dǎo)體的主流微控制器STM32C031G6U

STM32U5+8bit_8080 LCD怎么配置touchgfx?
STM32U5+8bit_8080 LCD怎么配置touchgfx?
意法半導(dǎo)體推出全新STM32U3微控制器,物聯(lián)網(wǎng)超低功耗創(chuàng)新

STM32U575串口接收+GPDMA波特率不匹配怎么解決?
STM32F405xx和STM32F407xx微控制器數(shù)據(jù)手冊(cè)
SEGGER工具全面支持STM32N6微控制器開(kāi)發(fā)
簡(jiǎn)單認(rèn)識(shí)意法半導(dǎo)體STM32C0系列微控制器
STM32WB0系列無(wú)線微控制器滿足低功耗藍(lán)牙應(yīng)用需求

STM32U575為什么無(wú)法通過(guò)LPTIM3將MCU從STOP2模式喚醒?

微控制器的結(jié)構(gòu)和應(yīng)用
課程上線 | STM32單片機(jī)入門教程(1)基于HAL庫(kù)的多核心開(kāi)發(fā)(F1/F4/G0/U5)

評(píng)論