教學(xué)課件 14-FSMC原理_第1頁
教學(xué)課件 14-FSMC原理_第2頁
教學(xué)課件 14-FSMC原理_第3頁
教學(xué)課件 14-FSMC原理_第4頁
教學(xué)課件 14-FSMC原理_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目五環(huán)境檢測系統(tǒng)設(shè)計(jì)FSMC原理知識導(dǎo)航FSMC簡介FSMC(可變靜態(tài)存儲控制器)是STM32系列采用的一種新型的存儲器擴(kuò)展技術(shù)。在外部存儲器擴(kuò)展方面具有獨(dú)特的優(yōu)勢,可根據(jù)系統(tǒng)的應(yīng)用需要,方便地進(jìn)行不同類型大容量靜態(tài)存儲器的擴(kuò)展。知識導(dǎo)航FSMC簡介通過對特殊功能寄存器的設(shè)置,F(xiàn)SMC能夠根據(jù)不同的外部存儲器類型,發(fā)出相應(yīng)的數(shù)據(jù)/地址/控制信號類型以匹配信號的速度,從而使得STM32系列微控制器不僅能夠應(yīng)用各種不同類型、不同速度的外部靜態(tài)存儲器,而且能夠在不增加外部器件的情況下同時(shí)擴(kuò)展多種不同類型的靜態(tài)存儲器,滿足系統(tǒng)設(shè)計(jì)對存儲容量、產(chǎn)品體積以及成本的綜合要求。知識導(dǎo)航FSMC簡介通常,我們不直接用GPIO口驅(qū)動液晶,是因?yàn)檫@種方法速度太慢,而是使用FSMC。FSMC是用來外接各種存儲芯片的,所以其數(shù)據(jù)通信速度是比普通GPIO口要快得多的。知識導(dǎo)航

FSMC驅(qū)動外部SRAM時(shí),外部SRAM的控制一般有:地址線(如A0~A25)、數(shù)據(jù)線(如D0~D15)、寫信號(WE,即WR)、讀信號(OE,即RD)、片選信號(CS),如果SRAM支持字節(jié)控制,那么還有UB/LB信號。

TFTLCD的信號包括:RS、D0~D15、WR、RD、CS、RST和BL等,其中真正在操作LCD的時(shí)候需要用到的就只有:RS、D0~D15、WR、RD和CS。其操作時(shí)序和SRAM的控制完全類似,唯一不同就是TFTLCD有RS信號,但是沒有地址信號。知識導(dǎo)航

TFTLCD通過RS信號來決定傳送的是數(shù)據(jù)還是命令,本質(zhì)上可以理解為一個(gè)地址信號。例如:把RS接在A0上面,那么當(dāng)FSMC控制器寫地址0的時(shí)候,會使得A0變?yōu)?,對TFTLCD來說,就是寫命令。而FSMC寫地址1的時(shí)候,A0將會變?yōu)?,對TFTLCD來說,就是寫數(shù)據(jù)。這樣,就把數(shù)據(jù)和命令區(qū)分開了,其實(shí)就是對應(yīng)SRAM操作的兩個(gè)連續(xù)地址。戰(zhàn)艦V3開發(fā)板是把RS連接在A10上面。

可以把TFTLCD當(dāng)成一個(gè)SRAM來用,只不過這個(gè)SRAM有2個(gè)地址,這就是FSMC可以驅(qū)動LCD的原理。知識導(dǎo)航

STM32的FSMC接口支持包括SRAM、NANDFLASH、NORFLASH和PSRAM等存儲器。STM32的FSMC支持8/16/32位數(shù)據(jù)寬度,LCD是16位寬度的,所以數(shù)據(jù)寬度選擇16位。知識導(dǎo)航STM32的FSMC將外部存儲器劃分為固定大小為256M字節(jié)的四個(gè)存儲塊。知識導(dǎo)航STM32的FSMC存儲塊1(Bank1)用于驅(qū)動NORFLASH/SRAM/PSRAM,被分為4個(gè)區(qū),每個(gè)區(qū)管理64M字節(jié)空間,每個(gè)區(qū)都有獨(dú)立的寄存器對所連接的存儲器進(jìn)行配置。Bank1的256M字節(jié)空間由28根地址線(HADDR[27:0])尋址。這里HADDR,是內(nèi)部AHB地址總線,其中,HADDR[25:0]來自外部存儲器地址FSMC_A[25:0],而HADDR[26:27]對4個(gè)區(qū)進(jìn)行尋址。知識導(dǎo)航當(dāng)Bank1接的是16位寬度存儲器的時(shí)候:HADDR[25:1]

FSMC_A[24:0]當(dāng)Bank1接的是8位寬度存儲器的時(shí)候:HADDR[25:0]

FSMC_A[25:0]不論外部接8位/16位寬設(shè)備,F(xiàn)SMC_A[0]永遠(yuǎn)接在外部設(shè)備地址A[0]。HADDR[27:26]的設(shè)置,是不需要我們干預(yù)的,比如:當(dāng)你選擇使用Bank1的第三個(gè)區(qū),即使用FSMC_NE3來連接外部設(shè)備的時(shí)候,即對應(yīng)了HADDR[27:26]=10,我們要做的就是配置對應(yīng)第3區(qū)的寄存器組,來適應(yīng)外部設(shè)備即可。知識導(dǎo)航STM32的FSMC存儲塊1支持的訪問模式包括:模式1、模式A~D等多種時(shí)序模型,驅(qū)動SRAM時(shí)一般使用模式1或者模式A,這里我們使用模式A來驅(qū)動LCD。模式A讀時(shí)序圖模式A寫時(shí)序圖CSRDWRCSRDWR知識導(dǎo)航并口寫時(shí)序圖并口讀時(shí)序圖LCD模塊的8080并口讀/寫的過程:

