SRGB点屏
如何点SRGB类型的屏幕?
以下以ST7789V+2.4寸屏为例说明:
-
根据原理图与Check List表确定芯片PAD_MUX
由原理图可知PAD_TTL0PAD_TTL3复用为SPI接口;PAD_TTL4复用为GPIO模式,作为屏复位引脚常态应保持高电平;PAD_TTL12PAD_TTL17复用为LCD RGB接口。
根据Check List表确定PAD的复用模式。
-
配置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使用。
-
根据屏幕SPEC配置SPI Mode
SRGB屏一般先通过SPI接口发送命令初始化屏幕Driver IC,初始化的命令需要屏厂提供。通过查看屏幕SPEC文档配置SPI模式,根据屏幕资料可知SPI数据高位(MSB)在前,最高位作为命令/数据的判断位,所以我们将主机SPI配置为9bits模式。
-
根据屏幕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编译配置
-
通过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
可查看当前实际使用的屏参。