LcdTools如何编写初始化代码之--SPI指令

在点屏过程中经常会碰到需要通过SPI接口对Driver IC下初始化代码后才能点亮,常见于LVDS、RGB屏,那如何在LcdTools上编写PX01 SPI初始化代码呢?

通过LcdTools帮助文档或者博客文章LcdTools指令集 - XKphone--15002088355 - 博客园 (cnblogs.com)可以查看SPI指令的详细描述,SPI读写指令描述如下:

 

 

PX01 SPI接口定义及与屏连接方法请参考LcdTools帮助文档中的“接口描述”下“SPI接口”章节,下面对指令中的参数做一下含义描述:

1. “wire”-> <几线制>参数

用于声明SPI总线使用的是几线制,这里的线包括数据线SDI( 屏端SPI数据输入端),时钟线SCK(屏端SPI时钟输入口),片选线CS(屏端SPI片选信号输入口),数据命令选择线DCX(屏端SPI数据和命令选择输入口)四根信号线,SDO(屏端SPI数据输出口)不在这个计算范围;SPI接口通常

有两种:3线制和4线制,指令中用“WIRE3”和“WIRE4”来表示。

3线制包含的信号线有:数据线SDI,时钟线SCK,片选线CS;

4线制包含的信号线有:数据线SDI,时钟线SCK,片选线CS,数据命令选择线DCX;

3线制中屏是如何区分数据和命令的呢?有两种方式:

a) 固定9bit格式数据(即“BIT9” 9位数据模式),高位在前,低位在后,最高位为0表示命令,最高位为1表示数据,参考下面9位模式波形示意图;

9bit模式下,最高表示数据或者命令位由PG自动补,数据填写的时候不用考虑,只需填写纯8位数据即可。

b) 8bit数据格式,Drvier IC自己定义,这种方法需要在写指令时把命令数据处理好;常见的有两种(其他的不一一列举):

  第一种是8bit数据模式,第一个数据固定高几位用于识别是数据还是命令;

  

  第二种就是用多个数据来设置后面的数据格式,有点类似协议方式。  

  

2. “bitn”-> <参数位数>

用于声明发送数据的单位位数,所以指令写入参数的时候需要注意(其中9bit模式下不需要写最高位,PX01会自动添加),有8位、9位和16位三种模式,指令中用“BIT8”、“BIT9”和“BIT16”来表示,如下图

a) 8位模式

b) 9位模式

9bit写数据:

9bit读数据:

 

 c) 16位模式

 

3. “cmdlen”-> <命令个数>

用于指定命令参数的个数;在写指令SpiWrite()指令中,<命令个数>参数用于声明9bit模式或者4线制模式下发送命令参数的个数N,指令中在它之后跟随的数据就是N个命令参数;

在读指令SpiRead()指令中,<命令个数>用于声明在读取SPI数据前需要发送数据的个数N,指令中在它之后跟随的数据就是N个命令参数。

4. “cmd...” -> <命令...>

SPI发送的命令参数,在四线制或9位模式下的命令数据;其他模式下,命令数据和普通数据没区别。

5. “dat...” -> <参数...>

SPI发送的数据,在四线制或9位模式下,除命令数据外需要发送的数据。

6. “dummy”-> <dummy时钟个数>

SPI读取数据之前需要发送的空时钟数,有Drvier IC SPI读时序规则决定,请参考IC资料。

下面举几个实例用LcdTools编写SPI初始化代码:

1. 一个寄存器一个参数

 查看IC料和屏电路实际配置

 

从IC资料可以看出SPI接口位3线制,写寄存器共写两个字节 ,第一个字节参数表示寄存器地址,第二个字节参数为寄存器配置值;用LcdTools SPI写指令实现这个数据发送可以选择8位模式,也可以选择16位模式;选择8位模式寄存器和数据分开写,选择16位模式需把寄存器字节和寄存器数据拼成16位数据。

这里从原始提供数据来看,我们选用8位模式,这样寄存器和配置参数分开,查看方便。如下图

 

2. 一个寄存器配置多个参数

 

查看IC资料了解SPI接口定义,接口配置为3线8位模式,数据格式如下图:

对寄存器写数据需用特有指令声明,第一和第二个数据固定为0xf1 0x01,第三个数据为寄存器写数据个数,纯命令写0,所以LcdTools实现如下图所示:

 

3. 16位寄存器地址分多次写

 

查看IC资料了解SPI接口定义位3线8位模式,发送数据格式如下图所示:

 

从数据格式可以看出,对寄存器写一个数据需分三次发送,每次发两个字节;第一个字节由于声明读写操作(R/W)、命令/数据(DCX)、高低字节识别(H/L),第二个字节为写数据;所以用LcdTools实现上述代码如下图所示:

 

 

以上只选几种典型SPI初始代码发送例子,起抛砖引玉之用,实际应用请仔细查看IC资料,理解寄存器数据设置SPI发送数据格式组成;欢迎交流!

 

posted @ 2022-10-29 21:30  XKphone--15002088355  阅读(649)  评论(0编辑  收藏  举报