百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

正点原子开拓者FPGA开发板资料连载第二十二章RGBTFT-LCD彩条显示

cac55 2025-07-14 15:06 14 浏览 0 评论

1)实验平台:正点原子开拓者FPGA 开发板

2)摘自《开拓者FPGA开发指南》关注官方微信号公众号,获取更多资料:正点原子

3)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-13912-1-1.html

第二十二章 RGB TFT-LCD彩条显示实验

TFT-LCD是一种液晶显示屏,它采用薄膜晶体管(TFT)技术提升图像质量,如提高图像亮

度和对比度等。相比于传统的CRT显示器,TFT-LCD有着轻薄、功耗低、无辐射、图像质量好等

诸多优点,因此广泛应用于电视机、电脑显示器、手机等各种显示设备中。

本章包括以下几个部分:

22.1 RGB TFT-LCD简介

22.2 实验任务

22.3 硬件设计

22.4 程序设计

22.5 下载验证

RGB TFT-LCD简介

TFT-LCD的全称是Thin Film Transistor-Liquid Crystal Display,即薄膜晶体管液晶显

示屏,它显示的每个像素点都是由集成在液晶后面的薄膜晶体管独立驱动的,因此TFT-LCD具

有较高的响应速度以及较好的图像质量。

与VGA不同,TFT-LCD直接接收数字信号,并能够支持不同的接口类型,如RGB接口、

Intel8080接口等。本章我们将使用ALIENTEK推出的一款7寸RGB接口TFT液晶显示屏模块(以下

简介ATK-7’RGBLCD模块)为例,介绍RGB LCD的使用方法,如下图所示:


图 22.1.1 ATK-7’RGB接口TFT液晶屏模块

ATK-7’RGBLCD模块采用群创光电的7寸LCD液晶屏AT070TN92,分辨率为800*480,采用

RGB888格式的数据接口(也可使用RGB565格式)。下面是AT070TN92输入数据的时序图:


图 22.1.2 AT070TN92行时序图

图 22.1.3 AT070TN92场时序图

从图 22.1.2、图 22.1.3中可以看到,AT070TN92液晶屏的输入数据有两种同步方式,分

别为行场同步模式(HV Mode)和数据使能同步模式(DE Mode),可通过MODE引脚进行选择。

AT070TN92的数据手册指出,当MODE引脚拉高时,选择DE同步模式,此时行场同步信号VS和HS

必须为高电平;当MODE引脚拉低时,选择HV同步模式,此时数据使能信号DE必须为低电平。

图 22.1.4、图 22.1.5为AT070TN92输入数据的时序参数:


图 22.1.4 AT070TN92行时序参数


图 22.1.5 AT070TN92场时序参数

AT070TN92液晶屏在HV模式下的时序图与与VGA接口的时序图非常相似,只是参数不同,这

里我们重新给出LCD彩条显示实验中的时序参数如表 22.1.1所示。

表 22.1.1 不同分辨率的LCD时序参数


由于ATK-7’RGBLCD模块将液晶屏AT070TN92的MODE引脚拉高了,因此我们需要采用DE模式

驱动液晶屏。实际上,在DE模式下,同步信号DE对应的正是VGA时序中的有效数据段(c),如

图 22.1.6所示:


图 22.1.6 VGA行同步时序

实验任务

本节实验任务是使用开拓者开发板上的RGB TFT-LCD接口在7寸RGB LCD液晶屏模块(分辨

率为800*480)上显示彩条。其它尺寸和分辨率的RGB LCD模块,只需要在此基础上稍作修改,

即可显示出彩条,修改方法见本节程序设计部分。

硬件设计

开拓者开发板上RGB TFTLCD接口部分的原理图如图 22.3.1所示。


图 22.3.1 RGB TFTLCD接口原理图

从上图中可以看到,FPGA管脚输出的颜色数据位宽为16bit,数据格式为RGB565,即数据

高5位表示红色,中间6位表示绿色,低5位表示蓝色。

另外,RGBLCD模块支持触摸功能,图中以字母T开头的5个信号(T_PEN、T_SCK等)与模块

上的触摸芯片相连接。由于本次实验不涉及触摸功能的实现,因此这些信号并未用到。

本实验中,各端口信号的管脚分配如下表所示:

表 22.3.1 RGB TFT-LCD彩条实验管脚分配


程序设计

RGB TFT-LCD输入时序包含三个要素:像素时钟、同步信号、以及图像数据,由此我们可

以大致规划出系统结构如图 22.4.1所示。其中,时钟分频模块负责产生像素时钟,LCD驱动模

块产生同步信号,LCD显示模块输出图像数据。

图 22.4.1 RGB TFT-LCD彩条显示系统框图

