最近折腾了一下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

fpga硬件驱动TFT液晶屏-小结相关推荐

  1. ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条

    ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条 简介 像素(Pixel):像素是指由图像的小方格组成的,这些小方快都有一个明确的位置和被分配的色彩数值 ...

  2. MCU驱动和RGB驱动的液晶屏的区别

    概况来讲,RGB驱动需要的硬件条件高,比如用STM32F429的LTDC+DMA2D模块,外加SDRAM作为显存.而MCU接口,STM32F407系列的控制器就整合了这个模块,包含6800和8080两 ...

  3. ESP32驱动LCD液晶屏选型、262K什么意思?SPI写LCD的GRAM时序、MCU液晶屏驱动IC的寄存器功能

    最近转战ESP32,ESP32-D0WDQ6 型号的GPIO只有那么20个左右,且还有几个GPIO只能做输入,非常捉襟见肘.所以如果要驱动LCD液晶屏,绝大多数都会选择SPI接口的MCU屏. 为了编写 ...

  4. 通过 I2C 驱动 LCD1602 液晶屏(51单片机)

    通过 I2C 驱动 LCD1602 液晶屏(51单片机) 硬件实物 原理图 3.程序 #include <reg51.h> #include <intrins.h>#defin ...

  5. 单通道驱动LVDS驱动1080P液晶屏

    上周末把单通道LVDS驱动1080P液晶屏调通了.通过FPGA接收单8的LVDS输入,内部一个倍频,数据组合格式如下:

  6. STM32F103软件模拟SPI接口驱动ILI9486液晶屏

    STM32F103软件模拟SPI接口驱动ILI9486液晶屏 ILI9486的工作模式 ILI9486的SPI总线方式简介 ILI9486的3线SPI总线底层驱动配置步骤 ILI9486的工作模式 I ...

  7. Tft_eSPI驱动ST7735液晶屏

    Ⅰ. 前言 买了块1.8寸的tft液晶屏,之前一直用 Adafruit_ST7735 和 Adafruit_GFX 库驱动,使用还挺简单的,但是有些功能使用起来还是不太方便,也不太通用,换成 Tft_ ...

  8. arduino下载库出错_arduino的I2C通讯 3:驱动1602液晶屏

    上个推送,我们学习了I2C功能的基础知识.而且知道了使用很多器件都需要安装库.本次,我们一起来做一个实例,用arduino驱动1602液晶屏 1602代表屏幕有16列,2行.传统的驱动方式占用了大量的 ...

  9. 全志H616开发板Orange Pi Zero2连接香橙派5寸TFT液晶屏的测试说明

    香橙派Zero2开发板采用全志H616 四核 64位处理器,拥有512MB/1GB 内存可选,集成千兆以太网卡.蓝牙5.0+双频WiFi(2.4GHz和5GHz).USB2.0.Micro-HDMI( ...

最新文章

  1. FasterRCNN代码解读
  2. php文件放到html中,怎么把HTML作为模板放到PHP中
  3. 笑傲江湖ol更新服务器正在维护,笑傲江湖ol4月22日更新内容 调整死亡复活设置...
  4. netty系列之:自动重连
  5. html5图片怎么顶格,iQOO 5系列几乎达到了“顶格”的性能状态。
  6. matlab绘制二元一次函数图像_【八上数学】 一次函数必考知识点(下)
  7. spss方差分析_交叉设计及SPSS多因素方差分析
  8. 设置居中_安卓手机时间怎么显示在中间 时间居中设置教程
  9. python从html中提取文本_使用Python从HTML中提取可读文本?
  10. Warning: Data truncated for column #39;AirPress#39; at row 1
  11. windows卸载linux系统,Windows和Linux双系统下完美卸载linux
  12. 2021-08-08在ubuntu上部署nideshop
  13. 修改.class文件内容
  14. matlab gui中断程序,MATLAB GUI的中斷程序
  15. 深度学习在文本分类中的应用
  16. android平板 跑分软件,安卓平板拿啥比?M1 iPad Pro跑分公布:差距实在太大
  17. php基础-GD库-批量制作水印图片
  18. 批量转换灰度图并保存
  19. python代理ip怎么写_python代理ip怎么写
  20. 论文Learning to Solve Large-Scale Security-Constrained Unit Commitment Problems阅读笔记

热门文章

  1. [RHEL5企业级Linux服务攻略]--第2季 Samba服务全攻略答疑贴
  2. Java机器学习库ML之四模型训练和预测示例
  3. 机器学习笔记(四)决策树
  4. Leetcode 141. 环形链表 解题思路及C++实现
  5. IEEE Access latex 图片caption无法换行的问题
  6. 调整搜索二叉树中两个错误的节点
  7. java 令牌解析_Java编程guava RateLimiter实例解析
  8. window查看端口号使用_踩坑搭建vue说端口号被占用?
  9. matlab对手写数字聚类的方法_scikitlearn — 聚类
  10. NIO的Buffer