LVDS接口液晶屏点屏流程
使用MStar的TSUM系列的芯片,主要是用来驱动LVDS的屏。
在硬件设置无误的情况下(屏开关口、屏电压、PWM等),按照屏规格书上的参数配置屏参,就可以完成点屏了.大概分为几个步骤,确定屏供电电压,Panel时序设置,H/VTotal设置,Clock设置,H/VSync设置,Bit设置,刷新率设置。
1.确定屏的供电电压
在点屏之前最重要的一步,就是确定屏电压是多少伏,即我们要点的屏是多少伏的,是否和硬件主板上匹配,如果硬件12V,屏5V,就会烧屏。一般屏规格书上可以查到。
注意:屏供电电压,和屏背光电压是两个不同模块。
2.Panel时序设置
PANEL开机步骤:先开启PANEL供电,后传送PANEL DATA,最后点亮灯管;关机时序则相反。其DELAY时间由MCU软体设定,若时间设定不好则出现瞬间白画面或画面。
以显示LOGO为例,先开屏,delay,送LOGO,此时用户看到的是黑的,因为没开背光,然后等LOGO稳定后,开背光,就可看到LOGO了。
T2是T-con上电到LVDS data输出的时间,T3是LVDS data输出到背光开启的时间,而T4和T5是T2和T3对应的掉电时序,T7是T-con重复上电的间隔时间。 屏的LVDS时序较为关键,设置不当会出现花屏及闪绿屏等问题,
具体各参数的设定值需参考屏规格书。
背光电源通常就是TV的主电源,主电源开启后,机芯需要进行一系列的初始化的操作,所以T2一般都可以满足要求。背光时序通常需要结合LVDS时序使用,而且它们有一个共同的参数---背光开关信号、这时T3需要做合理的安排,以确保背光开关信号能同时满足LVDS时序及背光时序要求。
屏上电掉电时序图如下(来自屏规格书):
软件设置如下:
#define PanelOnTiming1 50// time between panel & data while turn on power
#define PanelOnTiming2 550 // time between data & back light while turn on power
#define PanelOffTiming1 150// time between back light & data while turn off power
#define PanelOffTiming2 30// time between data & panel while turn off power
如果开机时,出现闪白线,可以考虑在屏规格时序内,增大PanelOnTiming2时间;另外,如果是用恒流板供电的话,也出现开机闪白线,也可以考虑增大PanelOnTiming2 时间就可以解决.
补充一下开屏流程:

3.H/V Total的设置
注意,根据屏是单通道还是双通道,HTotal和Clock要相应的乘以2,双通道:HTotal和Clock乘以2,单通道,不乘以2.
(1).如何区分单通道和双通道,一般屏规格书上有写


软件设置:根据是双通道还是单通道,屏参里有一个define要设置成0或者0xFF、
#define PanelDualPort 0xFF // 双通道为0xFF,单通道为0
(2).H/VTotal参数设置
以双通道的FHD(1920*1080)分辨率的屏为例,屏规格书如下:

软件设置:
#define PanelWidth 1920
#define PanelHeight 1080 #define PanelHTotal 2100
#define PanelVTotal 1130 #define PanelMaxHTotal 2200
#define PanelMinHTotal 2088 // miniHTotal要先乘以2,再+20,为什么加20,后面讲 #define PanelMaxVTotal 1818
#define PanelMinVTotal 1092
**关于miniHTotal为什么加20的解释:
PanelMinHTotal的设定要求Panel最小的Htotal加上20。屏有很多分辨率,尽量满足Panel的不同的特性,把MinHTotal按照PanelMinHTotal来设定。会把Panel能承受的最小的范围当作中间点来设定,在设置的值恰好到最小承受范围的情况下,如果有一点偏差,Panel就会出现异常,所以要加20。
注意:PanelHSyncWidth+PanelHSyncBackPorch+PanelWidth<PanelMinHTotal
改miniHtotal会增大Clock
(3).Clock设置
单通道Clock不乘以2,双通道要乘以2,这里以双通道为例,屏规格书如下