先根據(jù)要寫入/讀取的數(shù)據(jù)的類型,設(shè)置RS為高(數(shù)據(jù))/低(命令),然后拉低片選,選中ILI9341,接著我們根據(jù)是讀數(shù)據(jù),還是要寫數(shù)據(jù)置RD/WR為低。讀數(shù)據(jù):在RD的上升沿,讀取數(shù)據(jù)線上的數(shù)據(jù)(D[15:0])寫數(shù)據(jù):在WR的上升沿,使數(shù)據(jù)寫入到ILI9341里面知識導(dǎo)航從模式A的讀寫時(shí)序圖,可以看出,讀操作還存在額外的2個(gè)HCLK周期,用于數(shù)據(jù)存儲,所以同樣的配置讀操作一般比寫操作會慢一點(diǎn)。讀寫過程采用同一時(shí)序會影響LCD顯示速度,因此讀寫過程采用不同的時(shí)序。知識導(dǎo)航FSMC相關(guān)寄存器對于NORFLASH/PSRAM控制器(存儲塊1),通過FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器設(shè)置(其中x=1~4,對應(yīng)4個(gè)區(qū))。通過這3個(gè)寄存器,可以設(shè)置FSMC訪問外部存儲器的時(shí)序參數(shù),拓寬了可選用的外部存儲器的速度范圍。知識導(dǎo)航SRAM/NOR閃存片選控制寄存器(FSMC_BCRx)EXTMOD:擴(kuò)展模式使能位,控制是否允許讀寫不同的時(shí)序,需設(shè)置為1。WREN:寫使能位。我們需要向TFTLCD寫數(shù)據(jù),故該位必須設(shè)置為1。MWID[1:0]:存儲器數(shù)據(jù)總線寬度。00表示8位數(shù)據(jù)模式;01表示16位數(shù)據(jù)模式;10和11保留。我們的TFTLCD是16位數(shù)據(jù)線,所以設(shè)置01。MTYP[1:0]:存儲器類型。00表示SRAM、ROM;01表示PSRAM;10表示NORFLASH;11保留。我們把LCD當(dāng)成SRAM用,所以需要設(shè)置為00。MBKEN:存儲塊使能位。需設(shè)置為1。知識導(dǎo)航SRAM/NOR閃存片選時(shí)序寄存器(FSMC_BTRx)ACCMOD[1:0]:訪問模式。00:模式A;01:模式B;10:模式C;11:模式D。

DATASET[7:0]:數(shù)據(jù)保持時(shí)間,等于:DATASET+1個(gè)HCLK時(shí)鐘周期,其值最大為255。對ILI9341來說,其實(shí)就是RD低電平持續(xù)時(shí)間,最大為355ns。對STM32F1,一個(gè)HCLK=13.8ns

(1/72M),設(shè)置為15。

ADDSET[3:0]:地址建立時(shí)間。表示:ADDSET+1個(gè)HCLK周期,其值最大為15。對ILI9341來說,這里相當(dāng)于RD高電平持續(xù)時(shí)間,為90ns。STM32F1的FSMC性能存在問題,即便設(shè)置為0,RD也有190ns的高電平,這里設(shè)置為1。注意:如果未設(shè)置EXTMOD位,則讀寫共用這個(gè)時(shí)序寄存器!知識導(dǎo)航SRAM/NOR閃存寫時(shí)序寄存器(FSMC_BWTRx)ACCMOD[1:0]:訪問模式。00:模式A;01:模式B;10:模式C;11:模式D。

DATAST[7:0]:數(shù)據(jù)保持時(shí)間,等于:DATAST+1個(gè)HCLK時(shí)鐘周期,其值最大為255。對ILI9341來說,其實(shí)就是WR低電平持續(xù)時(shí)間,為15ns。對STM32F1系列,一個(gè)HCLK=13.8ns

(1/72M),設(shè)置為1。

ADDSET[3:0]:地址建立時(shí)間。表示:ADDSET+1個(gè)HCLK周期,其值最大為15。對ILI9341來說,這里相當(dāng)于WR高電平持續(xù)時(shí)間,為15ns。STM32F1的FSMC性能存在問題,這里即便設(shè)置為1,WR也有100ns的高電平,我們這里設(shè)置為1。ILI9341驅(qū)動時(shí)序重點(diǎn)時(shí)序:讀ID低電平脈寬(trdl)讀ID高電平脈寬(trdh)讀FM低電平脈寬(trdlfm)讀FM高電平脈寬(trdhfm)寫控制低電平脈寬(twrl)寫控制高電平脈寬(twrh)注意:ID指LCD的ID號,F(xiàn)M指幀緩存區(qū)(顯存),即:GRAM知識導(dǎo)航知識導(dǎo)航寄存器組合說明在ST官方庫提供的寄存器定義里面,沒有定義FSMC_BCRx、FSMC_BTRx、FSMC_BWTRx等這個(gè)單獨(dú)的寄存器,而是將他們進(jìn)行了一些組合。1)FSMC_BCRx和FSMC_BTRx,組合成BTCR[8]寄存器組:BTCR[0]對應(yīng)FSMC_BCR1,BTCR[1]對應(yīng)FSMC_BTR1

BTCR[2]對應(yīng)FSMC_BCR2,BTCR[3]對應(yīng)FSMC_BTR2BTCR[4]對應(yīng)FSMC_BCR3,BTCR[5]對應(yīng)FSMC_BTR3

BTCR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論