基于嵌入式Linux的LCD背光調節及驅動的實現
LCD背光調節電路如圖2所示。本文引用地址:http://www.104case.com/article/149184.htm
圖2中ZXLD1100是一個電感式的PFM(Pulse Frequency Modulation)升壓轉換器,用于驅動白光LED。當LCD正常工作時,ZXLD1100的EN端被置高電平時,輸出端將得到驅動LCD背光源所需的工作電壓。將S3C2440的端口GPB1與ZXLD1100的使能端相連,通過PWM信號使能ZXLD1100,可以使LCD背光工作在較低的功率下。
圖2中按鍵S1_KEY用于調高背光亮度,S2_KEY用于調低背光亮度。S1_KEY和S2_KEY所用到的外部中斷分別是EINT0和EINT13。當按鍵按下時,系統根據傳入的按鍵編號控制GPB1輸出PWM信號占空比,由此完成了對設備背光的軟件控制,實現背光亮度的調節。
3 背光調節的軟件設計
背光調節的軟件部分主要是驅動程序的設計,設備驅動程序是連接硬件和操作系統內核的橋梁,它為應用程序屏蔽了硬件的細節,應用程序將使用統一的系統調用接口來訪問設備。Linux系統將設備分為3種基本類型,即字符設備、塊設備和網絡設備。本文涉及的背光驅動屬于字符設備驅動程序。采用Linux作為嵌入式操作系統,內核版本為Linux 2.6.32,根文件系統采用Yaffs2,應用程序采用了Busybox。背光驅動程序的工作流程框圖如圖3所示。
(1)當加載驅動時,調用初始化函數s3c_bl_pwm_init()。該函數會調用request_irq()函數來注冊中斷。request_irq()會操作中斷描述符數組button_irqs。中斷描述符數組的主要功能是記錄中斷號對應的按鍵編號和GPIO端口。
(2)當中斷到來時,會到中斷描述符數組button_irqs中查詢中斷號對應的按鍵編號。然后調用中斷處理函數等操作調節設備背光。
(3)當卸載驅動時,調用退出函數s3c_bl_pwm_exit()。該函數中會調用free_irq(),操作中斷描述符數組button_irqs,釋放設備所使用的中斷號并刪除對應中斷處理函數。
LCD顯示屏相關文章:lcd顯示屏原理
lcd相關文章:lcd原理
評論