软件设置:
#define PanelDCLK 142
#define PanelMaxDCLK 188
#define PanelMinDCLK 113
DClock=HTotal×VTotal×VFreq×Q,Q为放大系数
4.H/VSync的设置
其中,H/VSync的意思做下解释
(1).前肩(Front Porch)/后肩 (Back Porch) :行同步或场同步信号发出后,视频数据不能立即使能,要留出电子枪回扫的时间。以行扫描为例,从HSYNC结束到DE开始的区间成为行扫描的后肩(绿色区域),从DE结束到HSYNC开始称为前肩(紫色区域)。同样对于场扫面也可以由类似的定义。
(2).行同步(HSYNC):行同步就是让电子枪控制器知道下面要开始新的一行像素
(3).场同步(VSYNC: 场同步就是告诉电子枪控制器下面要开始新的画面
其中,H/VSync 这些参数一般不改,但是只要满足PanelHSyncWidth+PanelHSyncBackPorch+PanelWidth<PanelMinHTotal就可以。其中,Blanking=FrontPorch + Sync + BackPorch
VESA表中,H/VSync如下,H/V上一帧画面:
(4)水平消隐(HBlank):电子枪从左到右画出象素,它每次只能画一条扫描线,画下一条之前要先回到左边并做好画下一条扫描线的准备,这之间有一段时间叫做水平消隐(HBlank)。
(5)垂直消隐(VBlank):在画完全部256条扫描线之后它又回到屏幕左上角准备下一次画屏幕(帧),这之间的一段时间就是垂直消隐(VBlank)。电子枪就是在不断的走‘之’字形。
(6)数据使能(DE): 在数据使能区是有效的色彩数据,不在使能范围内的都显示黑色。
软件设置:
#define PanelHSyncWidth 35
#define PanelHSyncBackPorch 40 #define PanelVSyncWidth 6
#define PanelVSyncBackPorch 20 #define PanelHStart (PanelHSyncWidth+PanelHSyncBackPorch)
#define PanelVStart (PanelVSyncWidth+PanelVSyncBackPorch)
5.Bit设置,屏是8Bit还是6Bit
般屏都是6BIT(屏规格书最上面的介绍会有)。如果是8bit可以显示0~255灰阶,如果是6bit只有0~63),但是我们的PanelDither 写成8,因为有FRC抖色可以实现假8bit,硬件上省成本。

