S3C2451+TFT1N5676原理图设计及初始化


我们采用的处理器为S3C2451,显示屏为TFT1N5676,采用的驱动IC是HX8347D。

 

1.      HX8347D概述

 

我们先从HX8347-D(N)手册上给出下面一些描述:

The HX8347-D supports threeinterface groups: Command-Parameter interface group,Register-Content interfacegroup and RGB interface mode. Command-Parameter interface mode andRegister-Content interface mode are selected by the external pin IFSEL setting,and RGB interface mode is selected by external RCM[1:0] pins. This manualdescription focuses on Command-Parameter interface mode and RGB interface mode,about the Register-Content interface mode; please refer to the HX8347-D(T)datasheet for detail.

可知HX8347-D支持三种接口组,分别为命令-参数接口组、寄存器-内容接口组和RGB接口模式,其中命令-参数接口模式和寄存器-内容接口模式由外部引脚IFSEL的设置来决定,如下图:


图1

对于HX8347-D(T),IFSEL直接接地。RGB和系统接口模式由外部RCM[1:0]引脚来决定,如下图:


图2

也就是说如果要选择系统接口模式,也就是CPU的显示控制器采用比如是I80接口时,LCD驱动IC这边就设置RCM[1:0]=0x,如果CPU显示控制器采用RGB接口且需要用到DE控制脚时,设置RCM[1:0]=10,如果不需要DE控制脚,就设置RCM[1:0]=11,RCM[1:0]由0x31寄存器的D[1:0]( 默认为00)两位来控制,如下图:

S3C2451+TFT1N5676原理图设计及初始化_第1张图片

图3

 

 

2.      TFT1N5676引脚

先来看TFT1N5676显示屏的引脚,如下图:


图4

 

(1)    系统接口的选择引脚

IM[3:0]--------用于选择具体的系统接口,如下图:


图5

 

在设计时,我们决定采用RGB接口来发送显示数据,只利用系统接口来初始化驱动IC,也就是,那是选择3线的串行接口还是4线的串行接口呢?

 

HX8347-D在寄存器-内容模式下,支持两种串行总线接口,分别为3和4线串行总线接口,可通过外部引脚IM2和IM1设置为10来选择3线,设置为11选择为4线的。由图5可知这两种的差别在于DNC_SCL引脚用来做什么,我们采用的显示屏并没有引出相关的引脚,所以只能选择3线串行接口,这样IM3和IM1就只能为10了。

 

(2)    RGB操作控制引脚

RESET--------复位引脚,在上电后,要拉低复位引脚来初始化驱动IC,复位输入时序如下图:

S3C2451+TFT1N5676原理图设计及初始化_第2张图片

图6

VSYSNC--------RGB接口操作的帧同步信号,低电平有效。

HSYSNC--------RGB接口操作的行同步信号,低电平有效。

DOTCLK--------RGB接口操作的像素时钟信号,输入数据在DOTCLK的上升沿输入。

ENABLE--------RGB接口操作的数据使能引脚。

 

(3)    RGB数据总线引脚

DB[17:0]--------18位的双向数据总线,RGB像素数据就是通过这些引脚发送到驱动IC的。

HX8347-D支持RGB模式1和RGB模式2,具体见前面的描述,这两者的差别在于RGB模式1使用DE引脚。

 

(4)    串行控制接口

SDA--------串行总线系统接口的串行数据输入输出复用引脚,在此用来读写驱动IC的寄存器。

RD----------I80系统接口操作的读选通信号,低电平使能读操作,对于RGB接口此引脚可接到IOVCC或是GND

WR/SCL--- I80系统接口操作的写选通信号,低电平使能写操作,也可作为串行接口操作的同步时钟信号(SCL),在此用于同步SDA引脚的读写寄存器操作。

CS----------片选信号,低电平选中驱动IC并可被访问,高电平不选中驱动IC且不能被访问。

FMARK---帧头脉冲信号,在写数据到内部RAM时使用,不使用时open,在此没有使用。

 

3.      CPU和显示屏接口的原理图设计


图7

需要说明一下几点:

(1)    IM[3:0]

这里IM[3:0]=0100,也就是说采用的是3线串行接口,而且IM0对应的ID的值为0,见图5。

只要确认ID具体的值后,才能对驱动IC寄存器进行正确的读写。

 

(2)    RD和RS

这两个引脚用于I80系统接口,但我们是采用RGB接口进行显示数据的传输,所以这里接到VDD上。

 

(3)    VD[17:0]

