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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6743|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久国产愉拍 | 超碰操 | 国产农村妇女毛片精品久久麻豆 | 九色在线视频 | 欧洲亚洲一区二区三区 | 久久99精品久久久久久 | 91久久精品国产91久久 | 国产色网站 | aaaaaa大片免费看最大的 | 精品国产鲁一鲁一区二区张丽 | 伊人性伊人情综合网 | 欧美6一10sex性hd | 亚洲精品一区二区三区在线 | 精品国产精品国产偷麻豆 | 国产精品久久久久久久模特 | 黄色91在线| 成人黄色在线观看 | 午夜欧美| 国产精品久久久乱弄 | 日韩av一区二区在线观看 | 国产91丝袜在线播放 | 欧美久久久久 | 久久久爽爽爽美女图片 | 日韩视频在线观看一区二区 | 久久久久久久电影 | 欧美日韩不卡 | 国产高清在线精品 | 中文字幕精品一区久久久久 | 中文字幕1区2区3区 日韩在线视频免费观看 | 自拍视频网站 | 中文字幕一二三区 | 久久免费高清视频 | 国产精品视频一二三区 | 97视频人人澡人人爽 | 午夜欧美a级理论片915影院 | 天堂资源| 国产在线1 | 中文字幕亚洲欧美日韩在线不卡 | 欧美一区二区在线观看 | 91免费看片 | 日韩成年人视频在线 |