linux驱动工程师成长之路(五)LCD背光控制RT9379B

本文深入解析手机背光的工作机制,包括背光与LCD屏的关系、背光亮度调节原理(PWM控制)、芯片RT9379B在背光控制中的作用以及如何通过代码实现亮度调整。解释了背光亮度等级设定与脉冲数量的关系,以及从代码控制到实际效果的对应逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老大说了,下周新的手机要回来了,用的是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,这样对应起来也就懂了,呵呵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值