mipi屏调试时序问题

mipi屏的时序大同小异,一般都跟以下差不多:

 

 

屏参配置如下:

&dsi0 {
    status = "disabled";
    //rockchip,lane-rate = <1000>;
    dsi0_panel: panel@0 {
        status = "okay";
        compatible = "simple-panel-dsi";
        reg = <0>;
        backlight = <&backlight>;
        reset-delay-ms = <60>;
        enable-delay-ms = <60>;
        prepare-delay-ms = <60>;
        unprepare-delay-ms = <60>;
        disable-delay-ms = <60>;
        dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
            MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
        dsi,format = <MIPI_DSI_FMT_RGB888>;
        dsi,lanes  = <4>;
        panel-init-sequence = [
            39 00 04 FF 98 81 03

            。。。。
            
            15 00 01 35
            05 78 01 11
            05 14 01 29
        ];


        disp_timings0: display-timings {
            native-mode = <&dsi0_timing0>;
            dsi0_timing0: timing0 {
                clock-frequency = <69000000>;
                hactive = <720>;
                vactive = <1280>;
                hfront-porch = <32>;
                hsync-len = <6>;
                hback-porch = <120>;
                vfront-porch = <8>;
                vsync-len = <4>;
                vback-porch = <18>;

                hsync-active = <0>;
                vsync-active = <0>;
                de-active = <0>;
                pixelclk-active = <1>;
            };
        };

        ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
                reg = <0>;
                panel_in_dsi: endpoint {
                    remote-endpoint = <&dsi_out_panel>;
                };
            };
        };
    };

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@1 {
            reg = <1>;
            dsi_out_panel: endpoint {
                remote-endpoint = <&panel_in_dsi>;
            };
        };
    };

};
&dsi0 {
    status = "okay";
};

&dsi0_in_vp1 {
    status = "disabled";
};

&dsi0_in_vp0 {
    status = "okay";
};

&dsi0_panel {
    power-supply = <&vcc3v3_lcd0_n>;
    backlight = <&backlight>;
    init-delay-ms = <30>;
    reset-gpios =<&gpio0 RK_PD4 GPIO_ACTIVE_LOW>;
    pinctrl-names = "default";
    pinctrl-0 = <&lcd_rst>;
};

&route_dsi0 {
    status = "okay";
    connect = <&vp0_out_dsi0>;
};

点屏过程,各个方面都核对过,供电和reset也都有,但屏没亮。把信号都拉出来量 :

黄色通道是reset,蓝色是mipi信号

 可以发现,mipi发送指令的时候,跟reset信号是重叠的,应该是这里的问题。解决办法是延迟一下mipi信号的发送。添加30ms的延迟:

init-delay-ms = <30>;
再量信号:

 此时屏也正常顺利电量。

 

屏点不亮的时候,重点排查:

1.核对原理图,软件配置的mipi通道是否和原理图一致(rk3568有dsi0和dsi1两组通道)

2.确认1.8v和3.3.v供电是否正常

3.reset动作是否正常

4.根据屏的规格书,填写屏参

5、核对mipi初始化指令是否正确

6、同时把供电、reset信号,mipi信号(D0信号)拉出来,看是否符合时序要求

posted @ 2024-09-06 15:29  M-kobe  阅读(85)  评论(0编辑  收藏  举报