基于嵌入式Linux的LCD背光调节及驱动的实现
LCD背光调节电路如图2所示。本文引用地址:https://www.eepw.com.cn/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原理
评论