在已有的项目上换了个新厂商的屏。Leader介绍所有驱动基本就三个步骤,配置gpio,初始化,睡眠唤醒。该项目是成熟的项目,gpio沿用已有的。初始化代码厂商已经提供,睡眠唤醒代码配置也有了。其实具体的寄存器配置在芯片手册上有详述了,不过没有长久的熏陶对含义还是不能很深的把握,借代码可以认真研究下芯片资料,完成任务的话还是迅速找厂商支援。
Spi作为控制命令,因此需要根据具体手册来设计。四线或者三线的连接方法根据具体情况而定,对于lcd来说,由于是写命令控制,大部分是三线连法。网络视频中有基础介绍写eprom的。Spi控制命令分为8位或者16位,典型的c循环写法。Clk线,SDI线,CS线。片选有效后,上升沿或者下降沿输入SDI线。
Hx8363是低有效,上升沿传输,0字写命令,1字写数据的基本写法是:
Cs(0);
Clk(1);
uDelay(10);
clk(0);
sdi(0);
udelay(100);
clk(1);
udelay(100);
for(I = 0;i<8;i++){
clk(0);
if(command&0x80){
sdi(1);
}else{
sdi(0);
}
udelay(100);
clk(1);
udelay(100);
}
cs(1);
以上为写命令的代码段。写数据首先写1即可。
将上述代码封装成写函数后,按照初始化的要求写相关的命令和数据。调试后发现背光亮了,屏没有亮。确认代码没有问题后,研究rgb接口配置寄存器,把b3h。该寄存器低四位代表了rgb接口的几个关键配置。对所有rgb接口的芯片来说,该信号都需先确认从板子上发出的信号,然后lcd控制器的信号要与之相对应。四个位的含义分别是使能位,vertical ysnc,horizontal ysnc,Piexl Clock。确认信号不用时为低电平,所以配0x0f即可。
屏亮,初步调试结束。