日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

一,FSMC簡(jiǎn)介

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

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

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

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

二,FSMC驅(qū)動(dòng)LCD原理

FSMC驅(qū)動(dòng)外部SRAM(LCD被當(dāng)做SRAM)

SRAM控制包含:

地址線(如A0~A25)

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

寫(xiě)信號(hào)(WE,即WR)

讀信號(hào)(OE,即RD)

片選信號(hào)(CS)

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

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

其中真正操作LCD時(shí)用到的就只有:

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

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

寫(xiě)信號(hào):WR

讀信號(hào):RD

片選信號(hào):CS

操作時(shí)序和SRAM控制類(lèi)似,唯一不同是TFTLCD有RS信號(hào),但是沒(méi)有地址信號(hào)

TFTLCD通過(guò)RS信號(hào)來(lái)決定傳送是數(shù)據(jù)還是命令,可以理解為一個(gè)地址信號(hào)

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

這樣TFTLCD成為只有一個(gè)地址的SRAM設(shè)備,從而實(shí)現(xiàn)FSMC驅(qū)動(dòng)TFTLCD

三,FSMC存儲(chǔ)塊

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

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

如圖:

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

NOR / PSRAM使用塊1,共256M

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

PC卡使用塊4,共256M

所以我們使用NOR PSRAM驅(qū)動(dòng)TFTLCD

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

STM32的FSMC存儲(chǔ)塊1(Bank1)用于驅(qū)動(dòng)NOR FLASH/SRAM/PSRAM

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

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

HADDR[25:0]來(lái)自外部存儲(chǔ)器地址FSMC_A[25:0],而HADDR[26:27]對(duì)4個(gè)區(qū)進(jìn)行尋址。

如下圖所示:

說(shuō)明:

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

注意:

1,當(dāng)Bank1接 8位寬度存儲(chǔ)器時(shí):HADDR[25:0] -> FSMC_A[25:0]

2,當(dāng)Bank1接16位寬度存儲(chǔ)器時(shí):HADDR[25:1] -> FSMC_A[24:0]

由于內(nèi)部每個(gè)地址對(duì)應(yīng)一個(gè)字節(jié),外部設(shè)備16位寬,FSMC的一個(gè)地址對(duì)應(yīng)兩個(gè)字節(jié)

即:

0000對(duì)應(yīng)FSMC_A[0]=0 (2字節(jié))

0010對(duì)應(yīng)FSMC_A[0]=1 (2字節(jié))

0100對(duì)應(yīng)FSMC_A[1]=1 (2字節(jié))

所以對(duì)應(yīng)關(guān)系需要除以2,內(nèi)部右移一位對(duì)齊

此時(shí)最低位沒(méi)用,訪問(wèn)最低位需要使用UB/LB

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

五,存儲(chǔ)塊1(Bank1)模式A讀寫(xiě)時(shí)序

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

包括模式1,模式A~D等多種時(shí)序模型,驅(qū)動(dòng)SRAM一般使用模式1或模式A

我們使用模式A驅(qū)動(dòng)LCD(當(dāng)做SRAM使用),模式A支持讀寫(xiě)時(shí)序分開(kāi)設(shè)置

上一篇說(shuō)的LCD時(shí)序,我們知道,LCD的讀寫(xiě)耗時(shí)是不同的.寫(xiě)快讀慢

這里采用模式A,針對(duì)不同的速度,做不同的設(shè)置

模式A讀時(shí)序:

模式A寫(xiě)時(shí)序:

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

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

六,FSMC相關(guān)寄存器介紹

對(duì)于NOR FLASH/PSRAM控制器-存儲(chǔ)塊1,可通過(guò)FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器設(shè)置(其中x=1~4,對(duì)應(yīng)4個(gè)區(qū))。

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

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

FSMC_BCRx

EXTMOD:

擴(kuò)展模式使能位,控制是否允許讀寫(xiě)不同的時(shí)序,需設(shè)置為1

WREN:

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

MWID[1:0]:

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

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

MTYP[1:0]:

存儲(chǔ)器類(lèi)型。00表示SRAM、ROM;01表示PSRAM;10表示NOR FLASH;11保留。

我們把LCD當(dāng)成SRAM用,需設(shè)置MTYP[1:0]=00。

MBKEN:

存儲(chǔ)塊使能位。需設(shè)置為1

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

FSMC_BTRx

ACCMOD[1:0]:

訪問(wèn)模式。00:模式A;01:模式B;10:模式C;11:模式D。

我們使用模式A,需設(shè)置為00