由系统框图可知,FPGA部分包括四个模块,顶层模块(lcd_rgb_colorbar)、时钟分频模

块(lcd_pll)、LCD显示模块(lcd_display)以及LCD驱动模块(lcd_driver)。其中在顶层

模块中完成对另外三个模块的例化。

各模块端口及信号连接如图 22.4.2所示:


图 22.4.2 顶层模块原理图

时钟分频模块(lcd_pll)通过调用锁相环(PLL)IP核来实现,我们可以根据表 22.1.1

得知实验中LCD显示需要用到的像素时钟。LCD驱动模块(lcd_driver)在像素时钟的驱动下输

出数据使能信号用于数据同步,同时还需要输出像素点的纵横坐标,供LCD显示模块

(lcd_display)调用,以绘制彩条图案。

由于液晶屏AT070TN92的输入时序与与VGA接口的时序非常相似,RGB TFT-LCD的彩条显示

程序只需要在VGA彩条显示程序的基础上对VGA驱动模块稍作修改即可。因此这里我们仅介绍

LCD驱动模块,其他模块请大家参考“VGA彩条显示实验”。

LCD驱动模块的代码如下所示:

1 module lcd_driver(

2 input lcd_clk, //lcd模块驱动时钟

3 input sys_rst_n, //复位信号

4 //RGB LCD接口

5 output lcd_hs, //LCD 行同步信号

6 output lcd_vs, //LCD 场同步信号

7 output lcd_de, //LCD 数据输入使能

8 output [15:0] lcd_rgb, //LCD RGB565颜色数据

9 output lcd_bl, //LCD 背光控制信号

10 output lcd_rst, //LCD 复位信号

11 output lcd_pclk, //LCD 采样时钟

12

13 input [15:0] pixel_data, //像素点数据

14 output [10:0] pixel_xpos, //像素点横坐标

15 output [10:0] pixel_ypos //像素点纵坐标

16 );

17

18 //parameter define

19 parameter H_SYNC = 11'd128; //行同步

20 parameter H_BACK = 11'd88; //行显示后沿

21 parameter H_DISP = 11'd800; //行有效数据

22 parameter H_FRONT = 11'd40; //行显示前沿

23 parameter H_TOTAL = 11'd1056; //行扫描周期

24

25 parameter V_SYNC = 11'd2; //场同步

26 parameter V_BACK = 11'd33; //场显示后沿

27 parameter V_DISP = 11'd480; //场有效数据

28 parameter V_FRONT = 11'd10; //场显示前沿

29 parameter V_TOTAL = 11'd525; //场扫描周期

30

31 //reg define

32 reg [10:0] cnt_h;

33 reg [10:0] cnt_v;

34

35 //wire define

36 wire lcd_en;

37 wire data_req;

38

39 //*****************************************************

40 //** main code

41 //*****************************************************

42 assign lcd_bl = 1'b1; //RGB LCD显示模块背光控制信号

43 assign lcd_rst = 1'b1; //RGB LCD显示模块系统复位信号

44 assign lcd_pclk = lcd_clk; //RGB LCD显示模块采样时钟

45

46 assign lcd_de = lcd_en; //LCD输入的颜色数据采用数据输入使能信号同步

47 assign lcd_hs = 1'b1; //RGB LCD 采用数据输入使能信号同步时,

48 assign lcd_vs = 1'b1; //行场同步信号需要拉高

49

50 //使能RGB565数据输出

51 assign lcd_en = (((cnt_h >= H_SYNC+H_BACK) && (cnt_h < H_SYNC+H_BACK+H_DISP))

52 &&((cnt_v >= V_SYNC+V_BACK) && (cnt_v < V_SYNC+V_BACK+V_DISP)))

53 ? 1'b1 : 1'b0;

54

55 //RGB565数据输出

56 assign lcd_rgb = lcd_en ? pixel_data : 16'd0;

57

58 //请求像素点颜色数据输入

59 assign data_req = (((cnt_h >= H_SYNC+H_BACK-1'b1) && (cnt_h < H_SYNC+H_BACK+H_DISP-1'b1))

60 && ((cnt_v >= V_SYNC+V_BACK) && (cnt_v < V_SYNC+V_BACK+V_DISP)))

61 ? 1'b1 : 1'b0;

62

63 //像素点坐标

