在利用Model 4进行OPENWRT系统开发时,遇到RGB屏幕花屏问题是一个常见的挑战。Model 4作为一款功能强大的HMI芯片SOC,支持多种接口和强大的多媒体处理能力,包括RGB、MIPI、LVDS、SPI等显示接口,RJ45网络接口,8路串口,以及H.264解码能力,支持1080P视频解码。然而,在调节RGB屏幕时,花屏问题可能会阻碍项目的顺利进行。以下小编整理了RGB调屏方法以及针对花屏情况做了问题整理。
一、model4应用OPENWRT系统开发,RGB屏调试配置
相比MIPI屏的调试,RGB屏的调试相对简单,只需要把规格书中所描述的时序和规格参数加入相应的配置文件即可,不需要额外的驱动程序。
- 内核配置
驱动源码目录:linux-5.10/drivers/video/fbdev/zx/panel/
- DTS参数配置
这些参数主要在文件xxx-board.dts中,功能参数的设置必须和硬件原理图相匹配
首先设置显示模块数据通路关系,RGB屏幕数据通路如下:
&fb0 {
port {
fb0_out: endpoint {
remote-endpoint = <&de0_in>;
};
};
};
&de0 {
status = "okay";
port@0 {
reg = <0>;
de0_in: endpoint {
remote-endpoint = <&fb0_out>;
};
};
port@1 {
reg = <1>;
de0_out: endpoint {
remote-endpoint = <&rgb0_in>;
};
};
};
&rgb0 {
status = "okay";
port@0 {
reg = <0>;
rgb0_in: endpoint {
remote-endpoint = <&de0_out>;
};
};
port@1 {
reg = <1>;
rgb0_out: endpoint {
remote-endpoint = <&panel_rgb_in>;
};
};
};
在上述例子中,board.dts通过port和status结点,定义了一条数据通道。
fb | de | | rgb | panel
port --> port0 port1 --> port0 port1 --> port
如果board.dts中没有正确定义一条数据通道,显示驱动可能无法完成初始化。
设置屏幕参数
panel_rgb {
compatible = "zx,aic-general-rgb-panel";
enable-gpios = <&gpio_a 4 GPIO_ACTIVE_HIGH>;
rgb-mode = <PRGB>;
interface-format = <PRGB_24BIT>;
clock-phase = <DEGREE_90>;
data-order = <RGB>;
data-mirror;
status = "okay";
port {
panel_rgb_in: endpoint {
remote-endpoint = <&rgb0_out>;
};
};
display-timings {
native-mode = <&timing0>;
timing0: 800x480 {
clock-frequency = <30000000>;
hactive = <800>;
vactive = <480>;
hback-porch = <88>;
hfront-porch = <40>;
hsync-len = <48>;
vback-porch = <32>;
vfront-porch = <13>;
vsync-len = <3>;
de-active = <1>;
pixelclk-active = <1>;
};
};
};
其中类似 enable-gpios 控制引脚需要根据实际显示屏的需要增加或减少,驱动中做相应修改, rgb-mode interface-format 需要从规格书中获取, data-order data-mirror 需要根据板级走线的顺序设置相关参数。 clock-phase 需要根据最终实际的显示效果做相应调整。
其中参数 display-timings 需要从屏幕规格书中或供应商处获取,例如规格书会有如下信息:
二、RGB调屏过程中会出现的现象
- 现象一:黑屏
1、检查背光是否已亮
2、排除1后确定屏规格书是SYNC模式还是DE模式,检查硬件电路相关控制信号是否按照屏规格书要求完成上下拉
3、排除1、2后,测量pixelclk是否符合屏规格要求,pixelclk计算公式vactivehactive60/(0.8),其中系数60为帧率,系数0.8为消隐区系数
- 现象二:花屏
1、调整pixelclk频率
2、调整pixelclk相位
3、调整消隐区参数,主要是行方向消隐区
- 现象三:起始位置错误
1、调整pixelclk频率
2、调整pixelclk相位
3、调整消隐区参数,主要是行方向消隐区
- 现象四:闪烁
1、增大pixelclk频率,提高帧率
MODEL4_149">三、MODEL4参数介绍