<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 光電顯示 > 設計應用 > 基于STM32的FSMC接口驅動TFT彩屏的設計方案

          基于STM32的FSMC接口驅動TFT彩屏的設計方案

          作者: 時間:2017-10-21 來源:網絡 收藏

            技術是微電子技術和LCD技術巧妙結合的高新技術。隨著人們對圖像清晰度、刷新率、保真度的要求越來越高,的應用范圍越來越廣。本文提出了一種能直接驅動數(shù)字液晶屏的設計方案,方案先介紹了的工作原理,利用處理器的接口設計的硬件電路和軟件程序均能對顯示控制芯片進行有效的控制。在實際應用中顯示清晰流暢,并且CPU有足夠的時間來處理用戶程序。該方案能成功應用在電腦橫機的人機界面顯示中,且其硬件電路結構簡單、控制方式靈活、對于其他型號的接口芯片也能提供參考。

          本文引用地址:http://www.ex-cimer.com/article/201710/367214.htm

            0 引言

            隨著電子產品的不斷更新,各種顯示界面的開發(fā)越來越多,由于TFT彩屏的性價比高,因而被廣泛用在各種電子設備上作為顯示屏。目前驅動TFT彩屏的方案有很多,可以用底端單片機驅動一個終端類型的液晶模組,這種模組價格比較貴,當然用起來還是很方便的。

            只要單片機通過串口或并行口向TFT發(fā)送幾個字節(jié)的命令,就能在屏幕上顯示你需要的效果。本設計利用 總線直接驅動TFT 數(shù)字彩屏。這種方案對相應的寄存器進行配置后就可以自動向發(fā)送數(shù)據,無需CPU參與,讓CPU有足夠時間來處理其他程序。

            1 簡介

            STM32 是基于ARM 內核Cortex-M3 的32 位微控制器系列。Cortex-M3內核是為低功耗和價格敏感的應用而專門設計的,具有突出的能效比和處理速度。通過采用Thumb-2 高密度指令集,Cortex-M3 內核降低了系統(tǒng)存儲要求,同時快速的中斷處理能夠滿足控制領域的高實時性要求,使基于該內核設計的STM32 系列微控制器能夠以更優(yōu)越的性價比,面向更廣泛的應用領域。

            STM32系列微控制器為用戶提供了豐富的選擇,可適用于工業(yè)控制、智能家電、建筑安防、醫(yī)療設備以及消費類電子產品等多方位嵌入式系統(tǒng)設計。STM32系列采用一種新型的存儲器擴展技術---,在外部存儲器擴展方面具有獨特的優(yōu)勢,可根據系統(tǒng)的應用需要,方便地進行不同類型大容量靜態(tài)存儲器的擴展。

            2 TFT彩屏模塊工作原理

            本設計采用3.2 寸分辨率為320×240 的液晶屏,并使用ILI9341芯片控制液晶屏。

            液晶屏的控制芯片電路非常復雜。GRAM 中一個存儲單元對應顯示屏的一個像素點。芯片內部有電路把GRAM存儲單元的數(shù)據轉化成液晶屏的控制信號,使每個點呈現(xiàn)特定的亮度和顏色,而這些點組合起來則成為顯示界面。ILI9341 里有主要配置引腳和控制信號線,可以根據它的設置使芯片工作在不同的模式;使用8080 接口或SPI接口與MCU 進行通信;使用8080 接口的什么模式。MUC通過SPI或8080接口與ILI9341進行通信,從而訪問它的地址計數(shù)器(AC)、控制寄存器(CR)、GRAM及一個LED 控制器。LCD本身不會發(fā)光,它需要借助背光源才實現(xiàn)顯示功能,LED控制器就是用來控制液晶屏模塊中發(fā)光二級管的背光源。LI9341使用8080通信時序工作,ILI9341的8080接口有5條控制信號線:寫使能信號線WRX,讀使能信號線RDX,復位信號線RESX,片選信號線CSX,區(qū)分數(shù)據和命令信號線D/CX.除了控制信號,還有數(shù)據信號線。

            3 總體方案的硬件設計

            本文以STM32F103VE 芯片的FSMC接口連接RGB接口數(shù)字屏,并利用DMA 從片外FLASH 讀取顯示數(shù)據。DMA即直接內存存取,CPU只需配置DMA相關的寄存器后,DMA 控制器就會自動將數(shù)據從一個地址傳送到另外一個地址,不占用CPU 時間。本文采用STM32F103VE 芯片外部連接FLASH 用作顯存,其整體硬件方案如圖1所示。

            

            由于圖片的數(shù)據太大需要外接FLASH存儲器用來存儲圖片數(shù)據,電路如圖2 所示。

            

            本設計使用的AT25DF041A芯片是一個串行接口的閃存設備,靈活的架構AT25DF041A擦掉、消除粒度小至4 KB,使它非常適合數(shù)據存儲,不再需要額外數(shù)據存儲E2PROM設備。

            4 軟件設計

            本設計的軟件主要有硬件層配置和顯示驅動函數(shù)。硬件層配置主要是對STM32 的I/O 口的輸入/輸出和FSMC 相關的寄存器配置。顯示驅動函數(shù)主要是向TFT彩屏發(fā)送控制命令和數(shù)據,另外還有一些簡單的畫圖函數(shù)。

            4.1 FSMC簡介

            FSMC是靈活靜態(tài)存儲控制器。STM32芯片可利用FSMC 控制NOR FLASH、PSRAM 和NAND FLASH 存儲芯片[3]。這里,只使用FSMC 的NOR/PSRAM 模式控制LCD,所以只需分析NOR FLASH 控制信號線部分。

            STM32 尋址空間的地址映射中的0×60000000 ~0x6FFFFFFF 是分配給PSRAM、NOR FLASH 這類可直接尋址的器件。當外部接了NOR FLASH,并且FSMC外設被設置為正常工作,當向0×60000000 地址寫入數(shù)據0xFFFF,F(xiàn)SMC會自動把數(shù)據轉化成各信號線上相應的電平信號寫入數(shù)據。

            4.2 用FSMC模擬8080時序

            FSMC寫NOR 時序跟8080接口的時序是十分相似的,對它們的信號線對比如表1所示。

           

            為了模擬出8080 時序,把FSMC 地址線中的A0 連接8080的DCX,當A0為低電平時,數(shù)據線D[15:0]的信號會被理解為ILI9341命令,若A0為高電平時,傳輸?shù)男盘杽t會被理解為數(shù)據。所以傳送數(shù)據時只需向地址為0x6xxxxxx1,0x6xxxxxx3,0x6xxxxxx5 這些奇數(shù)地址寫入數(shù)據,此時地址線A0(D/CX)會為高電平;需要發(fā)送命令時向0x6xxxxxx0,0x6xxxxxx2,0x6xxxxxx4 這些偶數(shù)地址寫入數(shù)據時,地址線A0(D/CX)會為低電平,這個數(shù)據會被理解為命令。在代碼中利用指針變量,向不同的地址單元寫入數(shù)據,就能夠由 FSMC 模擬出8080 接口向ILI9341寫入控制命令或GRAM的數(shù)據了。



            4.3 部分代碼設計

           ?。?)初始化液晶屏

            初始化液晶屏是對液晶控制器ILI9341 用到的I/O口、FSMC 接口進行初始化,并且向該控制器寫入了命令參數(shù),配置好LCD液晶屏的基本功能。除了復位、背光用的PD11和PD0設置為通用推挽輸出外,其他的與FSMC 接口相關的控制信號、地址信號、數(shù)據信號的端口全部設置為復用推挽輸出。代碼如下:

           

           ?。?)初始化FSMC模式

            LCD_Init()函數(shù)調用LCD_FSMC_Config()設置FSMC的模式使它模擬出8080接口,函數(shù)主要作用是設置各個信號的產生時間,使FSMC接口的時序與8080接口匹配。LCD_FSMC_Config()設置FSMC模式的代碼如下:

            

           

           

            以上主要使用FSMC_NORSRAMInitTypeDef類型的結構體和 FSMC_NORSRAMTimingInitTypeDef類型的結構體對FSMC 進行配置。第一種類型結構體主要配置存儲器類型,數(shù)據寬度等用于NOR FLASH 的模式配置;另一種類型結構體用于配置FSMC 的NOR FLASH模式下讀/寫時序中的地址建立時間、地址保持時間等。

           ?。?)FSMC模擬8080讀/寫參數(shù)、命令

            初始化完成FSMC 接口后,就可以使用FSMC 向ILI9341發(fā)送數(shù)據了。在LCD_Ini(t )中調用Lcd_init_conf()函數(shù)向ILI9341寫入一系列的控制參數(shù):

            

            限于篇幅,以上只是該函數(shù)其中的一部分,省略部分的代碼只是寫入的參數(shù)和命令有些不一樣,這些命令和參數(shù)設置了像素點顏色格式、屏幕掃描方式、橫屏/豎屏等初始化配置,可以從ILI9341的datasheet命令列表中查到這些命令的意義。函數(shù) LCD_ILI9341_CMD()的作用是寫入命令,函數(shù)LCD_ILI9341_Parameter()的作用是寫入命令參數(shù)。

            5 結語

            本文對基于STM32的TFT液晶顯示模塊的驅動方法進行了探討,設計的硬件電路和軟件能對顯示控制芯片ILI9341進行有效的控制,所有程序均在STM32系列的軟件編譯環(huán)境下調試通過。經實際證明,本方案是可行的,能保證320×240 點陣的TFT 刷新率,且留有足夠CPU時間給用戶程序。其硬件電路結構簡單、控制方式靈活、對于其他型號的接口芯片也有參考價值。(作者:湯莉莉,黃偉)



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();