linux 背光驱动程序,Linux驱动工程师成长之路 LCD背光控制RT9379B

老大说了,下周新的手机要回来了,用的是400*800的屏,到时候就由我来调这个屏了。把屏的spec和背光的spec都给了我让我先看看。

以前分析了LCD(framebuffer)的驱动框架,但是对于背光还没有分析过,其底层到底是怎么工作都不知道。看了两天其间总是不能理解它是怎么工作的,到现在总算有了点感觉。

背光和LCD屏是两个独立的设备。背光也就是放在LCD屏后面的几个LED,LCD模组厂商将他们集成到一个块,从屏那一堆引出的管脚里面就有几个

是led的,如果将这几个相应的管脚接上正负极那背光就亮了。如何来调节这个背光的亮度呢?通过pwm,也就是时而上电时而断电,上电的时间越多(占空

比)也就是越亮。这很容易理解。为了帮助我们控制背光我们这里用了一个芯片RT9379B。从它的spec的 Typical Application

Circuit可以看出 从它的EN管脚输入pwm,然后它的LED管脚也就相应的输出pwm去控制屏上的led。

疑惑一:

一开始我认为需要在EN端不断的输入pwm,LED端才相应不断的输出pwm,但是从代码控制上来看,代码总是在输出了几个设置背光的pulse之

后就不再向EN输入pulse了。我当时就想不明白,为什么只输出几个pulse呢?死活想不通,去问了人,模模糊糊的知道了,原理在设置背光的时候只需

要输入你想要设置的等级的pulse个数,比如你要设置8级背光,就输入8个pulse,10级就输出10个pulse。这样之后芯片也就知道你所想要的

等级了,它就会自动去输出相应的pwm到屏上的led中。说得也是,如果不是这样还要你这个芯片干什么呢,我直接用io管脚模拟pwm不就得了。

疑惑二:

从代码控制上,背光越亮发送的pulse越少,从手机的实验结果也是这样。而我以前想当然的认为发送的pulse越多应该越亮。从spec上也没有

读出来如果控制亮度。从spec的Brightness Control里面有一句话是“the detail operation of

brightness dimming is showed in the figure 1”看了头天figure

1也都没看出来它表达个什么意思。后来和同事讨论一下终于明白它什么意思了。它的这个背光亮度分为32个等级,从那个时序图上可以看到脉冲1下面对应的就

是31/32,脉冲2下面对就的就是30/31,这样对应起来也就懂了,呵呵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值