曾有人在STMCU社區(qū)網(wǎng)站咨詢?nèi)缦聠栴}:
由于實驗需要,要用到STM32F407的兩個DMA并用定時器觸發(fā),在使用過程中發(fā)現(xiàn)DMA1無法把GPIO的IDR數(shù)據(jù)傳輸?shù)絻?nèi)存,調(diào)試過程中出現(xiàn)DMA1的數(shù)據(jù)流傳輸錯誤標志,但是使用DMA2沒有問題。另外當把訪問GPIO的IDR改成訪問APB1下的tim5的ARR時,DMA1也能正常工作。請問這是怎么回事?
咨詢者提到STM32F4系列中DMA1與DMA和另外兩個外設(shè)GPIO和TIM5 。為了弄清這個問題,我們有必要先看看STM32F407的總線與存儲框架圖。 如下圖所示:
整個系統(tǒng)架構(gòu)由多層32位AHB總線矩陣及主從總線構(gòu)成,并建立起各個主從模塊間的互聯(lián)訪問。借助于總線矩陣,可以實現(xiàn)主控設(shè)備到從控設(shè)備的訪問,可以實現(xiàn)多個高速外設(shè)的并發(fā)訪問和高效運行。[需要注意的是,對于STM32F4系列,圖中64K CCM并不經(jīng)過總線矩陣,只能被CPU訪問。自然DMA是不能訪問它的.]
我們接著看看STM32F407 的DMA1和DMA2的訪問框架圖。這兩個DMA都具有雙AHB總線訪問端口,一端用于存儲器訪問,另一端用于外設(shè)訪問。
結(jié)合這幅DMA總線訪問框圖和上面的系統(tǒng)存儲總線框架圖可以看出,2個DMA的外設(shè)訪問端口的總線連接有點不一樣。
DMA2的外設(shè)訪問端口既與總線矩陣相連,經(jīng)過矩陣可以訪問AHB外設(shè),又與AHB-APB橋2相連,可以進一步訪問APB2外設(shè);而DMA1卻沒有與總線矩陣相連,只是跟AHB-APB橋1相連,從而訪問APB1外設(shè)。[長方形方框代表總線矩陣]
現(xiàn)在的問題是說DMA1訪問不了GPIO,但如果換成TIM5就可以。我們可以去芯片數(shù)據(jù)手冊的Device overview部分查看相關(guān)總線和外設(shè)聯(lián)結(jié)圖。截取STM32F40x block diagram的部分如下:
不難看出GPIO外設(shè)跟AHB1相連;TIM5跟APB1相連。我們再結(jié)合中間的DMA訪問框圖看得清楚,DMA1的外設(shè)端口根本沒連接AHB1,自然沒法訪問相應(yīng)外設(shè),比如GPIO。而DMA2 可以,因為它可以經(jīng)過總線矩陣后再去訪問AHB1的外設(shè)。DMA1為什么能訪問TIM5也不難解釋了,因DMA1的AHB外設(shè)端口總線經(jīng)過AHB/APB1橋后就可以訪問APB1各類外設(shè),而TIM5就是掛在APB1總線上的外設(shè)之一。
咨詢者的問題基本上靠看上面幾幅圖可以得到答案。這些圖很重要,很多信息用圖描述也很直觀明了。各技術(shù)手冊里的插圖往往大有乾坤,不要視而不見。上面提到的都是基于STM32F4系列的總線架構(gòu),你也可以去看看其它系列的系統(tǒng)總線框圖,相信你一定會另有發(fā)現(xiàn)和收獲。
-
存儲器
+關(guān)注
關(guān)注
38文章
7637瀏覽量
166543 -
STM32
+關(guān)注
關(guān)注
2290文章
11018瀏覽量
362704 -
總線
+關(guān)注
關(guān)注
10文章
2953瀏覽量
89409
原文標題:一個跟STM32F4系統(tǒng)總線架構(gòu)有關(guān)的問題
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
STM32F4系統(tǒng)總線架構(gòu)介紹
STM32F407的總線與存儲框架分析
STM32F407的總線與存儲框架
STM32F407的總線與存儲框架講解
STM32F407 DCMI攝像頭源碼

STM32F407的串口UART 基礎(chǔ)配置STM32CubeMX

[STM32]STM32F407系列教程之四,pwm產(chǎn)生原理
![[<b class='flag-5'>STM32</b>]<b class='flag-5'>STM32F407</b>系列教程之四,pwm產(chǎn)生原理](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32F407與STM32F105 CAN通訊失敗的定位解決

STM32F407芯片介紹

【STM32F407開發(fā)板用戶手冊】第34章 STM32F407的SPI總線應(yīng)用之驅(qū)動DAC8501(雙路輸出,16bit分辨率,0-5V)

評論