<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > FSMC知識詳解,以及驅動(dòng)TFTLCD原理

FSMC知識詳解,以及驅動(dòng)TFTLCD原理

作者: 時(shí)間:2018-01-18 來(lái)源:網(wǎng)絡(luò ) 收藏

  一,簡(jiǎn)介

本文引用地址:http://dyxdggzs.com/article/201801/374605.htm

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

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

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

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

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

    

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

  SRAM控制包含:

  地址線(xiàn)(如A0~A25)

  數據線(xiàn)(如D0~D15)

  寫(xiě)信號(WE,即WR)

  讀信號(OE,即RD)

  片選信號(CS)

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

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

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

  數據&命令:RS

  數據線(xiàn):D0~D15

  寫(xiě)信號:WR

  讀信號:RD

  片選信號:CS

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

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

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

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

  三,FSMC存儲塊

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

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

    

  如圖:

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

  NOR / PSRAM使用塊1,共256M

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

  PC卡使用塊4,共256M

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

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

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

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

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

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

  如下圖所示:

  說(shuō)明:

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

  注意:

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

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

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

  即:

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

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

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

  所以對應關(guān)系需要除以2,內部右移一位對齊

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

  不論外部接8位/16位寬設備,FSMC_A[0]永遠接在外部設備地址A[0]

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

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

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

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

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

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

  模式A讀時(shí)序:

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

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

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

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

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

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

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

  FSMC_BCRx

  EXTMOD:

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

  WREN:

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

  MWID[1:0]:

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

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

  MTYP[1:0]:

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

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

  MBKEN:

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

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

  FSMC_BTRx

  ACCMOD[1:0]:

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

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

  DATAST[7:0]:

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

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

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

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

  ADDSET[3:0]:

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

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

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

  STM32F1設置為15

  注意:

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

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

  FSMC_BWTRx

  ACCMOD[1:0]:

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

  DATAST[7:0]:

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

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

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

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

  ADDSET[3:0]:

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

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

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

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

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

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

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

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

  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],他們的對應關(guān)系如下:

  BWTR[0]對應FSMC_BWTR1,

  BWTR[2]對應FSMC_BWTR2,

  BWTR[4]對應FSMC_BWTR3,

  BWTR[6]對應FSMC_BWTR4,

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



關(guān)鍵詞: FSMC TFTLCD

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>