如何使用PSPI点屏
如何使用PSPI模块点亮SPI串口屏?
通过PSPI模块从 sensor 获取图像数据,或将图像数据通过 PSPI 传输到 panel 。
注意:目前sensor 只能接 PSPI 0, panel 只能接 PSPI 1。详解见 PSPI API。
下面通过使用PSPI点SPI串口屏的示例介绍使用方法,屏幕Driver IC为ILI9340X。
-
根据原理图与check list表格配置padmux

在
kernel/arch/arm/boot/dts下新建padmux.dtsi文件,添加如下内容:
-
配置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。
-
使用PSPI输出图像
使用
MI_PSPI_SetDevAttr接口可重新配置PSPI的参数,发送命令初始化屏时未开启TE模式,时钟为1M,单线模式传输;输出数据时打开TE模式,并提高时钟频,使用双线模式传输,提高传输速度,如下。
首先将一副图像数据拷贝到PSPI申请的DRAM中,PSPI收到TE上升沿信号后,将一场图像发送到Panel。ILI9340X支持SPI双线模式,需要通过命令控制打开,图解如下:

...