国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32 FSMC (Flexible static memory controller) 靈活靜態(tài)內(nèi)存控制器介紹

這篇具有很好參考價值的文章主要介紹了STM32 FSMC (Flexible static memory controller) 靈活靜態(tài)內(nèi)存控制器介紹。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 介紹FSMC

說到STM32的FSMC(Flexible Static Memory Controller),這個玩意兒可真是STM32家族的“多面手”。想象一下,如果STM32是個熱衷于DIY的工程師,那FSMC就是他的瑞士軍刀,無論是連接SRAM、PSRAM、NOR/NAND Flash還是LCD模塊,F(xiàn)SMC都能應(yīng)對自如,簡直就是連接外部存儲和記憶界的“橋梁”。

FSMC的靈活性主要體現(xiàn)在它支持多種存儲器類型和訪問模式,這就像是它可以說多國語言,無論你來自哪個存儲器國家,它都能和你愉快地交流。而且,F(xiàn)SMC能夠讓STM32以最高效的方式訪問這些外部設(shè)備,這就像是它擁有VIP通道,能夠迅速通過安檢進入存儲器的心臟區(qū)域。

具體來說,F(xiàn)SMC能讓你配置各種訪問參數(shù),比如數(shù)據(jù)寬度(可以是8位或16位),存儲器類型(SRAM、NOR Flash等),還有訪問模式(直接模式、間接模式)。這就像是你在玩一個高級定制的游戲,你可以根據(jù)外設(shè)的特性和你的需求,調(diào)整FSMC的設(shè)置,以達到最優(yōu)的訪問速度和性能。

不過,F(xiàn)SMC也有它的復(fù)雜性,配置起來就像是在玩一個需要高度策略的游戲,每個選項都需要精心考慮。你得了解你的外部設(shè)備,知道它的語言和習(xí)慣,然后通過FSMC的配置,來告訴STM32如何與之有效交流。這就需要你深入閱讀數(shù)據(jù)手冊,可能還要做一些試驗,來找到最佳配置。

總之,F(xiàn)SMC就像是STM32的“通訊專家”,能夠讓STM32輕松地擴展存儲和連接各種外設(shè)。但要想完全駕馭它,你可能需要像學(xué)習(xí)外語一樣,花一些時間和精力來深入了解它。別擔心,一旦你熟悉了FSMC,你就能打開一個全新的可能性世界,讓你的STM32項目更加強大和靈活!

2. FSMC特點

FSMC模塊能夠與同步和異步存儲器以及16位PC內(nèi)存卡進行接口。其主要目的是:將AHB事務(wù)轉(zhuǎn)換為適當?shù)耐獠吭O(shè)備協(xié)議,滿足外部設(shè)備的訪問時序要求。所有外部存儲器與控制器共享地址、數(shù)據(jù)和控制信號。每個外部設(shè)備通過唯一的芯片選擇來訪問。FSMC一次只對一個外部設(shè)備進行訪問。

FSMC具有以下主要特點:

  • 與靜態(tài)內(nèi)存映射設(shè)備接口,包括:
    • 靜態(tài)隨機訪問存儲器(SRAM)
    • NOR Flash 存儲器/OneNAND Flash 存儲器
    • PSRAM(4個內(nèi)存Bank)
  • 具有ECC硬件檢查最多8 K字節(jié)數(shù)據(jù)的兩個 NAND Flash 存儲區(qū)
  • 支持16位 PC 卡兼容設(shè)備
  • 支持對同步設(shè)備(NOR Flash 和 PSRAM)進行突發(fā)模式訪問
  • 8位或16位寬數(shù)據(jù)總線
  • 每個內(nèi)存Bank獨立芯片選擇控制
  • 每個內(nèi)存Bank獨立配置
  • 可編程定時以支持各種不同類型的設(shè)備,特別是:
    • 可編程等待狀態(tài)(最多15個)
    • 可編程總線回轉(zhuǎn)周期數(shù)(最多15個)
    • 可編程輸出使能和寫使能延遲時間(最多15個)
    • 獨立讀取和寫入時序和協(xié)議,以支持各種記憶體和時序變化。
  • 用于PSRAM 和 SRAM 設(shè)備的寫使能和字節(jié)通道選擇輸出。
  • 將32位寬 AHB 事務(wù)轉(zhuǎn)換為連續(xù)16位或8位對外部16位或8位裝置進行訪問。
  • A Write FIFO,長度為2字(STM32F42x and STM32F43x長度為16字),每一個詞都是32比特寬,僅僅保存了數(shù)據(jù)而沒有地址.因此這樣可以緩沖AHB 寫突發(fā)事務(wù). 這樣就可以向慢速度記憶體中寫入并且迅速釋放AHB用于其他操作.只有一個突發(fā)同時被緩沖:如果新出現(xiàn)了一個AHB 突發(fā)或者單次傳輸在之前
  • 外部異步等待控制

定義外部設(shè)備類型和相關(guān)特性的FSMC寄存器通常在啟動時設(shè)置,并且在下一次復(fù)位或上電之前不會改變。然而,可以隨時更改這些設(shè)置。

3. Block示意圖

FSMC由四個主要模塊組成:

  • AHB接口(包括FSMC配置寄存器)

  • NOR Flash/PSRAM控制器

  • NAND Flash/PC卡控制器

  • 外部設(shè)備接口。

圖434顯示了該模塊的框圖。

stm32 fsmc,STM32 CubeMX實戰(zhàn),芯片概念,stm32,嵌入式硬件,單片機

4. AHB接口

AHB從設(shè)備接口使得內(nèi)部CPU和其他總線主設(shè)備能夠訪問外部靜態(tài)存儲器。AHB事務(wù)被轉(zhuǎn)換為外部設(shè)備協(xié)議。特別地,如果選擇的外部存儲器是16位或8位寬度,則在AHB上的32位寬度事務(wù)會被分割成連續(xù)的16位或8位訪問。FSMC芯片選擇(FSMC_NEx)在執(zhí)行帶有擴展模式的D模式下除了進行連續(xù)訪問時不會切換。

FSMC在以下情況下生成AHB錯誤:

  • 當讀取或?qū)懭胛磫⒂玫腇SMC存儲器時
  • 當在FSMC_BCRx寄存器中FACCEN位被復(fù)位時,讀取或?qū)懭隢OR Flash存儲器
  • 當輸入引腳FSMC_CD(卡片存在檢測)為低電平時,讀取或?qū)懭隤C卡存儲器

這個AHB錯誤的影響取決于嘗試進行讀寫訪問的AHB主設(shè)備:

  • 如果是帶有FPU的Cortex?-M4 CPU,將會生成一個硬件故障中斷。

  • 如果是DMA,則會產(chǎn)生DMA傳輸錯誤,并自動禁用相應(yīng)的DMA通道。

AHB時鐘(HCLK)是FSMC的參考時鐘。

4.1 Supported memories and transactions

General transaction rules

所請求的AHB事務(wù)數(shù)據(jù)大小可以是8位、16位或32位,而訪問的外部設(shè)備具有固定的數(shù)據(jù)寬度。這可能導(dǎo)致傳輸不一致。因此,必須遵循一些簡單的事務(wù)規(guī)則:

  • AHB事務(wù)大小和內(nèi)存數(shù)據(jù)大小相等時,在這種情況下沒有問題。

  • AHB事務(wù)大小大于內(nèi)存大小時,在這種情況下,F(xiàn)SMC將AHB事務(wù)分割成較小的連續(xù)內(nèi)存訪問,以滿足外部數(shù)據(jù)寬度。

  • AHB事務(wù)大小小于內(nèi)存大小時,異步傳輸可能與外部設(shè)備類型有關(guān)

    • 對于具有字節(jié)選擇功能(SRAM、ROM、PSRAM)的設(shè)備進行異步訪問。

      • FSMC通過其字節(jié)通道NBL[1:0]允許寫入操作來訪問正確的數(shù)據(jù)。
      • 允許讀取操作。讀取所有內(nèi)存字節(jié)并丟棄無用字節(jié)。在讀取操作期間保持NBL[1:0]低電平。
    • 對于沒有字節(jié)選擇功能(NOR和NAND Flash 16位)的設(shè)備進行異步訪問。
      當請求對16位寬Flash存儲器進行字節(jié)訪問時會出現(xiàn)這種情況。顯然,不能以字節(jié)模式訪問該設(shè)備(只能從/向Flash存儲器讀取/寫入16位詞),因此:

    • 不允許寫入操作

    • 允許讀取操作。讀取所有內(nèi)存字節(jié)并丟棄無用字節(jié)。在讀取操作期間將NBL[1:0]設(shè)置為0.

Configuration registers

FSMC可以通過寄存器集進行配置。詳細描述了NOR Flash/PSRAM控制寄存器的內(nèi)容,請參見第36.5.6節(jié)。詳細描述了NAND Flash/PC卡寄存器的內(nèi)容,請參見第36.6.8節(jié)。

5. 外部設(shè)備地址映射

從FSMC的角度來看,外部存儲器被分為4個固定大小的256兆字節(jié)的Bank(參見圖435):

  • Bank1用于尋址最多4個NOR Flash或PSRAM存儲器設(shè)備。該Bank被分成4個NOR/PSRAM子Bank,每個子Bank有4個專用芯片選擇信號,如下所示:

    • Bank1 - NOR/PSRAM 1

    • Bank1 - NOR/PSRAM 2

    • Bank1 - NOR/PSRAM 3

    • Bank1 - NOR/PSRAM 4

  • Bank2和3用于尋址NAND Flash設(shè)備(每個Bank一個設(shè)備)

  • Bank4用于尋址PC卡設(shè)備

對于每個Bank,要使用的存儲器類型由配置寄存器中用戶定義。

stm32 fsmc,STM32 CubeMX實戰(zhàn),芯片概念,stm32,嵌入式硬件,單片機

5.1 NOR/PSRAM地址映射

HADDR[27:26]位用于根據(jù)表216中的顯示選擇四個內(nèi)存Bank之一。

stm32 fsmc,STM32 CubeMX實戰(zhàn),芯片概念,stm32,嵌入式硬件,單片機

HADDR[25:0]包含外部存儲器的地址。由于HADDR是字節(jié)地址,而存儲器是按字尋址的,根據(jù)存儲器數(shù)據(jù)寬度,實際發(fā)給存儲器的地址會有所變化,如下表所示。

stm32 fsmc,STM32 CubeMX實戰(zhàn),芯片概念,stm32,嵌入式硬件,單片機

將NOR Flash/PSRAM的支持進行封裝

不支持同步存儲器的Wrap burst模式。必須將存儲器配置為未定義長度的linear burst模式。

5.2 NAND/PC Card地址映射

在這種情況下,有三家Bank可供選擇,每個Bank都被劃分為表218中所示的內(nèi)存空間。

stm32 fsmc,STM32 CubeMX實戰(zhàn),芯片概念,stm32,嵌入式硬件,單片機

對于NAND Flash存儲器,常見和屬性內(nèi)存空間被細分為三個部分(見下表219)位于較低的256 K字節(jié)中:

  • 數(shù)據(jù)部分(在常見/屬性內(nèi)存空間中的前64 K字節(jié))
  • 命令部分(在常見/屬性內(nèi)存空間中的第二個64 K字節(jié))
  • 地址部分(在常見/屬性內(nèi)存空間中接下來的128 K字節(jié))

stm32 fsmc,STM32 CubeMX實戰(zhàn),芯片概念,stm32,嵌入式硬件,單片機

