rv1126平台spi屏调试

文章讲述了在RV1126平台上使用ST7789显示芯片的硬件配置问题,包括6bit色彩导致的颜色显示不足。在调试过程中,遇到颜色显示异常、切屏现象以及屏抖动等问题,分别通过修改dts配置、调整刷屏方向和VCOM电压寄存器值来解决。
摘要由CSDN通过智能技术生成

我们使用的rv1126平台,屏ic ST7789,硬件使用6bit,由于不是8bit的,所以显示的颜色没有那么丰富
1.硬件原理图
在这里插入图片描述
2.dts配置

&rgb {
        status = "okay";

        pinctrl-names = "default";
        pinctrl-0 = <&lcdc_ctl>;



        ports {
                rgb_out: port@1 {
                        reg = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;

                        rgb_out_panel: endpoint@1 {
                                reg = <1>;
                                remote-endpoint = <&panel_in_rgb>;
                        };
                };
        };
};

&vop {
        status = "okay";
};
&vop_mmu {
        status = "okay";
};


 panel {
                compatible = "simple-panel";
                status = "okay";
                bus-format = <MEDIA_BUS_FMT_SRGB888_3X8>;

                backlight = <&backlight>;
                enable-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
                enable-delay-ms = <20>;
                reset-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
                reset-value = <0>;
                reset-delay-ms = <10>;
                prepare-delay-ms = <20>;
                unprepare-delay-ms = <20>;
                disable-delay-ms = <20>;

                spi-sdi-gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
                spi-scl-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
                spi-cs-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
                width-mm = <217>;
                height-mm = <136>;
                //rockchip,data-mapping = "vesa";
                rockchip,data-mapping = <0>;
                rockchip,data-width = <24>;
                //rockchip,output = "rgb";
                rockchip,output = <0>;
                rgb-mode = "p666";
                rockchip,cmd-type = "spi";
                bpc = <6>;

                // type:0 is cmd, 1 is data
                panel-init-sequence = [
                        // type delay num val1 val2 val3
                          00   00  01  11
                          00   78  01  3a
                          01   00  01  66
                          00   00  01  11
                          00   78  01  b4
                          01   00  01  00
                          00   00  01  36
                          01   00  01  dc

                          00   00  01  B0
                          01   00  01  11
                          01   00  01  f4



						00 00 01 B2
						01 00 01 0C
						01 00 01 0C
						01 00 01 00
						01 00 01 33
						01 00 01 33
						
						00 00 01 BB   //VCOM
						01 00 01 1A
						
						00 00 01 C0
						01 00 01 2C
						00 00 01 C3   //GVDD
						01 00 01 0F //4.3V
						
						00 00 01 C4
						01 00 01 20
						
						00 00 01 C6
						01 00 01 0F //Dot INV, 60Hz
						
						00 00 01 D0
						01 00 01 A4
						01 00 01 A1
						
						00 00 01 E0
						01 00 01 D0
						01 00 01 13
						01 00 01 1A
						01 00 01 0A
						01 00 01 0A
						01 00 01 26
						01 00 01 3F
						01 00 01 54
						01 00 01 54
						01 00 01 18
						01 00 01 14
						01 00 01 14
						01 00 01 30
						01 00 01 33
						
						00 00 01 E1
						01 00 01 D0
						01 00 01 13
						01 00 01 1A
						01 00 01 0A
						01 00 01 0A
						01 00 01 26
						01 00 01 3F
						01 00 01 54
						01 00 01 54
						01 00 01 1A
						01 00 01 16
						01 00 01 16
						01 00 01 32
						01 00 01 35
						
						00 78 01 29
						
						
						
						00 00 01 20

3.调试过程中遇到的问题
1.颜色显示异常
修改arch/arm/boot/dts/sd412-pinctrl.dtsi

lcdc {
                /omit-if-no-ref/
                lcdc_ctl: lcdc-ctl {
                        rockchip,pins =
                                /* lcdc_d0 */
                                <2 RK_PA4 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_d1 */
                                <2 RK_PA5 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_d2 */
                                <2 RK_PA6 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_d3 */
                                <2 RK_PA7 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_d4 */
                                <2 RK_PB0 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_d5 */
                                <2 RK_PB1 1 &pcfg_pull_none_drv_level_2>,
					//虽然低两位硬件没有接,但是软件也需要配置
                                /* lcdc_d6 */
                                <2 RK_PB2 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_d7 */
                                <2 RK_PB3 1 &pcfg_pull_none_drv_level_2>,


                                /* lcdc_den */
                                <2 RK_PD4 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_hsync */
                                <2 RK_PD5 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_vsync */
                                <2 RK_PD6 1 &pcfg_pull_none_drv_level_2>,
                                /* lcdc_clk */
                                <2 RK_PD7 1 &pcfg_pull_none_drv_level_8>;

                };
        };

2.出现切屏现象
最后发现是刷屏方向出错所致,修改36寄存器解决了这个问题,36寄存器值由厂家给的c8改成了dc
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.屏抖动问题
修改VCOM电压解决了问题,修改BB寄存器,由0.6v改成了1v左右解决,寄存器设置为27解决
VCOM是液晶分子偏转的参考电压 ,要求要稳定,对液晶显示有直接影响。
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值