簡(jiǎn)介
CH32V103系列是以青稞V3A處理器為核心的32位通用MCU,該處理器是基于RISC-V開(kāi)源指令集設(shè)計(jì)。 片上集成了時(shí)鐘安全機(jī)制、多級(jí)電源管理、通用DMA控制器。 此系列具有1路USB2.0主機(jī)/設(shè)備接口、多通道12位ADC轉(zhuǎn)換模塊、多通道TouchKey、多組定時(shí)器、多路IIC/USART/SPI接口等豐富的外設(shè)資源。
關(guān)于DMA,具有三種數(shù)據(jù)傳輸方式:存儲(chǔ)器到存儲(chǔ)器、存儲(chǔ)器到外設(shè)、外設(shè)到存儲(chǔ)器。 前面已講解過(guò)關(guān)于存儲(chǔ)器到存儲(chǔ)器數(shù)據(jù)傳輸方式,本章將講解存儲(chǔ)器到外設(shè)的傳輸方式以及在下一章將會(huì)講解外設(shè)到存儲(chǔ)器的傳輸方式。 關(guān)于DMA存儲(chǔ)器到外設(shè)傳輸方式,程序中,首先定義一個(gè)靜態(tài)的源數(shù)據(jù),存放在內(nèi)部 FLASH中,然后通過(guò)DMA的方式傳輸?shù)酱诘臄?shù)據(jù)寄存器,然后通過(guò)串口把這些數(shù)據(jù)發(fā)送到電腦的上位機(jī)顯示出來(lái)。
1、DMA簡(jiǎn)介及相關(guān)函數(shù)介紹
直接存儲(chǔ)器訪問(wèn)控制器(DMA)提供在外設(shè)和存儲(chǔ)器之間或者存儲(chǔ)器和存儲(chǔ)器之間的高速數(shù)據(jù)傳輸方式,無(wú)須CPU干預(yù),數(shù)據(jù)可以通過(guò)DMA快速地移動(dòng),以節(jié)省CPU的資源來(lái)做其他操作。
DMA控制器有7個(gè)通道,每個(gè)通道專(zhuān)門(mén)用來(lái)管理來(lái)自于一個(gè)或多個(gè)外設(shè)對(duì)存儲(chǔ)器訪問(wèn)的請(qǐng)求。 還有一個(gè)仲裁器來(lái)協(xié)調(diào)各通道之間的優(yōu)先級(jí)。
DMA作為一種高效、高速的數(shù)據(jù)傳輸方式,具有以下幾個(gè)特性:
具有7個(gè)獨(dú)立可配置通道,且每個(gè)通道都連接專(zhuān)用的硬件DMA請(qǐng)求,并支持軟件觸發(fā)
支持循環(huán)的緩沖器管理
多個(gè)通道之間的請(qǐng)求優(yōu)先權(quán)可以通過(guò)軟件編程設(shè)置(最高、高、中和低),優(yōu)先權(quán)設(shè)置相等時(shí)由通道號(hào)決定(通道號(hào)低優(yōu)先級(jí)高)
支持三種傳輸方式:存儲(chǔ)器到存儲(chǔ)器、存儲(chǔ)器到外設(shè)、外設(shè)到存儲(chǔ)器
閃存、SRAM、外設(shè)的SRAM、APB1、APB2和AHB外設(shè)均可作為訪問(wèn)的源和目標(biāo)
獨(dú)立數(shù)據(jù)源獨(dú)立數(shù)據(jù)源和目標(biāo)數(shù)據(jù)區(qū)的傳輸寬度(字節(jié)、半字、全字),模擬打包和拆包的過(guò)程。 源和目標(biāo)地址必須按數(shù)據(jù)傳輸寬度對(duì)齊。
每個(gè)通道都有3個(gè)事件標(biāo)志(DMA傳輸過(guò)半、DMA傳輸完成和DMA傳輸錯(cuò)誤),這3個(gè)事件標(biāo)志邏輯或成為一個(gè)單獨(dú)的中斷請(qǐng)求
關(guān)于DMA具體信息,可參考CH32V103應(yīng)用手冊(cè)。 DMA標(biāo)準(zhǔn)庫(kù)函數(shù)第十三章已做過(guò)介紹,在此不再贅述。
2、硬件設(shè)計(jì)
本章教程所用資源均為CH32V103開(kāi)發(fā)板內(nèi)部資源,無(wú)需進(jìn)行其他硬件連接,只需進(jìn)行程序配置即可。
3、軟件設(shè)計(jì)
本章主要進(jìn)行存儲(chǔ)器到外設(shè)的DMA數(shù)據(jù)傳輸方式,其相較于存儲(chǔ)器到存儲(chǔ)器的傳輸方式,程序中對(duì)DMA配置進(jìn)行一些修改即可,具體如下:
dma.h文件

dma.h文件主要進(jìn)行函數(shù)聲明;
dma.c文件

4、下載驗(yàn)證
將編譯好的程序下載到開(kāi)發(fā)板并復(fù)位,可見(jiàn)存儲(chǔ)器存儲(chǔ)數(shù)據(jù)被發(fā)送到串口:

-
處理器
+關(guān)注
關(guān)注
68文章
20255瀏覽量
252242 -
mcu
+關(guān)注
關(guān)注
147文章
18925瀏覽量
398106 -
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7738瀏覽量
171661 -
dma
+關(guān)注
關(guān)注
3文章
582瀏覽量
105920 -
RISC-V
+關(guān)注
關(guān)注
48文章
2886瀏覽量
52995
發(fā)布評(píng)論請(qǐng)先 登錄
直接存儲(chǔ)器存取(DMA)簡(jiǎn)介及程序設(shè)計(jì)
轉(zhuǎn):STM32CubeMX系列教程6:直接存儲(chǔ)器訪問(wèn) (DMA)
DMA傳輸實(shí)現(xiàn)高速數(shù)據(jù)移動(dòng)過(guò)程
DMA直接存儲(chǔ)器訪問(wèn)與配置流程簡(jiǎn)介
為什么DCMI DMA無(wú)法通過(guò)FMC將圖像數(shù)據(jù)傳輸?shù)酵?/b>部存儲(chǔ)器呢?
CH32V103基礎(chǔ)教程13-DMA(存儲(chǔ)器到存儲(chǔ)器)
CH32V103基礎(chǔ)教程27-DMA (存儲(chǔ)器到外設(shè))
CH32V103基礎(chǔ)教程28-DMA (外設(shè)到存儲(chǔ)器)
STM32學(xué)習(xí)筆記(7)——DMA直接存儲(chǔ)器訪問(wèn)
STM32一文通(9) DMA
STM32F103 中級(jí)篇 22 DMA 直接存儲(chǔ)器訪問(wèn)
一文詳解DMA
一文講解DMA外設(shè)到存儲(chǔ)器的傳輸方式
一文講解DMA存儲(chǔ)器到外設(shè)的傳輸方式
評(píng)論