應(yīng)用軟件使用3個部分來訪問NAND Flash存儲器:

  • 發(fā)送命令到NAND Flash存儲器:軟件必須將命令值寫入命令部分的任何內(nèi)存位置。
  • 指定要讀取或?qū)懭氲腘AND Flash地址:軟件必須將地址值寫入地址部分的任何內(nèi)存位置。由于地址可能是4或5字節(jié)長(取決于實際內(nèi)存大?。枰B續(xù)多次寫入地址部分以指定完整的地址。
  • 讀取或?qū)懭霐?shù)據(jù):軟件從數(shù)據(jù)部分的任何內(nèi)存位置讀取或?qū)懭霐?shù)據(jù)值。

由于NAND Flash存儲器自動遞增地址,因此無需遞增數(shù)據(jù)部分的地址以訪問連續(xù)的內(nèi)存位置。文章來源地址http://www.zghlxwxcb.cn/news/detail-833609.html

到了這里,關(guān)于STM32 FSMC (Flexible static memory controller) 靈活靜態(tài)內(nèi)存控制器介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32復(fù)習(xí)筆記(五):FSMC連接外部SRAM

    STM32復(fù)習(xí)筆記(五):FSMC連接外部SRAM

    目錄 Preface: (一)原理相關(guān) (二)CUBEMX配置 (三)輪詢方式讀寫 (四)DMA方式讀寫 STM32F4有一個FSMC(Flexible Static Memory Controller,可變靜態(tài)存儲控制器),可以用來驅(qū)動8080接口的TFT LCD,我之前就寫過一篇blog,是用FSMC來驅(qū)動4.3寸液晶屏;此外,還可以用FSMC來連接外部的各

    2024年02月03日
    瀏覽(24)
  • FPGA與STM32_FSMC總線通信實驗

    FPGA與STM32_FSMC總線通信實驗

    FSMC是STM32系列采用的一種新型存儲器擴展技術(shù)。在外部存儲器擴展方面具有獨特的優(yōu)勢,可根據(jù)系統(tǒng)的應(yīng)用需要,方便進行不 同類型大容量靜態(tài)存儲器的擴展。 FSMC的特點: (1)支持不同位寬的異步讀寫操作。 (2)不同的BANK在映射地址空間中是獨立的,可用于擴展不同的

    2024年02月05日
    瀏覽(23)
  • 【STM32】FSMC接口的復(fù)用和非復(fù)用

    【STM32】FSMC接口的復(fù)用和非復(fù)用

    在閱讀《零死角玩轉(zhuǎn)STM32—F103指南者》,以及《STM32F10x-中文參考手冊》關(guān)于FSMC一章節(jié)的時候,對于在控制 NOR/SRAM 的時候使用到的引腳,在提到NOR器件的時候提到了地址復(fù)用和非復(fù)用接口,一時間沒明白是什么東西。 非復(fù)用模式 :16位數(shù)據(jù)線及26位地址線分開始用。推薦在14

    2024年02月09日
    瀏覽(20)
  • 【STM32】FSMC—擴展外部 SRAM 初步使用 1

    【STM32】FSMC—擴展外部 SRAM 初步使用 1

    基于野火指南者《零死角玩轉(zhuǎn) STM32F103—指南者》的學(xué)習(xí) STM32F103系列 1.詳細功能參看《STM32F10x參考手冊》,這邊是概述 是一個外設(shè),掛載在AHB總線下。 可以用于驅(qū)動包括 SRAM 、 NOR FLASH 以及 NAND FLSAH 類型的存儲器,不能驅(qū)動如 SDRAM 這種動態(tài)的存儲器 STM32F429 系列的控制器中,

    2024年02月20日
    瀏覽(21)
  • Rust - 接口設(shè)計建議之靈活(flexible)

    你寫的代碼包含契約 契約: 要求:代碼使用的限制 承諾:代碼使用的保證 設(shè)計接口時(經(jīng)驗法則): 避免施加不必要的限制,只做能夠兌現(xiàn)的承諾 增加限制 或 取消承諾: 重大的語義版本更改 可導(dǎo)致其他代碼出問題 放寬限制 或 提供額外的承諾: 通常是向后兼容的 Rus

    2024年02月08日
    瀏覽(17)
  • LCD—STM32液晶顯示(2.使用FSMC模擬8080時序)

    LCD—STM32液晶顯示(2.使用FSMC模擬8080時序)

    目錄 使用STM32的FSMC模擬8080接口時序 FSMC簡介 FSMC NOR/PSRAM中的模式B時序圖 用FSMC模擬8080時序 重點:HADDR內(nèi)部地址與FSMC地址信號線的轉(zhuǎn)換(實現(xiàn)地址對齊) ????????ILI9341的8080通訊接口時序可以由STM32使用普通I/O接口進行模擬,但這樣效率太低,STM32提供了一種特別的控制方

    2024年02月17日
    瀏覽(25)
  • STM32 FSMC接口驅(qū)動4.3寸TFT LCD屏

    STM32 FSMC接口驅(qū)動4.3寸TFT LCD屏

    STM32的FSMC接口是并行總線接口,可以用于驅(qū)動存儲芯片如FLASH/SRAM等,也可以用于驅(qū)動并口LCD屏。 這里以STM32F103VET6開發(fā)板連接4.3寸TFT LCD屏,將正點原子的參考代碼,移植到STM32CUBEIDE開發(fā)環(huán)境,實現(xiàn)TFT LCD屏的顯示。 TFT LCD模塊的管腳連接: 其中: LCD_CS是總線片選, WR/CLK是寫使

    2024年02月10日
    瀏覽(28)
  • STM32CubeMX教程23 FSMC - IS62WV51216(SRAM)驅(qū)動

    開發(fā)板(正點原子stm32f407探索者開發(fā)板V2.4) STM32CubeMX軟件(Version 6.10.0) 野火DAP仿真器 keil μVision5 IDE(MDK-Arm) ST-LINK/V2驅(qū)動 XCOM V2.6串口助手 使用STM32CubeMX軟件配置STM32F407開發(fā)板的 FSMC實現(xiàn)以輪詢或DMA的方式讀寫IS62WV51216(SRAM)芯片 關(guān)于FSMC的內(nèi)容讀者可閱讀“STM32CubeMX教程

    2024年01月24日
    瀏覽(18)
  • STM32CubeMX教程22 FSMC - 8080并行接口TFT-LCD驅(qū)動

    開發(fā)板(正點原子stm32f407探索者開發(fā)板V2.4) STM32CubeMX軟件(Version 6.10.0) 野火DAP仿真器 keil μVision5 IDE(MDK-Arm) ST-LINK/V2驅(qū)動 XCOM V2.6串口助手 使用STM32CubeMX軟件配置STM32F407開發(fā)板 FSMC接口驅(qū)動8080并行接口TFT-LCD顯示 ,具體為使用FSMC Bank 1-NOR/PSRAM4,片選信號為NE4(PG12),TFT-L

    2024年01月23日
    瀏覽(30)
  • 基于STM32F103ZET6使用STM32CubeMX配置FSMC模塊驅(qū)動LCD屏(基于正點原子歷程)

    基于STM32F103ZET6使用STM32CubeMX配置FSMC模塊驅(qū)動LCD屏(基于正點原子歷程)

    在學(xué)習(xí)STM32的過程中,剛好學(xué)到了LCD屏,我使用的是STM32F103ZET6,屏幕是正點原子的。但是在我自己新建工程點亮顯示LCD屏?xí)r遇到了很多問題。解決之后分享在此,希望能幫助到遇到此困惑的朋友。 想要快速驅(qū)動LCD屏請直接跳轉(zhuǎn)到CubeMX配置 FSMC全名叫可變靜態(tài)存儲控制器(Fle

    2024年02月15日
    瀏覽(50)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包