一,FSMC簡介
FSMC:靈活的靜態存儲控制器 能夠與同步或異步存儲器和16位PC存儲器卡連接 STM32的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存儲器 STM32 407和103是不支持SD RAM的,429,439支持SD RAM操作12345
TFTLCD信號,RS、D0~D15、WR、RD、CS、RST和BL等其中真正操作LCD時用到的就只有:
數據&命令:RS
數據線:D0~D15
寫信號:WR
讀信號:RD
片選信號:CS1234567
操作時序和SRAM控制類似,唯一不同是TFTLCD有RS信號,但是沒有地址信號
TFTLCD通過RS信號來決定傳送是數據還是命令,可以理解為一個地址信號
將RS接到FSMC地址線A10(A0-A25隨意),TFTLCD就被當做一個SRAM使用
這樣TFTLCD成為只有一個地址的SRAM設備,從而實現FSMC驅動TFTLCD
LCD時序,我們知道,LCD的讀寫耗時是不同的.寫快讀慢
這里采用模式A,針對不同的速度,做不同的設置
模式A讀時序:
模式A寫時序:
ILI9341時序-讀寫高低電平最小持續時間:
根據ILI9341時序讀寫高低電平最小持續時間來配置模式A的讀寫時序
六,FSMC相關寄存器介紹
對于NOR FLASH/PSRAM控制器-存儲塊1,可通過FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器設置(其中x=1~4,對應4個區)。
通過這3個寄存器,可以設置FSMC訪問外部存儲器的時序參數,拓寬了可選用的外部存儲器的速度范圍。
1,SRAM/NOR閃存片選控制寄存器(FSMC_BCRx)
EXTMOD: 擴展模式使能位,控制是否允許讀寫不同的時序,需設置為1 WREN: 寫使能位。我們要向TFTLCD寫數據,需設置為1 MWID[1:0]: 存儲器數據總線寬度。00,表示8位數據模式;01表示16位數據模式;10和11保留。 我們的TFTLCD是16位數據線,需設置WMID[1:0]=01。 MTYP[1:0]: 存儲器類型。00表示SRAM、ROM;01表示PSRAM;10表示NOR FLASH;11保留。 我們把LCD當成SRAM用,需設置MTYP[1:0]=00。 MBKEN: 存儲塊使能位。需設置為112345678910111213
2,SRAM/NOR閃存片選時序寄存器(FSMC_BTRx)-讀時序控制
ACCMOD[1:0]: 訪問模式。00:模式A;01:模式B;10:模式C;11:模式D。 我們使用模式A,需設置為00 DATAST[7:0]: 數據保持時間,等于: DATAST(+1)個HCLK時鐘周期,DATAST最大為255。 對于ILI9341相當于RD低電平持續時間,最大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高電平持續時間,為90ns。 STM32F1的FSMC性能較低,即便設置為0,RD也有190ns高電平,所以設置為1 STM32F1設置為15 注意: 如果未設置EXTMOD位,則讀寫共用FSMC_BTRx時序寄存器12345678910111213141516171819
3,SRAM/NOR閃存寫時序寄存器(FSMC_BWTRx)-寫時序控制
ACCMOD[1:0]: 訪問模式。00:模式A;01:模式B;10:模式C;11:模式D。 DATAST[7:0]: 數據保持時間,等于: DATAST(+1)個HCLK時鐘周期,DATAST最大為255。 對ILI9341來說,其實就是WR低電平持續時間,為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高電平持續時間,為15ns。 考慮兼容ILI9320,STM32F1即便設置為1,WR也有100ns高電平,所以設置為1。 而對STM32F4,則設置為8(9*6=54)12345678910111213
七,寄存器組合說明
ST官方庫寄存器定義中并沒有FSMC_BCRx、FSMC_BTRx、FSMC_BWTRx等單獨寄存器
而是將他們進行了一些組合。規律如下:
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_BTR412345
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]保留
上一篇:STM32 TFT學習筆記——SD卡讀寫
下一篇:STM32控制TFTLCD顯示
推薦閱讀
史海拾趣
Ettinger與英國著名汽車品牌Bentley建立了長期合作伙伴關系。作為Bentley汽車皮件配飾和皮具產品的指定供應商,Ettinger為Bentley提供了高品質的皮具產品,進一步提升了品牌的知名度和影響力。這種合作伙伴關系的建立,也為Ettinger帶來了更多的商業機會和發展空間。
“創新動力”是Discrete Semiconductor Industries公司中一家以創新驅動發展的典范。該公司注重研發投入,積極引進和培養科技人才,建立了完善的研發體系。通過不斷的技術創新和產品升級,創新動力不斷推出具有市場競爭力的新產品。同時,公司還積極探索新的應用領域和市場機會,不斷拓展業務范圍。這種創新驅動的發展戰略使得創新動力在激烈的市場競爭中保持了強勁的發展勢頭。
“創新動力”是Discrete Semiconductor Industries公司中一家以創新驅動發展的典范。該公司注重研發投入,積極引進和培養科技人才,建立了完善的研發體系。通過不斷的技術創新和產品升級,創新動力不斷推出具有市場競爭力的新產品。同時,公司還積極探索新的應用領域和市場機會,不斷拓展業務范圍。這種創新驅動的發展戰略使得創新動力在激烈的市場競爭中保持了強勁的發展勢頭。
除了電源管理技術外,Delta在工業自動化領域也取得了重要突破。公司開發了一系列工業自動化產品和解決方案,如變頻器、PLC、HMI等,廣泛應用于機械制造、自動化生產線等領域。這些產品和解決方案不僅提高了生產效率,降低了生產成本,還為客戶提供了更加智能化、自動化的生產方式。
目前有個項目,需要請一位工程師(業余兼職即可)。 1、熟悉TI 達芬奇系列DSP芯片,有DM64xx上開發,優化經驗。 2、熟悉H264協議或者MPEG4協議,最好在DM64XX上做過相關協議的開發或者優化工作。 詳細可以QQ455247859聯系。 … 查看全部問答∨ |
小弟是DSP初學者,想把simulink的框圖轉化成c代碼,在DSP上跑.我在rtw工具箱的設置是: Solver: stop time 選inf &nb ...… 查看全部問答∨ |
例如我要傳送一張圖片 大小為100KB,而我的端點最大包長度為1KB,那么我就要傳100次是嗎,對數據的分割時應用層來做還是驅動層自動做的,我大概看了驅動的代碼好像沒有數據分割這么一說,見笑。… 查看全部問答∨ |
|
沒有接觸過不間斷電源,有幾個問題像大家請教,忘不惜告知,先謝了! 有裝飾用的LED燈,總功率根據項目不同一般在25W~50W之間,12Vdc。之前一直采用開關電源(輸入220,輸出12vdc)直接供電,停電后則滅。 現客戶提出新要求: 要求正常時,LED燈 ...… 查看全部問答∨ |
|
usbdemo代碼在flash可以運行,無法在ram里面運行?(問題已經解決) IAR EWARM 4.41 & JLink & STR912FW44 & Windows 2003我把中斷向量表復制到ram的最高端, 一共64bytes.在flash里面, 中斷都沒有問題. 但是在ram里面不正常.我測試了0x04000000&nb ...… 查看全部問答∨ |
我參照官方程序,改用了UART2,能檢測到卡片,可怎么也收不到ATR信息,誰有這方面的經驗啊,指教一下!!!緊急求助啊!加我Q也行:45941804… 查看全部問答∨ |