1、TFT128160彩色图片显示使用手册 TFT_128_160彩色图片显示使用手册1. TFT_128_160简介: Thin Film Transistor (薄膜场效应晶体管),是指液晶显示器上的每一液晶象素点都是由集成在其后的薄膜晶体管来驱动。从而可以做到高速度高亮度高对比度显示屏幕信息,TFT-LCD(薄膜晶体管液晶显示器)是多数液晶显示器的一种。一般的话 128* 160液晶是嵌入式和工控使用最普遍的彩屏液晶。1.8寸TFT有 128* 160 个点每个点由16bit颜色信息,代表R*G*B为 5*6*5色。2. TFT_128_160方案目的: 显示一个彩色图片,彩色图片有128*
2、 160 个点,使用Verilog驱动。3. TFT_128_160硬件方案: 1.8 TFT 管脚完全兼容1602液晶接口,非常方便。4. TFT_128_160逻辑实现原理1.8 TFT驱动芯片为ST7735芯片,介绍如下: 寄存器配置 程序设计原理:1、 TFT显示需要初始化一系列寄存器,这些寄存器初始化是通过使用一个write_num的计数器实现的,配置的初始化寄存器较多,此处不细化说明,有兴趣的同学可以通过看ST7735芯片手册(位于TFT工程的doc目录下面)了解。2、 1.8 TFT是串行管脚驱动,所以发送一次数据需要一个串行化计数器,每8bit数据需要发起一次传输,初始化寄存器
3、配置是8bit数据,所以每8bit发起一次传输。显示数据的控制时序如下:第一个像素是由5*6*5共16bit组成的,颜色信息如上图SDA框框里面的红绿蓝所示,像素的数据是通过内部的RAM读出的(RAM位宽是16bit,是一个像素点的有16bit数据决定的),读出为16bit,按照低8位在前,高8位在后的原则,16bit的像素信息发送到TFT需要做一次串行化处理(1.8 TFT是串行接口),串行代码中是disp_ser_cnt计数器来实现的,如下图所示,计数器计数最大值满足时序要求即可:3、 1.8 TFT的管脚都是通过计数器控制的,细节可以看工程了的代码。4、 RAM彩色图片数据显示原理RAM
4、宽度为16bit,深度为20480(128x160),通过lcd_size_cnt控制RAM地址,进行数据的读取,一行数据显示需要128个地址,地址依次累积,直到数据全部从RAM中读出,然后TFT才能显示整幅图片。特别说明:128*160*16bit数据需要320Kbit RAM大小,EP4CE6E22C8的RAM资源不够(RAM例化的时候选择10240深度,其他板子选择20480深度),所以EP4CE6E22C8板子的TFT只显示一半图片内容,另外一半还是重复显示RAM中的图片,代码中也需要特殊处理。其他类型的板子,RAM资源足够,所以可以显示整幅图片,地址也不需要特殊处理。 图片显示设计步
5、骤:工程中的RAM数据默认的是一幅图片信息,我们事先已经处理好了,如果想换个图片显示,需要按照如下操作进行:1、 先将大的图片在微软画图工具中裁成128x160分辨率的图片。2、使用Img2Lcd(见工程下doc目录,图像RGB值计算工具,需解压)生成 .C的颜色数组文件。(选项:C语言数组、水平扫描、16位真彩色、128x160分辨率、包含图像头数据、高位在前)。3、在UE(UltraEdit软件,光盘B中有安装包)中将第一行删除,最后的大括号和分号去掉,然后2列2列的合并,并将最后一列的逗号去掉,将逗号替换为空格,在数据前面插入数字和冒号(如0 : EA7D;),最后生成20480个像素点
6、,每个像素点16bit(注:20480=128x160)。4、UE里面将.C文件修改成.MIF文件格式。5、在QUARTUS里面将.MIF文件打开(MIF文件直接拖进QUARTUS里面即可打开),另存为.HEX文件。6、在QUARTUS里面TOOL-MAGAVIZARD生成RAM文件dpram20480x16b.v,生成时选择.HEX文件作为初始化文件。7、将dpram20480x16b例化到显示控制的顶层文件中,通过地址控制颜色值的读取。5. Verilog HDL源代码Verilog HDL代码为:见目录RTL下面。 6. FPGA测试现象 将TFT显示屏插入1602液晶的管脚中,插法如图所示,插上液晶后,通过Quartus下载sof文件后,TFT会显示如下图所示图片: E6板子:E10板子:E30板子:版权: (C) DongDong Stduio
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1