www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]FSMC:靈活的靜態(tài)存儲控制器,能夠與同步或異步存儲器和16位PC存儲器卡連接,STM32的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存儲器。

一,FSMC簡介

FSMC:靈活的靜態(tài)存儲控制器

能夠與同步或異步存儲器和16位PC存儲器卡連接

STM32的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存儲器

STM32 407和103是不支持SD RAM的,429,439支持SD RAM操作

二,FSMC驅動LCD原理

FSMC驅動外部SRAM(LCD被當做SRAM)

SRAM控制包含:

地址線(如A0~A25)

數(shù)據(jù)線(如D0~D15)

寫信號(WE,即WR)

讀信號(OE,即RD)

片選信號(CS)

若SRAM支持字節(jié)控制,還有UB/LB信號。

上一節(jié)提到的TFTLCD信號,RS、D0~D15、WR、RD、CS、RST和BL等

其中真正操作LCD時用到的就只有:

數(shù)據(jù)&命令:RS

數(shù)據(jù)線:D0~D15

寫信號:WR

讀信號:RD

片選信號:CS

操作時序和SRAM控制類似,唯一不同是TFTLCD有RS信號,但是沒有地址信號

TFTLCD通過RS信號來決定傳送是數(shù)據(jù)還是命令,可以理解為一個地址信號

將RS接到FSMC地址線A10(A0-A25隨意),TFTLCD就被當做一個SRAM使用

這樣TFTLCD成為只有一個地址的SRAM設備,從而實現(xiàn)FSMC驅動TFTLCD

三,FSMC存儲塊

STM32的FSMC支持8/16/32位數(shù)據(jù)寬度,我們使用的LCD為16位,所以設置選擇16位

FSMC的外部設備地址映像:STM32的FSMC將外部存儲器劃分為固定大小為256M字節(jié)的四個存儲塊

如圖:

FSMC分為4塊,每塊256M字節(jié)又被劃分為4*64,即四個片選

NOR / PSRAM使用塊1,共256M

NAND閃存使用塊2,3,共512M

PC卡使用塊4,共256M

所以我們使用NOR PSRAM驅動TFTLCD

四,存儲塊1(Bank1)寄存器介紹

STM32的FSMC存儲塊1(Bank1)用于驅動NOR FLASH/SRAM/PSRAM

Bank1被分為4個區(qū),每個區(qū)管理64M字節(jié)空間,每個區(qū)都有獨立的寄存器對所連接的存儲器進行配置。

Bank1的256M字節(jié)空間由28根地址線(HADDR[27:0])尋址。 這里HADDR,是內部AHB地址總線

HADDR[25:0]來自外部存儲器地址FSMC_A[25:0],而HADDR[26:27]對4個區(qū)進行尋址。

如下圖所示:

說明:

HADDR[27:26]是不可手動配置的,當選擇所在區(qū)后會自動賦值

注意:

1,當Bank1接 8位寬度存儲器時:HADDR[25:0] -> FSMC_A[25:0]

2,當Bank1接16位寬度存儲器時:HADDR[25:1] -> FSMC_A[24:0]

由于內部每個地址對應一個字節(jié),外部設備16位寬,FSMC的一個地址對應兩個字節(jié)

即:

0000對應FSMC_A[0]=0 (2字節(jié))

0010對應FSMC_A[0]=1 (2字節(jié))

0100對應FSMC_A[1]=1 (2字節(jié))

所以對應關系需要除以2,內部右移一位對齊

此時最低位沒用,訪問最低位需要使用UB/LB

不論外部接8位/16位寬設備,F(xiàn)SMC_A[0]永遠接在外部設備地址A[0]

五,存儲塊1(Bank1)模式A讀寫時序

STM32的FSMC存儲塊1支持的異步突發(fā)訪問模式

包括模式1,模式A~D等多種時序模型,驅動SRAM一般使用模式1或模式A

我們使用模式A驅動LCD(當做SRAM使用),模式A支持讀寫時序分開設置

上一篇說的LCD時序,我們知道,LCD的讀寫耗時是不同的.寫快讀慢

這里采用模式A,針對不同的速度,做不同的設置

模式A讀時序:

模式A寫時序:

ILI9341時序-讀寫高低電平最小持續(xù)時間:

根據(jù)ILI9341時序讀寫高低電平最小持續(xù)時間來配置模式A的讀寫時序

