國民技術Nationz單片機DMA與通道映射關系
DMA(Direct Memory Access)直接存儲器訪問,是MCU的一個外設,它的主要功能是在不占用CPU資源的狀況下搬運數(shù)據(jù),通過DMA來傳輸數(shù)據(jù),CPU可同時在處理其它數(shù)據(jù),類似于CPU的多線程原理,DMA功能可以大大提升單片機的運行效率。
本文檔分別對N32G03X/N32G43X、N32G457的DMA通道映射關系進行說明,便于開發(fā)者快速理解DMA與通道映射關系,更多的詳細配置請參閱應用手冊及SDK文檔。
更多國民技術單片機的開發(fā)資料、開發(fā)板、技術支持、免費樣品、芯片訂購事宜,請聯(lián)絡國民技術代理綠都電子,聯(lián)絡方式:0755-83777478,18688790400,[email protected]
N32G030系列MCU:N32G030F6U7, N32G030F6S7, N32G030K6L7, N32G030K6Q7, N32G030K6Q7-1, N32G030K8L7, N32G030C8L7, N32G030C8T7, N32G030F8S7
N32G031系列MCU:N32G031F6U7, N32G031F6S7, N32G031K6L7, N32G031K6Q7, N32G031K6Q7-1, N32G031F8U7, N32G031F8S7, N32G031K8L7, N32G031K8Q7, N32G031K8Q7-1, N32G031C8L7
N32G430系列MCU:N32G430C6L7, N32G430K6L7,N32G430C6Q7, N32G430K6Q7, N32G430G6Q7, N32G430F6Q7, N32G430F6S7, N32G430F6S7-1,N32G430C8L7, N32G430K8L7,N32G430C8Q7, N32G430K8Q7, N32G430G8Q7, N32G430F8Q7,N32G430F8S7, N32G430F8S7-1
N32G457系列MCU:N32G457RCL7, N32G457REL7, N32G457MCL7, N32G457MEL7, N32G457VCL7, N32G457VEL7, N32G457QEL7, N32G457RBL7, N32G457MBL7, N32G457VBL7, N32G457CBL7, N32G457CCL7, N32G457CEL7
N32G03x:系統(tǒng)總共有 35個DMA外設請求??蓮耐庠O(TIMx[x=1、8、3、6]、 ADC、 SPI/I2S、 SPI2、I2Cx[x=1、 2]、LPUART 和 USARTx[x=1、2])獲得。DMA 控制器有5個獨立的通道,每個通道對應外設的請求可配置。通過配置 DMA 通道 x 通道選擇寄存器來實現(xiàn)。當某個通道 CH_CHSEL[5:0]=NUM,則該通道選擇 Ch [NUM] 對應的外設請求。N32G43x:DMA 控制器接收到從外設產(chǎn)生的63個請求,每個請求都有對應的響應握手信號。外設的DMA 請求,可以通過設置相應外設寄存器中的控制位,被獨立地開啟或關閉。不同外設的請求通過用戶配置輸入到 DMA 某個通道,具體見寄存器描述。選擇 DMA 通道時,可與外設隨意對應,注意除了正常 DMA 初始化操作,還需要加 DMA_RequestRemap。
1.2 功能
1.2.1 仲裁器
N32G03x 的 DMA 控制器有 5 個通道,N32G43x 的 DMA 控制器有 8 個通道。每個通道對應不同的外設的DMA 請求。雖然每個通道可以接收多個外設的請求,但是同一時間只能接收一個,不能同時接收多個。通道默認情況下幾個通道軟件優(yōu)先級相同,優(yōu)先級都為 0,硬件邏輯通道號越小優(yōu)先級越高。仲裁器根據(jù)通道請求的優(yōu)先級來啟動外設/存儲器的訪問。優(yōu)先權管理分 2 個階段:
? .最高優(yōu)先級
? .中優(yōu)先級
? .低優(yōu)先級
1.2.2 通道配置過程
下面是配置 DMA 通道 x 的過程(x 代表通道號):
1. 在 DMA_PADDRx 寄存器中設置外設寄存器的地址。發(fā)生外設數(shù)據(jù)傳輸請求時,這個地址將是數(shù)據(jù)傳輸?shù)脑椿蚰繕恕?/span>
3. 在 DMA_TXNUMx 寄存器中設置要傳輸?shù)臄?shù)據(jù)量。在每個數(shù)據(jù)傳輸后,這個數(shù)值遞減。
4. 在 DMA_CHCFGx 寄存器的 PRIOLVL[1:0]位中設置通道的優(yōu)先級。
6. 設置 DMA_CHCFGx 寄存器的 CHEN 位,啟動該通道。
一旦啟動了 DMA 通道,它即可響應連到該通道上的外設的 DMA 請求。當傳輸一半的數(shù)據(jù)后,半傳輸標志(HTXF)被置 1,當設置了允許半傳輸中斷位(HTXIE)時,將產(chǎn)生一個中斷請求。在數(shù)據(jù)傳輸結束后,傳輸完成標志(TXCF)被置 1,當設置了允許傳輸完成中斷位(TXCIE)時,將產(chǎn)生一個中斷請求。
1.2.3 初始化配置通道映射
其 中 選 擇 使 用 的 外 設 時 , 進 入 n32g031_dma.h 即可看到 所 有 的 映 射 外 設 。
使用例子:
配置外設對應到 DMA 的哪個通道是 DMA 初始化、DMA_RequestRemap 中的 xxx_DMA_CHANNEL 參數(shù)位置,定義如下,自行選擇 DMA 通道。
2 N32G45x
2.1 映射請求
DMA1 控制器的 8 個通道可從外設(TIMx[x=1、 2、 3、 4]、 ADCx[x=1、 2]、 SPI1、 SPI/I2S2、I2Cx[x=1、2、 3]、 UART5 和 USARTx[x=1、 2、 3])獲得的 8 個獨立的請求,通過邏輯或輸入到 DMA1 控制器,參見下圖的 DMA1 請求映像。根據(jù)通道優(yōu)先級,同一時間只有一個請求有效。通過配置對應外設的寄存器,每個外設的 DMA 請求均可以獨立的開啟或關閉。下表為外設對應的輸入請求通道:
DMA2 控制器的 8 個通道可從外設(TIMx[x=5、 6、 7、 8]、 ADCx[x=3、 4]、 SPI/I2S3、 UARTx[x=4、6、 7]、QSPI、 DVP、 DAC 通道 1、 2 和 SDIO)獲得的 8 個獨立的請求,通過邏輯或輸入到 DMA2 控制器,參見下圖的 DMA2 請求映像。根據(jù)通道優(yōu)先級,同一時間只有一個請求有效。通過配置對應外設的寄存器,每個外設的 DMA 請求均可以獨立的開啟或關閉。
2.2 功能
2.2.1 仲裁器
DMA 仲裁器用來處理多個通道同時發(fā)起訪問請求的情況,根據(jù)每個通道的優(yōu)先級來決定響應哪一個通道請求。優(yōu)先等級判斷包括軟件和硬件兩種方式:
? .最高優(yōu)先級
? .中優(yōu)先級
? -硬件方式:當請求通道的軟件優(yōu)先級相同,則編號低的通道優(yōu)先級高。例如:通道 1 和通道 2 配置為相同的軟件優(yōu)先級,則通道 1 的優(yōu)先級更高。
2.2.2 通道配置過程
下面是配置 DMA 通道 x 的過程(x 代表通道號):
2. 在 DMA_MADDRx 寄存器中設置數(shù)據(jù)存儲器的地址。
3. 在 DMA_TXNUMx 寄存器中設置要傳輸?shù)臄?shù)據(jù)量。在每個數(shù)據(jù)傳輸后,這個數(shù)值遞減。
5. 在 DMA_CHCFGx 寄存器的 PRIOLVL[1:0]位中設置通道的優(yōu)先級。
6. 設置 DMA_CHCFGx 寄存器的 CHEN 位,啟動該通道。
一旦啟動了 DMA 通道,它即可響應連到該通道上的外設的 DMA 請求。傳輸過程中,當數(shù)據(jù)傳輸一半時HTXF 被置一,當數(shù)據(jù)傳輸完成后 TXCF 被置一,當傳輸錯誤時 ERRF 被置一。這三個標志可通過開啟對應中斷使能共用一個獨立中斷資源。
2.2.3 初始化配置通道映射代碼
選擇通道時注意通道對應的外設,多個外設不要同時配置到同一個通道。
2、N32G45x 中相同 DMA 同一個通道不可同時使用,比如 DMA1 中,通道 2 內(nèi)功能不可同時使用。
4、同一個通道同時配置了多個外設,系統(tǒng)會以最后一次配置為準。
5、此應用筆記有配套 Excel 表,可快速查找外設對應通道號。
更多國民技術單片機的開發(fā)資料、開發(fā)板、技術支持、免費樣品、芯片訂購事宜,請聯(lián)絡國民技術代理綠都電子,聯(lián)絡方式:0755-83777479,18688790400,[email protected]