概述
目录
一、LCD液晶显示屏
(一)显示屏详解示意图
二、硬件准备
(一)屏规格书
(二)驱动主板
(三)屏线
(二)屏规格书(DV490FHM-NV4)----(软件配置部分)
(1):开关机时序
(3):屏的Timeing参数(配屏重要参数)
三、软件准备
(一)定义一个新枚举类型的屏参
(二)添加/导入新屏的参数(规格书)
(1):参考结构体类型定义
(三)软件选择新的屏型号
(四)make编译/升级点屏
一、LCD液晶显示屏
(一)显示屏详解示意图
参考博客:显示屏原理
Hor.Sync:一个行同步信号,代表一行像素。 |
Ver.Sync:一个场同步信号,代表一帧画面。 |
VW:VerticalSync Width(垂直同步信号宽度) |
有效像素:正常看到的显示画面,也叫有效数据。 |
Hact:Horizontal Active(屏分辨率的宽:1920) |
Vact:Vertical Active(屏分辨率的高:1080) |
VBP:Vertical Back Porch(垂直后肩:垂直同步信号开始到第一行有效水平信号开始之间的无效行数) |
VFP:Vertical Front Porch(垂直后肩:最后一行有效水平信号后结束,到下一帧垂直同步信号开始之间的无效行数) |
VBlank:VW+ VBP+ VFP(垂直消隐)每次画完一帧有效图像之后,都要重新回到屏幕左上角准备画下一帧有效画面的第一行,这之间有一部分无效的行数叫做垂直消隐。 |
HW:HorizontalSync Width(水平同步信号宽度) |
HBP:Horizontal Back Porch(水平后肩:从水平同步信号开始,到一行有效像素开始之间的无效数据个数) |
HFP:Horizontal Front Porch(水平前肩:从一行有效数据结束,到下一行水平同步信号开始之间的无效数据个数) |
HBlank:HW+ HBP+ HFP(水平消隐)每一行的开始都是从左到右画像素,每画完一行有效像素,画下一行前要先回到左边并做好画下一行像素的准备,这之间有一部分无效的像素就是水平消隐。 |
Htotal = Hact + HBlank(行信号的全数据) |
Vtotal = Vact + VBlank(场信号的全行数) |
二、硬件准备
(一)屏规格书
从规格书所得:这是一款12V、1920x1080分辨率,8bit、两路LVDS、PWM调光方式的屏;
(二)驱动主板
点屏电压12V
(三)屏线
双8bit屏线
(二)屏规格书(DV490FHM-NV4)----(软件配置部分)
(1):开关机时序
结论:这部分的时序图,需要掌握看屏的开屏时序T2、T3、T7时间,以及关屏时序T8、T4时间。至于T1时刻则需要更改硬件,软件代码上是不可控的,T5时间基本是忽咧不看。
(3):屏的Timeing参数(配屏重要参数)
参数说明:
HTotal:一行总数据
VTotal:一帧画面总行数
HBlank:行信号的无效行数(无效数据)
VBlank:场信号的无效列数(无效数据)
H(Display Perriod / Active):屏宽分辨率(有效数据)----屏LVDS确定是2路通道,则该宽分辨率x2
V(Display Perriod / Active):屏高分辨率(有效数据)
DCLK:像素时钟
DCLK =Htotal×Vtotal×VFreq×Q
HTotal=屏宽分辨率(Display Perriod / Active)+行的无效数据(HBlank)
VTotal=屏高分辨率(Display Perriod / Active)+场的无效数据(VBlank)
三、软件准备
(一)定义一个新枚举类型的屏参
路径:devicepanelincludepanel.h
路径:devicepanelpanel.c
(二)添加/导入新屏的参数(规格书)
(1):参考结构体类型定义
结构体成员详解:
#define PanelName "屏的名字" //定义Panel的名字 |
#define PanelDither 0 //屏的bit数设置 |
#define PanelDualPort 0xff //通道设置(0:单口,0xff:双口) (一般查看规格书可以确定是否2路LVDS,Dual channel LVDS确定是2路通道) |
#define PanelSwapPort 0 //AB双口切换 (如果此屏为单口,则这个值一定要置0, 双口就无所谓) |
#define PanelSwapOddML 0 //高低位odd极性切换 #define PanelSwapEvenML 0 //高低位even极性切换 (参数不对,会出现蒙了一层沙的画面) |
#define PanelSwapOddRB 0 //红蓝odd极性切换 #define PanelSwapEvenRB 0 //红蓝even极性切换 (参数不对,会出现红色和蓝色颜色相反的画面) |
#define LVDS_TIMode 0xff //代表2种数据格式(0:JEIDA标准,0xff:VESA标准) (规格书没有标识,一般三星屏配JEIDA标准,其他厂家屏配VESA标准 ,设置不对会花屏) |
//LVDS的正负信号(即P/N信号)交换 |
#define PANEL_SWAP_PN 0 (根据硬件来配置,一般配置不对点不亮屏) |
//屏的时钟和极性,仅在TTL接口信号使用 |
#define PanelDClkDelay 8 |
#define PanelInvDE 0 |
#define PanelInvDClk 0 |
#define PanelInvHSync 0 |
#define PanelInvVSync 0 |
//屏相关电流选择 |
// driving current setting:0==>4mA, 1==>6mA, 2==>8mA ,3==>12mA |
#define PanelDCLKCurrent 1 // Dclk current |
#define PanelDECurrent 1 // DE signal current |
#define PanelOddDataCurrent 1 // Odd data current |
#define PanelEvenDataCurrent 1 // Even data current |
//开机时序 |
#define PanelOnTiming0 10 // time between |
#define PanelOnTiming1 30 //time between panel & data while turn on power |
#define PanelOnTiming2 250 //time between data & back light while turn on power |
//关机时序 |
#define PanelOffTiming1 300 //time between back light & data while turn off power |
#define PanelOffTiming2 40 //time between data & panel while turn off power |
#define PanelOffTiming0 1100 // time between |
#define PanelHSyncWidth 40 //行同步信号的宽 |
#define PanelHSyncBackPorch 40 //行同步信号的后肩 |
#define PanelVSyncWidth 6 //场同步信号的宽 |
#define PanelVSyncBackPorch 21 //场同步信号的后肩 |
#define PanelHStart (PanelHSyncWidth + PanelHSyncBackPorch) //行有效信号的开始 |
#define PanelVStart (PanelVSyncWidth + PanelVSyncBackPorch) //场有效信号的开始 |
#define PanelWidth 1920 //分辨率宽,(960x2=1920) |
#define PanelHeight 1080 //分辨率高 |
#define PanelHTotal 2100 //一行总数据,(1050x2=2100) |
#define PanelVTotal 1130 //一帧总行数 |
#define PanelMaxHTotal 3356 //HTotal最大值,(1678x2=3356) |
#define PanelMinHTotal 2000 //HTotal最小值,(1000x2=2000) |
#define PanelMaxVTotal 1836 //VTotal最大值 |
#define PanelMinVTotal 1094 //VTotal最小值 |
#define PanelDCLK 142 //时钟,(71.2x2=142) |
#define PanelMaxDCLK 180 //时钟最大值,(90x2=180) |
#define PanelMinDCLK 108 //时钟最小值,(53.7x2=108) |
参数说明:上述所提及屏规格书的参数一一导入①-⑤相应的位置;
(三)软件选择新的屏型号
(四)make编译/升级点屏
最后
以上就是多情睫毛膏为你收集整理的第二课:Mstar-Non-OS方案(二)——驱动LVDS显示屏 一、LCD液晶显示屏二、硬件准备 三、软件准备的全部内容,希望文章能够帮你解决第二课:Mstar-Non-OS方案(二)——驱动LVDS显示屏 一、LCD液晶显示屏二、硬件准备 三、软件准备所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复