久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6803|回復: 0
打印 上一主題 下一主題
收起左側

STM32F4系統總線架構的話題

[復制鏈接]
跳轉到指定樓層
樓主
ID:98618 發表于 2016-3-13 16:17 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
本文作者:Miler Shao

    最近有人在STMCU社區網站咨詢如下問題:

    由于實驗需要,要用到STM32F407的兩個DMA并用定時器觸發,在使用過程中發現DMA1無法把GPIO的IDR上的數據傳輸到內存,調試過程中出現DMA1的數據流傳輸錯誤標志,但是使用DMA2沒有問題。然后我看了下參考手冊上兩個DMA的控制系統實現圖,DMA1的外設端口有一個橋接器把APB1和AHB1連起來,不知道這個橋連器作用是什么?是把APB1和AHB1連起來互相訪問嗎? 另外測試把GPIO的IDR改成APB1下的tim5的ARR,DMA1正常工作。請問這是怎么回事?

 

    咨詢者提到STM32F4系列中的兩個DMA,即DMA1與DMA2,AHB到APB橋接器;再就是兩個外設,GPIO和TIM5 。為了弄清這個問題,我們有必要先看看STM32F407的總線與存儲框架圖。 如下圖所示:


              STM32F4系統存儲及總線框圖

 

    整個系統架構由多層32位AHB總線矩陣及主從總線構成,并建立起各個主從模塊間的互聯訪問。

    圖中方框內縱橫交錯的矩陣線就是總線矩陣,猶如縱橫交錯的公路,讓各類交通工具在里面同時運行而互不干擾。只有在圖中紅色箭頭所指的地方,可能出現主控總線訪問撞車的時刻,此時總線矩陣會按照一定規矩進行仲裁,即誰先誰后而不會發生交通事故。

    總線矩陣跟圖中上方的8條主控總線和右方的7條從控總線保持互聯。

八條主控總線: [主控總線簡單點說就是可以用來主動訪問別的外設的通路]

—Cortex?-M4F 內核 I 總線、D 總線和 S 總線

—DMA1 存儲器總線

—DMA2 存儲器總線

—DMA2 外設總線

以太網 DMA 總線

—USB OTG HS DMA 總線

● 七條被控總線:

內部 Flash ICode 總線

內部 Flash DCode 總線

主要內部 SRAM1 (112 KB)

輔助內部 SRAM2 (16 KB)

輔助內部 SRAM3 (64 KB)(僅適用于STM32F42xxx 和 STM32F43xxx 器件)

—AHB1 外設(包括 AHB-APB 總線橋和 APB 外設)

—AHB2 外設 —FSMC

    借助于總線矩陣,可以實現主控總線到被控總線的訪問,可以實現多個高速外設并發訪問和高效運行。[需要注意的是,對于STM32F4系列,圖中64K CCM并不經過總線矩陣,只能被CPU訪問。自然DMA是不能訪問它的。]

    好,我們接著看看STM32F407 的兩個通用DMA,即DMA1和DMA2。

    這兩個DMA都具有雙AHB總線訪問端口,一端用于存儲器訪問,另一端用于外設訪問。同時它們各自都有一個AHB從編程接口,這個不難理解,對它配置編程控制總得有個接口。


                                  DMA總線訪問框圖

 

    我們結合這幅DMA總線訪問框圖和上面的系統存儲總線框架圖可以明顯看出,2個DMA的外設訪問端口的總線連接有點不一樣。

DMA2的外設訪問端口既與總線矩陣相連,又與AHB-APB橋2相連,可以進一步訪問APB2外設。而DMA1卻沒有與總線矩陣相連,只是跟AHB-APB橋1相連,可以進一步訪問APB1外設。[紅色方框代表總線矩陣]

    現在的問題說DMA1訪問不了GPIO,但如果換成TIM5就可以。我們可以去芯片數據手冊的Device overview部分查看相關總線和外設分布圖。我截取STM32F40xblock diagram的部分如下:



    我們可以看出GPIO外設跟AHB1相連;TIM5跟APB1相連。而我們從DMA訪問框圖看得清楚,DMA1的外設端口根本沒連接AHB1,自然沒法訪問相應外設,比如GPIO,而DMA2 可以,因為它可以經過總線矩陣后去訪問AHB1的外設。

    那DMA1為什么能訪問TIM5呢,因DMA1的AHB外設端口總線經過AHB/APB1橋后就可以訪問APB1各類外設,比方TIM5等。

    至于咨詢者問到的兩個橋接器的作用,沒啥過多需要解釋的。橋嘛,連接第一;然后兩邊時鐘的同步和時鐘分頻,滿足不同外設的時鐘需求。 

    ST MCU的參考手冊里強調了只有DMA2能實現MEMORY到MEMORY的傳輸,DMA1是實現不了的,原理類似。因為要實現M to M 的傳輸,必須兩個端口都能實現對MEMORY的訪問,DMA1的AHB外設端口無法訪問到內部MEMORY。

    咨詢者的問題,基本上靠看上面幾幅圖可以得到答案。這些圖很重要,很多信息用圖描述也很直觀明了。各技術手冊里的插圖往往大有乾坤,不要視而不見。上面提到的都是基于STM32F4系列的總線架構,你也可以去看看STM32其它系列的系統總線框圖,相信你一定會另有發現和收獲

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线日韩欧美 | 欧美精品一区二区三区在线四季 | 国产98色在线 | 日韩 | 一区二区伦理电影 | 成人免费在线播放视频 | 亚洲 欧美 另类 综合 偷拍 | 综合第一页 | 一区二区三区观看视频 | 成人免费在线视频 | 老牛影视av一区二区在线观看 | 亚洲国产高清高潮精品美女 | 久久国产精品99久久久大便 | 美女黄网站视频免费 | 日韩视频在线一区 | 亚洲狠狠| 成人久久久久久久久 | 国产精品日日摸夜夜添夜夜av | 成人午夜精品 | 雨宫琴音一区二区在线 | 日韩综合网 | 国产精品毛片一区二区在线看 | 欧美一级二级视频 | 欧美高清视频在线观看 | 国产精品久久久久久久久久 | 亚洲最大福利网 | 成人夜晚看av| 久久久999国产精品 中文字幕在线精品 | 蜜桃一区| 欧美日日日日bbbbb视频 | 91嫩草精品 | 国产农村一级国产农村 | 伊人成人免费视频 | 一区二区三区视频播放 | 国产在线观看一区二区三区 | 日本一区二区高清不卡 | 日韩成人在线播放 | 久久久久国产精品一区二区 | 看片一区 | 天天久久| 777zyz色资源站在线观看 | www国产成人免费观看视频,深夜成人网 |