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