草庐IT

LCD驱动电路

Witty_Hou 2023-12-15 原文

原理:LCD屏幕的背光亮度取决于流过背光板LED的电流,因此LCD屏幕需要选取一个恒流源芯片来为背光板提供电压和电流。市面上有很多恒流源芯片,本文根据最近学习的资料,以两款芯片为例进行展开。芯片:FP6755和RT9293

恒流控制原理:以最简单的三极管构成的恒流回路为例,做一个分析介绍。

        上图所示的三极管电路就是一个最简单的恒流电路,基极电压A大于三极管的导通电压,那么B点电压就被钳位在A点电压减去三极管的导通压降,那么流过接地电阻的电流就是确定的,以图示为例,B点电压为1V,那么流过接地电阻的电流就是1mA,三极管导通,流过负载的电流就被限定在1mA。

FP6755和RT9293的恒流原理:

 

        这两款芯片在外部对输出电流的控制,采取的方法是一样的,都是确定一个反馈电阻,在确定好RSET的阻值之后, 控制反馈电阻上端的电压就可以控制流过LED的电流。

ILED = VSET/RSET

FP6755和RT9293均有两种可以选择的PWM接入方法:

1.PWM接入EN引脚

 2.PWM接入FB引脚

 

         经过验证,这两种方式都可以控制背光板的亮度,并且在PWM频率大于1KHz的时候,肉眼看不出两种调光方式的区别。

接下来分析一下两款芯片采用不同方式时的调光原理:

1.FP6755采用EN引脚接入PWM调光:

数据手册:网页直接搜索FP6755就可以找到       

       首先看一下数据手册给的介绍,FP6755在EN引脚调光时,是通过控制芯片整体的通断,在芯片启动时,输出最大电流(full current),在芯片关闭时,输出0电流。这样处理的目的是为了调光的时候,不改变LED的颜色。最大电流值决定了,屏幕的最高亮度,最高亮度如果太低,就会导致屏幕的对比度变差,低亮度是就会出现雪花屏,DC调光低亮度画质变差就是这个原因导致的。

此处涉及一些色阶的知识,如果不理解需要自行去补充一下,可以看一下这个博主的关于灰阶的分析。

参考文章:

显示杂谈(5)-DC调光与PWM调光 - 知乎 (zhihu.com)

显示杂谈(2)为啥选择gamma2.2 - 知乎 (zhihu.com)

        按照数据手册的介绍,EN引脚接入PWM波时,芯片是通过控制一个周期内的最大电流输出占空比来调节电流直流有效值,这种控制方式的好处是低频PWM时,会出现大电流来确保LED不变色,但缺点也很明显,低亮度下会出现频闪现象,PWM频率在300Hz以下可能会造成头晕。

实测数据:

PWM-60Hz 

PWM-300HZ

PWM-1KHz

 PWM-5K

PWM-10KHz

PWM-50KHz

         该方式调光的理论计算公式为:

ILED = VSET * D(占空比)/RSET

        FP6755的反馈电压标准值为195mV,因此占空比设置为50%时,输出电流的理论计算值为59.1mA,但是根据实测结果来看,在PWM频率比较低时,存在较大的偏差,整体偏大。但就控制效果来讲,PWM频率超过300Hz,肉眼已经看不到闪烁,并且调节占空比也有比较明显的亮度变化。不追求精确控制,只是为了调节背光亮度,该方式控制效果已经足够满足需求。

        此外,数据手册给出的控制方式解释就是电流在最大值和零之间跳变,但由于输出电容COUT的存在,当PWM频率足够高时,电容的充放电时间不够,电压就变化比较小,最后趋于一个直流稳定值,也就失去了它描述的在不影响LED颜色的前提下调光的优点。

2.RT9293采用EN引脚调光

数据手册:RT9293 (ETC) PDF技术资料下载 RT9293 供应信息 IC Datasheet 数据表 (1/14 页)-芯三七 (ic37.com)

         根据数据手册的介绍可以看出,RT9293的EN引脚控制与FP6755的原理有所差别,9293是通过改变内部的参考电压来控制外部反馈电压的稳定值,参考值的设定为:

VA = 300mV*D

        最后流过LED的电流计算和FP6755的计算公式类似,都是:

ILED = VSET * D(占空比)/RSET

        但有一个关键点是,RT9293的VA是经过一个推挽结构,将外部输入的PWM转换为同频同占空比的高电平为300mV的PWM波,然后经过一个低通滤波器,得到参考值VA,这样就存在一个问题,如果PWM频率过低,数据手册给定的限制为500Hz。低于这个值时,VA就是一个上下波动的值,输出电流就会上下波动,大于500Hz,VA就可以被视为一个DC值,输出电流则稳定。但是实际使用过程,并没有用到这个芯片,所以也没有对应的实测数据,如果后续测试,会加以补充。