软件设置:
#define PanelDither 8
关于8Bit的解释:bit代表的还是计算机二进制中的基本单位,而二进制信息是由0和1组成的,而我们假设小谨做的显示器是2bit面板时,表示显示器的像素点只能识别1位信息。那么这个像素点可以展现的信是“00”“01”“10”和“11”四种,那么这个像素点可以显示4(2^2)种颜色。同理,显示器如果是8Bit,那么总共可以显示2的8次方=256种颜色。但是每个像素点都是RGB色组成的,于是8bit最终将能展现256×256×256=16777216种颜色。
FRC抖色简单理解:有时候为了提高性价比,屏只有6bit+FRC,然后利用scaler实现8bit的效果。这样与8bit屏的效果有一定的差距,但是性价比高。比如我们要显示255灰阶(白场)时,但是我们6Bit,达不到,所以做法是,在最白和最黑之间抖动,类似PWM波形,但是白的波形宽度长一些,所以在视觉看来是全白的。
6.屏的刷新率设置
屏的刷新率是指,一秒钟刷新多少次,比如60Hz刷新率就是一秒钟刷新60次
从屏规格书上可以看到屏和最大,最小及合适的刷新率
软件设置:
#define PanelMaxVfreq (750+15) // 75Hz
#define PanelMinVfreq (500-15) // 50Hz
至于刷新率为什么是看VFreq可以看上一篇转载的博客:LCD显示的一些基本概念以及DSI的一些clock解释
这篇博客介绍比较详细。附上链接:https://blog.csdn.net/cswuhsdaz/article/details/95231752
因为我们的屏是“之”字形扫描,从上到下,并且是逐行扫描方式,也就是常说的p信号,所以刷新率就是1秒钟扫描次数,即VFreq。
7、LVDS驱动电流
因LVDS接口实际是差分信号接口,调整差分信号的电流会影响LVDS信号输出的幅度。不同的屏因为匹配阻抗略有差异,同样的驱动电流,LVDS输出的幅度也不一样。当LVDS的输出幅度过小或过大时,画面会出现闪黑屏、闪彩点的现象。有时LVDS输出幅度设置不当时,在画面上并没有太明显的表现。这个需要做进一步的眼图测试,测试不合格时,需要软件调整驱动电流来满足要求。
8.屏参参数解释(也是自己琢磨的,可能不太准确,有好的理解的可以留言补充,共同学习)
LVDS_TIMode:具体含义不太懂,解决问题看上面,画面花屏,可以试下这个
PanelDualPort:屏的通道 0:单通道, 0xff:双通道
PanelSwapPort:交换位选择,数据口,有时候硬件layout板子时候,可能屏端接口和板子端接口是反的,也会出现屏点不亮,可以反一下PanelSwapPort,
PanelHTotal:单位时间行扫描的次数,参考屏规格书来。此值非常关键,常影响屏的显示效果,如上下缺线、白屏、闪动、VGA 某些模式拉丝、OSD 底部显示缺边等都可以调它
PanelVTotal:单位时间列扫描的次数
PanelHSyncWidth和PanelVSyncWidth:同步信号的行宽、列高。有时候图象只显示了一半,就可以调这两个,V方向和 H 方向
LVDS接口液晶屏点屏流程的更多相关文章
- 液晶屏MIPI接口与LVDS接口区别(总结)
液晶屏接口类型有LVDS接口.MIPI DSIDSI接口(下文只讨论液晶屏LVDS接口,不讨论其它应用的LVDS接口,因此说到LVDS接口时无特殊说明都是指液晶屏LVDS接口),它们的主要信号成分都是 ...
- LVDS接口分类,时序,输出格式
LVDS接口分类,时序,输出格式 2016年01月19日 16:57:35 打个飞机去美国 阅读数:24673 标签: LVDS液晶屏格式时序 更多 个人分类: 硬件基础 1.1.1 ...
- TTL以及LVDS接口传输【转】
本文转载自:http://blog.csdn.net/jscese/article/details/16860833 TTL接口:属于并行方式传输数据的接口,采用这种接口时,不必在液晶显示器的驱动板端 ...
- DXGI快速截屏录屏技术
DXGI快速截屏录屏技术 概述 很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等.在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套 ...
- Android 启动APP时黑屏白屏的三个解决方案
你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下.这里先了解一下为什么会出现这样的现象,其实很简单 ...
- html5+css3第一屏滚屏动画效果
详细内容请点击 在线预览立即下载 html5+css3第一屏滚屏动画效果. 转载自:http://tympanus.net/codrops/2014/05/22/inspiration-for-art ...
- Android 启动APP时黑屏白屏的三个解决方案(转载)
你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下.这里先了解一下为什么会出现这样的现象,其实很简单 ...
- ReactNative 常见红屏黄屏及终端报错
刚开始接触RN,总是会遇到各种红屏黄屏报错,红屏是fatal error(程序无法正常运行),黄屏是Warming(非致命错误,程序可以运行但是存在潜在问题可能在某些情况下将导致fatal error ...
- [转]C#API 实现锁屏+关屏
http://www.cnblogs.com/1971ruru/archive/2010/05/20/1740216.html public Form1( bool aLock ) { if (aLo ...
随机推荐
- Fiddler实现篡改接口请求和返回数据
步骤如下: 点击rules->Automatic Breakpoints,在这个选项下,我们可以看到三个可选项: Before Requests:在请求发出前拦截请求: After Reques ...
- 简要总结selenium四个工具组
selenium 是基于WEB的自动化测试工具. 由以下几个工具组组成 1.selenium IDE: 一个火狐插件 点击这个插件就进入录制界面,能够记录用户的操作,并且将其导出为可重复使用的测试脚本 ...
- Lexicographical Substring Search SPOJ - SUBLEX (后缀数组)
Lexicographical Substrings Search \[ Time Limit: 149 ms \quad Memory Limit: 1572864 kB \] 题意 给出一个字符串 ...
- 用于 Quinella/Exacta/Trifecta/Pick Four/Pick Six/Quaddie/Superfecta 7大规则的测试
上2篇给了详细API 设计,下面我们来模拟测试下: Quinella: self.bet_type = "Quinella" self.nraces = 1 self.horse_ ...
- 洛谷P2312 解方程题解
洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...
- 理解 IO_WAIT 并且了解利用包括 top htop iotop iostat 工具来查看 IO 性能
今天继续拜读「深入浅出计算机组成原理」专栏,觉得讲 IO_WAIT 这篇很有意思,正好可以结合前面的一篇讲物理硬件存速度的一块儿看. 现在我们看硬盘厂商出品的性能报告,通常会看到两个指标,一个是响应时 ...
- 数列分段II(信息学奥赛一本通 1436)(洛谷 1182)
[题目描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一数列4 2 4 5 1要分成3段 将其如下分段: ...
- lintcode-720重排带整数字符串
题目描述: 给一包含大写字母和整数(从 0 到 9)的字符串, 试写一函数返回有序的字母以及数字和. 样例 给出 str = AC2BEW3, 返回 ABCEW5字母按字母表的顺序排列, 接着是整数的 ...
- Golang 位向量
位图 位图(Bitmap)是通过一个 bit 来表示某个元素对应的值或者状态.它并不是什么新的数据结构.它的内容其实就是普通的字符串. 在redis中,我们可以通过 get/set 获取位图的内容,也 ...
- 微信小程序之上传图片(含前后端代码例子)
此代码示例,能够让你成功将图片上传至后端,后端做相应的处理,然后返回成功码. 前端小程序代码 index.wxml: <view class='content'> <view cla ...