FPGA实战演练逻辑篇26:LCD显示驱动子板详细设计
0赞LCD显示驱动子板详细设计
本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》
配套例程下载链接:http://pan.baidu.com/s/1pJ5bCtt
SF-LCD与FPGA引脚定义如表3.4所示。(特权同学,版权所有)
表3.4 SF-LCD与FPGA引脚定义
分类 |
名称 |
引脚号 |
功能描述 |
背光控制 |
9293EN |
85 |
背光芯片使能信号。 |
LCD驱动 |
LCD_B0 |
84 |
蓝色数据位0。 |
LCD_B1 |
83 |
蓝色数据位1。 |
|
LCD_B2 |
80 |
蓝色数据位2。 |
|
LCD_B3 |
79 |
蓝色数据位3。 |
|
LCD_B4 |
77 |
蓝色数据位4。 |
|
LCD_G0 |
76 |
绿色数据位0。 |
|
LCD_G1 |
75 |
绿色数据位1。 |
|
LCD_G2 |
74 |
绿色数据位2。 |
|
LCD_G3 |
73 |
绿色数据位3。 |
|
LCD_G4 |
72 |
绿色数据位4。 |
|
LCD_G5 |
71 |
绿色数据位5。 |
|
LCD_R0 |
70 |
红色数据位0。 |
|
LCD_R1 |
69 |
红色数据位1。 |
|
LCD_R2 |
68 |
红色数据位2。 |
|
LCD_R3 |
67 |
红色数据位3。 |
|
LCD_R4 |
66 |
红色数据位4。 |
|
LCD_HSY |
65 |
行同步信号。 |
|
LCD_VSY |
64 |
场同步信号。 |
|
LCD_CLK |
60 |
显示数据锁存时钟。 |
|
触摸屏控制 |
AWIRQ |
55 |
中断请求信号。 |
AWSCL |
59 |
I2C接口时钟信号。 |
|
AWSDA |
58 |
I2C接口数据信号。 |
54PIN的FPC插座用于连接LCD进行驱动,这个LCD的驱动接口原理图如图3.56所示,其接口详细定义和功能描述如表3.5所示。(特权同学,版权所有)
图3.56 LCD接口电路
表3.5 LCD驱动接口引脚定义
引脚 |
信号 |
功能 |
1 |
VBL- |
LED背光地。 |
2 |
VBL- |
LED背光地。 |
3 |
VBL+ |
LED背光电源。 |
4 |
VBL+ |
LED背光电源。 |
5 |
Y1 |
触摸屏:上。 |
6 |
X1 |
触摸屏:右。 |
7 |
NC |
无连接。 |
8 |
RESET# |
硬件复位。 |
9 |
SPENA |
SPI接口数据使能信号。 |
10 |
SPCLK |
SPI接口数据锁存时钟。 |
11 |
SPDAT |
SPI接口数据信号。 |
12 |
B0 |
蓝色数据位0。 |
13 |
B1 |
蓝色数据位1。 |
14 |
B2 |
蓝色数据位2。 |
15 |
B3 |
蓝色数据位3。 |
16 |
B4 |
蓝色数据位4。 |
17 |
B5 |
蓝色数据位5。 |
18 |
B6 |
蓝色数据位6。 |
19 |
B7 |
蓝色数据位7。 |
20 |
G0 |
绿色数据位0。 |
21 |
G1 |
绿色数据位1。 |
22 |
G2 |
绿色数据位2。 |
23 |
G3 |
绿色数据位3。 |
24 |
G4 |
绿色数据位4。 |
25 |
G5 |
绿色数据位5。 |
26 |
G6 |
绿色数据位6。 |
27 |
G7 |
绿色数据位7。 |
28 |
R0 |
红色数据位0。 |
29 |
R1 |
红色数据位1。 |
30 |
R2 |
红色数据位2。 |
31 |
R3 |
红色数据位3。 |
32 |
R4 |
红色数据位4。 |
33 |
R5 |
红色数据位5。 |
34 |
R6 |
红色数据位6。 |
35 |
R7 |
红色数据位7。 |
36 |
HSYNC |
行同步信号。 |
37 |
VSYNC |
场同步信号。 |
38 |
DCLK |
显示数据锁存时钟。 |
39 |
NC |
不连接。 |
40 |
NC |
不连接。 |
41 |
VCC |
数字电源。 |
42 |
VCC |
数字电源。 |
43 |
Y2 |
触摸屏:下。 |
44 |
X2 |
触摸屏:左。 |
45 |
NC |
不连接。 |
46 |
NC |
不连接。 |
47 |
NC |
不连接。 |
48 |
IF2 |
数据输入格式控制引脚。 |
49 |
IF1 |
数据输入格式控制引脚。 |
50 |
IF0 |
数据输入格式控制引脚。 |
51 |
NC |
不连接。 |
52 |
DE |
数据输入使能。 |
53 |
GND |
数字地。 |
54 |
GND |
数字地。 |
我们可以将该表中的信号接口归为五类。第一类是数字信号接口,如RESET、SPENA、SPCLK、SPDAT、Rx(x为0到7)、Gx、Bx、HSYNC、VSYNC、DCLK和DE。此类信号主要是传输显示数据给LCD面板,这么多接口,是不是所有的引脚都要用上呢?不是的,其实仔细看这款LCD的datasheet,我们发现它提供了多种数据传输方式,有常见的并行RGB数据传输,也有CCIR601/656等方式。前者通常驱动时钟慢一些,而需要的数据总线宽一些,传输协议也更简单,我们也更倾向于采用前者进行通信。由于这里的数据接口合计是24bit的,也就是说每个像素点的色彩可以显示2的24次方种,即通常所说的1600万色。不过实际上我们并没有用足这24bit数据线,我们的图片是16bit的,基本上人眼感觉已经够绚丽了。因此,在硬件连接上,我们做了如图3.56所示的处理,为的是减少数据位宽。SPENA、SPCLK、SPDAT是SPI接口,用于给LCD的一些控制寄存器写数据,有些液晶屏需要在LCD上电后用该接口做一些配置才能够正常使用,而我们使用的这款屏则不需要,因此我们可以不必理会这些引脚。时序的控制上既可以用HSYNC/VSYNC模式(我们的电路上使用了该模式),也可以用只有DE的模式。(特权同学,版权所有)
第二类接口,即液晶的模式设置专用输入接口,包括了IF0、IF1、IF2等接口,它们的主要功能就是设置使用哪种数据传输方式,我们的设计中统一采用并行RGB数据传输。第三类接口是触摸屏信号接口,是模拟信号,如Y1、X1、Y2、X2,这些引脚是否使用需要看液晶屏是否真的接好了触摸屏。第四类接口是电源接口,即VCC(接3.3V)和GND信号。第五类是背光电源,即VBL+和VBL-信号,这部分硬件上设计了专门的背光电源电路产生19.8V电压进行供电。(特权同学,版权所有)
如图3.57所示,LCD内部的背光是6个LED串联,每个LED的额定电压是3.3V,电流是20mA。因此,要驱动这6个LED就需要19.8V/20mA的电压。我们的系统输入电源是5V,必须升压才能够得到19.8V。(特权同学,版权所有)
图3.57 LCD的背光驱动条件
LCD驱动的背光电路如图3.58所示,这里使用了升压芯片RT9293,该芯片为恒流控制,只要设定驱动电流即可使LCD的背光正常工作。FB引脚和GND之间有两个33ohm电阻并联,得到的阻值是16.5ohm,该阻值对应设置了约20mA的驱动电流。(特权同学,版权所有)
图3.58 LCD背光驱动电路
触摸屏驱动器芯片AW2083电路如图3.59所示。它由两路的差分模拟电压输入,用于采集电阻式触摸屏的模拟电压。数字端有一个IRQ中断信号可以连接到FPGA,FPGA接收到中断后,作为主机,可以通过I2C接口读取的当前的触摸屏坐标数据。(由于我们所使用的3.5寸液晶屏LQ035NC111带触摸屏版本已经停产,所以我们电路上只是保留,但不焊接芯片)
图3.59触摸屏驱动电路