这里一定要确保CPU显示控制器和显示屏对应的RGB数据引脚接好,否则可能显示偏色或是其他显示异常的情况,可见我之前的博文《AA065VD数据线连接错位的现象及分析总结》http://blog.csdn.net/loongembedded/article/details/6997526。

 

先来看HX8347-D相关部分:

S3C2451+TFT1N5676原理图设计及初始化_第3张图片

图8

由图8可知HX8347-D支持三种数据宽度,分为是6/16/18位,这有0x17H寄存器的内容来决定,此寄存器的值可读写,其值为60h表示采用的是18位的数据宽度,由此也可知此驱动IC最大支持18位的数据宽度。

 

我们的CPU显示控制器这端选择RGB666的模式,由图8可知,D[17:12]分别输出R[5:0]数据,D[11:6]分别输出G[5:0]数据,D[5:0]分别输出B[5:0]数据。获取到这些信息后,我们来看CPU显示控制器RGB接口部分的描述


图9

可知VD[23:18]依次对应R[5:0],可知VD[15:10]依次对应G[5:0],可知VD[7:2]依次对应B[5:0],接下来我们再来看是哪些GPIO口可以作为VD[23:0]的,

S3C2451+TFT1N5676原理图设计及初始化_第4张图片

图10

结合图8、9和10,GPC[15:10]需要依次接到显示屏的D[5:0]引脚,对应B[5:0]部分,继续:

S3C2451+TFT1N5676原理图设计及初始化_第5张图片

图11

结合图8、9和11,GPD[15:10]需要依次接到显示屏的D[17:12]引脚,对应R[5:0]部分,GPD[7:2]需要依次接到显示屏的D[11:6]引脚,对应B[5:0]部分。

 

到此就可以确定CPU显示控制器的GPIO和显示屏数据引脚的连接关系了,如下图所示:

S3C2451+TFT1N5676原理图设计及初始化_第6张图片

图12

 

(4)     

 

 

4.      CPU显示控制器的设置

显示控制器寄存器的设置在此不详细介绍,主要说明以下几点

(1)    配置RGB GPIO

由图12可知RGB数据引脚的连接关系,需要把GPCCON和CPDCON配置为对应的VD功能引脚,GPCUDP和GPDUDP配置为pull-up/down disable,其他的配置是否有效还有待验证。

(2)    图像帧、行、像素数据的同步发送时序配置

这需要根据驱动IC给出的相关时序图及具体参数,如下图:


图13

具体的确认方法可参考我之前的博文:

AA065VD时序的确定》: http://blog.csdn.net/loongembedded/article/details/6916391

LCD控制器时序参数的确定(基于TFT LCD:KD50G9-40NM-A3)》: http://blog.csdn.net/loongembedded/article/details/5975666

(3)    配置对驱动IC寄存器读写的GPIO

控制引脚如下:

GPC0_LCD-CS--------配置为输出和enablepull-down。

GPK0_LCD_SDA、 GPK1_LCD_SCL-----配置为输出和disablepull-up/down

这里引脚上下拉为什么要这样配置,以及是否一定要这样配置,暂时还不太确定。

(4)    VIDCON0寄存器

S3C2451+TFT1N5676原理图设计及初始化_第7张图片

图14

如果是RGB接口,VIDOUT=00,还有注意PNRMODE可控的显示模式等等,这些都要和显示屏的驱动IC对应起来。

 

(5)     

 

5.      HX8347-D的初始化

HX8347-D驱动IC在上电后需要执行下面的动作:

(1)    复位

根据图6给出的复位输入时序来控制,相关代码如下:

//拉低CS

         LCD_CS_LOW;

         DelayX1ms(15);

         //RESET

             s2450IOP->GPDDAT&=~(0x1<<0);

         DelayX1ms(30);    //实际4.5ms

         s2450IOP->GPDDAT|=(0x1<<0);

         DelayX1ms(40);

 

         LCD_CS_HIG;

(2)    寄存器的初始化内容

具体需要对哪些寄存器设置为哪些内容,这个主要根据显示屏厂家给出的数据基本上就OK了,如果要搞清楚每个寄存器的意义就要参考驱动IC的数据手册,在此不详细描述了。

 

(3)    寄存器读写控制

显示屏厂家也会给出他们测试平台的参考代码,但要用到自己的平台上,一般都要做些修改,主要是涉及到具体GPIO口的控制、延时时间的调整,这部分见我之前的博文:

兼容HX8347DHX8347-H驱动IC类型的显示屏》:

http://blog.csdn.net/loongembedded/article/details/8032881

 

你可能感兴趣的:(S3C2451+TFT1N5676原理图设计及初始化)