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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

如何使用DMA彈性映射請求

MCU開發(fā)加油站 ? 來源:MCU開發(fā)加油站 ? 作者:MCU開發(fā)加油站 ? 2022-05-05 15:35 ? 次閱讀

概述

在使用Artery部分系列MCU時(如AT32F413AT32F415AT32F403AAT32F407),可以使用DMA彈性映射功能。此功能使得DMA的通道配置更加靈活,可以將某外設的DMA請求通道指定到DMA1或者DMA2共14個通道中的任意一個通道。(如:可以將SPI1接受數(shù)據(jù)的DMA請求指定到DMA1的通道7)。

本指南將介紹如何使用DMA彈性映射請求,從而使得DMA傳輸變得更加靈活多變。

配置及使用方法

常規(guī)DMA使用(DMA固定映射)

常規(guī)的DMA使用以及配置方式為:外設的DMA通道已經(jīng)固定且不可改變,使用時配置好再使能固定通道即可。這就意味著如果想開啟某個外設的DMA功能,那么通道是不可改變的,例如想使用SPI1的RX DMA功能,那么就要查看RM的手冊,如下:

表1. DMA固定映射請求

7faa1bec-cc45-11ec-bce3-dac502259ad0.png

從表格中可以知道需要開啟DMA1的通道2。

DMA彈性映射使用

DMA彈性映射請求功能提供了一種更靈活的使用方式,即外設的DMA通道不固定,可選擇DMA1和DMA2中,共14個通道的任意一個通道。想要使用此功能,需要通過以下幾步的設定:

1) 開啟DMA彈性映射功能

將DMA的通道來源寄存器1的第24bit寫1,即DMA_SRC_SEL1寄存器的DMA_FLEX_EN位。向通道設置對應的寄存器中寫入相應的硬件ID號。每個外設的DMA請求都分配了一個硬件ID號,只要將這個ID號寫進通道來源寄存器中即可。ID號可查看RM中的表格,以403A為例,如下:

表2. 403A各個信道的DMA彈性請求一覽

7fc7c174-cc45-11ec-bce3-dac502259ad0.png

上表中的CHx_SRC設定值就是硬件ID號,將這個ID號寫進通道來源寄存器中的對應通道bit位就可以了。例如:要將SPI1的RX的DMA請求映射到DMA1的通道7,那么就要將0x09寫入到DMA_SRC_SEL1寄存器的CH7_SRC[23:16]。其他配置與常規(guī)DMA配置相同通過以上3步的配置,彈性映射功能即可使用。

注:DMA1/2的DMA_FLEX_EN必須要同時設定為1或時,DMA1/2的映像模式必須一致。無法DMA1是固定式映像,DMA2是彈性式映像。

2) DMA彈性映射庫函數(shù)使用

以上的配置在BSP中的dma.hdma.c的庫文件中有提供相應的庫函數(shù),使用者只需調(diào)用庫函數(shù)即可完成DMA彈性映射模式的配置。庫函數(shù)說明如下:

表3. DMA彈性映射庫函數(shù)說明

7fe6600c-cc45-11ec-bce3-dac502259ad0.png

此函數(shù)只需在配置好DMA常規(guī)功能后調(diào)用即可,如下:

圖1. DMA固定映射庫函數(shù)調(diào)用范例

8000c5e6-cc45-11ec-bce3-dac502259ad0.png

上圖中為設置TIMER1的更新中斷為DMA彈性映射請求范例。

例程說明

DMA彈性映射功能在BSP中例程,路徑為:AT32F403A_407_Firmware_Library_V2.x.xprojectat_start_f403aexamplesdmadata_to_gpio_flexible(以403A路徑為例)

下面將對這兩個例程做一個使用說明。

? data_to_gpio_flexible

例程data_to_jpio_flexible

本例程實現(xiàn)的功能為利用DMA將SRAM的數(shù)據(jù)傳輸?shù)紾PIO口的輸出寄存器中,從而達到控制GPIO口輸出的目的。同時配置TMER2產(chǎn)生overflow中斷并產(chǎn)生DMA請求,配置次DMA請求為彈性映射模式。TIMER2每產(chǎn)生一次DMA請求,DMA就從SRAM搬運一筆數(shù)據(jù)到GPIO口。DMA相關的配置代碼:

8019eada-cc45-11ec-bce3-dac502259ad0.png

實驗結果可采用邏輯分析儀抓取GPIO口數(shù)據(jù)查看。

關于雅特力

雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器創(chuàng)新趨勢的芯片(MCU)設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運算效能,并支持工業(yè)級別芯片工作溫度范圍(-40°~105°)。

雅特力目前已累積相當多元的終端產(chǎn)品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業(yè)縫紉機、伺服驅(qū)控、電競周邊市場、斷路器、ADAS、T-BOX、數(shù)字電源、電動工具等終端設備應用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費、商務及工控等領域。

審核編輯 :李倩

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

    關注

    146

    文章

    17149

    瀏覽量

    351225
  • 寄存器
    +關注

    關注

    31

    文章

    5343

    瀏覽量

    120385
  • dma
    dma
    +關注

    關注

    3

    文章

    561

    瀏覽量

    100593

原文標題:AT32 MCU DMA通道的靈活配置

