我是靠谱客的博主 安静画笔,最近开发中收集的这篇文章主要介绍LCD屏幕参数通过数据手册得到--Linux驱动lcd,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这里是以正点原子的7寸1024*600的屏幕为例

在这里插入图片描述
在这个图中,一般都是按照sync mode的参数进行设置的,sync mode似乎又是和HV MODE相对应的,sync mode和HV MODE有HS和VS的值。我们可以得到:
行:
Horizontal pulse width HSPWthphsync_lenhs pulse width20 (信号宽度)
Horizontal Back Porch
HBP thbleft_margin== 140
Horizontal Front Porch
HFP tfhright_marginHS Front Porch160(中间值)

列:
Vertical pulse widthVSPWtvpvsync_lenVS Pulse width3
Vertical Back Porch
VBP tvbupper_margin== 20
Vertical Front Porch
VFP tvf lower_margin 12
在这里插入图片描述
这个图可以得到HOZVAL
thd
xres1024
LINE tvdyres
600
这个屏幕有Input Timing Table表格,所以直接按照这个表的值设置即可,而不需要按HV Mode的范围值去设置,但是野火的7寸800*480的屏就没有Input Timing Table表格,所以要根据HV Mode的范围值去设置

如果只有这个图的话:
对于Horizontal input timing,那么HSYNC Front Porch160;然后我HSYNC pulse width取20,那么我的Horizontal Back PorchHBP thbleft_margin140;因为这里有个计算公式,
就是HSYNC pulse width+【Horizontal Back Porch
HBPthbleft_margin140】 == HSYNC blanking160
对于Vertical input timing中的值也是一模一样的

HSYNC blanking这个值不是拿来作为一个参数写入LCD的参数设置的,只是一个用来相加的选项

像素时钟= (VSPW+VBP+LINE+VFP) * (HSPW + HBP + HOZVAL + HFP)6010的负6次方==多少Mhz
然后pixclock=(1/51200000)*10^12=19531

LCD显示屏DE MODE ,HV MODE 的区别

LCD在显示数据之前,在行数据上有HFP、HBP、HSYNc,在列数据上有VFP、VBP、VSYNC,不是所有的数据都是可以显示的,因此LCD的驱动和 LCD之间需要采用某种方式来同步,比如让LCD知道现在我在发送的是HFP时序,你不要显示出来;或者通知LCD,现在开始后面的数据是可视数据,你可以开始显示了。
因此有两种方式:
DE模式
当DE变为高电平时,表示有效数据开始了;变为低电平,表示有效数据结束。在DE模式下,LCD是不需要HS信号线的,也就是说LCD选择了DE模式,即使没有接HS信号线,LCD也能正常工作。
HV模式:
LCD需要HS和 VS,即水平同步和垂直同步信号来确定时序,在液晶显示器中,行同步信号(HS)的作用是选择出液晶面板上有效行信号区间,场同步信号(VS)的作用是选择出液晶面板上有效场信号区间,行场同步信号的共同作用,可将选择出液晶面板上的有效视频信号间。

总结:
两种不同的同步方式中,HV模式是早期的驱动模式了,现在的液晶屏面板驱动Ic基本都是支持HV和DE两种模式的。DE模式的好处就是使用比较简单好用,调试也方便。

这里是以野火的7寸800*480的屏幕为例

主要是参数的设置
野火的文档只给了已经调好参数的图
在这里插入图片描述
下面这个图是野火对应的7寸屏幕的800480的数据手册当中的参数图:
在这里插入图片描述
根据NXP厂商的evk开发板,NXP做好了对应的uboot;我们根据这个uboot来进行移植
1、通过查看野火开发板和正点原子的开发板,可以知道和屏幕的连接引脚是一模一样的,背光引脚也是一样的,所以这些东西就不用更改;
2、就只需要更改野火和正点原子使用的屏幕的参数
在这里插入图片描述
这里是野火屏幕对应的参数,现在看看这些参数是怎样和Timing对应起来的:
name可以设置成自己的东西,不过要在mx6ull_alientek_emmc.h的panel值的两个地方改成和mx6ull_alientek_emmc.c一模一样的
xres表示行像素,yres表示竖像素,pixclock=1/时钟频率
10的12次方,而时钟频率的计算又在上文有说明。

回到Timing表格的参数,可以得出几个公式:
1、hsync_len(对应表格中的HS pluse width,在1-40之间任意取值,这里我取值为20)+left_margin(这里的值是由这个等式推出来的)=hs blanking(在表格中有说明是160)
---------->20+140=160

2、vsync_len(对应表格中的VS pluse width,在1-00之间任意取值,这里我取值为3)+upper_margin(这里的值是由这个等式推出来的)=vs blanking(在表格中有说明是23)
---------->3+20=23

到这里我们已经得到了6个值了,分别是:xres yres hsync_len vsync_len left_margin upper_margin
还有两个值可以从表格中得出:
HS Front Porchright_margin210
VS Front Porchlower_margin22

问题

现在是屏幕和NXP提供的对于evk开发板的引脚是连接一致的,如果是自己设计开发板应该怎么去修改屏幕对应的引脚呢

最后

以上就是安静画笔为你收集整理的LCD屏幕参数通过数据手册得到--Linux驱动lcd的全部内容,希望文章能够帮你解决LCD屏幕参数通过数据手册得到--Linux驱动lcd所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部