SRGB点屏

如何点SRGB类型的屏幕?

以下以ST7789V+2.4寸屏为例说明:

  1. 根据原理图与Check List表确定芯片PAD_MUX

    由原理图可知PAD_TTL0PAD_TTL3复用为SPI接口;PAD_TTL4复用为GPIO模式,作为屏复位引脚常态应保持高电平;PAD_TTL12PAD_TTL17复用为LCD RGB接口。

    根据Check List表确定PAD的复用模式。

  2. 配置kernel dts文件

    kernel/arch/arm/boot/dts下新建dts文件,并在kernel/drivers/sstar/gpio/pioneer3/mhal_pinmux.c中查找对应寄存器与复用模式,在dts中新增如下内容:

    注:默认公版配的是rgb888的panel,如果是rgb565的panel多出来的PAD_TTL8和PAD_TTL11可以当做gpio使用。

  3. 根据屏幕SPEC配置SPI Mode

    SRGB屏一般先通过SPI接口发送命令初始化屏幕Driver IC,初始化的命令需要屏厂提供。通过查看屏幕SPEC文档配置SPI模式,根据屏幕资料可知SPI数据高位(MSB)在前,最高位作为命令/数据的判断位,所以我们将主机SPI配置为9bits模式。

  4. 根据屏幕PSEC文档配置屏参

    参考 TTL Panel配置屏参

    将屏参写到config.ini文件中,如SSD21X平台屏参文件的路径在project/board/ini/misc/config.ini。该文件中会有一个panel list结构体,每种接口类型(TTL,MIPI,SRGB)有且只能填写一种:

    [ROOT]
    
    m_pnlList = {\
    
    ST7710S,\           //MIPI
    
    ST7789V,\          //SRGB
    
    SAT070AT50,\    //TTL
    
    }
    

    举例的ST7789V屏参如下:

    /project/configs/defconfigs下的config文件中会有一些相关的选择项,如:

    CONFIG_IS_DEMO_BOARD=3 //选择demo板
    
    CONFIG_DISP_OUT_NAME="ST7789V" //选择屏参
    
    CONFIG_KERNEL_CONFIG="pioneer3_ssc021a_s01a_spinand_defconfig" //选择kernel编译配置
    
  5. 通过MI接口初始化Panel

    使用MI提供的MI_PANEL_Init接口初始化屏,该函数会从config.ini文件中找对应屏参加载。屏幕初始化成功后运行/customer/riu_w 1128 7 a,将disp图像打到panel上,至此点屏结束。

    如果发现点屏失败,第一步可通过查看PIN_MUX对应的寄存器是否设置正确。第二步在板子中运行/config/dump_config,查看config.ini列表中新增的屏参是否有加载成功。运行cat /proc/mi_modules/mi_panel/mi_panel0可查看当前实际使用的屏参。