PSPI PANEL使用参考

Version 1.1


1. 概述

PSPI即Private SPI,Sigmastar私有SPI协议。本文将介绍rtos下如何点一颗spi panel,以SSD222 demo板为例。目前sensor只能接pspi0, panel只能接pspi1。

PSPI驱动代码不开放,使用方法详见MI PSPI。


2. sysdesc配置

根据HW Checklist中的padmux table选择PSPI的输出pad,根据panel的特性,决定是否复用TE脚。本例中以PSPI1的mode4以及TE mode5为例。

对应的引脚为:

Pad Mode
PAD_TTL0 PSPI1_CS
PAD_TTL1 PSPI1_CLK
PAD_TTL2 PSPI1_MOSI[0]
PAD_TTL3 PSPI1_MOSI[1]

需要确认当前使用的product config是使用的何种sysdesc文件,可在rtk/proj/mak/product中找到当前工程的配置,打开配置搜索CONFIG_SYSDESC_SELECT确认当前使用的sysdesc文件。例如,当前工程使用pioneer3_ssc020a_64_freertos_smp_isw_usbdev,其对应的sysdesc文件为CONFIG_SYSDESC_SELECT = "pioneer3-ssc020a-s01b.sys",那么就去修改这个文件。

sysdesc配置文件路径:rtk/proj/sc/driver/sysdriver/sysdesc/hal/pioneer3/pub/

配置示例:

如上图,<pspiX>表示PSPI栏目,X的值为0和1,例如<pspi0>表示PSPI0,仅支持输入接收,适用于sensor,<pspi1>表示PSPI1,仅支持输出,适用于panel。

用户只需关心两个选项[pspi_padmux_u8][te_padmux_u8]

[pspi_padmux_u8]:表示padmux值。例如<pspi1>[pspi_padmux_u8] 4;,表示PSPI1被复用成mode 4。

[te_padmux_u8]:表示te padmux值。例如<pspi1>[te_padmux_u8] 5;,表示PSPI1 TE被复用成mode 5。


3. 配置PSPI模块并初始化屏

根据屏的数据手册,3-Line SPI模式使用的是9bits传输,最高位控制发送0表示命令,发送1表示数据。

使用MI_PSPI_Transfer接口实现数据传输到panel,通过结构体MI_PSPI_Msg_t进行设置。如下,因为要区分命令/数据,所以第9位需要设置0或者1:

根据屏厂给的默认配置或者参考屏的数据手册,使用上述方式将相关命令发送到panel, 初始出driver IC。


4. 使用PSPI输出图像

使用MI_PSPI_SetDevAttr接口可以重新配置PSPI的参数,发送命令初始化屏时未开启TE模式,时钟为1M,单线模式传输;输出数据时打开TE模式,并提高时钟频率,使用双线模式传输,提高传输速度,如下:

首先将一张图像数据拷贝到PSPI申请的buffer中,PSPI收到TE上升沿信号后,将一张图像发送到Panel。

Demo有对这些PSPI接口做一个简易的封装,可参考rtk/proj/sc/application/common/src/st_spi.c