六,FSMC相關寄存器介紹

對于NOR FLASH/PSRAM控制器-存儲塊1,可通過FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器設置(其中x=1~4,對應4個區(qū))。

通過這3個寄存器,可以設置FSMC訪問外部存儲器的時序參數(shù),拓寬了可選用的外部存儲器的速度范圍。

1,SRAM/NOR閃存片選控制寄存器(FSMC_BCRx)

FSMC_BCRx

EXTMOD:

擴展模式使能位,控制是否允許讀寫不同的時序,需設置為1

WREN:

寫使能位。我們要向TFTLCD寫數(shù)據(jù),需設置為1

MWID[1:0]:

存儲器數(shù)據(jù)總線寬度。00,表示8位數(shù)據(jù)模式;01表示16位數(shù)據(jù)模式;10和11保留。

我們的TFTLCD是16位數(shù)據(jù)線,需設置WMID[1:0]=01。

MTYP[1:0]:

存儲器類型。00表示SRAM、ROM;01表示PSRAM;10表示NOR FLASH;11保留。

我們把LCD當成SRAM用,需設置MTYP[1:0]=00。

MBKEN:

存儲塊使能位。需設置為1

2,SRAM/NOR閃存片選時序寄存器(FSMC_BTRx)-讀時序控制

FSMC_BTRx

ACCMOD[1:0]:

訪問模式。00:模式A;01:模式B;10:模式C;11:模式D。

我們使用模式A,需設置為00

DATAST[7:0]:

數(shù)據(jù)保持時間,等于: DATAST(+1)個HCLK時鐘周期,DATAST最大為255。

對于ILI9341相當于RD低電平持續(xù)時間,最大355ns

對于STM32F1,一個HCLK=13.8ns (1/72M),設置為15,相當于16個HCLK=220.8,加上STM32F1的FSMC性能較低一些,配置為15即可

對于STM32F4,一個HCLK=6ns(1/168M) ,設置為60(360)。

ADDSET[3:0]:

地址建立時間。表示:ADDSET+1個HCLK周期,ADDSET最大為15。

對ILI9341來說,這里相當于RD高電平持續(xù)時間,為90ns。

STM32F1的FSMC性能較低,即便設置為0,RD也有190ns高電平,所以設置為1

STM32F1設置為15

注意:

如果未設置EXTMOD位,則讀寫共用FSMC_BTRx時序寄存器

3,SRAM/NOR閃存寫時序寄存器(FSMC_BWTRx)-寫時序控制

FSMC_BWTRx

ACCMOD[1:0]:

訪問模式。00:模式A;01:模式B;10:模式C;11:模式D。

DATAST[7:0]:

數(shù)據(jù)保持時間,等于: DATAST(+1)個HCLK時鐘周期,DATAST最大為255。

對ILI9341來說,其實就是WR低電平持續(xù)時間,為15ns,不過ILI9320等則需要50ns。

考慮兼容性,對STM32F1一個HCLK=13.8ns (1/72M),設置為3(4*13.8=55.2);

對STM32F4,一個HCLK=6ns(1/168M) ,設置為9(9*6=54)。

ADDSET[3:0]:

地址建立時間。表示:ADDSET+1個HCLK周期,ADDSET最大值為1111 = 15。

對ILI9341來說,這里相當于WR高電平持續(xù)時間,為15ns。

考慮兼容ILI9320,STM32F1即便設置為1,WR也有100ns高電平,所以設置為1。

而對STM32F4,則設置為8(9*6=54)

七,寄存器組合說明

ST官方庫寄存器定義中并沒有FSMC_BCRx、FSMC_BTRx、FSMC_BWTRx等單獨寄存器

而是將他們進行了一些組合。規(guī)律如下:

FSMC_BCRx和FSMC_BTRx,組合成BTCR[8]寄存器組,他們的對應關系如下:

BTCR[0]對應FSMC_BCR1,BTCR[1]對應FSMC_BTR1

BTCR[2]對應FSMC_BCR2,BTCR[3]對應FSMC_BTR2

BTCR[4]對應FSMC_BCR3,BTCR[5]對應FSMC_BTR3

BTCR[6]對應FSMC_BCR4,BTCR[7]對應FSMC_BTR4

FSMC_BWTRx則組合成BWTR[7],他們的對應關系如下:

BWTR[0]對應FSMC_BWTR1,