DATAST[7:0]:

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

對(duì)于ILI9341相當(dāng)于RD低電平持續(xù)時(shí)間,最大355ns

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

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

ADDSET[3:0]:

地址建立時(shí)間。表示:ADDSET+1個(gè)HCLK周期,ADDSET最大為15。

對(duì)ILI9341來(lái)說(shuō),這里相當(dāng)于RD高電平持續(xù)時(shí)間,為90ns。

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

STM32F1設(shè)置為15

注意:

如果未設(shè)置EXTMOD位,則讀寫(xiě)共用FSMC_BTRx時(shí)序寄存器

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

FSMC_BWTRx

ACCMOD[1:0]:

訪問(wèn)模式。00:模式A;01:模式B;10:模式C;11:模式D。

DATAST[7:0]:

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

對(duì)ILI9341來(lái)說(shuō),其實(shí)就是WR低電平持續(xù)時(shí)間,為15ns,不過(guò)ILI9320等則需要50ns。

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

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

ADDSET[3:0]:

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

對(duì)ILI9341來(lái)說(shuō),這里相當(dāng)于WR高電平持續(xù)時(shí)間,為15ns。

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

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

七,寄存器組合說(shuō)明

ST官方庫(kù)寄存器定義中并沒(méi)有FSMC_BCRx、FSMC_BTRx、FSMC_BWTRx等單獨(dú)寄存器

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

FSMC_BCRx和FSMC_BTRx,組合成BTCR[8]寄存器組,他們的對(duì)應(yīng)關(guān)系如下:

BTCR[0]對(duì)應(yīng)FSMC_BCR1,BTCR[1]對(duì)應(yīng)FSMC_BTR1

BTCR[2]對(duì)應(yīng)FSMC_BCR2,BTCR[3]對(duì)應(yīng)FSMC_BTR2

BTCR[4]對(duì)應(yīng)FSMC_BCR3,BTCR[5]對(duì)應(yīng)FSMC_BTR3

BTCR[6]對(duì)應(yīng)FSMC_BCR4,BTCR[7]對(duì)應(yīng)FSMC_BTR4

FSMC_BWTRx則組合成BWTR[7],他們的對(duì)應(yīng)關(guān)系如下:

BWTR[0]對(duì)應(yīng)FSMC_BWTR1,

BWTR[2]對(duì)應(yīng)FSMC_BWTR2,

BWTR[4]對(duì)應(yīng)FSMC_BWTR3,

BWTR[6]對(duì)應(yīng)FSMC_BWTR4,

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

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

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

關(guān)鍵字: C語(yǔ)言 嵌入式系統(tǒng) 驅(qū)動(dòng)開(kāi)發(fā)

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

關(guān)鍵字: 驅(qū)動(dòng)開(kāi)發(fā) C語(yǔ)言 Linux

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

關(guān)鍵字: 存儲(chǔ)器 供應(yīng)鏈 邊緣AI

在人工智能訓(xùn)練、實(shí)時(shí)圖形渲染與科學(xué)計(jì)算領(lǐng)域,存儲(chǔ)器帶寬已成為制約系統(tǒng)性能的核心瓶頸。HBM3與GDDR7作為當(dāng)前顯存技術(shù)的兩大巔峰之作,分別通過(guò)三維堆疊與信號(hào)調(diào)制技術(shù)的突破,為不同應(yīng)用場(chǎng)景提供了差異化解決方案。本文從架構(gòu)...

關(guān)鍵字: 存儲(chǔ)器 HBM3

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

關(guān)鍵字: FeFET 存儲(chǔ)器

數(shù)字化轉(zhuǎn)型與人工智能技術(shù)驅(qū)動(dòng),數(shù)據(jù)中心存儲(chǔ)架構(gòu)正經(jīng)歷從傳統(tǒng)磁盤(pán)陣列向全閃存與新型內(nèi)存技術(shù)的深度變革。全閃存陣列(AFA)憑借亞毫秒級(jí)延遲與高IOPS性能重塑存儲(chǔ)性能基準(zhǔn),而持久化內(nèi)存(PMEM)則通過(guò)填補(bǔ)DRAM與SSD...

關(guān)鍵字: 數(shù)據(jù)中心 存儲(chǔ)器

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

關(guān)鍵字: 存儲(chǔ)器 ECC

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

關(guān)鍵字: 存儲(chǔ)器 國(guó)產(chǎn)化替

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

關(guān)鍵字: 存儲(chǔ)器 散熱

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

關(guān)鍵字: 存儲(chǔ)器 TEE
關(guān)閉