28 液晶屏7寸LCD显示测试

发布时间 2023-12-29 17:43:56作者: 米联客(milianke)

软件版本:VIVADO2021.1

操作系统:WIN10 64bit

硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA

登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!

1 概述

前文中,我们已经实现了HDMI输出实验,米联客的HDMI输出采用了FPGA实现了HDMI输出协议,直接驱动了HDMI接口的液晶屏。我们可以把HDMI输出IP看作一个黑盒子,黑盒子的接口是RGB输入接口,输出是HDMI接口输出。不管是HDMI接口,或者是VGA接口,亦或是RGB接口等等...关键的是让程序正确输出RGB时序。对于本文中使用的液晶屏,可以通过RGB接口直接驱动液晶屏,也可以通过LVDS驱动液晶屏,如果使用LVDS接口,也是首先要正确输出RGB的驱动时序。

米联客的液晶屏同时支持RGB接口和LVDS接口,RGB接口是3.3V IO,LVDS接口支持标准的LVDS和LVDS25。用户在使用液晶屏的时候一定要根据开发板支持的电平选择对应的驱动接口,以免损坏液晶屏或者开发板。

液晶屏参数:

型号

VCLD-7TH

液晶显示屏型号

T HC63LVDM83D

液晶分辨率

1024*600

液晶屏幕比例

4:3

液晶驱动接口

RGB/VGA

触摸芯片型号

GP915

支持触点数量

5

支持最大分辨率

1024*600

2 LCD液晶屏参数

以上参数中液晶屏支持分辨率为1024*600,使用的接口是LVDS接口。我们做的液晶屏产品增加的RGB转LVDS芯片所以也支持RGB接口驱动液晶屏,对于一些新手来说,RGB接口更加方便,而且RGB是3.3V的接口。

3 LCD液晶屏驱动时序

本实验以8bit LVDS 方式工作,下图中给出了6bit和8bit的工作时序,FPGA程序设计需要满足以下时序。另外注意,时钟的占空比,高电平:低电平=4:3

4 LCD液晶屏接口

RGB接口定义

引脚号

标识

描述

类型

1

CTP_INT

触摸中断

输出

2

CTP_RST

触摸复位

输入

3

CTP_SDA

I2C数据脚

输入/输出

4

CTP_SCL

I2C时钟脚

输出入

5

GND

电源地

电源

6

PWM

PWM调光

输入

7

DE

数据有效

输入

8

VSYNC

场同步

输入

9

HSYNC

行同步

输入

10

BL-EN

背光使能

输入

11

PCLK

像素时钟

输入

12

GND

电源地

电源

13~20

B0~B7

数据

输入

21~28

G0~G7

数据

输入

29~36

R0~R7

数据

输入

37

VDD

电源3.3V

电源

38

GND

电源地

电源

39

BL_VDD

电源5V

电源

40

BL_VDD

电源5V

电源

 

LVDS接口定义

引脚号

标识

 

类型

1~3

BL-5V

电源5V

电源

4

NC

悬空

 

5

BL-EN

背光使能

输入

6

PWM

PWM调光

输入

7

NC

悬空

 

8~10

BL-GND

电源地

电源

11

GND

电源地

电源

12

CTP_INT

触摸中断

输出

13

CTP_RST

触摸复位

输入

14

CTP_SCL

I2C时钟脚

输入

15

CTP_SDA

I2C数据脚

输入/输出

16

GND

电源地

电源

17~18

NC

悬空

 

19

GND

电源地

电源

20/21

RXIN3+/ RXIN3-

差分数据

输入

22

GND

电源地

电源

23/24

RXCLKIN+/ RXCLKIN -

差分时钟

输入

25

GND

电源地

电源

26/27

RXIN2+/ RXIN2-

差分数据

输入

28

GND

电源地

电源

29/30

RXIN1+/ RXIN1-

差分数据

输入

31

GND

电源地

电源

32/33

RXIN0+/ RXIN0-

差分数据

输入

34~36

GND

电源地

电源

37~39

VDD

电源3.3V

电源

40

NC

悬空

 

5 硬件电路分析

硬件接口和子卡模块请阅读"附录 1"

配套工程的 FPGA PIN 脚定义路径为 fpga_prj/uisrc/04_pin/ fpga_pin.xdc。

6 系统框图

7 RGB接口显示程序

