imx6q lvds信号直接接lcd屏,可以显示 但是颜色不对,想请教一下什么原因会导致颜色显示不对?
我的dts配置是:
mxcfb1: fb@0 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
interface_pix_fmt = "RGB24";
mode_str ="LDB-XGA";
default_bpp = <8>;
int_clk = <0>;
late_init = <0>;
status = "disabled";
};
&ldb {
status = "okay";
split-mode = <1>;lvds-channel@0 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
status = "okay";display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <74250000>;
hactive = <1920>;
vactive = <1080>;
hback-porch = <80>;
hfront-porch = <40>;
vback-porch = <20>;
vfront-porch = <15>;
hsync-len = <20>;
vsync-len = <10>;
};
};
};
屏参:
我是参照网上的公式计算的屏参:
hback-porch + hfront-porch + hsync-len = Horizontal Blank
vback-porch + vfront-porch + vsync-len = Vertical Blank
不确定这种方法对不对?
系统:imx6q + linux4.1.15 + qt5.6.2
Hello zhang,
I.MX6Q 有2通道LVDS:LVDS0 & LVDS1。如果要显示1920x1080的分辨率,需要2个通道同时使用。一个通道显示奇数点,另一个通道显示偶数点。从你的代码看,你只使用了一路。而单路的LVDS只能最大显示到1366x768的分辨率。
English:
There are 2-channel LVDS on i.MX6Q, if you want to use it to display images with 1920x1080, you will have to use 2 channels for your purpose. One is for odd pixel, other is for even pixel.
According to your source code, you only used one channel, and one channel only supports max 1366x768.
Have a nice day!
Best Regards,
weidong sun
Hi Wigros Sun:
首先感谢您的回复!
这2个通道我都有配置的,参数配置是一样的:
&ldb {
status = "okay";
split-mode = <1>;lvds-channel@0 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
status = "okay";display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <74250000>;
hactive = <1920>;
vactive = <1080>;
hback-porch = <70>;
hfront-porch = <70>;
vback-porch = <22>;
vfront-porch = <23>;
hsync-len = <60>;
vsync-len = <10>;
};
};
};lvds-channel@1 {
fsl,data-mapping = "jeida";
fsl,data-width = <24>;
status = "okay";display-timings {
native-mode = <&timing1>;
timing1: hsd100pxn1 {
clock-frequency = <74250000>;
hactive = <1920>;
vactive = <1080>;
hback-porch = <70>;
hfront-porch = <70>;
vback-porch = <22>;
vfront-porch = <23>;
hsync-len = <60>;
vsync-len = <10>;
};
};
};