Firefly开源社区

打印 上一主题 下一主题

[Linux] ITX-3588J MIPI显示屏无法显示

32

积分

0

威望

0

贡献

技术小白

积分
32

ITX-3588J MIPI显示屏无法显示

发表于 2022-6-13 20:37:17      浏览:2790 | 回复:2        打印      只看该作者   [复制链接] 楼主
  • 固件类型: 自行编译的固件
  • SDK包名称: rk3588_repo_sdk_v0.1.0a.7z
  • SDK更新到哪个COMMIT: 0000-00-00 00:00:00
  • SDK修改内容: rk3588-firefly-itx-3588j.dts
  • Log日志: ubuntu_rk3588j_panel_err.txt
问题描述及复现步骤:
本帖最后由 wqh_001 于 2022-6-13 20:44 编辑

刚到手的ITX-3588J和DM-M10R800 V2 显示屏模组连接到一起。
网上下载并烧录“ITX-3588J-BE45-A1_Ubuntu20.04-Gnome-r211_v0.1.0a_220424.img”,ubuntu正常启动,HDMI与MIPI-DSI均正常。

在rk3588_repo_sdk_v0.1.0a.7z开发包上更新至rk3588/linux_release_v1.0.0b。
1.未做任何修改,全编译后,仅升级kernel/boot.img,ubuntu正常启动,HDMI正常,原始dts没有panel设备树,故panel无显示。

2.修改设备树rk3588-firefly-itx-3588j.dts为:
  1. /dts-v1/;

  2. #include "rk3588-firefly-itx-3588j.dtsi"
  3. #include "rk3588-firefly-itx-cam-8ms1m.dtsi"



  4. / {
  5.     model = "Firefly ITX-3588J HDMI(Linux)";
  6.     compatible = "rockchip,rk3588-firefly-itx-3588j", "rockchip,rk3588";

  7.     backlight: backlight {
  8.         status = "okay";
  9.         compatible = "pwm-backlight";
  10.         enable-gpios = <&gpio2 RK_PC4 GPIO_ACTIVE_HIGH>;
  11.         pwms = <&pwm12 0 50000 1>;
  12.     };
  13. };

  14. &pwm12 {
  15.         pinctrl-0 = <&pwm12m1_pins>;
  16.         status = "okay";
  17. };

  18. //设置 dsi0 的开机 logo
  19. &route_dsi0 {
  20.         status = "okay";
  21.         connect = <&vp3_out_dsi0>;
  22. };

  23. //把 dsi0 连接在 Port3 上
  24. &dsi0_in_vp3 {
  25.         status = "okay";
  26. };

  27. //打开 DPHY
  28. &mipi_dcphy0 {
  29.         status = "okay";
  30. };

  31. //打开 dsi0(注意这一部分较重要,涉及到屏幕的上电时序)
  32. &dsi0 {
  33.     status = "okay";
  34.     //rockchip,lane-rate = <1000>;
  35.     dsi0_panel: panel@0 {
  36.         status = "okay";
  37.         compatible = "simple-panel-dsi";
  38.         reg = <0>;

  39.         //选择之前的配置的背光节点
  40.         backlight = <&backlight>;
  41.         
  42.         //设置 LCD 使能引脚
  43.         enable-gpios = <&pca9555 PCA_IO0_2 GPIO_ACTIVE_HIGH>;

  44.         //设置 LCD 复位引脚
  45.         reset-gpios = <&gpio2 RK_PB4 GPIO_ACTIVE_LOW>;

  46.         //设置 LCD 屏幕的上下电时序
  47.         enable-delay-ms = <50>;
  48.         prepare-delay-ms = <200>;
  49.         reset-delay-ms = <50>;
  50.         init-delay-ms = <55>;
  51.         unprepare-delay-ms = <50>;
  52.         disable-delay-ms = <20>;
  53.         mipi-data-delay-ms = <200>;
  54.         size,width = <120>;
  55.         size,height = <170>;

  56.         //设置 DSI(DPHY)的输出模式,一般默认为 Video 模式
  57.         dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;

  58.         //设置 DSI 像素数据的输出格式,这部分的设置取决于接收端的屏幕是否支持该格式
  59.         dsi,format = <MIPI_DSI_FMT_RGB888>;

  60.         //设置使用的 lane 数量,默认为 4 lane
  61.         dsi,lanes  = <4>;

  62.         //设置 MIPI DSI 的上电指令
  63.         panel-init-sequence = [
  64.             //39 00 04 B9 83 10 2E
  65.             // 15 00 02 CF FF
  66.             05 78 01 11
  67.             05 32 01 29
  68.             //15 00 02 35 00
  69.         ];

  70.         //设置 MIPI DSI 的下电指令
  71.         panel-exit-sequence = [
  72.             05 00 01 28
  73.             05 00 01 10
  74.         ];

  75.         //设置 LCD 屏幕的显示时序(该部分内容一般都可以从对应屏幕的 datasheet 中获取,如上图所示)
  76.         disp_timings0: display-timings {
  77.             native-mode = <&dsi0_timing0>;
  78.             dsi0_timing0: timing0 {

  79.                 /* 显示时序的换算公式一般为:
  80.                 (hactive + hsync-len + hback-porch + hfront-porch)   
  81.                             x
  82.                 ( vactive + vsync-len + vback-porch + vfront-porch)x fps
  83.                  = clock-frequency
  84.                 */
  85.                 clock-frequency = <72600000>;//<80000000>;
  86.                 hactive = <800>;//<768>;
  87.                 vactive = <1280>;
  88.                 hsync-len = <14>;   //20, 50,10
  89.                 hback-porch = <26>; //50, 56,10
  90.                 hfront-porch = <32>;//50, 30,180
  91.                 vsync-len = <8>;//4
  92.                 vback-porch = <20>;//4
  93.                 vfront-porch = <80>;//8
  94.                 hsync-active = <0>;
  95.                 vsync-active = <0>;
  96.                 de-active = <0>;
  97.                 pixelclk-active = <0>;
  98.             };
  99.         };

  100.         ports {
  101.             #address-cells = <1>;
  102.             #size-cells = <0>;

  103.             port@0 {
  104.                 reg = <0>;
  105.                 panel_in_dsi: endpoint {
  106.                     remote-endpoint = <&dsi_out_panel>;
  107.                 };
  108.             };
  109.         };
  110.     };

  111.     ports {
  112.         #address-cells = <1>;
  113.         #size-cells = <0>;

  114.         port@1 {
  115.             reg = <1>;
  116.             dsi_out_panel: endpoint {
  117.             remote-endpoint = <&panel_in_dsi>;
  118.             };
  119.         };
  120.     };
  121. };
