近期开始研究手上的LCD屏的使用。该LCD屏使用了ILI9341的IC做为驱动。因此边研究边留下记录。
与上一个时钟系列类似,想必这又是一个大工程,因为ILI9341的数据手册就有200多页,从硬件原理,到软件驱动的理解,再到软件驱动的使用,应用代码的实现,这一路下来,需要记录的方方面面估计不少。
要知道ILI9341的驱动原理,首先当然得从TFT-LCD的工作原理开始理解起。这里从网上找了好多,感觉这篇简单又清楚,因此转载过来学习。转载过程中删减了一些无关的内容。
转自:『流浪的Coder』

《ILI9341的使用之【一】TFT-LCD原理(转载)》
《ILI9341的使用之【二】ILI9341介绍》
《ILI9341的使用之【三】ILI9341系统通信接口模式操作详解》
《ILI9341的使用之【四】RGB接口操作详解》
《ILI9341的使用之【五】命令一》
《ILI9341的使用之【六】命令二》
《ILI9341的使用之【七】实体面板案例-arduino 2.4inch TFT Touch Shield》
《ILI9341的使用之【八】ASCII字符显示及驱动分析》
《ILI9341的使用之【九】BG2312字库》

一、<什么是液晶>

我们一般认为物体有三态:固态、液态、气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态
就是液晶态,如下图(一):

          图(一)

二、<TFT LCD显示原理>

a:背景

两块偏光的栅栏角度相互垂直时光线就完全无法通过,图(六)是用偏光太阳镜做的测试。

图(六)

b:TFT LCD显示原理

液晶显示器就是利用偏光板这个特性来完成的,利用上下两片栅栏之间互垂直的偏光板之间充满了液晶,在利用电场控制液晶分支的旋转,来改变光的行进方向,如此一来,不同的电场大小,就会形成不同颜色度了,如图(七)。

         图(七)

b-1:当在不加上电极的时候,当入射的光线经过下面的偏光板(起偏器)时, 会剩下单方向的光波,通过液晶分子时, 由于液晶分子总共旋转了90度, 所以当光波到达上层偏光板时, 光波的极化方向恰好转了90度。下层的偏光板与上层偏光板, 角度也是恰好差异90度。 所以光线便可以顺利的通过,如果光打在红色的滤光片上就显示为红色。效果如图(七)中前两个图所示。

b-2:当在加上电极后(最大电极),液晶分子在受到电场的影响下,都站立着,光路没有改变,光就无法通过上偏光板,也就无法显示,如图(七)蓝色滤光片下面的液晶。

c:TFT-LCD驱动电路。

为了显示任意图形,TFT-LCD用m×n点排列的逐行扫描矩阵显示。在设计驱动电路时,首先要考虑液晶电解会使液晶材料变质,为确保寿命一般都采用交流驱动方式。已经形成的驱动方式有:电压选择方式、斜坡方式、DAC方式和模拟方式等。
由于TFT-LCD主要用于笔记本计算机,所以驱动电路大致分成:
信号控制电路:将数字信号、控制信号以及时钟信号供给数字IC,并把控制信号和时钟信号供给栅极驱动IC;
电源电路:将需要的电源电压供给数字IC和栅极驱动IC;
灰度电压电路:将数字驱动电路产生的10个灰度电压各自供给数据驱动;
公用电极驱动电路:将公用电压供给相对于象素电极的共享电极;
数据线驱动电路:将信号控制电路送来的RGB信号的各6个比特显示数据以及时钟信号,定时顺序锁存并续进内部,然后此显示数据以6比特DA变换器转换成模拟信号,再由输出电路变换成阻抗,供给液晶屏的资料线;
寻址线驱动电路(栅极驱动IC):将信号控制电路送来的时钟信号,通过移位寄存器转换动作,将输出电路切换成ON/OFF电压,并顺次加到液晶屏上。
最后,将驱动电路装配在TAB(自动焊接柔性线路板)上,用ACF(各向异性导电胶膜)、TCP(驱动电路柔性引带)与液晶显示屏相连接。

d:TFT-LCD工作原理

首先介绍显示原理:液晶显示的原理基于液晶的透光率随其所施电压大小而变化的特性。当光通过上偏振片后,变成线性偏振光,偏振方向与偏振片振动方向一致,与上下玻璃基板上面液晶分子排列顺序一致。当光通过液晶层时,由于受液晶折射,线性偏振光被分解为两束光。又由于这两束光传播速度不同(相位相同),因而当两束光合成后,必然使振光的振动方向发生变化。通过液晶层的光,则被逐渐扭曲。当光达到下偏振片时,其光轴振动方向被扭曲了90度,且与下偏振片的振动方向保持一致。这样,光线通过下偏振片形成亮场。加上电压以后,液晶在电场作用下取向,扭曲消失。这时,通过上偏振片的线性偏振光,在液晶层不再旋转,无法通过下偏振片而形成暗场。可见液晶本身不发光,在外光源的调制下,才能显示,在整个显示过程中,液晶起到一个电压控制的光阀作用。
TFT-LCD的工作原理则可简述为:当栅极正向电压大于施加电压时,漏源电极导通,当栅极正向电压等于0或负电压时,漏源电极断开。漏电极与ITO象素电极连结,源电极与源线(列电极)连结,栅极与栅线(行电极)连结。这就是TFT-LCD的简单工作原理

e:常用的液晶结构

e-1:所谓的NW(Normally white)
NW指当我们对液晶面板不施加电压时, 我们所看到的面板是亮的画面, 所以才叫做normally white。另外一种, 当对液晶面板不施加电压时, 面板无法透光, 看起来是黑色的, 就称之为NB(Normally black)
e-2:为什么要有这两种结构?
主要是为了不同的应用环境。 一般桌上型计算机或是笔记型计算机,大多为NW的配置,那是因为一般计算机软件的使用环境,你会发现整个屏幕大多是亮点, 也就是说计算机软件多为白底黑字的应用。 既然亮着的点占大多数, 使用NW当然比较方便,也因为NW的亮点不需要加电压, 平均起来也会比较省电。
反过来,NB的应用环境大多是属于显示屏为黑底的应用了。

<LCD单个像素点的结构图>

a:lcd切面的结构:

                 图(八)

b:作用原理

TFT_LCD(薄膜晶体管液晶显示器),液晶显示器需要电压控制来产生灰阶. TFT利用薄膜晶体管来产生电压,以控制液晶转向的显示器。从图(八)的切面结构图来看,在上下两层玻璃间夹着液晶, 便会形成平行板电容器, 我们称之为CLC(capacitor of liquid crystal). 它的大小约为0.1pF, 但是实际应用上, 这个电容并无法将电压保持到下一次再更新画面数据的时候. 也就是说当TFT对这个电容充好电时, 它并无法将电压保持住, 直到下一次TFT再对此点充电的时候.(以一般60Hz的画面更新频率, 需要保持约16ms的时间.) 这样一来, 电压有了变化, 所显示的灰阶就会不正确. 因此一般在面板的设计上, 会再加一个储存电容CS(storage capacitor 大约为0.5pF), 以便让充好电的电压能保持到下一次更新画面的时候. 不过正确的来说, 长在玻璃上的TFT本身,只是一个使用晶体管制作的开关. 它主要的工作是决定LCD source driver上的电压是不是要充到这个点来. 至于这个点要充到多高的电压, 以便显示出怎样的灰阶. 都是由外面的LCD source driver来决定的.
c:框胶与spacer:
框胶与spacer两种结构成分. 其中框胶的用途,就是要让液晶面板中的上下两层玻璃, 能够紧密黏住, 并且提供面板中的液晶分子与外界的阻隔,所以框胶正如其名,是围绕于面板四周, 将液晶分子框限于面板之内. 而spacer主要是提供上下两层玻璃的支撑, 它必须均匀的分布在玻璃基板上, 不然一但分布不均造成部分spacer聚集在一起, 反而会阻碍光线通过, 也无法维持上下两片玻璃的适当间隙(gap), 会成电场分布不均的现象, 进而影响液晶的灰阶表现.

<放大镜下的液晶>

   图(九)

a:每个像素点的结构

放大镜下面的液晶面板如图(九)中所显示的样子.每一份像素点由"红色",“蓝色”,"绿色"三个子基色构成(这就是所谓的三原色. 也就是说利用这三种颜色)。我们把RGB三种颜色,分成独立的三个点, 各自拥有不同的灰阶变化, 然后把邻近的三个RGB显示的点,当作一个显示的基本单位,也就是pixel.那这一个pixel,就可以拥有不同的色彩变化了.(然后对于一个需要分辨率为1024768的显示画面, 我们只要让这个平面显示器的组成有1024768个pixel,)便可以正确的显示这一个画面.

b:开口率

液晶显示器中有一个很重要的参数就是亮度, 而决定亮度最重要的因素就是开口率。开口率就是光线能透过的有效区域比例。每一个RGB的点之间的黑色部分, 就叫做Black matrix.我们回过头来看图(九)就可以发现,black matrix主要是用来遮住不打算透光的部分.比如像是一些ITO的走线,或是Cr/Al的走线,或者是TFT的部分.这也就是为什么我们在图(九)中,每一个RGB的亮点看起来, 并不是矩形, 在其左上角也有一块被black matrix遮住的部分, 这一块黑色缺角的部份就是TFT的所在位置.

(图九)

<常见的滤光片排列>

            图(十)

<像素>

a:像素原理

液晶面板上每个像素都分成红、绿、蓝三种颜色,RGB就是所谓的三原色,利用这三种颜色可以混合出各种不同的颜色,我们把RGB三种颜色分成独立的三个点,各自拥有不同的灰阶变化,然后把邻近的三个RGB显示的点当作一个显示的基本单元,就是像素,这个像素就可以拥有不同的色彩变化了。

b:颜色深度

normal Color
256 Color 8(R)*8(G)*4(B)=256 Color
High Color
65536Coloe32(R)*64(G)*32(B)=65536 Color
Full Color
64(R)*64(G)*64(B)=262144 Color
True Color
256(R)*256(G)*256(B)=16777216 Color

<LCD内部电路>

a:结构图

           图(十二)

b:主要的驱动TFT工作的部分有以下几个

1、source driver 源驱动, 负责供电。
2、gate driver 栅驱动, 负责打开关闭。
3、时序控制电路,负责控制gate driver
4、灰度、gamma控制电路

图(十三)

c:整片面板的大致结构

从图(十三)中我们可以看到整片面板的等效电路,其中每一个TFT与两个电容所并联(代表一个显示的点. 而一个基本的显示单元 pixel,则需要三个这样显示的点,分别来代表 RGB 三原色. 以一个1024768分辨率的TFT_LCD来说,共需要1024768*3个这样的点组合而成)

d:显示步骤

如图中gate driver 所送出的波形, 依序将每一行的 TFT 打开, 好让整排的source driver同时将一整行的显示点,充电到各自所需的电压,显示不同的灰阶.当这一行充好电时,gate driver便将电压关闭,然后下一行的gate driver便将电压打开,再由相同的一排source driver对下一行的显示点进行充放电.如此依序下去, 当充好了最后一行的显示点, 便又回过来从头从第一行再开始充电.
d-1:图示先开放第一行,其他关闭。

                   图(十四)

接着关闭第一行,电压已经固定,固颜色也固定,然后开放第二类,其余关闭,以此类推。

                     图(十五)

由于液晶分子还有一种特性,就是不能够一直固定在某一个电压不变, 不然时间久了, 你即使将电压取消掉, 液晶分子会因为特性的破坏, 而无法再因应电场的变化来转动, 以形成不同的灰阶. 所以每隔一段时间, 就必须将电压恢复原状, 以避免液晶分子的特性遭到破坏.

<背光源>

                        图(十七)

手机上用的TFT 类型的LCD 大部分是用 LED来作为光源的,现有高通手机上背光有三种方式:
1、PWM 方式, 根据输出方波的占空比来控制电流大小
2、一线脉冲方式, 根据输入方波的逻辑连控制输出电流大小
3、dcs方式,有LCD反馈给背光控制芯片来控制输出电流大小
一般手机上都会有个背光控制芯片来升压控制电流,以8x25上的背光芯片TPS61161为例(其他的背光芯片也类似)

ILI9341的使用之【一】TFT-LCD原理(转载)相关推荐

  1. TFT LCD显示原理详解

    <什么是液晶> 我们一般认为物体有三态:固态.液态.气态,其实这只是针对水而言,有一些有机化和物 还有介于固态和液态中间的状态 就是液晶态,如下图(一):                 ...

  2. ESP32快速实现3.2英寸TFT LCD中jpeg图像(ILI9341)

    此视频中,将向您展示了如何在ESP32中使用3.2英寸SPI TFT LCD.为了显示jpeg,您需要一个ESP32,Adafruit库,SPIFF和jpeg解码器. 要获得高速SPI,您需要使用正确 ...

  3. ESP8266-Arduino编程实例-2.8寸TFT LCD驱动(ILI9341控制器)

    2.8寸TFT LCD驱动(ILI9341控制器) 液晶显示器 (LCD) 是一种平板显示器或其他电子调制光学设备,它利用液晶与偏振器的光调制特性.液晶不直接发光,而是使用背光或反射器来产生彩色或单色 ...

  4. windows虚拟ILI9341 TFT LCD

    使用的是windows虚拟LCD屏幕,底层使用d3d9实现,以及dxgui,通过实现与ILI9341相关接口,达到兼容单片机上面操作LCD底层,便于调试UI: /******************* ...

  5. AT32驱动TFT LCD显示示例

    1.1 案例 TFT LCD显示 1.1.1 简介 TFT LCD液晶显示屏是薄膜晶体管型液晶显示屏,TFT液晶每个像素都可以单独控制,因而每个节点都相对独立,并可以连续控制,这不仅提高了显示的反应速 ...

  6. STM32 FSMC接口驱动4.3寸TFT LCD屏

    STM32 FSMC接口驱动4.3寸TFT LCD屏 STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏. 这里以STM32F103VET ...

  7. 【正点原子FPGA连载】 第二十九章TFT LCD画板实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  8. 用ESP学习单片机之Arduino_Esp-32s获取2.8‘‘TFT LCD屏幕的触摸数据_ILI9341_SPI_XPT2046

    简介 点亮该屏幕的笔记,既然都能显示了,肯定要获取触摸位置啊,从实物图中可知该屏幕的触摸IC为XPT2046 Arduino IDE需配置esp32开发环境 开发板:ESP 32 触摸过程 这里实现的 ...

  9. ESP8266-Arduino编程实例-二维码(QR Code)生成与TFT LCD显示

    二维码(QR Code)生成与TFT LCD显示 QR 码(快速响应码的缩写)是一种矩阵条码(或二维条码,由日本汽车公司 Denso Wave 于 1994 年发明.条形码是一种机器可读的光学标签,可 ...

  10. TFT LCD使用心得

    转载自bbs.21ic.com 最近一段时间工作上一直在使用TFT LCD,主要是3.5寸LCD,以SAMSUNG的LTV350QV及其一些台湾的兼容产品为主.工作的内容就是把这些屏在我们的产品上应用 ...

最新文章

  1. HDU 5119 Happy Matt Friends ——(背包DP)
  2. java中 抽象类+接口
  3. apollo mqtt linux qt,MQTT第5版更新,以及如何应用到Qt MQTT模块中
  4. static_cast, dynamic_cast, const_cast学习和探讨
  5. Alice and Bob
  6. Java并发编程实战~StampedLock
  7. iOS 7.1 的 Safari 为 meta 标签新增 minimal-ui 属性,在网页加载时隐藏地址栏与导航栏...
  8. ief12执行一次js才有效_陈列到底多久调一次才有效?
  9. PHP定时抽奖怎么实现的,定时抽奖活动怎么做?
  10. Mysql在sql中截取时间类型字段的年月日和时间-DATE_FORMAT() 函数
  11. sql server序列_SQL Server中的序列对象
  12. 记2014“蓝桥杯全国软件大赛quot;决赛北京之行
  13. 【三支火把】--- 关于UEFIPCD的总结介绍
  14. redis底层数据结构
  15. 计算机留言板毕业论文摘要,留言板系统设计(毕业论文)
  16. kafaka,activityMQ,rabbitMQ消息中间件对比
  17. 作为一个程序员对特修斯之船的理解
  18. 计算机金钱符号怎么打,€欧元符号怎么打出来?各种输入欧元的货币符号方法!...
  19. BUUCTF NewStarCTF一些新知识记录
  20. TCP与UDP的区别?

热门文章

  1. unity网络实战开发(丛林战争)-前期知识准备(008-粘包和分包及解决方案)
  2. 求某门课号的成绩高于某个同学(例如李勇)任意一门成绩的学生学号和成绩
  3. 小米note连接手机,root
  4. Ubuntu12.04不能连接小米开发,adb devices不能看到设备
  5. iOS -- 百度地图画出行政区域的边界
  6. Virgo Tomcat Server 指南-Hello World
  7. VQA学习笔记(一)CNN-LSTM
  8. mysql在电脑怎么打开_小编告诉你电脑sql文件用什么打开
  9. 什么是CISP-PTE?
  10. Spring boot 集成 ureport (三) 报表存储至数据库