如何使用PSPI点屏

如何使用PSPI模块点亮SPI串口屏?

通过PSPI模块从 sensor 获取图像数据,或将图像数据通过 PSPI 传输到 panel 。

注意:目前sensor 只能接 PSPI 0, panel 只能接 PSPI 1。详解见 PSPI API

下面通过使用PSPI点SPI串口屏的示例介绍使用方法,屏幕Driver IC为ILI9340X。

  1. 根据原理图与check list表格配置padmux

    kernel/arch/arm/boot/dts下新建padmux.dtsi文件,添加如下内容:

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

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

    因为ILI9340X支持TE模式,通过寄存器配置使能。TE信号是panel反馈的场同步信号,PSPI TE Mode Flow如下图所示,在信号上升沿将一场数据通过PSPI送到Panel:

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

    按照屏厂给的默认配置或者参考屏的数据手册,使用上述方式将相关的命令送到Panel,初始化Driver IC。

  3. 使用PSPI输出图像

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

    首先将一副图像数据拷贝到PSPI申请的DRAM中,PSPI收到TE上升沿信号后,将一场图像发送到Panel。ILI9340X支持SPI双线模式,需要通过命令控制打开,图解如下: