fpga硬件驱动TFT液晶屏-小结

    最近折腾了一下fpga,发现还真是不好搞,硬件描述语言和顺序代码的真的是天差地别,还好电路的底子还在一些。通过发挥不怕效率低,只要能运行的精神,终于把ili9320的初始化和写操作调通了。最后跑了下时序分析,发现时钟最高频率居然能到160MHz,可惜实际中跑50MHz的时钟还要在写操作中插入空闲,以满足ili9320时序的严格要求。这练杀鸡用牛刀都算不上,应该是虐蚂蚁用了把水果刀。。。

    写vhdl代码中最让人无奈的就是一大堆的初始化指令,c语言里一串函数调用可以解决的事情,在vhdl里就要设置一堆rom数据。初始化中的延时不能像以前一样delay()一下了事,还要编一段计时器代码。还好这些都解决了,tft已经驱动成功,彩色条纹终于千呼万唤始出来,成功的乐曲就要奏响,然后~~

    然后,还有点小问题,ili9320的手册中,信誓旦旦地向我们描述了一副美好的前景:在16位接口模式下,只要按照565的格式写入并行数据,就可以得到对应的RGB颜色效果,在我的小代码里,也就能依次看到蓝-绿-红-浅蓝四种颜色。遗憾的是,我试过之后发现,颜色顺序完全不是那么回事儿,我按照datasheet所说的蓝-绿-红-蓝+绿的顺序写入数据后,出现的居然是红-绿-蓝-黄。这么说的话,16位并行端口应该是BGR的格式才对。然后当我向配置寄存器的BGR位写入1(脑残的人都知道,这样该启动BGR格式,但是。。),发现颜色顺序居然坑爹地变成了RGB格式。

    我猜想,这要么是数据手册弄错了,工作人员谁没个粗心大意的时候呢,但是考虑到在网上没有多少人反应这个问题,这个解释似乎不太行得通。

  另一个可能是tft液晶的驱动电路出现了岔子,ili9320通过720条驱动信号加320个门控信号来驱动彩色屏,其中320个门控信号对应于320列,而720个驱动信号则对应于240行,这样每行就有三个驱动信号,这三个驱动信号分别控制着rgb三种颜色,如果在制板时弄反了三色信号,最后出来的液晶屏,颜色肯定是反相的。

    当然这些都只是猜测,无从求证,也说不准,我的液晶屏根本就不是9320,是不负责任的商家弄错了驱动型号呢。

转载于:https://www.cnblogs.com/willx/archive/2012/06/01/2531346.html

对于驱动 TFT 显示屏的 FPGA 程序,我可以给你一些基本的指导。首先,你需要了解你使用的 TFT 显示屏的接口类型和分辨率。常见的接口类型包括 SPI、I2C 和并行接口。 然后,你需要编写 FPGA驱动程序来控制 TFT 显示屏。这通常涉及到以下几个步骤: 1. 配置 FPGA 的 GPIO 接口,用于与 TFT 显示屏进行通信。根据显示屏的接口类型,你可能需要配置 SPI、I2C 或者并行总线的引脚。 2. 实现对 TFT 显示屏的初始化过程。这包括向显示屏发送初始化命令和参数,例如设置分辨率、像素格式等。 3. 编写显示图像数据的逻辑。这通常涉及到将图像数据从 FPGA 的存储器传输到显示屏的帧缓冲区。对于并行接口,你可能需要使用 DMA 控制器来实现高速数据传输。 4. 控制 TFT 显示屏的刷新过程。这涉及到根据图像数据的变化更新显示屏上的像素。 在实现驱动程序时,你需要参考 TFT 显示屏的数据手册以及 FPGA 开发板的引脚映射表。此外,你可能还需要使用 FPGA 开发工具(如 Quartus、Vivado 等)来进行硬件描述语言(如 Verilog 或 VHDL)的编写和综合。 需要注意的是,具体的驱动程序实现会因不同的 TFT 显示屏和 FPGA 平台而有所差异。因此,在开始开发之前,最好先详细研究你使用的 TFT 显示屏和 FPGA 开发板的相关文档,并参考类似的开源项目或教程以获得更多的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值