默认液晶屏是直接支持LVDS信号驱动,而不支持RGB驱动,所以如果从省硬件IO资源以及省成本角度,LVDS成本更低。但是LVDS对于FPGA支持有要求,XILINX 的FPGA支持LVDS25和标准LVDS。而一般的开发板IO电平为3.3V所以一般情况下,开发板默认不能支持LVDS输出。米联客的开发板如果支持3.3V默认输出的,需要修改核心板的ADJ电阻实现2.5V或者1.8V输出,修改后就可以使用LVDS驱动液晶屏。用户选购板卡使用液晶的时候需要清楚知道自己的IO电平。

/*************LCD 视频输出测试*************

--版本号1.1

--使用VTC产生视频时序

--使用TPG产生测试图像数据

*********************************************************************/

`timescale 1 ps / 1 ps

 

module display(

input   I_sysclk,//系统时钟输入

output  O_lcd_pwm,//背光PWM

output  O_lcd_pclk,

output  [7:3] O_lcd_r,

output  [7:2] O_lcd_g,

output  [7:3] O_lcd_b,

output  O_lcd_hs,

output  O_lcd_vs,

output  O_lcd_de,

output  O_card_power_en

);

 

wire vid_rst,vid_clk,vid_vs,vid_hs,vid_de;

 

assign O_card_power_en   = 1'b1;//子卡上电

assign O_lcd_pwm  = 1'b1;//设置背光PWM,设置1背光全开

assign O_lcd_pclk = vid_clk;

 

//MMCM/PLL 时钟模块

clk_wiz_0  u_clk(.clk_in1(I_sysclk),.clk_out1(vid_clk),.locked(vid_rst));

 

//例化uivtc VTC 产生视频时序,液晶屏分辨率1024*600

uivtc#

(

.H_ActiveSize(1024), //视频时间参数,行视频信号,一行有效(需要显示的部分)像素所占的时钟数,一个时钟对应一个有效像素

.H_FrameSize(1344), //视频时间参数,行视频信号,一行视频信号总计占用的时钟数

.H_SyncStart(1048), //视频时间参数,行同步开始,即多少时钟数后开始产生行同步信号

.H_SyncEnd(1184), //视频时间参数,行同步结束,即多少时钟数后停止产生行同步信号,之后就是行有效数据部分

.V_ActiveSize(600), //视频时间参数,场视频信号,一帧图像所占用的有效(需要显示的部分)行数量,通常说的视频分辨率即H_ActiveSize*V_ActiveSize

.V_FrameSize(628), //视频时间参数,场视频信号,一帧视频信号总计占用的行数量

.V_SyncStart(601), //视频时间参数,场同步开始,即多少行数后开始产生场同步信号

.V_SyncEnd (602) //视频时间参数,场同步结束,即多少行数后停止产生场同步信号,之后就是场有效数据部分

)

uivtc_inst

(

.I_vtc_rstn(vid_rst),//系统时钟,像素时钟

.I_vtc_clk(vid_clk),//系统复位

.O_vtc_vs(vid_vs),//场同步输出

.O_vtc_hs(vid_hs),//行同步输出

.O_vtc_de_valid(vid_de) //视频数据有效

);

 

//例化TPG 产生测试视频数据

uitpg uitpg_inst    

(

.I_tpg_rstn(vid_rst),//系统复位

.I_tpg_clk(vid_clk),//系统时钟,像素时钟

.I_tpg_vs(vid_vs),//场同步输入

.I_tpg_hs(vid_hs),//行同步输入

.I_tpg_de(vid_de),//视频数据有效

.O_tpg_vs(O_lcd_vs),//场同步输出

.O_tpg_hs(O_lcd_hs),//行同步输出

.O_tpg_de(O_lcd_de),    

.O_tpg_data({{O_lcd_r,3'd0},{O_lcd_g,2'd0},{O_lcd_b,3'd0}}) //测试图像数据输出  

);

 

endmodule

 

8 硬件连线

(该教程为通用型教程,教程中仅展示一款示例开发板的连接方式,具体连接方式以所购买的开发板型号以及结合配套代码管脚约束为准。)

我们使用米联客3.3V BASE子卡,接口使用的是我们液晶屏的RGB口。下图是RGB接线方式。请确保下载器和开发板已经正确连接,并且开发板已经上电。(注意JTAG端子不支持热插拔,而USB接口支持,所以在不通电的情况下接通好JTAG后,再插入USB到电脑,之后再上电,以免造成JTAG IO损坏)

7寸液晶屏的接口使用的是RGB接口

9 测试结果