TQ3568开发板设置LVDS方法

▲点击上方“广州天嵌”关注公众号后回复TQ3568获取板卡硬件资料

正在上传…重新上传取消

TQ3568支持lvds,mipi,edp,hdmi 4种不同的显示接口,其中mipi接口又分为mipi0与mipi1。TQ3568支持的显示功能有:(TQ3568-coreA不支持MIPI0显示)

单屏:LVDS、MIPI0、MIPI1、eDP、HDMI

双屏:(LVDS、MIPI1)、(LVDS、HDMI)、(LVDS、eDP)、(MIPI0、MIPI1)、(MIPI1、eDP)、(MIPI1、HDMI)

三屏:(LVDS、MIPI1、eDP)、(LVDS、MIPI1、HDMI)。

用户可以通过2种方法设置分辨率与显示接口,直接在u-boot菜单设置与在源码中设置,只需要选择其一即可,前者修改简单,但每次烧写镜像都要重新设置。如果想直接生成相关镜像,可以直接在源码中进行相应修改。        

以下以LVDS为例,讲述如何通过源码修改对应的显示参数。    

LVDS(Low Voltage Differential Signaling)是一种低振幅差分信号技术。它使用幅度非常低的信号传输数据。故产生极低的噪声,消耗非常小的功率,甚至不论频率高低功耗都几乎不变。此外,由于LVDS以差分方式传送数据,所以不易受共模噪音影响,是一种常见的显示接口。

相关dts文件  

Lvds的参数设置在文件kernel/arch/arm64/boot/dts/rockchip/rk3568-tqcoreX_BaseX_lvds.dtsi 不同的版本命名可能会有不同,具体可以在kernel/arch/arm64/boot/dts/rockchip/里执行grep -inr panel_lvds * 便可以找到对应的文件。

一般相关的属性为:

panel_lvds: panel_lvds {        compatible = "simple-panel";        backlight = <&backlight_lvds>;        //power-supply = <&vcc3v3_lcd1_n>;        enable-delay-ms = <20>;        prepare-delay-ms = <20>;        unprepare-delay-ms = <20>;        disable-delay-ms = <20>;        //MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,        //MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, MEDIA_BUS_FMT_RGB666_1X7X3_JEIDA      //格式:6位与8位, JEIDA-日标 SPWG-美标        bus-format =;        width-mm = <217>;        height-mm = <136>;          
        display-timings {            native-mode = <&timing0_lvds>;        //时序设置            timing0_lvds: timing-lvds@0 {                clock-frequency = <65000000>;                hactive = <1280>;                vactive = <800>;                hback-porch = <80>;                hfront-porch = <60>;                vback-porch = <20>;                vfront-porch = <10>;                hsync-len = <20>;                vsync-len = <8>;                hsync-active = <0>;                vsync-active = <0>;                de-active = <0>;                pixelclk-active = <0>;            };        };          
        ports {            #address-cells = <1>;            #size-cells = <0>;          
            port@0 {                reg = <0>;                dual-lvds-even-pixels;                panel_in_lvds: endpoint {                    remote-endpoint = <&lvds_out_panel>; //与下面两两对应                };            };        };    };          
};          
&lvds {    status = "okay";          
    ports {        port@1 {            reg = <1>;            lvds_out_panel: endpoint {                remote-endpoint = <&panel_in_lvds>; //与上面两两对应            };        };    };};          
&dsi0 {    status = "disabled";};          
&video_phy0 {    status = "okay";};          
//通路选择,将lvds打到vp2中//使能vp2中的lvds,并再打将lvds打到vp2,lvds可以使用vp1,vp2.//我司将vp1留给mipi1,vp2给lvds&route_lvds {    status = "okay";    connect = <&vp2_out_lvds>;};&lvds_in_vp1 {    status = "disabled";};          
&lvds_in_vp2 {    status = "okay";};

时序设置  

时序相关配置主要修改上面dts中蓝色部分。

一般在屏的手册中会找到类似:

         

这个屏是1024*600的单路lvds屏。从时序图可以看到它支持de模式也支持sync模式。满足sync也会同满足de格式,满足de不一定同满足sync格式,所以如果有sync则会以sync格式设置。此处我们以sync模式来设置    ​​​​​​​

  //时序设置            timing0_lvds: timing-lvds@0 {                clock-frequency = <51200000>;     //Dot clk 时钟 51.2M                hactive = <1024>;               //行                vactive = <600>;                  //列                hback-porch = <140>;            //H Back Porch  水平后肩                hfront-porch = <160>;             //H Front Porch 水平前肩                vback-porch = <20>;               //V Back Porch  竖直后肩                vfront-porch = <12>;            //V Front Porch 竖直前肩                hsync-len = <20>;               //H Pulse Width                vsync-len = <8>;                  //V Pulse Width                hsync-active = <0>;               //水平同步是否要反相,0是不需要                vsync-active = <0>;               //竖直同步是否要反相          
                de-active = <0>;                  //de信号是否要反相                pixelclk-active = <0>;            //时钟是否反相            };          

如果没有支持sync模式,则只要满足hback-porch + hfront-porch + hsync-le =H Blank Time就可以了,值可以随意设,但建议不要设置得太极端,不要有0的参数H/V Pulse Width 不宜太大。如上面可以设置成hback-porch = 150, hfront-porch=150, hsync-le=20。

格式设置  

Dts中与格式相关的参数是:​​​​​​​

panel_lvds: panel_lvds {...........        unprepare-delay-ms = <20>;        disable-delay-ms = <20>;        //MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,        //MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, MEDIA_BUS_FMT_RGB666_1X7X3_JEIDA      //格式:6位与8位, JEIDA-日标 SPWG-美标        bus-format =;        width-mm = <217>;        height-mm = <136>;.............

         

常用的格式有:

MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,

MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, MEDIA_BUS_FMT_RGB666_1X7X3_JEIDA

对应见下图。

一般芯片手册会有类似的:

通过上表找到对应显示格式的就可以了。

通路设置  

Dts中与通路相关的参数有:         ​​​​​​​

//通路选择,将lvds打到vp2中//使能vp2中的lvds,并再打将lvds打到vp2,lvds可以使用vp1,vp2.//我司将vp1留给mipi1,vp2给lvds&route_lvds {               status = "okay";    connect = <&vp2_out_lvds>;};&lvds_in_vp1 {    status = "disabled";};          
&lvds_in_vp2 {    status = "okay";};

Lvds可以连接到vp1或者vp2,设置route_lvds 中的connect ,然后打开/关闭对应的lvds_in_vpx即可,默认vp1连接到mipi,如果要将lvds连到vp1,要先关闭mipi显示。以下是连接vp1的例子:​​​​​​​

&route_lvds {               status = "okay";    connect = <&vp1_out_lvds>;};&lvds_in_vp1 {    status = "ok";};          
&lvds_in_vp2 {    status = "disabled";};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值