64 assign pixel_xpos = data_req ? (cnt_h - (H_SYNC + H_BACK - 1'b1)) : 11'd0;

65 assign pixel_ypos = data_req ? (cnt_v - (V_SYNC + V_BACK - 1'b1)) : 11'd0;

66

67 //行计数器对像素时钟计数

68 always @(posedge lcd_clk or negedge sys_rst_n) begin

69 if (!sys_rst_n)

70 cnt_h <= 11'd0;

71 else begin

72 if(cnt_h < H_TOTAL - 1'b1)

73 cnt_h <= cnt_h + 1'b1;

74 else

75 cnt_h <= 11'd0;

76 end

77 end

78

79 //场计数器对行计数

80 always @(posedge lcd_clk or negedge sys_rst_n) begin

81 if (!sys_rst_n)

82 cnt_v <= 11'd0;

83 else if(cnt_h == H_TOTAL - 1'b1) begin

84 if(cnt_v < V_TOTAL - 1'b1)

85 cnt_v <= cnt_v + 1'b1;

86 else

87 cnt_v <= 11'd0;

88 end

89 end

90

91 endmodule

由本章简介部分可知,在DE模式下,液晶显示屏的同步信号DE对应的是VGA时序中的有效

数据段。为增加程序在VGA显示及RGB LCD显示之间的可移植性,程序第18至29行的变量声明仍

然采用了表 22.1.1中LCD时序的参数,可以看出这是驱动7寸800*480LCD所用到的时序参数。

当我们要驱动其他尺寸的RGB LCD时,只需要按照表 22.1.1中的参数修改第18至29行的参数

声明,并修改PLL中的输出的时钟频率即可。

程序42至48行是LCD驱动模块输出的液晶屏控制信号。其中lcd_bl为液晶屏背光控制端口,

可以利用该端口输出一个频率在200Hz~1kHz范围之内的PWM(脉冲宽度调制)信号,通过调整PWM信号的占空比来调节液晶屏的显示亮度。这里我们对lcd_bl作简单处理,将其直接赋值为

1,此时液晶屏亮度最高。lcd_rst为液晶屏的复位信号,低电平时LCD屏复位,我们同样将其

赋值为1,使LCD上电后始终处于工作状态。另外由于ATK-7’RGBLCD模块采用DE同步模式,输

出给LCD的数据使能信号lcd_de在图像数据有效时拉高,因此可以将模块内部的lcd_en信号直

接赋值给lcd_de。另外在DE模式下,需要将输出给LCD的行场同步信号lcd_hs、lcd_vs拉高。

LCD驱动模块的其他部分与VGA驱动模块完全相同(时钟分频模块输出的时钟有差异,因为

RGB LCD和VGA分辨率不同,本次实验时钟分频模块输出的时钟为33.3Mhz),更详细的设计思

路请大家参考“VGA彩条显示实验”中的相关介绍。

图 22.4.3为RGB TFT-LCD彩条程序显示一行图像时SignalTap抓取的波形图,图中包含了

一个完整的行扫描周期,其中的有效图像区域被划分为五个不同的区域,不同区域的像素点颜

色各不相同。此外,LCD背光控制信号、LCD复位信号、以及行场同步信号均一直拉高。


图 22.4.3 SignalTap波形图

下载验证

首 先 我 们 打 开 RGB TFT-LCD 彩 条 显 示 工 程 , 在 工 程 所 在 的 路 径 下 打 开

lcd_rgb_colorbar/par文件夹,在里面找到“lcd_rgb_colorbar.qpf”并双击打开。注意工程

所在的路径名只能由字母、数字以及下划线组成,不能出现中文、空格以及特殊字符等。工程

打开后如图 22.5.1所示。

图 22.5.1 RGB TFT-LCD彩条显示工程

然后将FPC排线一端与RGBLCD模块上的J1接口连接,另一端与开拓者开发板上的J1接口连

接,如图 22.5.2、图 22.5.3所示。连接时,先掀开FPC连接器上的黑色翻盖,将FPC排线蓝色

面朝上插入连接器,最后将黑色翻盖压下以固定FPC排线。


图 22.5.2 ATK-7’RGBLCD模块FPC连接器

图 22.5.3 开拓者开发板FPC连接器

最后将下载器一端连电脑,另一端与开发板上的JTAG端口连接,连接电源线并打开电源开

关。

接下来我们下载程序,验证RGB TFT-LCD彩条显示功能。

工程打开后通过点击工具栏中的“Programmer”图标打开下载界面,通过“Add File”按

钮选择
lcd_rgb_colorbar/par/output_files目录下的“lcd_rgb_colorbar.sof”文件。开发

板电源打开后,在程序下载界面点击“Hardware Setup”,在弹出的对话框中选择当前的硬件

连接为“USB-Blaster[USB-0]”。然后点击“Start”将工程编译完成后得到的sof文件下载到

开发板中,如图 22.5.4所示。

图 22.5.4 程序下载界面

下载完成后观察ATK-7’RGBLCD模块显示的图案如图 22.5.5所示,说明RGB TFT-LCD彩条

显示程序下载验证成功。


图 22.5.5 RGB TFT-LCD彩条显示

相关推荐

14款健身APP蹿红 看看下载最多的是哪款?

Zombies,Run!($3.99,安卓,iOS)如果你的运动理念是:除非有人追,否则绝不跑起来,那么这款APP应该适合你。Zombies,Run!这款程序把单调的跑步过程变身为躲避僵尸的游戏...

微软官方彩蛋庆祝《回到未来》纪念日

2015年10月21日,是MartyMcFly和Brown博士回到未来的时间。现在,这一天真的到了,那么当时影片中展示的一些科技产品究竟有多少实现了呢?作为一家走在技术前沿的公司,日前,微软就在M...

时尚圈最潮同志情侣 帅到没朋友(同志情侣微信头像)

来源:MSN时尚综合|2015-03-0419:45:15男演员ZacharyQuinto(中)与男模MilesMcMillan(右)于纽约街头公开热吻。情人节这个拥有不同起源传说,最早可以...

IE浏览器阻止过期ActiveX控件或将影响网银的使用

IE浏览器网银IE浏览器网银如果经常使用IE浏览器浏览网页的用户,可能都有遇到过浏览器窗口提示安装ActiveX控件的情况,一般情况下用户也是会选择直接安装。ActiveX控件广义上是指微软公司的整...

如何使Microsoft Band连接到WP设备

如果你幸运地购买到了MicrosoftBand,那么恭喜你。现在我们(winbeta)推出了“帮助系列”,那些尚未买到MicrosoftBand的朋友可以了解设备的一些新功能,以及设备的其他关键特...

毕业生不得不看的五大骗局全揭秘(毕业生防骗)

目前,距离高校大学生毕业已不足100天,大部分毕业生都十分忙碌。论文定稿、答辩,参加招聘、面试等成了应届毕业生的头等大事。但随着毕业季的临近,不法分子专门针对毕业生的诈骗高发期也随之来临。360手机安...

菠萝觅生活是O2O应用流量入口最大的供应商

现在主流的传统O2O生活服务,他们其实都有一个共通点,那就是各行其道。打车有快的,滴滴,外卖有饿了么,买机票有去哪儿网…每个APP都有着自己的核心竞争力。而用户呢?既想拥有海量有趣应用,又担心占用过多...

WP8.1版MSN健康应用,现已支持锁屏计步

IT之家(www.ithome.com):WP8.1版MSN健康应用,现已支持锁屏计步@WP之家报道,微软今天已将必应系列应用品牌归为MSN,除此之外,WP8.1版MSN健康和天气应用也获得一些新的...

短信就能传播手机病毒?看完推理惊呆了!

很多人都收到过一种带网址的陌生短信,有的人会点击网址看看,有的还会在好奇心驱使下回复短信。近日《北京新发现》栏目报道了一起离奇的电信诈骗案,事主耿先生的银行卡从未离身,但是在收到一条带网址的陌生短信,...

微软OneClip:我承包了你的剪贴板(微软onedrive云空间)

不久前,Twitter用户WalkingCat曝光了微软一款名为OneClip的应用。这是一款剪贴板应用,根据描述这款应用将覆盖Windows10(包括桌面和移动)、iOS和Android平台,可以...

Windows 10手机应该是什么样?微博用户给出了概念图

随着Windows10发布的不断临近,WindowsPhone的用户对Windows10的旗舰手机的期望也越来越高,我们WP中文网也在微博上发出了同样的问题,搜集用户对Windows10的硬...

云管家出席武汉2015年支付宝O2O生态峰会

2月4日,蚂蚁金服O2O生态峰会在武汉启幕。此次峰会展现了2015年蚂蚁金服在O2O领域的开放思路和策略,以及合作伙伴对O2O的创新观念及思路分享,吸引了武汉近3000名企业大佬、众多创业者、第三方服...

微软将于下周开启Windows开发中心帐号迁移工作

自下周开始微软将启动Windows开发中心的帐号迁移工作。根据WindowsBuildingApps博客透露Windows开发中心帐号迁移工作将会分为几个阶段。首个阶段从下周开始持续到今年7月份...

如何解绑已经合并的MSN账户和Skype账户?

如果您绑定的账户已经充值,建议您把产品消耗完毕后,再进行解绑。当您需要解绑合并的账户时,可登入Skype点卡账户自助操作。输入Skype或MSN账号、密码登录账户:登录后,可在页面左下角选择语言"中文...

微博账号已显示所属MCN机构,成为目前第二个上线该功能的平台

7月25日,多位网友发现,部分微博大V的个人主页已经显示其所属的MCN机构名称,微博也成为目前第二个上线该功能的平台。【来源:中新经纬】声明:此文版权归原作者所有,若有来源错误或者侵犯您的合法权益,您...

取消回复欢迎 发表评论: