在设计TFTLCD液晶硬件驱动电路的时候,我们会发现TFTLCD裸屏(买来的最初元件)的接口并非相似,所以导致驱动电路设计需要有些差别。

TFTLCD液晶的本质                                                                                                         本质就是点阵。

TFTLCD驱动电路的任务

  点阵要想显示图形,就需要不断的扫描。所谓的驱动电路,完成的工作就是不断的扫描LCD,通常帧率都在30~60Hz上才能使人看不到屏幕的抖动。

  MCU发送显示内容到驱动电路上,然后驱动电路再将这些数据不断的扫描到显示器上完成显示。由此可见,驱动电路都必须具有缓冲区,以缓存显示内容。当然缓冲区越大,通常对应的屏幕储存越大或者支持的虚拟页显示越多。

  一言以蔽之,驱动电路的任务就是接收MCU的显示数据,然后以足够的帧率在屏幕上扫描显示。

市场上买来的裸屏之间的区别

  市场上买来的3.2寸左右的小屏通常都是带有驱动芯片,比如说ili9341之类的,驱动芯片包含缓冲区和扫描显示电路。对于用户来说,不需要额外的驱动电路。这类屏幕提供的接口,有SPI/RGB/8080CPU,不同的接口可以使用不同档次的MCU来控制。SPI可以使用51单片机来驱动,8080CPU接口可以使用stm32来驱动,RGB接口可以看使用本身具有LCD驱动电路的S3C2440来驱动。

  市场上买来的4.3寸以上的裸屏,通常是不提供驱动芯片的,也就意味着驱动电路需要用户自己设计,常用的驱动芯片有RA8875等。大屏幕提供的接口与小屏幕提供的还是有区别的,我用的TQ2440开发板上所带4.3寸屏幕是RGB接口。

  ili9341与LCD接口和S3C2440与LCD接口的对比

  可见ili9341驱动的3.2寸LCD,它与驱动芯片的接口是S720~S1和G320~G1,就是利用这些控制线对LCD进行扫描。S3C2440直接驱动的4.3寸LCD,它对外的接口是RGB接口,利用RGB接口对LCD进行扫描(与摄像头接口类似,分帧同步信号、行同步信号、像素时钟、数据线)。

更新缓存的频率和扫描显示的频率

  在我们观看一个视频的时候,视频帧需要以一定的频率写入到显存(可以认为是驱动芯片的缓冲区)中,而缓冲区的内容到屏幕上显示还有一个扫描频率,这两个是不同的。扫描刷屏的频率在30~60Hz范围上,而视屏流到显存的频率应该刷屏的频率低,因为过高的频率,刷屏也显示不出来。

S3C2440接带ili9341的LCD屏

 ili9341接STM32用的是8080CPU接口,而接S3C2440的LCD控制器应该用RGB接口。这中间其实有些古怪,S3C2440的LCD控制器会不断地把自己的显存刷新到ili9341的显存,ili9341再把自己的显存刷新到LCD上。当然这个ili9341其实有点多余了。

关于TFTLCD硬件接口和驱动的问题的更多相关文章

  1. 目标反射回波检测算法及其FPGA实现(准备篇): 用Verilog-HDL状态机控制硬件接口

    基于FPGA的目标反射回波检测算法及其实现(准备篇) :用Verilog-HDL状态机控制硬件接口 前段时间,开发了一个简单的目标反射回波信号识别算法,我会分几篇文章分享这个基于FPGA的回波识别算法 ...

  2. linux驱动基础系列--Linux下Spi接口Wifi驱动分析

    前言 本文纯粹的纸上谈兵,我并未在实际开发过程中遇到需要编写或调试这类驱动的时候,本文仅仅是根据源码分析后的记录!基于内核版本:2.6.35.6 .主要是想对spi接口的wifi驱动框架有一个整体的把 ...

  3. Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析

    源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析

  4. STM32F10x_SPI(硬件接口 + 软件模拟)读写Flash(25Q16)

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前 ...

  5. Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动样例)

    在Linux,网络分为两个层,各自是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层. 网络堆栈是硬件中独立出来的部分.主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层 ...

  6. Android bluetooth介绍(一):基本概念及硬件接口

    关键词:蓝牙硬件接口 UART  PCM  blueZ 版本号:基于android4.2之前版本号 bluez内核:linux/linux3.08系统:android/android4.1.3.4作者 ...

  7. 第11节-BLE协议HCI层的硬件接口

    本篇博客由韦东山视频整理所得 如何控制链路层让其发出广播包.数据包?通过HCI层向它发出命令,也可以通过ATT层.L2CAP层向LL层发出数据. 学习资料: 蓝牙协议core_v5.0.pdf < ...

  8. linux查看硬件信息及驱动设备相关整理

    查看声卡设备:cat /proc/asound/cards 查看USB设备:cat /proc/bus/usb/devices 常用命令整理如下:用硬件检测程序kuduz探测新硬件:service k ...

  9. 《Android底层接口与驱动开发技术详解》digest

    第一章:IDE:Eclipse ADT for java developer其它: Apache Ant Java SE Development Kit5或6 Linux和Mac上使用Apache A ...

随机推荐

  1. C#_wpf_userinput_数据绑定_后台对象改变,界面数据也变化

    <!--MainWindow.xaml--> <Window x:Class="UserStore.MainWindow" xmlns="http:// ...

  2. c++ (P10—46)

    1 signed unsigned short long 四个修饰符.对int全部适用,对char只有signed和unsigned适用,long适用于double. 2 long int(占4个字节 ...

  3. mfc模态对话框

    Mfc模态对话框: 创建模态对话框: [模态对话框:具有独占行为,必须由用户完成对当前对话框的响应,才能对本对话框所属的进程进行其他操作] 例如: 我们创建一个加法计算器.点击计算之后,弹出一个对话框 ...

  4. [转]win7 64位下android开发环境的搭建

    本文转自:http://www.cfanz.cn/index.php?c=article&a=read&id=65289 最近换了新电脑,装了win7 64位系统,安装了各种开发环境, ...

  5. 哇!今天找到一个非常好用的自动补全插件-necomplete.vim

    看别人说的什么xpcomplete,snipte,拿来都不会用,这个necomplete.vim还挺好用的,不用去按C-X,C-O进行补全,把关键字自动的列出来,调用的是用户自定义补全,^u^n^p的 ...

  6. Rshare Pro是否可以放入至客户企业App Store?

    现在很多客户内部部署了苹果授权的企业内部的AppStore,我们的Rshare Pro 是完全允许放入企业搭建的AppStore平台中.但每份需要收费20美元,换成人民币是120元.

  7. 轻松学习Ionic (二) 为Android项目集成Crosswalk(更新官方命令行工具)

        现在集成crosswalk不用这么麻烦了!官方的命令行工具已经能让我们一步到位,省去很多工作,只需在cmd中进入项目所在目录(不能有中文目录,还得FQ),执行: ionic browser a ...

  8. JNDI初认识

    JNDI即Java命名和目录接口,英文全称为Java Naming and Directory Interface,从字面上似乎十分晦涩,下面从理论和实际项目应用方面来阐述. 1.命名:在我们实际生活 ...

  9. 用Java socket (TCP通信模型)实现一个简单的web 服务器

    package cn.magicdu.think.socket; import java.io.OutputStream; import java.io.PrintWriter; import jav ...

  10. [转载]sql server 等待类型

    下表列出各任务所遇到的等待类型. 等待类型 说明 ASYNC_DISKPOOL_LOCK 当尝试同步并行的线程(执行创建或初始化文件等任务)时出现. ASYNC_IO_COMPLETION 当某任务正 ...