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