LCD屏幕参数通过数据手册得到--Linux驱动lcd

news/2024/12/3 1:38:19/

这里是以正点原子的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开发板的引脚是连接一致的,如果是自己设计开发板应该怎么去修改屏幕对应的引脚呢


http://www.ppmy.cn/news/852667.html

相关文章

RK3588核心板显示资源分配实操竟如此简单!飞凌嵌入式

前言 眼睛作为人类最重要的感觉器官,通过“视觉”帮助我们接收了大部分的外界信息,“视觉效果的好坏”直接影响着我们日常生产和生活质量的高低,因此“显示能力”成为了评价产品优劣的一项重要指标。在影音、游戏、智慧办公、工业自动化和交通…

linux系统怎么连接显示器,Linux下笔记本外接显示器 · Eulerlee

8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 被垃圾主板坑了,笔记本的hdmi口是从独显接出来的,但是我的kali上又没有安装NVIDIA的官方驱动,所以显示器接上去没有反应。为了…

FPGA LVDS液晶屏

作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 分享 4.3寸 TFT LCD 驱动板【CPLDSRAM】 【正点原子FPGA连载】第二十二章 RGB TFT-LCD彩条显示实验 LVDS&…

Linux i3wm终端命令Xrandr设置拓展屏(竖屏,屏幕摆放位置,扩展屏不亮,polybar显示位置)

双屏是咱们程序员的常规操作,如果是图形化界面,那很容易在设置里面设置,但是最近在Ubuntu下卸载了Unity装了i3wm,是没有设置的图形化界面的界面的,我要把副屏设置成竖屏,不废话了,开始。 Xrand…

FPGA RGB565的LCD显示屏驱动(Verilog)

文章目录 1屏幕2行场扫描时序3分析4代码4-1产生9M驱动时钟4-2驱动部分4-3显示内容部分4-3顶层 5结果5-15-2 6Testbench 1屏幕 使用像素:480*272的一块RGB565屏幕。 像素时钟:9Mhz 接口: lcd_bl:lcd背光lcd_rgb[15:0]:色…

中断-阻塞

在其他对象上同步 synchronized块必须给定一个在其上进行同步的对象,并且最合理的方式是,使用其方法正在被调用的当前对象:synchronized(this),这正是PairManager2所使用的方式。在这种方式中,如果获得了synchronized块上的锁&…

【花雕体验】18 行空板点亮WS2812B的256位LED硬屏

手头有二块WS2812B硬屏板子 WS2812B主要特点 智能反接保护,电源反接不会损坏IC。 IC控制电路与LED点光源公用一个电源。 控制电路与RGB芯片集成在一个5050封装的元器件中,构成一个完整的外控像素点。 内置信号整形电路,任何一个像素点收到信号…

【ARM】迅为rk3568开发板lvds屏设置横屏显示

讯为rk3568开发板lvds屏设置横屏显示 旋转 uboot logo 和内核 logo旋转buildroot系统桌面旋转触摸 开发板:讯为rk3568 根文件系统:buildroot 系统:Linux 旋转 uboot logo 和内核 logo 这里我参考的是迅为资料中的09手册android系统和应用开…