BWTR[2]對應FSMC_BWTR2,

BWTR[4]對應FSMC_BWTR3,

BWTR[6]對應FSMC_BWTR4,

BWTR[1]、BWTR[3]和BWTR[5]保留

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式系統(tǒng)和底層驅動開發(fā)中,C語言因其高效性和可控性成為主流選擇,但缺乏原生單元測試支持成為開發(fā)痛點。本文提出一種基于宏定義和測試用例管理的輕量級單元測試框架方案,通過自定義斷言宏和測試注冊機制,實現(xiàn)無需外部依賴的嵌入...

關鍵字: C語言 嵌入式系統(tǒng) 驅動開發(fā)

在Linux設備驅動開發(fā)中,等待隊列(Wait Queue)是實現(xiàn)進程睡眠與喚醒的核心機制,它允許進程在資源不可用時主動放棄CPU,進入可中斷睡眠狀態(tài),待資源就緒后再被喚醒。本文通過C語言模型解析等待隊列的實現(xiàn)原理,結合...

關鍵字: 驅動開發(fā) C語言 Linux

June 24, 2025 ---- 近期市場對于NVIDIA RTX PRO 6000系列產品的討論聲量高,預期在需求支撐下,整體出貨將有不俗表現(xiàn)。然而,TrendForce集邦咨詢資深研究副總吳雅婷認為,該系列產品受...

關鍵字: 存儲器 供應鏈 邊緣AI

在人工智能訓練、實時圖形渲染與科學計算領域,存儲器帶寬已成為制約系統(tǒng)性能的核心瓶頸。HBM3與GDDR7作為當前顯存技術的兩大巔峰之作,分別通過三維堆疊與信號調制技術的突破,為不同應用場景提供了差異化解決方案。本文從架構...

關鍵字: 存儲器 HBM3

傳統(tǒng)存儲器技術逼近物理極限,鐵電場效應晶體管(FeFET)憑借其獨特的極化翻轉機制與非易失性邏輯特性,成為突破馮·諾依曼架構瓶頸的關鍵技術。FeFET通過將鐵電材料集成至晶體管柵極,實現(xiàn)了存儲與邏輯功能的深度融合,其物理...

關鍵字: FeFET 存儲器

數(shù)字化轉型與人工智能技術驅動,數(shù)據(jù)中心存儲架構正經歷從傳統(tǒng)磁盤陣列向全閃存與新型內存技術的深度變革。全閃存陣列(AFA)憑借亞毫秒級延遲與高IOPS性能重塑存儲性能基準,而持久化內存(PMEM)則通過填補DRAM與SSD...

關鍵字: 數(shù)據(jù)中心 存儲器

AI算力與數(shù)據(jù)中心規(guī)模持續(xù)擴張,存儲器糾錯碼(ECC)技術已成為保障數(shù)據(jù)完整性的核心防線。從硬件加速架構到算法優(yōu)化,ECC技術正通過多維度創(chuàng)新,將內存錯誤率降低至每萬億小時1次以下,為關鍵任務系統(tǒng)提供接近零故障的可靠性保...

關鍵字: 存儲器 ECC

存儲器供應鏈安全已成為國家戰(zhàn)略的核心命題,從晶圓代工到封裝測試,中國存儲器產業(yè)正通過關鍵環(huán)節(jié)的技術突破與生態(tài)重構,走出一條從“受制于人”到“自主可控”的替代之路。這條路徑不僅關乎產業(yè)安全,更承載著數(shù)字經濟時代的技術主權。

關鍵字: 存儲器 國產化替

AI算力需求爆炸式增長,存儲器封裝技術正經歷從2.5D到3D異構集成的范式變革。這種變革不僅重構了芯片間的物理連接方式,更對散熱設計與信號完整性提出了全新挑戰(zhàn)。本文從封裝架構演進、散熱機制創(chuàng)新與信號完整性保障三個維度,解...

關鍵字: 存儲器 散熱

數(shù)據(jù)成為核心生產要素的時代,存儲器安全技術已成為保障數(shù)字資產隱私與完整性的關鍵防線。從早期基于硬件的加密引擎到現(xiàn)代可信執(zhí)行環(huán)境(TEE)的生態(tài)構建,存儲器安全技術經歷了從單一防護到體系化協(xié)同的演進。本文從硬件加密引擎、存...

關鍵字: 存儲器 TEE
關閉