基于RK3568 对接 10.1寸mipi屏调试

目录

一、基本信息

二、硬件电路

三、DTS配置

1、配置延时,如下图

2、 panel-init-sequence 初始化时序

3、时序

四、总结

五,dts文件


一、基本信息

硬件平台: RK3568
系统: Android 11 
SDK版本:rk_android11.0_sdk_231020.tgz  (官方提供)

参考资料:Rockchip_Developer_Guide_Android11_SDK_V1.1.6_CN.pdf

LCD屏:10.1寸 mipi接口 1200x1920 竖屏

二、硬件电路

三、DTS配置

参考资料:RK3588_MIPI_DSI2_Developer_Guide_CN.pdf

dts 几个关键点: 基本都和LCD屏有关,需要厂家提供资料

1、配置延时,如下图

2、 panel-init-sequence 初始化时序

     厂家很可能提供多种配置格式,最终转换为rk要求的格式

如提供 :

Generic_Long_Write_3P(0xFF,98,81,03);
//GIP_1
Generic_Short_Write_1P(0x01,0x00);
Generic_Short_Write_1P(0x02,0x00);
Generic_Short_Write_1P(0x03,0x73);
Generic_Short_Write_1P(0x04,0x00);
Generic_Short_Write_1P(0x05,0x00);
Generic_Short_Write_1P(0x06,0x08);
Generic_Short_Write_1P(0x07,0x00);
Generic_Short_Write_1P(0x08,0x00);
Generic_Short_Write_1P(0x09,0x00);

需要进行转换,请看另一篇文章《RK3568-MIPI屏幕调试笔记: LCD上电初始化时序》。

3、时序

其中clock-frequency 通过计算得到,方法如上图。

四、总结

mipi屏的调试,重点几个方面

1、硬件保证联通,mipi线,背光电路,电源控制电路,第一步保证硬件正常

2、dts配置,采用rk的默认配置,重点修改目录三的项目,关键点是初始化系列命令

    该命令必须从厂家获取,如果是rk格式的直接使用,如果不是需要转换为rk格式的。

五,dts文件

完整的DTS如下
/ {
    /* MIPI DSI0 Backlight*/
    backlight: backlight {
        status = "okay";
        compatible = "pwm-backlight";
        enable-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; //背光使能GPIO
        pwms = <&pwm4 0 50000 1>;
        brightness-levels = <
             60  60  60  61  61  61  62  62
             ...
            248 249 250 251 252 253 254 255
        >;
        default-brightness-level = <128>;
    };
};

/* Config  MIPI DSI0 Video Port ,Panel, TP */
&route_dsi0 {
    status = "okay";
    //logo,rotation = <270>; //support rotation 90,180,270 
    connect = <&vp1_out_dsi0>;
};

&video_phy0 {
    status = "okay";
};

&dsi0_in_vp0 {
    status = "disabled";
};

&dsi0_in_vp1 {
    status = "okay";
};

/*
 * mipi_dphy0 needs to be enabled
 * when dsi0 is enabled
 */
&dsi0 {
    status = "okay";
    //rockchip,lane-rate = <1000>;
    dsi0_panel: panel@0 {
        status = "okay";
        compatible = "simple-panel-dsi";
        reg = <0>;
            backlight = <&backlight>;

        enable-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>; // 电源使能GPIO
        reset-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>;   // 

        enable-delay-ms = <35>;
        prepare-delay-ms = <6>;
        reset-delay-ms = <25>;
        init-delay-ms = <55>;
        unprepare-delay-ms = <0>;
         disable-delay-ms = <20>;
        mipi-data-delay-ms = <200>;
        size,width = <120>;
        size,height = <170>;
        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 = [
            29 00 04 FF 98 81 03
            //GIP_1         
            13 00 02 01 00
            13 00 02 02 00
            13 00 02 03 73
            13 00 02 04 00
            13 00 02 05 00
            13 00 02 06 08
            13 00 02 07 00
            13 00 02 08 00
            13 00 02 09 00
            13 00 02 0A 01
            13 00 02 0B 01
            13 00 02 0C 00
            13 00 02 0D 01
            13 00 02 0E 01
            13 00 02 0F 00
            13 00 02 10 00
            13 00 02 11 00
            13 00 02 12 00
            13 00 02 13 02    //00
            13 00 02 14 00
            13 00 02 15 00
            13 00 02 16 00
            13 00 02 17 00
            13 00 02 18 00
            13 00 02 19 00
            13 00 02 1A 00
            13 00 02 1B 00
            13 00 02 1C 00
            13 00 02 1D 00
            13 00 02 1E 40
            13 00 02 1F C0
            13 00 02 20 06
            13 00 02 21 01
            13 00 02 22 06
            13 00 02 23 01
            13 00 02 24 88
            13 00 02 25 88
            13 00 02 26 00
            13 00 02 27 00
            13 00 02 28 3B
            13 00 02 29 03
            13 00 02 2A 00
            13 00 02 2B 00
            13 00 02 2C 00
            13 00 02 2D 00
            13 00 02 2E 00
            13 00 02 2F 00
            13 00 02 30 00
            13 00 02 31 00
            13 00 02 32 00
            13 00 02 33 00
            13 00 02 34 00     // GPWR1/2 non overlap time 2.62us
            13 00 02 35 00
            13 00 02 36 00
            13 00 02 37 00
            13 00 02 38 00
            13 00 02 39 00
            13 00 02 3A 00
            13 00 02 3B 00
            13 00 02 3C 00
            13 00 02 3D 00
            13 00 02 3E 00
            13 00 02 3F 00
            13 00 02 40 00
            13 00 02 41 00
            13 00 02 42 00
            13 00 02 43 00
            13 00 02 44 00            
             //GIP_2                       
                        13 00 02 50 01
                        13 00 02 51 23
                        13 00 02 52 45
                        13 00 02 53 67
                        13 00 02 54 89
                        13 00 02 55 AB
                        13 00 02 56 01
                        13 00 02 57 23
                        13 00 02 58 45
                        13 00 02 59 67
                        13 00 02 5A 89
                        13 00 02 5B AB
                        13 00 02 5C CD
                        13 00 02 5D EF
                        //GIP_3                       
                        13 00 02 5E 00
                        13 00 02 5F 01
                        13 00 02 60 01
                        13 00 02 61 06
                        13 00 02 62 06
                        13 00 02 63 07
                        13 00 02 64 07
                        13 00 02 65 00
                        13 00 02 66 00
                        13 00 02 67 02
                        13 00 02 68 02
                        13 00 02 69 05
                        13 00 02 6A 05
                        13 00 02 6B 02
                        13 00 02 6C 0D
                        13 00 02 6D 0D
                        13 00 02 6E 0C
                        13 00 02 6F 0C
                        13 00 02 70 0F
                        13 00 02 71 0F
                        13 00 02 72 0E
                        13 00 02 73 0E
                        13 00 02 74 02
                        13 00 02 75 01
                        13 00 02 76 01
                        13 00 02 77 06
                        13 00 02 78 06
                        13 00 02 79 07
                        13 00 02 7A 07
                        13 00 02 7B 00
                        13 00 02 7C 00
                        13 00 02 7D 02
                        13 00 02 7E 02
                        13 00 02 7F 05
                        13 00 02 80 05
                        13 00 02 81 02
                        13 00 02 82 0D
                        13 00 02 83 0D
                        13 00 02 84 0C
                        13 00 02 85 0C
                        13 00 02 86 0F
                        13 00 02 87 0F
                        13 00 02 88 0E
                        13 00 02 89 0E
                        13 00 02 8A 02                
            //Page 4 command;
            29 00 04 FF 98 81 04                             
                        13 00 02 3B C0        // ILI4003D sel
                        13 00 02 6C 15        //Set VCORE voltage =1.5V
                        13 00 02 6E 2A        //di_pwr_reg=0 for power mode 2A //VGH clamp 18V
                        13 00 02 6F 33        //45 //pumping ratio VGH=5x VGL=-3x
                        13 00 02 8D 1B        //VGL clamp -10V
                        13 00 02 87 BA        //ESD
                        13 00 02 3A 24        //POWER SAVING
                        13 00 02 26 76
                        13 00 02 B2 D1
                        // Page 1 command                                      
                        29 00 04 FF 98 81 01
                        13 00 02 22 0A        //BGR, SS
                        13 00 02 31 00        //Zigzag type3 inversion
                        13 00 02 40 53        // ILI4003D sel
                        13 00 02 43 66
                        13 00 02 53 3f
                        13 00 02 50 87
                        13 00 02 51 82
                        13 00 02 60 15
                        13 00 02 61 01
                        13 00 02 62 0C
                        13 00 02 63 00
                         // Gamma P                      
                        13 00 02 A0 00
                        13 00 02 A1 13        //VP251
                        13 00 02 A2 23        //VP247
                        13 00 02 A3 14        //VP243
                        13 00 02 A4 16        //VP239
                        13 00 02 A5 29        //VP231
                        13 00 02 A6 1E        //VP219
                        13 00 02 A7 1D        //VP203
                        13 00 02 A8 86        //VP175
                        13 00 02 A9 1E        //VP144
                        13 00 02 AA 29        //VP111
                        13 00 02 AB 74        //VP80
                        13 00 02 AC 19        //VP52
                        13 00 02 AD 17        //VP36
                        13 00 02 AE 4B        //VP24
                        13 00 02 AF 20        //VP16
                        13 00 02 B0 26        //VP12
                        13 00 02 B1 4C        //VP8
                        13 00 02 B2 5D        //VP4
                        13 00 02 B3 3F        //VP0
                        // Gamma N                      
                        13 00 02 C0 00        //VN255 GAMMA N
                        13 00 02 C1 13        //VN251
                        13 00 02 C2 23        //VN247
                        13 00 02 C3 14        //VN243
                        13 00 02 C4 16        //VN239
                        13 00 02 C5 29        //VN231
                        13 00 02 C6 1E        //VN219
                        13 00 02 C7 1D        //VN203
                        13 00 02 C8 86        //VN175
                        13 00 02 C9 1E        //VN144
                        13 00 02 CA 29        //VN111
                        13 00 02 CB 74        //VN80
                        13 00 02 CC 19        //VN52
                        13 00 02 CD 17        //VN36
                        13 00 02 CE 4B        //VN24
                        13 00 02 CF 20        //VN16
                        13 00 02 D0 26        //VN12
                        13 00 02 D1 4C        //VN8
                        13 00 02 D2 5D        //VN4
                        13 00 02 D3 3F        //VN0                                                       
                        // Page 0 command               
                        29 00 04 FF 98 81 00                        
                        05 C8 01 11
                        05 32 01 29                                    
        ];

        panel-exit-sequence = [
            05 00 01 28
            05 00 01 10
        ];

        disp_timings0: display-timings {
            native-mode = <&dsi0_timing0>;
            dsi0_timing0: timing0 {
                
                /*clk = (hactive +hfront+hsysnc+hback)x(vactive+vsync+vback)x60 
                    clk = (1200+16+16+48)x(1920+8+16+8)x60=(1280)x1952x60 = 149913600
                */                
                clock-frequency = <150000000>;  
                hactive = <1200>;    
                vactive = <1920>;    
                hsync-len = <16>;    
                hback-porch = <48>;  
                hfront-porch = <16>; 
                vsync-len = <8>;     
                vback-porch = <16>;  
                vfront-porch = <8>;  
                hsync-active = <0>;
                vsync-active = <0>;
                de-active = <0>;
                pixelclk-active = <0>;
            };
         
        };

        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>;
            };
        };
    };
};
 

<think>嗯,用户询问的是RK3568平台上配置MIPI显示的指南。从系统级指令来看需要严格遵循LaTeX格式要求,同时要生成相关问题。用户提供的引用资料很有价值,特别是引用[1]详细描述了MIPI调试流程,引用[2]介绍了RK3568芯片特性,引用[3]则展示了幕配置的实际案例。 用户可能是嵌入式开发工程师,正在调试显示模块。ta的提问非常专业,说明已经具备一定基础,但需要系统化的配置指导。考虑到MIPI配置的复杂性,应该把回答拆解成清晰的步骤流程。 准备重点讲解设备树配置这个核心环节,因为根据引用[1]和[3],这是点亮幕的关键。要强调时序参数计算的重要性,引用[1]特别指出"精确计算像素时钟"是成功点的基础。同时要补充内核配置和调试技巧,这部分在引用里提到但不够详细。 在技术细节方面,需要说明: 设备树节点配置要包含mipi_dphy和dsi节点,时序参数计算要演示公式 内核配置需开启CONFIG_DRM_PANEL和相关驱动 调试手段包括分析内核日志、测量时钟信号等 最后生成的问题需要覆盖硬件设计、高级调试和优化方向,这样既解决当前问题又延伸知识边界。特别注意要遵守LaTeX格式要求,所有公式如像素时钟计算公式$f_{pclk} = \frac{H_{total} \times V_{total} \times FPS}{lane\_num}$必须用$...$包裹</think>以下是RK3568平台MIPI显示配置的完整指南,结合关键步骤和调试技巧: ### 一、配置流程详解 1. **设备树配置** 在`kernel/arch/arm64/boot/dts/rockchip/`下创建或修改设备树文件(如`topeet_rk3568_mipi.dtsi`): ```dts &dsi0 { status = "okay"; // MIPI幕参数 panel@0 { compatible = "panel-dsi"; reg = <0>; backlight = <&backlight>; // 幕时序参数(需按规格书填写) display-timings { timing0 { clock-frequency = <148500000>; // 像素时钟$f_{pclk} = \frac{H_{total} \times V_{total} \times FPS}{lane\_num}$ hactive = <1920>; vactive = <1080>; hfront-porch = <120>; hback-porch = <120>; hsync-len = <20>; vfront-porch = <21>; vback-porch = <21>; vsync-len = <3>; }; }; }; }; ``` **关键点**: - 时序参数必须严格匹配幕规格书 - 像素时钟计算:$f_{pclk} = \frac{(H_{active} + H_{front} + H_{back} + H_{sync}) \times (V_{active} + V_{front} + V_{back} + V_{sync}) \times FPS}{lane\_num}$ 2. **内核驱动配置** ```bash make menuconfig ``` 启用以下选项: ``` Device Drivers → Graphics support → DRM Support → Rockchip DRM driver MIPI DSI Support Panel driver for your screen (e.g., JADARD JD9365) ``` 3. **编译与烧录** ```bash ./build.sh kernel # 编译内核 ./rkflash.sh write_kernel # 烧录内核 ``` ### 二、调试技巧 1. **日志分析** ```bash dmesg | grep -i "drm\|dsi" # 查看显示驱动日志 ``` 常见错误: - `"Failed to get phy"`:MIPI DPHY未使能 - `"timing not found"`:设备树时序配置错误 2. **信号测量** 使用示波器检测: - MIPI CLK频率是否匹配$f_{pclk}$ - Lane差分信号幅度(通常需>200mV) 3. **横竖切换**(引用[3]) 在设备树添加旋转属性: ```dts panel@0 { ... rotation = <90>; // 旋转角度 }; ``` ### 三、常见问题解决 | 现象 | 可能原因 | 解决方案 | |---------------------|-------------------------|----------------------------| | 幕无显示 | 背光未开启 | 检查`backlight`节点配置 | | 显示花/撕裂 | 时序参数错误 | 重新计算`clock-frequency` | | 触摸失效 | I²C地址冲突 | 使用`i2cdetect`扫描设备地址 | > **经验提示**:RK3568MIPI DSI支持4-lane传输,最大带宽达10Gbps,配置800x1280@60fps幕时需确保: > $$ \frac{800 \times 1280 \times 60 \times 24}{4} \approx 460\text{Mbps/lane} < \text{最大带宽} $$ > 若超出需降低刷新率或使用压缩模式[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值