文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    雅特力AT32F402/F405 DMA使用指南

    通道都支持外設的DMA請求映射到任意通道上。圖1.DMA控制器架構DMAMUX簡介對于如何將外設的DMA
    的頭像 發(fā)表于 11-20 01:03 ?254次閱讀
    雅特力AT32F402/F405 <b class='flag-5'>DMA</b>使用指南

    DMA是什么?詳細介紹

    系統(tǒng)性能。 DMA(直接內(nèi)存訪問)概述 1. DMA的定義 直接內(nèi)存訪問(DMA)是一種硬件特性,允許外圍設備直接讀寫系統(tǒng)內(nèi)存,而不需要CPU的直接控制。這種技術主要用于高速數(shù)據(jù)傳輸,如磁盤讀寫、網(wǎng)絡通信等。 2.
    的頭像 發(fā)表于 11-11 10:49 ?5743次閱讀

    請求訪問音頻軟件

    電子發(fā)燒友網(wǎng)站提供《請求訪問音頻軟件.pdf》資料免費下載
    發(fā)表于 10-17 11:15 ?0次下載
    <b class='flag-5'>請求</b>訪問音頻軟件

    2k1000LA中關于IODMA請求的描述

    在2k1000的用戶手冊中,有對IO互連網(wǎng)絡的DMA請求路由方式進行闡述,如圖。 其中提到窗口命中需要兩個條件,一是地址經(jīng)過掩碼后與base相等,二是DMA訪存屬性和mmap[5]共同決定是否命中
    發(fā)表于 08-15 21:52

    揭秘車載VCU項目之外掛界的“大哥”DMA

    引腳配置此實例選擇CAN0進行配置。三、外設配置對于DMA,其采用的固定映射,對于通道0至通道15,其映射一部分外設,通道16至通道31映射一部分外設,所以對于外設要使用
    的頭像 發(fā)表于 07-30 08:11 ?654次閱讀
    揭秘車載VCU項目之外掛界的“大哥”<b class='flag-5'>DMA</b>

    路由器映射是什么意思?路由器端口映射怎么設置?

    路由器映射是指將一臺主機的內(nèi)網(wǎng)(LAN)IP地址映射成一個公網(wǎng)(WAN)IP地址,當用戶訪問提供映射端口主機的某個端口時,服務器將請求轉(zhuǎn)移到本地局域網(wǎng)內(nèi)部提供這種特定服務的主機。??
    的頭像 發(fā)表于 05-10 13:42 ?1367次閱讀

    請問STM32L4R5ZI的DMA/DMAMUX是怎么管理請求?

    原來的STM32系列,比如F1,是沒有DMAMUX這個東西的,DMA1的1通道2通道具體對應什么樣的請求,有一個專門的對應表。但是現(xiàn)在的DMAMUX加進來以后,對于89個外設請求,并沒有地方說明什么
    發(fā)表于 04-28 06:19

    請問STM32H750VB的DMA通道映射在哪里查看?

    準備用STM32H750VB這款芯片,在參考手冊中發(fā)現(xiàn)找不到DMA通道的映射表,想問一下這個去哪里查看?
    發(fā)表于 04-11 07:15

    定時器TIM2輸出TRGO信號,DMA使用DMA_REQUEST_TIM2_UP請求可以實現(xiàn)嗎?

    定時器TIM2輸出TRGO信號,DMA使用DMA_REQUEST_TIM2_UP請求可以實現(xiàn)嗎?
    發(fā)表于 04-10 07:09

    什么是DMA?DMA究竟有多快!

    直接內(nèi)存訪問(Direct Memory Access,DMA):在計算機體系結構中,DMA 是一種數(shù)據(jù)傳輸方式,允許外部設備直接訪問計算機的內(nèi)存,而無需通過中央處理單元(CPU)的干預。這有
    的頭像 發(fā)表于 02-22 10:43 ?2039次閱讀
    什么是<b class='flag-5'>DMA</b>?<b class='flag-5'>DMA</b>究竟有多快!

    雅特力AT32F423 DMA使用指南

    通道都支持外設的DMA請求映射到任意通道上。圖1.DMA控制器架構DMAMUX簡介對于如何將外設的DMA
    的頭像 發(fā)表于 02-22 08:13 ?710次閱讀
    雅特力AT32F423 <b class='flag-5'>DMA</b>使用指南

    Aurix的DMA硬件請求源自于中斷路由模塊,請問是否支持一個外設請求(中斷)對應多個DMA通道?

    Aurix的DMA硬件請求源自于中斷路由模塊,請問是否支持一個外設請求(中斷)對應多個DMA通道?
    發(fā)表于 01-26 07:15

    拆解mmap內(nèi)存映射的本質(zhì)!

    mmap 內(nèi)存映射里所謂的內(nèi)存其實指的是虛擬內(nèi)存,在調(diào)用 mmap 進行匿名映射的時候(比如進行堆內(nèi)存的分配),是將進程虛擬內(nèi)存空間中的某一段虛擬內(nèi)存區(qū)域與物理內(nèi)存中的匿名內(nèi)存頁進行映射,當調(diào)用
    的頭像 發(fā)表于 01-24 14:30 ?1753次閱讀
    拆解mmap內(nèi)存<b class='flag-5'>映射</b>的本質(zhì)!

    用AT32F437ZMT7配置串口7的彈性dma接收一直配不好,dma的接收中斷一直進不去是為什么?

    我用AT32F437ZMT7 配置串口7的彈性dma 接收一直配不好,dma的接收中斷一直進不去 想問一下,配置這個彈性dma有需要特別注意
    發(fā)表于 01-16 07:12

    dma和通道技術的區(qū)別

    DMA(Direct Memory Access)和通道技術是計算機系統(tǒng)中用來優(yōu)化數(shù)據(jù)傳輸和處理的重要技術。盡管它們都與數(shù)據(jù)傳輸相關,但它們在實現(xiàn)方法、特點和應用場景等方面存在一些重要的區(qū)別
    的頭像 發(fā)表于 01-04 14:31 ?2609次閱讀