FSMC_LCD
1. TFT-LCD(Thin Film Transistor Liquid Crystal Display)[薄膜晶体管液晶显示器]
2. 液晶
物质在熔融状态或在溶液状态下虽然获得了液体物质的流动性,但在材料内部仍然保留有分子排列的一维或二维有序,在物理性质上表现出各向异性。这种兼有晶体和液体部分性质的状态称为液晶态,处于这种状态下的物质叫液晶。

4. 相关名词
LC | Liquid Crystal液态晶体 |
CF | Color Filter彩色滤光片,分R、G、B三种颜色的滤光片 |
B/L | Back Light背光 |
L/G | Light Guide导光板 |
data line | 数据线,进行资料的传输 |
scan line | 扫描线,控制TFT开闭, |
5. TFT-LCD显示器面板
5.1 偏光板
液晶分子可改变光的极化状态,穿过扭曲液晶时,光线被液晶分子扭转90度,通过TFT电压控制开关来控制液晶分子两端的电压,不同压差下有不同的穿透率,极化程度也相应改变,从而达到控制光线强弱的目的。
5.2 背光模组
背光模组主要为液晶面板提供均匀、高亮度的光源,由于TFT-LCD非自发光性,因此需利用外加光源,如发光二极管、冷阴极射线管等。
主要功能:提供液晶面板平面光源,提供适当的辉度、色度、均匀度、视角等
6 液晶亮度的控制原理
液晶必须用交流信号驱动,长时间维持某一极性,液晶分子可能受到破坏;
7 TFT-LCD显示原理
图像都是由一个个像素(pixel)构成,每个像素均由三种颜色(RGB)的小光点(dot)构成。
7.1 TFT-LCD显示方式
先开启第一行,其余关闭;
接着关闭第一行,电压已经固定所以显示颜色也已固定。开启第二行,其余仍保持关闭。以此类推,可完成整个画面显示。
7.2 TFT-LCD指标
1)解析度:解析度越高,画面越清晰
解析度与驱动IC的关系
7.3 颜色深度:LCD可显示的颜色数目
对6位显示器共可以显示颜色数目为:2^6 + 2^6 + 2^6 = 262144;
对8位显示器共可以显示颜色数目为:2^8 + 2^8 + 2^8 = 16777216;
256 Color: 8(R) * 8(G) * 4(B) = 256 color;
High Color: 32(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;
7.4 Dithering
7.5 TFT-LCD穿透率
TFT-LCD光学穿透率不高:TFT开口率约60%以上;CF的率光效率约1/3以下;偏光板的极化效率约40%上下。三者相乘约为8%。
闭口率:液晶分子中光学能够穿过的有效区域比例。即液晶分子中有效的透光区域与全部面积的比例,就称之为闭口率。
所以LCD的设计中要努力增加开口率,只有开口率提高,便可增加亮度,同时背光板的亮度也不用那么高。
8 TFT-LCD基本驱动方式
9 数字屏与模拟屏
液晶是根据电压发生扭曲,控制其透光多少决定亮度的。液晶和光都是没有颜色的,加了虑光片就产生了颜色。 因为是用电压控制,所以一定是模拟量了。这是从液晶本身的工作方式看; 液晶被加工成液晶屏以后,根据接出来的引线不同,分为模拟的和数字的。模拟屏和数字屏的屏本身是没有区别的,点亮的时候驱动行列驱动IC用的都是数字信号。
一、模拟屏和数字屏就屏本身来说是没有区别的,主要区别是在电路上。加到液晶屏像素上的肯定都是数字信号。在屏的边缘有很多行列驱动IC,就是所谓的驱动器。在屏后面的电路板上主要是控制器,控制器将收到的信号转换为符合驱动器时序要求的驱动信号,送给驱动器点亮相应的像素。
模拟屏和数字屏在这写部分是一样的,他们的区别主要在于输入上。数字屏直接输入数字信号,RGB每种颜色信号都被视频处理电路转换若干位数字信号,直接送入屏上的控制驱动器,A/D转换是在前面的电路中完成的。而模拟屏输入是三基色模拟信号输入,它的A/D转换是在液晶屏上的电路中完成的。
二、关键的区别在输入的RGB信号是仿真的还是数字的。真正的输入到屏上的是一个具体的电压值,这个电压值的大小决定了液晶的偏转的大小,从而决定了透过光的多少,可以认为驱动屏需要的是仿真信号,但绝对不是数字信号(对RGB信号而言,当然时序信号是数字的)输入的RGB如果是仿真信号,这样的屏叫仿真屏,在LCM的DRIVER IC内部进行采样处理,然后把样本值送到TFT上。输入的RGB信号如果是数字的叫数字屏,在LXM的DRIVER IC内部要进行D/A转换,这部份工作是由GAMMA校正电路完成的。
(LCD真彩显示使用TFT型LCD,主动点阵显示,需要采用源极驱动器(source driver)和栅极驱动器(gate driver)去控制LCD场效应晶体管FET的源极与栅极.源极驱动器接收显示数据驱动LCD列显示,也称为数据驱动器(data driver),栅极驱动器控制逐行扫描。
三、模拟屏的输入信号是模拟的RGB信号, 一般每行信号要和上一行反向, 还要有配合的VCOM信号, 需要+10V以上和-10V以下的偏压,垂直分辨率一般为230左右;数字屏的输入信号分TTL和LVDS等几种,一般红绿兰三色各用6到8位数字量来表示,不需要外接偏压, 垂直分辨率一般为400以上。
其实数字屏与模拟屏都是用数字信号驱动显示的。现在人们所说的数字屏与模拟屏是从液晶屏的接口来区分的,可以直接输入模拟信号的屏就是模拟屏,要输入数字信号的就是数字屏。模拟屏比数字屏多了个A/D转换器,用来将模拟信号转换为数字信号。数字屏就直接处理数字信号来显示。数字屏从它的信号传输方式来分,可分为TTL,LVDS等等方式。
10 开发板液晶屏组成(数字屏)
一块TFT液晶屏(用来显示输入信息)、驱动IC R61509V芯片(驱动液晶屏使其正常工作)、模数转换芯片XPT2046(通过内部SPI通信将模拟信号转换为数字信号,然后对驱动IC进行寄存器分析);
11 FSMC
FSMC一旦设置好后WR(读)、WD(写)、DB0-DB15这些数据线和控制线,就会自动的产生时序送入到LCD;
TFT-LCD用FSMC_NE4做片选信号,这是由于SRAM操作时序与FSMC操作时序相似。不同的时LCD有RS信号,无地址信号;FSMC有地址信号,无RS信号;所以用FSMC的A10连接LCD的RS。
由于对TFT-LCD的操作类似于SRAM的操作,因此选择块1中的一个64MB的区域作为操作地址,这里选择了第4个存储区域,范围为0x6C000000-0x6FFFFFFF;LCD通过RS信号来确定传输的是数据是数据还是命令,结合FSMC控制原理,本质上RS可以理解为一个地址信号。把RS接到A10上面,当A10=0时就是写命令,A10=1时就是写数据,也就是操作A10为0或者为1就可以控制LCD是写入命令还是数据了。
LCD_BASE地址:根据外部电路连接确定,如选择bank1的块4就是从地址0x6c000000开始,而stm32的fsmc在16位数据宽度时,地址线是右移一位对齐,因此0x000007FE,二进制位0111 1111 1110,右移对齐一位后变为011 1111 1111,此时A10为最前面的0,也就是RS=0,代表写命令,如果这个地址再加1,就变成了100 0000 0000,此时A10为最前面的1,也就是RS=1,代表写数据。我们将这个地址强制转换为LCD_TypeDef结构体地址,那么可以得到LCD->LCD_CMD的地址就是0x6C0007FE,对应A10的状态为0(即RS=0),而LCD->LCD_DATA的地址就是0x6C000800(结构体地址自增),对应A10的状态为1,(即RS=1),从而实现对RS的控制。
FSMC_LCD的更多相关文章
随机推荐
- PHP 高效导入导出Excel(csv)方法之fgetcsv()和fputcsv()函数
CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件. 一.CSV数据导入函数fgetcsv() fgetcsv() 函数从文件指针中读入一行并解析 CSV ...
- poj 3525
多边形内最大半径圆. 哇没有枉费了我自闭了这么些天,大概五天前我看到这种题可能毫无思路抓耳挠腮举手投降什么的,现在已经能1A了哇. 还是先玩一会计算几何,刷个几百道 嗯这个半平面交+二分就阔以解决.虽 ...
- 关于 telegram中 callback_data <= 64bytes 的解决方法
解决方法: # bind data to uuid import uuid my_data = long_json_string my_uuid = uuid.uuid4() user_data[my ...
- Express中间件的原理及实现
在Node开发中免不了要使用框架,比如express.koa.koa2拿使用的最多的express来举例子开发中肯定会用到很多类似于下面的这种代码 var express = require('exp ...
- 微信sdk 图片上传 两种方法 上传一张显示一张 并附带微信图片放大功能和删除功能
html <!--上传图片--> <div class="upload-mod"> <div class="up-box" id= ...
- emoji表情softbank和unicode不兼容解决方案
https://blog.ernest.me/post/emoji-remapping-solution
- jquery批量提交表单值 和批量设置表单值
$('#frmCustomerConfirmCar').find('[name]').each(function () { var type = $(this)[0].nodeName.toLower ...
- 18.1-uC/OS-III等待多个内核对象
等待的多个内核对象是指多值信号量和消息队列的任意组合 . 如果想要使用“等待多个内核对象”,就必须事先使能“等待多个内核对象”.“等待多个内核对象” 的使能位于“os_cfg.h”. 1.OSPend ...
- linux下查看CPU、内存、磁盘信息
1.查看CPU信息# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数cat /proc/c ...
- 20175211 2018-2019-2 《Java程序设计》第二周学习总结
目录 教材学习内容总结 第二章 第三章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 其他(感悟.思考等,可选) 学习进度条 参考资料 教材学习内容总结 第二章 ...