完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本篇博文使用Rockchip平台RK3288主控,向大家分享自己总结的Rockchip平台LCD调试的一些经验。
Platform : Rockchip Soc : RK3288 System : Android 7.1 RK3288的LCD调试,根据屏幕规格书对dts作相应的修改基本都可点亮,配置也较为简单,有几个概念容易混淆,单纯的点屏基本上不需要了解相关的LVDS,EDP协议等。本篇博客大致讲述RK平台LVDS、EDP屏的调试经验,协议部分不会涉及,MIPI屏部分暂时还未深入了解。 前言 LVDS调试dts实例 贴一个LVDS屏参的实例,仅供参考: disp_timings: display-timings { native-mode = <&timing0>; timing0: timing0 { screen-type = 参数看起来挺多的,其实真正需要改的一般不多。那究竟哪些都需要修改呢?这当然是根据不同的LCD参考其规格书修改的,dts中需要重点关注的有以下几个参数: screen_type,lvds-format,out-face,clock-frequency,hactive,vactive,hbp,hfp,vbp,vfp screen_type screen-type表示屏幕类型(RGB,LVDS,EDP,MIPI,HDMI,MCU),如果该屏幕为LVDS屏,则screen-type就应该取值为SCREEN_LVDS。如果是RGB屏幕,则screen-type取值为SCREEN_RGB。screen-type的值有以下几种:SCREEN_RGB,SCREEN_LVDS(SCREEN_DUAL_LVDS,SCREEN_LVDS_10BIT,SCREEN_DUAL_LVDS_10BIT),SCREEN_HDMI,SCREEN_MIPI,SCREEN_DUAL_MIPI、SCREEN_EDP #define SCREEN_NULL 0#define SCREEN_RGB 1#define SCREEN_LVDS 2#define SCREEN_DUAL_LVDS 3#define SCREEN_MCU 4#define SCREEN_TVOUT 5#define SCREEN_HDMI 6#define SCREEN_MIPI 7#define SCREEN_DUAL_MIPI 8#define SCREEN_EDP 9#define SCREEN_TVOUT_TEST 10#define SCREEN_LVDS_10BIT 11#define SCREEN_DUAL_LVDS_10BIT 12 lvds_format lvds-format表示LVDS的数据方式,只有在该屏幕是LVDS屏的时候该参数才有效。该值需要结合屏幕和LVDS在硬件上的连接方式来定义。lvds_format的值有以下几种:LVDS_8BIT_1、LVDS_8BIT_2、LVDS_8BIT_3、LVDS_6BIT。 #define LVDS_8BIT_1 0#define LVDS_8BIT_2 1#define LVDS_8BIT_3 2#define LVDS_6BIT 3#define LVDS_10BIT_1 4#define LVDS_10BIT_2 5 LCD的datasheet一般都会说明LVDS信号在各个通道上的分配方式,如下: 如上图所示,我们将LVDS通道分为Y0、Y1、Y2、Y3,其中Y0对应于上图的Rxin0,Y1对应于上图的Rxin1,Y2和Y3以此类推,一个通道可以传输7bit数据。根据规格书,那么lvds-format我们究竟选择哪一个呢?这几种格式得区别如下: 当然了,事事无绝对,上述判断只能得出大概结论,不能100%保证正确。主要还是由于屏线的原因,开发板底座和屏之间并不是一一对应起来的,也就是说屏的引脚和底座之间排线的选择并不唯一。不过,最为稳妥的方法应该是根据” LVDS Data Input Format”与屏引脚定义来判断lvds-format,因为我们总是要满足”屏”(最起码屏线不要接错)。 LVDS两种format:FORMAT 1、 FORMAT 2 两者主要区别在于Y3通道上FORMAT 1传输的是颜色的高两位,FORMAT 2传输的是颜色的低两位。通常LCD显示有水彩,就是lvds-format设置错误,调换format即可。 液晶屏中常见的LVDS数据映射标准(将像素的并行数据转化为串行数据)有VESA和JEIDA两种格式,一般情况下均是默认JEIDA格式。有些LVDS屏也会在datasheet中说明: 这款LG的LVDS屏,当第7脚为高电平时,逻辑板工作在JEIDA格式下,为低电平或NC时工作在VESA格式下。两种格式的区别如下: 从规格书中可以发现,两种格式的区别主要在于第3通道(D)上,JEIDA格式的第三通道是各种颜色的低两位(R0 R1 G0 G1 B0 B1),而VESA格式的第三通道上传输的是颜色的高两位(R6 R7 G6 G7 B6 B7)。对应于dts中的lvds_format,也就等同于: JEIDA —-> LVDS_8BIT_2 VESA —-> LVDS_8BIT_1 LVDS有多种数据传输模式:单路6bit LVDS、双路6bit LVDS、单路8bit LVDS、双路8bit LVDS SoC中,单路还是双路工作方式不同: 因此,单路或是双路处理方式不同而已。事实上,单双路的控制就是通过配置lvds dual cnannel control的开关,配置如下: 而代码中,也是这样控制来作区分的(可参考博文RK FB源码分析之SCREEN_TYP) 如何从屏幕规格书中来区分是单路还是双路? 有的规格书会简述,如:LVDS(1 ch,8 bit),表示LVDS接口类型是单通道,8bit的信号带宽(RGB每色有8阶色彩,总色为2^8*2^8*2^8=1677W色)。 最直观简单的方式就是从屏的引脚定义分析,通常双路LVDS屏都会有odd(or first) input channel和even(or second) input channel,例如: 而单路LVDS通常只有三组或者四组data input和一组clock,例如: clock-frequency双路LVDS时,clocks要取LCD规格书中典型值的2倍单路LVDS时,clocks取LCD规格书中的典型值即可 out-face屏幕采用多少位的接线方式。如果是24bit的屏幕,则为OUT_P888;如果是18bit的屏幕, 数据线分别接在每种单元色的高六位则定义为OUT_D888_P666(就是B0 B1 G0 G1 R0 R1不接),如果数据线接在LCDC的低 18 位(connect to lcdc D0~D17),则定义为 OUT_P666。这个如果设置的不正确,比如 24bit 的接法,定义成 OUT_D888_P666或者OUT_P666 就有可能出现色阶。 该参数可判断规格书Display Colors的值做参考。 其它参数 hback-porch,hfront-porch,vback-porch ,vfront-porch,hsync-len,vsync-len 上述六个参数按照规格书来填充(目前大多数屏都是DE mode,DE模式的话一般都会标明DE mode only),DE模式只需要关注两个参数Vertical section blanking和Horizontal section blanking,例如: 上图中,Vertical section blanking=42, Horizontal section blanking=204,在填充6个参数时只需要满足关系:vbp+vfp+vs=42,hbp+hfp+hs=204,各值自行分配(通常hbp和vbp取较大值),例如 hback-porch = <150>; hfront-porch = <50>; vback-porch = <30>; vfront-porch = <11>; hsync-len = <4>; vsync-len = <1>; hsync-active,vsync-active,de-active,pixelclk-active,各参数含义如下: hsync-active: hsync pulse is active low/high/ignored vsync-active: vsync pulse is active low/high/ignored de-active: data-enable pulse is active low/high/ignored pixelclk-active: active high = drive pixel data on rising edge/ sample data on falling edgeactive low = drive pixel data on falling edge/ sample data on rising edgeignored = ignored 其中,需要注意参数pixelclk-active,该参数控制有效的pixel data数据在rising edge还是falling edge显示.LVDS显示有雪花点,噪点等情况时可调整该参数。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1988 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
2490 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
5272 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 20:38 , Processed in 0.658591 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号