1 理论知识
名词/;解释:TFT-薄膜晶体管型
1.1 HV同步模式
1.2 DE同步模式
说明:DE同步模式多应用在大尺寸的屏幕
1.3 显示模式
不同的分辨率的 TFT-LCD 显示屏在时序上是相似的,只是存在一些参数上的差异,下面列举了部分分辨率的时序参数,刷新频率均为 60Hz
实验目标:输出两种同步模式的信号
2 实战演练
2.1 系统框图
2.2 主要模块tft_lcd_ctrl的波形图设计
(1)根据1.3部分显示模式的参数,笔者采用的是800*480 七英寸的屏幕进行驱动时序参数的确定。
(2)根据时序参数,确定涉及到控制行场同步信号和有效像素点cnt_h和cnt_v的关键数值,比如检测到cnt_h==0拉高行同步信号hsync,检测到cnt_h==127就拉低行同步信号hsync;检测到cnt_h==216,开始令pix_x为有效数据
(3)根据cnt_h和cnt_v的关键数值来约束hsync,vsync和pix_x,pix_y,以及在pix_x,pix_y同时有效的期间内令rgb_valid为高电平的有效状态。
(4)在rgb_valid为有效状态时输出rgb_tft的数据。补充:因为采用了tft_ctrl和tft_pic模块分离的方式,需要让tft_ctrl生成的pix_x和pix_y的值提前一个时钟周期到达tft_pic模块,这样能够弥补tft_pic模块生成的数据晚tft_ctrl的一个时钟周期,从而实现像素点和该点颜色数值rgb_tft的对应关系。
(5)为了实现像素点和该点颜色数值rgb_tft同步关系,还需要设置一个新的req_rgb信号,在pix_x或者pix_y的有效数据期间置为1,让它提前pix_x和pix_y的有效数据一个周期(比如说原本pix_x在cnt_h==216的时候就设置为0,为了提前一个周期,就在cnt_h==215的时候pix_x=0)。
为了体现(4)(5)所说的素点和该点颜色数值rgb_tft同步,下面贴出关键代码:
//rgb_valid:VGA有效显示区域
assign rgb_valid = (((cnt_h >= H_SYNC + H_BACK)
&& (cnt_h < H_SYNC + H_BACK + H_VALID))
&&((cnt_v >= V_SYNC + V_BACK)
&& (cnt_v < V_SYNC + V_BACK + V_VALID)))
? 1'b1 : 1'b0;
//pix_data_req:像素点色彩信息请求信号,超前rgb_valid信号一个时钟周期
assign pix_data_req = (((cnt_h >= H_SYNC + H_BACK - 1'b1)
&& (cnt_h < H_SYNC + H_BACK + H_VALID - 1'b1))
&&((cnt_v >= V_SYNC + V_BACK)
&& (cnt_v < V_SYNC + V_BACK + V_VALID)))
? 1'b1 : 1'b0;
//pix_x,pix_y:VGA有效显示区域像素点坐标
assign pix_x = (pix_data_req == 1'b1)
? (cnt_h - (H_SYNC + H_BACK - 1'b1)) : 10'h3ff;
assign pix_y = (pix_data_req == 1'b1)
? (cnt_v - (V_SYNC + V_BACK )) : 10'h3ff;
//rgb_tft:输出像素点色彩信息
assign rgb_tft = (rgb_valid == 1'b1) ? pix_data : 16'b0 ;
(6)最后是tft_de,tft_clk,tft_bl。
assign tft_clk = tft_clk_9m ;//9M脉冲信号直接引入即可
assign tft_de = rgb_valid ;//DE模式信号与rgb_valid 同步
assign tft_bl = sys_rst_n ;//背光信号与复位信号一致即可,因为sys_rst_n低电平有效
2.3 modelsim仿真
仿真验证通过
2.4 上板验证
上板验证通过
3 总结
tft_lcd的HV驱动模式和vga的驱动非常像,可以根据vga驱动工程进行改写,只需要替换其中的时序参数即可。本部分回顾了vga驱动中一个重要的问题:把ctrl模块和pic模块分开,要对ctrl模块的rgb_tft输出进行进行提前一个像素输出操作。