如何使用PSPI点屏
如何使用PSPI模块点亮SPI串口屏?
通过PSPI模块从 sensor 获取图像数据,或将图像数据通过 PSPI 传输到 panel 。
注意:目前sensor 只能接 PSPI 0, panel 只能接 PSPI 1。详解见 MI 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双线模式,需要通过命令控制打开,图解如下: