DMA 簡介
DMA 控制器的作用不僅在於提高系統效能和減少處理器中斷的產生,而且還專門設計用於針對 32 位 MCU 應用進行優化。 DMA 控制器提供 7 個通道,用於記憶體到記憶體、記憶體到外設和外設到記憶體的傳輸。 每個通道都支援將外設的 DMA 請求對映到任何通道。 圖1DMA 控制器架構
DMAMUX 簡介
DMAMUX 用於將外設的 DMA 請求對映到任意流量通道。 DMAMUX 對每個外設都有乙個唯一的 ID 號,使用者只需將此 ID 號寫入相應的暫存器並開啟 DMAMUX 功能即可。 DMAMUX 的引入使得 DMA 比傳統的 DMA 控制器更加靈活,使用者可以隨意分配 7 個通道的使用,再也不用擔心某個 IP 只能在乙個或幾個通道上使用的 DMA 請求。 每個IP位址對應的ID號如下: 表1每個 IP 位址對應的 ID 號列表
注意:**中的“DMAMUX請求”是ID號;“* 每個 IP 的 DMA 請求。
DMA功能分析
可程式設計資料寬度
DMA 控制器的通道可以支援不同資料寬度、位元組和半字字的傳輸。 源資料和目標資料的資料寬度可以通過 DMA CXCTRL 中的 pwidth 和 mwidth 位進行程式設計,正常情況下需要將 pwidth 和 mwidth 位設定為相等,當 pwidth 不等於 mwidth 時,資料會根據 pwidth mwidth 設定進行對齊。 圖2 pwidth:byte, mwidth: half-word
圖3 pwidth: half-word, mwidth: word
配置 DMAMUX
在 M2P 和 P2M 模式下,必須配置 DMAMux,否則 DMA 不會響應外設 DMA 請求。 DMAMUX的作用是多路復用外設的DMA請求,即任何外設的DMA請求都可以對映到DMA1和DMA2的任意通道,這大大增加了DMA通道分配的靈活性。 配置 DMAMUX 就像呼叫兩個專門提供的介面函式一樣簡單
配置請求生成器模組
配置 DMAMUX 後,您可以選擇配置 DMA 請求生成器模組,該模組共有 4 個請求生成器通道。 該模組不需要任何傳統的外設(如定時器、SPI等)來提供DMA請求,可以通過外部EXINT輸入作為DMA請求源輸入。 配置 Request Generator 模組就像呼叫專門提供的介面函式一樣簡單:
配置請求同步模組
配置 DMAMUX 後,您可以選擇配置 DMA 同步模組,該模組共有 7 個同步通道。 啟用此功能後,當外設產生DMA請求時,DMA不會立即響應並傳送資料,而是等待同步訊號的到來,當接收到同步訊號時,DMA會根據配置傳送資料。 同步訊號可由外部輸出輸入提供,配置同步模組就像呼叫專門提供的介面功能一樣簡單
DMA 配置解析
下面介紹 DMA 配置介面和流程。
功能介面
表2通道配置函式列表
資料流配置
設定外設位址(CXPADDR 暫存器)。在傳輸過程中,資料傳輸的初始外設位址不能更改。 設定記憶體位址(CXMADDR 暫存器)。資料傳輸的初始儲存位址在傳輸過程中不能更改。 配置傳輸的資料量(cxdtcnt 暫存器)。可程式設計傳輸資料的最大長度為 65535。 在傳輸過程中,傳輸的資料量值逐漸減少。 資料流配置(cxctrl 暫存器)。
它包括通道優先順序、資料傳輸方向和寬度、位址增量模式、迴圈模式和中斷模式。
優先順序 (CHPL)。
有 4 個級別,最高優先順序、高優先順序、中優先順序和低優先順序。
如果兩個流具有相同的優先順序,則編號較低的流具有較高的優先順序。 例如,流 1 優先於流 2。
資料傳輸方向 (DTD)。它分為記憶體到外設 (M2P)、外設到記憶體 (P2M) 或記憶體到記憶體 (M2M) 傳輸。 在記憶體到記憶體傳輸模式下不允許迴圈模式、雙緩衝模式和直接模式。 資料傳輸的寬度 (pwidth mwidth)。根據實際使用場景,您可以將寬度配置為位元組、半字或字。 位址遞增模式 (pincm mincm)。當通道配置設定為增量模式時,下一次傳輸的位址將是上一次傳輸的位址加上傳輸寬度(pwidth mwidth)。 迴圈模式 (LM)。當流配置設定為迴圈模式時,CXDTCNT 暫存器的內容將在最後一次傳輸後恢復為其初始值。 啟用 DMAMUX(MUXsel 暫存器的 TBL SEL 位)。在非記憶體到記憶體 (M2M) 模式下,需要啟用 DMAMUX 以啟動資料流以響應來自外圍裝置的 DMA 請求。 寫入外設 ID 號(muxcxctrl 暫存器的 reqsel)。在非記憶體到記憶體 (M2M) 模式下,需要寫入外設的 DMA 請求 ID 號,以便啟動資料流以響應外設的 DMA 請求。 開啟資料流(cxctrl 暫存器的 chen 位)。
配置流程
開啟 DMA 時鐘;呼叫通道復位功能復位資料流;呼叫 struct 初始化函式,初始化通道配置結構;呼叫初始化函式初始化通道;呼叫 dmamux enable 函式並寫入 id number 函式,配置 dmamux 相關內容呼叫通道使能函式開啟通道。 如需資料表、樣品測試、採購、BOM匹配等需求,**客服微信:13310830171。