3.FB引脚调光

        无论是FP6755还是RT9293,在采用FB引脚接入PWM波调光时,他们的实际控制思路是一样的,因此不对芯片做区分,拿FP6755为例,做一个分析。FB引脚接入PWM时,需要用一个低通滤波器将PWM波转成直流信号,然后接入通过一个电阻接入FB引脚,实现对VSET的控制。

 

         输出电流公式如上图所示,乍一看可能比较难理解,因此对这个公式进行一个分部分析。首先需要关注三个点的电压,分别是PWM的直流滤波值PWM(DC)、反馈引脚电压VFB和反馈电压VSET,其中VFB是由芯片内部决定的,EN常ON,所以FP6755的VFB就等于195mV,是一个定值。我们默认PWM频率远大于低通滤波器的截止频率,那么PWM(DC)也是一个稳定的直流量。这样,R4的电压差固定,那么经过R4的电流就是一个固定值,由于芯片FB引脚不需要电流,可以视为虚断,那么电流全部流过R3,就可以得到VSET = VFB - IR4*R3,这样就可以求得上方的电流计算公式。

        方便起见,以便电阻的设定值都比较大,以减小电压波动对输出电流的影响,并且一般设计的时候,R3和R4阻值相等,这样可以简化计算公式。

实际电路:

 实测数据:

PWM-60Hz 

PWM-300Hz

PWM-1KHz

PWM-5KHz

 

PWM-10KHz

PWM-50KHz

        根据实测的数据可以看出:

        1.黄色线条为PWM的直流波形,PWM频率较低时,低通滤波器的特性不够好,无法将PWM处理成一个稳定的直流值,因此,电压足够高时,带入上面的公式就会出现0电流的现象。但随着PWM频率增大,PWM直流值逐渐稳定,电流的断续现象消失,屏幕上就不会出现条纹。

        2.电流在高频下依旧出现了周期性的波动,是因为FP6755的SW引脚在不断控制电感的充放电,频率为1.3MHz,进而输出电流就有了1.3MHz的周期性变化,但这个波动,在PWM频率超过300Hz时,就已经肉眼不可见了。

        3.FB引脚调光时,占空比与输出电流的对应关系呈现非常好的线性关系,并且线性程度与PWM频率无关。

实验数据分析:

         结论:

        1.FP6755芯片EN引脚调光时,输出电流与PWM占空比的线性关系受到PWM频率的影响,低频时线性程度较差,并且输出电流上移,但频率大于300Hz的实测结果效果也相对较好,但如果是对PWM调光敏感人群,建议PWM频率最好大于5KHz,此时的实测效果在1/320的快门速度下,拍不到屏幕有亮度变化,一般来说,不会出现屏幕亮度变化造成的头晕现象。

        2.上述现象的对比试验未进行测试,同时也未向生产厂商确认是否低频PWM会出现线性程度差和偏移现象。如果后续使用RT9293做对比试验,或向厂商确认,会在本文进行更新。

        3.FB引脚接入PWM波,控制效果比EN引脚更好,并且能在相对更低的PWM就实现屏幕不闪烁,但这种调光方式会降低最大电流值。那么在低亮度情况下,就容易出现最大亮度不足导致的色彩对比度不足的现象,该现象可以类比DC调光。由于实测时只对亮度进行了评测,没有对输出画面进行严密的对比,也没有对多色彩画面进行多组比较。因此,此处得到的结论仅仅从屏幕显示白色时的亮度和实际显示效果进行对比。

        4.两种调光方式都可以较好地控制屏幕亮度,具体选择需要根据实际需求进行比较,并且在PWM频率大于300Hz之后,实际调光过程中,肉眼难以辨别。

实际拍摄的视频可以从该链接获取:

链接:https://pan.baidu.com/s/1BULrFyJUCX1Ym2kaI8oKDQ 
提取码:qz07

 

 

 

 

