在設計TFTLCD液晶硬件驅動電路的時候,我們會發現TFTLCD裸屏(買來的最初元件)的接口並非相似,所以導致驅動電路設計需要有些差別。
TFTLCD液晶的本質
本質就是點陣。
TFTLCD驅動電路的任務
點陣要想顯示圖形,就需要不斷的掃描。所謂的驅動電路,完成的工作就是不斷的掃描LCD,通常幀率都在30~60Hz上才能使人看不到屏幕的抖動。
MCU發送顯示內容到驅動電路上,然后驅動電路再將這些數據不斷的掃描到顯示器上完成顯示。由此可見,驅動電路都必須具有緩沖區,以緩存顯示內容。當然緩沖區越大,通常對應的屏幕儲存越大或者支持的虛擬頁顯示越多。
一言以蔽之,驅動電路的任務就是接收MCU的顯示數據,然后以足夠的幀率在屏幕上掃描顯示。
市場上買來的裸屏之間的區別
市場上買來的3.2寸左右的小屏通常都是帶有驅動芯片,比如說ili9341之類的,驅動芯片包含緩沖區和掃描顯示電路。對於用戶來說,不需要額外的驅動電路。這類屏幕提供的接口,有SPI/RGB/8080CPU,不同的接口可以使用不同檔次的MCU來控制。SPI可以使用51單片機來驅動,8080CPU接口可以使用stm32來驅動,RGB接口可以看使用本身具有LCD驅動電路的S3C2440來驅動。
市場上買來的4.3寸以上的裸屏,通常是不提供驅動芯片的,也就意味着驅動電路需要用戶自己設計,常用的驅動芯片有RA8875等。大屏幕提供的接口與小屏幕提供的還是有區別的,我用的TQ2440開發板上所帶4.3寸屏幕是RGB接口。
ili9341與LCD接口和S3C2440與LCD接口的對比
可見ili9341驅動的3.2寸LCD,它與驅動芯片的接口是S720~S1和G320~G1,就是利用這些控制線對LCD進行掃描。S3C2440直接驅動的4.3寸LCD,它對外的接口是RGB接口,利用RGB接口對LCD進行掃描(與攝像頭接口類似,分幀同步信號、行同步信號、像素時鍾、數據線)。
更新緩存的頻率和掃描顯示的頻率
在我們觀看一個視頻的時候,視頻幀需要以一定的頻率寫入到顯存(可以認為是驅動芯片的緩沖區)中,而緩沖區的內容到屏幕上顯示還有一個掃描頻率,這兩個是不同的。掃描刷屏的頻率在30~60Hz范圍上,而視屏流到顯存的頻率應該刷屏的頻率低,因為過高的頻率,刷屏也顯示不出來。
S3C2440接帶ili9341的LCD屏
ili9341接STM32用的是8080CPU接口,而接S3C2440的LCD控制器應該用RGB接口。這中間其實有些古怪,S3C2440的LCD控制器會不斷地把自己的顯存刷新到ili9341的顯存,ili9341再把自己的顯存刷新到LCD上。當然這個ili9341其實有點多余了。