复制代码
执行
  1. ./build.sh kernel
复制代码
仅升级
  1. sudo upgrade_tool di -b kernel/boot.img
复制代码


问题来了。测试HDMI正常显示,但是panel黑屏无显示
uboot打印
  1. Using display timing dts
  2. dsi@fde20000:  detailed mode clock 72600 kHz, flags[a]
  3.     H: 0800 0832 0846 0872
  4.     V: 1280 1360 1368 1388
  5. bus_format: 100e
  6. VOP update mode to: 800x1280p0, type: MIPI0 for VP3
  7. [list]p_rate=1188000000, best_rate=69882352, div=17, sel=0
  8. [list]p_rate=1500000000, best_rate=71428571, div=21, sel=1
  9. [list]p_rate=0, best_rate=71428571, div=21, sel=1
  10. [list]p_rate=786215976, best_rate=71474179, div=11, sel=3
  11. [result]p_rate=786215976, best_rate=71474179, div=11, sel=3
  12. VOP VP3 enable Esmart3[500x501->500x501@150x389] fmt[2] addr[0xedf20000]
  13. final DSI-Link bandwidth: 0 Kbps x 4
  14. command interface is busy: 0x10001
  15. failed to write cmd0: -110
  16. failed to send on cmds: -110
复制代码

kernel打印
  1. [    4.915197] rockchip-drm display-subsystem: bound fde20000.dsi (ops 0xffffffc01115cd48)
复制代码


抓取状态打印
  1. <b>root@firefly:~# cat /sys/kernel/ls /sys/class/drm</b>
  2. card0       card0-DP-2   card0-HDMI-A-1  card0-Writeback-1  renderD128  version
  3. card0-DP-1  card0-DSI-1  card0-HDMI-A-2  card1              renderD129
  4. <b>root@firefly:~# cat /sys/kernel/debug/dri/0/summary</b>
  5. Video Port0: DISABLED
  6. Video Port1: ACTIVE
  7.     Connector: HDMI-A-2
  8.         bus_format[100a]: RGB888_1X24
  9.         overlay_mode[0] output_mode[f] color_space[0], eotf:0
  10.     Display mode: 1920x1080p60
  11.         clk[148500] real_clk[148500] type[48] flag[5]
  12.         H: 1920 2008 2052 2200
  13.         V: 1080 1084 1089 1125
  14.     Esmart1-win0: ACTIVE
  15.         win_id: 10
  16.         format: XR24 little-endian (0x34325258) SDR[0] color_space[0] glb_alpha[0xff]
  17.         rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
  18.         csc: y2r[0] r2y[0] csc mode[0]
  19.         zpos: 1
  20.         src: pos[0, 0] rect[1920 x 1080]
  21.         dst: pos[0, 0] rect[1920 x 1080]
  22.         buf[0]: addr: 0x00000000eed7e000 pitch: 7680 offset: 0
  23. Video Port2: DISABLED
  24. Video Port3: ACTIVE
  25.     Connector: DSI-1
  26.         bus_format[100a]: RGB888_1X24
  27.         overlay_mode[0] output_mode[0] color_space[0], eotf:0
  28.     Display mode: 800x1280p60
  29.         clk[72600] real_clk[72600] type[48] flag[a]
  30.         H: 800 832 846 872
  31.         V: 1280 1360 1368 1388
  32.     Esmart3-win0: ACTIVE
  33.         win_id: 11
  34.         format: XR24 little-endian (0x34325258) SDR[0] color_space[0] glb_alpha[0xff]
  35.         rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
  36.         csc: y2r[0] r2y[0] csc mode[0]
  37.         zpos: 3
  38.         src: pos[0, 0] rect[800 x 1280]
  39.         dst: pos[0, 0] rect[800 x 1280]
  40.         buf[0]: addr: 0x00000000ee996000 pitch: 3200 offset: 0
  41. <b>root@firefly:~# cat /sys/class/drm/card0-DSI-1/status</b>
  42. connected

复制代码





ubuntu_rk3588j_panel_err.txt

87.9 KB, 下载次数: 0, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

1万

积分

7

威望

0

贡献

技术大神

Rank: 8Rank: 8

积分
11381

突出贡献

发表于 2022-6-14 09:15:17        只看该作者  沙发
其实我们有做 mk 适配 mipi 屏幕的:
  1. ./build.sh device/rockchip/rk3588/itx-3588j-BE45-A1-ubuntu.mk
复制代码
回复

使用道具 举报

32

积分

0

威望

0

贡献

技术小白

积分
32
发表于 2022-6-14 09:51:15        只看该作者  板凳
太着急了,今天早上才看到,感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表