有关LCD驱动电路的更多相关文章

  1. ruby-on-rails - 如何在 Ruby on Rails 中实现由 JSF 2.0 (Primefaces) 驱动的 UI 魔法 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。问题1)我想知道ruby​​onrails是否有功能类似于primefaces的gem。我问的原因是如果您使用primefaces(http://www.primefaces.org/showcase-labs/ui/home.jsf),开发人员无需担心javascript或jquery的东西。据我所知,JSF是一个规范,基于规范的各种可用实现,prim

  2. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  3. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  4. ruby - 运行测试时静音 Chrome 驱动程序控制台输出 - 2

    我使用的是最新版本的Chrome(32.0.1700.107)和Chrome驱动程序(V2.8)。但是当我在Ruby中使用以下代码运行示例测试时:require'selenium-webdriver'WAIT=Selenium::WebDriver::Wait.new(timeout:100)$driver=Selenium::WebDriver.for:chrome$driver.manage.window.maximize$driver.navigate.to'https://www.google.co.in'defapps_hoverele_hover=$driver.find_

  5. node.js - 从未编写过任何自动化测试,我应该如何开始行为驱动开发? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。多年来,我一直在使用多种语言进行编程,并且认为自己总体上相当擅长。但是,我从未编写过任何自动化测试:没有单元测试,没有TDD,没有BDD,什么都没有。我已经尝试开始为我的项目编写适当的测试套件。我可以看到在进行任何更改后能够自动测试项目中所有代码的理论值(value)。我可以看到像RSpec和Mocha这样的测试框架应该如何使设置和运行所述测试变得相当容易

  6. ruby-on-rails - 在 Rails/Capybara/Poltergeist 规范中使用 url_for 将驱动程序发送到 example.com 而不是应用程序 - 2

    如果我在功能规范中调用url_for,它会返回一个以http://www.example.com/开头的绝对URL.Capybara会很乐意尝试加载该站点上的页面,但这与我的应用程序无关。以下是重现该问题的最少步骤:从这个Gemfile开始:source'https://rubygems.org'gem"sqlite3"gem"jquery-rails"gem"draper"gem"rails",'4.1.0'gem"therubyracer"gem"uglifier"gem"rspec-rails"gem"capybara"gem"poltergeist"gem"launchy"运行

  7. 1个串口用1根线实现多机半双工通信+开机控制电路 - 2

    功能需求:主机使用一个串口,与两个从机进行双向通信,主机向从机发送数据,从机能够返回数据,由于结构限制,主机与从机之间只有3根线(电源、地、数据线),并且从机上没有设物理的电源开关,需要通过与主机连接的数据线来控制开机,总结如下:1、数据线只有1根2、能够双向通信3、主机能够控制从机开机4、主机可以单独向1个从机发数据,也可以同时向两个从机发送数据根据需求,设计出如下电路:工作原理分析:VCC_24V_IN、GND、LINE_L(LINE_R)三根线接线连接到从机,电源开启电路是从机内部的电源控制。开机的逻辑:*主机先上电,LINE_L因为主机的R1上拉而有高电平,使Q6导通,Q5的G极电压被

  8. 驱动开发:内核无痕隐藏自身分析 - 2

    在笔者前面有一篇文章《驱动开发:断链隐藏驱动程序自身》通过摘除驱动的链表实现了断链隐藏自身的目的,但此方法恢复时会触发PG会蓝屏,偶然间在网上找到了一个作者介绍的一种方法,觉得有必要详细分析一下他是如何实现的进程隐藏的,总体来说作者的思路是最终寻找到MiProcessLoaderEntry的入口地址,该函数的作用是将驱动信息加入链表和移除链表,运用这个函数即可动态处理驱动的添加和移除问题。MiProcessLoaderEntry(pDriverObject->DriverSection,1)添加MiProcessLoaderEntry(pDriverObject->DriverSection,

  9. ruby - 事件/观察者驱动的 Ruby on Rails - 2

    我有一个适用于事件/监听器模型的应用程序。发布了几种不同类型的数据(事件),然后许多不同的事情可能需要也可能不需要对该数据(监听器)采取行动。监听器的发生没有特定的顺序,每个监听器将决定是否需要对事件采取行动。Rails应用程序有哪些工具可以完成此任务?我希望自己不必这样做(尽管我可以。这没什么大不了的。)编辑:观察者模式可能是更好的选择 最佳答案 查看EventMachine.它是一个非常流行的Ruby事件处理库。它看起来相当不错,而且很多其他库似乎都在利用它(Cramp)。这是一个很好的介绍:http://rubylearnin

  10. AT24C04、AT24C08、AT24C16系列EEPROM芯片单片机读写驱动程序 - 2

    一、概述在之前的一篇博文中,记录了AT24C01、AT24C02芯片的读写驱动,先将之前的相关文章include一下:1.IIC驱动:4位数码管显示模块TM1637芯片C语言驱动程序2.AT24C01/AT24C02读写:AT24C01/AT24C02系列EEPROM芯片单片机读写驱动程序本文记录分享AT24C04、AT24C08、AT24C16芯片的单片机C语言读写驱动程序。二、芯片对比介绍型号容量bit容量byte页数字节/页器件寻址位可寻址器件数WordAddress位数/字节数备注AT24C044k5123216A2A149/1WordAddress使用P0位AT24C088k1024

随机推荐