RGB屏驅動
這里講下大致的流程,不作具體詳細代碼示例。
TFT LCD的屏幕驅動方式有很多種,以12864來說,一般是直接由SPI來操作屏的驅動IC,再來IC來負責驅動屏幕,還有一個驅動接口如8080或者6800,相對於SPI來說這兩種並口的數據處理方式會提高相應的數據傳輸速度,上述的接口都稱之為MCU接口。
MCU接口
驅動IC中會帶有一個數據存儲空間,稱為GRAM用於接收屏幕數據,再由驅動模塊將GRAM里面的數據更新到屏幕之上,一般GRAM不會太大,導致了MCU接口屏一般不會超過3.8寸,對大一些屏幕一般就不采用MCU接口了
RGB接口
RGB接口的驅動,屏幕沒GRAM這個存儲空間,而是使用系統內存作為其顯示的BUFFER,而且刷新速度遠高於MCU接口。對於STM32來說,配置好屏幕的BUFFER存儲空間與LTDC驅動模塊后,用戶只需要更新BUFFER中的數據,LTDC模塊會自動去更新屏幕。
RGB屏
- RGB屏顯示數據輸出是分為兩種模式的,一種是DE模式,由DE輸出高低電平控制;另一種是SYNC模式,由hsync與vsync輸出行場同步信號至RGB屏。該兩種模式由一個MODE腳進行選擇,為0 時選擇SYNC模式,為1時選擇DE模式。
通常選擇DE模式 - 幀率取60hz左右,幀數與分辨率就決定了LCD的最小PCLK的時鍾頻率,不過在屏幕的文檔里面都會提到這個數據,以800*480為例,大概在30MHZ左右。
- RGB屏數據管腳
LCD_CLK,LCD_HSYNC,LCD_VSYNC,LCD_DE為屏幕控制腳,
RGB數據線,根據不同的RGB格式選擇與之相對應RGB管腳不一定全部用到,
不同的屏幕管腳定義會有所不同,主要表現為電壓不同,及一些配置,如掃描方向等等。
RGB驅動的時序圖
這個時序圖中已經包含了DE與SYNC兩種模式的時序,而實際用的時候,只要使用其中一種模式的線的時序就可以達到驅動屏幕的效果
SYNC模式,由HSYNC與VSYNC來確定行與列的起始,再通過一些掃描前的准備與回掃操作來達到屏的驅動,這些具體的參數都是屏幕自己決定,在屏幕的文檔里面都會有相應的說明。
DE模式,直接由LCD_DE來決定數據是否有效,而通過時間間隔來確定行與列的起始,這里沒有找到相應的文檔來支持這個說法,但是在驅動時將HSYNC,與VSYNC兩根線都去掉的情況下還是可以正常使用來,可能可以側面驗證這個想法。
一個掃描周期包括一個起始的垂直同步信號,再包括相應行數的水平同步信號。同時兩者的信號時鍾單拉也是不一樣的,不過在配置的時候我們並不需要關心這個單元,把相應的值對照LCD的規格參數配置好就可以了。
以STM32F4為例配置
先是配置好相應的管腳,再配置LTDC將屏幕時序的參數配置進行,再配置BUFFER(由SDRAM或SRAM來存儲)的內存空間,以這樣的方式來驅動屏幕。
而屏幕的底層響應函數就是對BUFFER的賦值,而屏幕的刷新由硬件完成,且速度是固定的。
至於的代碼DEMO需要參考官方的例子