概述
在使用Artery部分系列MCU時(如AT32F413\AT32F415\AT32F403A\AT32F407),可以使用DMA彈性映射功能。此功能使得DMA的通道配置更加靈活,可以將某外設(shè)的DMA請求通道指定到DMA1或者DMA2共14個通道中的任意一個通道。(如:可以將SPI1接受數(shù)據(jù)的DMA請求指定到DMA1的通道7)。
本指南將介紹如何使用DMA彈性映射請求,從而使得DMA傳輸變得更加靈活多變。
配置及使用方法
常規(guī)DMA使用(DMA固定映射)
常規(guī)的DMA使用以及配置方式為:外設(shè)的DMA通道已經(jīng)固定且不可改變,使用時配置好再使能固定通道即可。這就意味著如果想開啟某個外設(shè)的DMA功能,那么通道是不可改變的,例如想使用SPI1的RX DMA功能,那么就要查看RM的手冊,如下:
表1. DMA固定映射請求
從表格中可以知道需要開啟DMA1的通道2。
DMA彈性映射使用
DMA彈性映射請求功能提供了一種更靈活的使用方式,即外設(shè)的DMA通道不固定,可選擇DMA1和DMA2中,共14個通道的任意一個通道。想要使用此功能,需要通過以下幾步的設(shè)定:
1) 開啟DMA彈性映射功能
將DMA的通道來源寄存器1的第24bit寫1,即DMA_SRC_SEL1寄存器的DMA_FLEX_EN位。向通道設(shè)置對應(yīng)的寄存器中寫入相應(yīng)的硬件ID號。每個外設(shè)的DMA請求都分配了一個硬件ID號,只要將這個ID號寫進(jìn)通道來源寄存器中即可。ID號可查看RM中的表格,以403A為例,如下:
表2. 403A各個信道的DMA彈性請求一覽
上表中的CHx_SRC設(shè)定值就是硬件ID號,將這個ID號寫進(jìn)通道來源寄存器中的對應(yīng)通道bit位就可以了。例如:要將SPI1的RX的DMA請求映射到DMA1的通道7,那么就要將0x09寫入到DMA_SRC_SEL1寄存器的CH7_SRC[23:16]。其他配置與常規(guī)DMA配置相同通過以上3步的配置,彈性映射功能即可使用。
注:DMA1/2的DMA_FLEX_EN必須要同時設(shè)定為1或時,DMA1/2的映像模式必須一致。無法DMA1是固定式映像,DMA2是彈性式映像。
2) DMA彈性映射庫函數(shù)使用
以上的配置在BSP中的dma.h\dma.c的庫文件中有提供相應(yīng)的庫函數(shù),使用者只需調(diào)用庫函數(shù)即可完成DMA彈性映射模式的配置。庫函數(shù)說明如下:表3. DMA彈性映射庫函數(shù)說明
此函數(shù)只需在配置好DMA常規(guī)功能后調(diào)用即可,如下:
圖1. DMA固定映射庫函數(shù)調(diào)用范例上圖中為設(shè)置TIMER1的更新中斷為DMA彈性映射請求范例。
例程說明
DMA彈性映射功能在BSP中例程,路徑為:AT32F403A_407_Firmware_Library_V2.x.x\project\at_start_f403a\examples\dma\data_to_gpio_flexible(以403A路徑為例)
下面將對這兩個例程做一個使用說明。
?data_to_gpio_flexible
例程data_to_jpio_flexible
本例程實現(xiàn)的功能為利用DMA將SRAM的數(shù)據(jù)傳輸?shù)紾PIO口的輸出寄存器中,從而達(dá)到控制GPIO口輸出的目的。同時配置TMER2產(chǎn)生overflow中斷并產(chǎn)生DMA請求,配置次DMA請求為彈性映射模式。TIMER2每產(chǎn)生一次DMA請求,DMA就從SRAM搬運一筆數(shù)據(jù)到GPIO口。DMA相關(guān)的配置代碼:實驗結(jié)果可采用邏輯分析儀抓取GPIO口數(shù)據(jù)查看。
關(guān)于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器創(chuàng)新趨勢的芯片(MCU)設(shè)計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進(jìn)工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運算效能,并支持工業(yè)級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當(dāng)多元的終端產(chǎn)品成功案例:如微型打印機(jī)、掃地機(jī)、光流無人機(jī)、熱成像儀、激光雷達(dá)、工業(yè)縫紉機(jī)、伺服驅(qū)控、電競周邊市場、斷路器、ADAS、T-BOX、數(shù)字電源、電動工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費、商務(wù)及工控等領(lǐng)域。
-
mcu
+關(guān)注
關(guān)注
146文章
17851瀏覽量
360723 -
FAT32
+關(guān)注
關(guān)注
0文章
33瀏覽量
14172
發(fā)布評論請先 登錄
STM32G030F6 ADC+DMA多通道非連續(xù)采樣無法正常工作怎么解決?
愛普特微電子推出超高性價比全國產(chǎn)RISC核32位MCU—APT32F004X

ZYNQ基礎(chǔ)---AXI DMA使用

雅特力AT32F402/F405 DMA使用指南

STM32轉(zhuǎn)AT32代碼轉(zhuǎn)換

AT32講堂088 | 雅特力AT32F402/F405時鐘配置

AT32講堂087 | 雅特力AT32 IDE快速入門指南

雅特力AT32 MCU的隨機(jī)數(shù)生成

AT32講堂085 | 雅特力AT32 MCU HICK時鐘校準(zhǔn)

RL78系列MCU DMA在UART中的使用

CKS32F107xx系列ADC采樣DMA的原理和配置方法
DS90LV004 4通道前置LVDS緩沖器/中繼器數(shù)據(jù)表

TPD4E004用于高速數(shù)據(jù)接口的4通道ESD保護(hù)陣列數(shù)據(jù)表

評論