IMX9x 调试LVDS屏幕(未整理笔记)
说明
之前调试的时候做的笔记,迁移下。
内容
屏幕型号:HJ070NA-V1.2
需要使用双绞线,避免信号的影响。
屏幕时钟:
cat /sys/kernel/debug/clk/clk_summary
设备树:
<VIDEO PLL>,<PIX CLK>, <MEDIA_AXI>,<MEDIA_APB>
The VIDEO_PLL = pixel clock * 7. pixel clock像素时钟屏幕本身的物理属性。后面两个不用改。
&lcdif {
status = "okay";
assigned-clock-rates = <490000000>, <70000000>, <400000000>, <133333333>;
};
走的这个时钟树:和mipi屏幕的时钟树的父节点不一样


pixelclock的值下调,使用正常值的话会导致屏幕只显示一部分,铺不满全屏。

static const struct display_timing hj070na_timing = {
.pixelclock = { 34448320, 34448320, 34448320 },
.hactive = { 1024, 1024, 1024 },
.hfront_porch = { 140, 140, 140 },
.hback_porch = { 20, 20, 20 },
.hsync_len = { 160, 160, 160 },
.vactive = { 600, 600, 600},
.vfront_porch = { 7, 7, 7 },
.vback_porch = { 21, 21, 21 },
.vsync_len = { 10, 10, 10 },
.flags = DISPLAY_FLAGS_DE_HIGH,
};
适配流程
在ldb绑定后,生成/dev/dri/cardX节点。
imx-drm display-subsystem: bound soc@0:ldb@4ac10020 (ops imx93_ldb_ops)

生成frame buffer device:
imx-drm display-subsystem: fb0: frame buffer device
SOC(display-subsystem?)--lvds_conctrl---panel---屏幕。
lvds_conctrl,就是ldb_phy和ldb,做个回环节点,连接到一起。
注意启用LVDS的时候需要把dsi的相关给禁用掉:
&dphy {
status = "disabled";
};
&dsi {
status = "disabled";
};
屏幕参数:
hback-porch + hfront-porch +hsync-len = 1330-1280=50
hfront-porch +vsync-len+vsync-active=812-800=12

PIX CLK计算方式:
F=(left_margin+xres+right_margin+hsync_len) x (upper_margin+yres+lower_margin+vsync_len)x refresh
经验
屏幕状态:
亮背光---黑白(clock问题)---有颜色色块(线或者)---稳定显示的半屏---调试OK
问题:
屏幕上星星点点
在调试的时候,我们会发现屏幕上有莫名其妙的星星点点,一般这种情况下,我们首先要看看VGH和VGL电压是否处于datasheet所描述的范围之 内。如果属于标准范围之内,但星星点点依旧,很有可能就是时序问题。这时候不妨在代码中变更采样的时序(比如上升沿采样改为下降沿采样)。如果无法在代码 中更改,也可以在clk信号线加个100R电阻,也可能解决该问题。
显示抖动
在确认VPW,VBP,VFP,HPW,HBP,HFP的设置已经符合LCD规格要求后,如果屏幕的显示还在抖动的话,不妨将输出的时钟信号频率降低,有可能解决该问题。
还存在一种现象,LVDS的信号线电压高出规格书一点也会出现。曾经有过LVDS信号电压为3.3V的接到5V导致屏幕显示出现细小电波抖动。
显示花屏
出现花屏现象,理论上是RGB没有调好导致的。如颜色位数(24),格式标准(VESA和JEIDA)。
检查一下规格书的颜色格式部分, 是否将RGB888格式设置成了666,或者顺序是RBG,BGR之类的都有可能。
本文来自博客园,作者:杨旭0324,转载请注明原文链接:https://www.cnblogs.com/allalonewithyou/p/23014608,个人邮箱:yaonie4444@foxmail.com

浙公网安备 33010602011771号