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信号)拉出来,看是否符合时序要求