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

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

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

AT32 MCU DMA通道的靈活配置

jf_pJlTbmA9 ? 來源:AT32 MCU 雅特力科技 ? 作者:AT32 MCU 雅特力科技 ? 2023-10-26 17:51 ? 次閱讀

概述

在使用Artery部分系列MCU時(如AT32F413AT32F415AT32F403AAT32F407),可以使用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的手冊,如下:

wKgZomUD6fuASqJeAABodJE0UP0528.png 表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號寫進通道來源寄存器中即可。ID號可查看RM中的表格,以403A為例,如下:

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

上表中的CHx_SRC設(shè)定值就是硬件ID號,將這個ID號寫進通道來源寄存器中的對應(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.hdma.c的庫文件中有提供相應(yīng)的庫函數(shù),使用者只需調(diào)用庫函數(shù)即可完成DMA彈性映射模式的配置。

庫函數(shù)說明如下:

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

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

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

上圖中為設(shè)置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相關(guān)的配置代碼:

wKgaomUD6gGALgBaAATFUDg4zQ4776.png

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

來源:AT32 MCU 雅特力科技
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理

審核編輯 黃宇

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

    關(guān)注

    146

    文章

    17172

    瀏覽量

    351555
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    563

    瀏覽量

    100639
收藏 人收藏

    評論

    相關(guān)推薦

    使用AT32 MCU實現(xiàn)OTP寄存器功能

    對于AT32 MCU不同的系列,因為功能改進等原因,安全庫區(qū)的配置使用可能有所差異。用戶使用OTP功能主要目的是需要將一些特殊數(shù)據(jù)保存其中,在需要時可以讀取,并且不允許修改和擦除。目前AT32
    發(fā)表于 07-08 12:49 ?1414次閱讀

    AT32系列MCU使用RT-Thread Studio IDE進行開發(fā)的注意事項和配置步驟

    AT32基于RT-Thread Studio開發(fā)描述了AT32系列MCU使用RT-Thread Studio IDE進行開發(fā)的注意事項和配置步驟。
    發(fā)表于 10-24 08:12

    AT32 MCU SDRAM應(yīng)用說明

    AT32 MCU SDRAM Application Note本文主要講解AT32 SDRAM 控制器的使用。
    發(fā)表于 10-25 06:37

    如何使用AT32的TMR和DMA動態(tài)更新PWM占空比

    本示例代碼基于 AT32F403A,展示了如何使用 AT32 的 TMR 和 DMA 動態(tài)更新 PWM 占空比。該示例使用 TMR4 的更新事件觸發(fā) DMA1 搬運數(shù)據(jù)至 TMR4 的通道
    發(fā)表于 10-27 06:28

    MCU學(xué)習(xí)筆記_DMA原理

    MCU學(xué)習(xí)筆記DMA原理1. DMA原理2. DMA相關(guān)概念3. DMA數(shù)據(jù)流配置過程4. HA
    發(fā)表于 10-28 15:06 ?8次下載
    <b class='flag-5'>MCU</b>學(xué)習(xí)筆記_<b class='flag-5'>DMA</b>原理

    AT32講堂004 | AT32 MCU DMA通道靈活配置

    概述在使用Artery部分系列MCU時(如AT32F413\AT32F415\AT32F403A\AT32F407),可以使用DMA彈性映射功能。此功能使得DMA通道
    的頭像 發(fā)表于 05-10 09:57 ?2869次閱讀
    <b class='flag-5'>AT32</b>講堂004 | <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>DMA</b><b class='flag-5'>通道</b>的<b class='flag-5'>靈活</b><b class='flag-5'>配置</b>

    AT32講堂058 | 雅特力AT32F425 DMA使用指南

    DMA簡介IDMA控制器的作用不僅在增強系統(tǒng)性能并減少處理器的中斷生成,而且還針對32位MCU應(yīng)用程序?qū)iT優(yōu)化設(shè)計。DMA控制器為存儲器到存儲器,存儲器到外設(shè)和外設(shè)到存儲器的傳輸提供了7個通道
    的頭像 發(fā)表于 06-21 17:19 ?1391次閱讀
    <b class='flag-5'>AT32</b>講堂058 | 雅特力AT32F425 <b class='flag-5'>DMA</b>使用指南

    如何使用AT32 MCU WDT和WWDT?

    如何使用AT32 MCU WDT和WWDT?
    的頭像 發(fā)表于 11-10 18:26 ?2114次閱讀
    如何使用<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> WDT和WWDT?

    Segger Jscope波形軟件在AT32 MCU的使用

    Segger Jscope波形軟件在AT32 MCU的使用
    的頭像 發(fā)表于 11-10 18:24 ?2590次閱讀
    Segger Jscope波形軟件在<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>的使用

    如何在AT32 MCU上使用FPU功能

    如何在AT32 MCU上使用FPU功能
    的頭像 發(fā)表于 11-01 17:18 ?4079次閱讀
    如何在<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>上使用FPU功能

    關(guān)于AT32 MCU溫度傳感器的應(yīng)用

    關(guān)于AT32 MCU溫度傳感器的應(yīng)用
    的頭像 發(fā)表于 10-27 09:44 ?733次閱讀
    關(guān)于<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>溫度傳感器的應(yīng)用

    AT32 MCU Printf的功能使用方法

    AT32 MCU Printf的功能使用方法
    的頭像 發(fā)表于 10-27 09:27 ?1190次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> Printf的功能使用方法

    AT32 MCU如何使用USB MSD 進行IAP升級?

    AT32 MCU如何使用USB MSD 進行IAP升級?
    的頭像 發(fā)表于 10-27 09:23 ?1183次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>如何使用USB MSD 進行IAP升級?

    AT32 MCU SDIO入門指南

    電子發(fā)燒友網(wǎng)站提供《AT32 MCU SDIO入門指南.pdf》資料免費下載
    發(fā)表于 09-19 16:18 ?2次下載
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> SDIO入門指南

    AT32 MCU Develop with VSCode

    電子發(fā)燒友網(wǎng)站提供《AT32 MCU Develop with VSCode.pdf》資料免費下載
    發(fā)表于 09-19 15:22 ?2次下載
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> Develop with VSCode