tiny210(S5PV210)LCD控制器RGB配置相关学习记录

最近在弄210LCD的配置,在这里记录下一些学习的东西,有错恳请指正,互相学习。

datasheet里面有好多名词,先记录一下一些名词的大概意思:

alpha blending:本来采用R、G、B三通道来表示颜色,但是显示控制器分为5个图层,故图层混合时需要按照一定的比例因子来混合以实现图层的透明度,而不至于将背景图层完全覆盖掉,现在增加alpha通道来作为那个颜色混合时的调节因子,配置相关的设置后,透过调节alpha值则可以实现图层间透明度的控制,而所谓的透明度,相当于是两图层的按照不同的合成因子来合成为一个图层,这样背景图层就不会被完全覆盖掉而不可视了。

color key(色键):设有背景窗口bg,前台窗口fg,两个窗口有重叠部分,设置一个颜色值作为fg的色键,当有fg中的像素的颜色值与色键的值相等时,这些像素会被特殊对待,有两种方式,若我们配置了出现这种色值相等的情况显示前台窗口的颜色,那么就会显示前台窗口的颜色;若我们配置了出现这种色值相等的情况显示背景窗口的颜色,那么就会显示背景窗口的颜色。当然背景窗口color key就没有意义了。

color gain:从字面理解为颜色增益。

LUT:Look Up Table , 翻译为查找表或者查询表都合理;如color look up table ,翻译为颜色查找表,也就是调色板啦,用作颜色查找嘛,哈哈,调色板英文也有叫 Palette,210的datasheet里就有这么叫。

I80接口:我就理解为interface 80吧,这是以前为控制器常用的LCD接口,大概通过命令进行交互,具体内容没有继续深究。

OSD:在datasheet里老是出现这个缩写,我就理解为on screen display,指的应该是窗口显示区域。

FIMD:Fully Interactive Mobile Display,完全交互式移动显示设备,210里面集成的LCD控制器应该属于FIMD的一部分,而FIMD模块中还有其他的什么东西就不清楚了,我认为是这样的,后面讲述配置过程时还会提及。

FIMC:Fully Interactive Mobile Camera,完全交互式移动摄像设备,210里面集成了camera的控制器属于FIMC的一部分,在LCD配置中,出现的FIMC0和FIMC1指的是LCD控制器的数据来源通道是FIMC,即来自摄像模块,210内置了FIMC与LCD控制器的直接通道,也就是说LCD控制器可直接利用CamIF0(camera Interface)、CamIF1、CamIF2通道的数据进行显示。

MIPI:Mobile Industry Proccessor Interface,移动行业处理器接口标准,主要规定了硬件接口的标准,这有篇相关的博文:http://blog.csdn.net/tanxs001/article/details/7682085

DSI、CSI:DSI是MIPI组织标准化的Display Serial Interface(显示串行接口);CSI是MIPI组织标准化的Camera Serial Interface(摄像串行接口)。

MIPI DSIM:datasheet里面出现的这个词指的应该就是那个DSI接口。

下面记录一些对于LCD控制器配置比较重要的东西:

LCD控制器的主要过程:图像输入(从各种通道输入)——>图像处理(图层混合、效果增强等)——>LCD控制器信号输出。

data flow(数据流):这是上面流程的数据流向,image data flows in——>color——>color space convert(if the enter is not RGB)——>alpha blending and color keying——>Gamma,color gain,image compensation——>LCD controler signal output.

图像输入的来源:(1)VDMA,每个图层都有专用的DMA通道直接从帧内存中获取图像数据,分别是CH0(channel0),CH1,CH2,CH3,CH4。(2)WIN0,WIN1,WIN2除了有VDMA通道外还可以通过FIMC与FIMD之间的通道获取数据,即分别通过:CamIF0,CamIF0,CamIF0,相当于摄像的数据直接传送到显示模块进行显示。

帧内存数量:210中可通过VIDW0xADD0Bx为每个图层窗口配置3个帧内存地址,但是在同意时刻,只有一个帧内存是生效的,VIDCONx可以配置哪个地址生效。VIDW0xADD0Bx配置结束地址,注意帧内存的大小必须要不小于窗口OSD的大小。

虚拟屏幕:当图像的实际大小超过窗口OSD的大小时,可通过虚拟屏幕功能显示大图像的局部,被显示的那部分称为视口,如下图示。通过配置VID0xADDxBx可配置视口的位置。注意区分窗口OSD位置和视口位置的区别,OSD的位置指的是相对于显示器面板来说其位于在显示面板的哪个位置,而视口的位置指的是相对于大图像来说的视口在其哪个位置,当然视口的大小和OSD是相等的。

在datasheet中有三类寄存器是配置图像显示大小的:(1)VIDTCON2配置输出时序的有效行和有效列,决定了显示器可现实区域的大小,故通常就是显示面板的大小。(2)VIDOSDxx配置各图层的窗口的位置和大小,也就是说各图层的大小不一定是要和面板一样大小,其位置和大小都可以变化。(3)VIDW0xADDxBx配置实现虚拟屏幕功能,配置下图中的OFFSIZE,PAGEWIDTH,LCDBASU等。

输出信号的反转问题:因为210里面LCD控制器输出的信号中,对比LCDdatasheet可知,210控制器原来的VSYNC和HSYNC的和LCDdatasheet的时序图极性不同,故要反转极性。还有一些相关参数对比LCD和210控制器的时序图就可以知道。

图层混合:看下图,B`表示像素混合后新的颜色值,alphaB`表示像素混合后的alpha值(alpha值实际上是不大于1的小数),公式中的a,b,p,q表示他们的混合因子,通过寄存器BLENDEQ来配置。例如a配置为alphaA, b配置为alphaB,p配置为1,q配置为1,带入公式中可得,B` = A X alphaA + B X alphaB,alphaB` = alphaA + alphaB;所以alphaA 的值决定了A的颜色取百分之几,
alphaB的值决定了B的颜色去百分之几,然后相加合成新的颜色值B`;故通过调节alphaA和alphaB的值就实现了控制他们合成时的透明度,因为合成合成的像素值B`是来自A和B两个部分,不就相当于是控制了透明度嘛。而合成的alphaB`则用于和下一层合成时的合成因子。

alpha值得确定主要根据配置来确定,或为全局相同的alpha值,或为每个像素都带alpha通道的bpp模式,或为色键相关的KEY_ALPHA;datasheet里面有个确定其值得流程图。

那么配置的主要步骤就是:

(1)配置相关引脚的功能为LCD功能

(2)开启背光

(3)选择显示输出路径为FIMD,datasheet有提到要选择,但是却只能选择FIMD一个选择而没有其他路径输出,不如直接硬件固定死好了,为何还要手动配置。

(4)VIDCONx配置全局相关的一些配置

(5)VIDTCONx配置时序

(6)配置图层窗口位置和大小

(7)有需要则配置虚拟窗口

(8)使能传输数据来源的通道

具体的详细设置参考datasheet中的programmmer‘s model,按照里面的过程,有需要的功能就配置,没需要的就直接略过。

时间: 2024-10-06 19:52:29

tiny210(S5PV210)LCD控制器RGB配置相关学习记录的相关文章

Yii2的相关学习记录,安装Yii2(一)

原先学习过Yii1的相关知识,但是也是半懂不懂的,但稍微的结构是了解的.现在利用晚上的时间学习下Yii2的使用,这里记录下,以免自己以后忘记. 目前已看一部分Yii2的权威指南,虽然Yiiframework中文网站的权威,跟英文版本比较有些章节缺失内容,但也能大体了解,用的某功能时再仔细看.顺便看了慕课网上的“与Yii框架不得不说的故事”,讲的也不错的. 还有比较重要的是需要FQ用google,毕竟是国外的框架,中文的内容比较少,大部分解答都能在谷歌中搜索到,这里可以用XX-Net,具体的如何用

Yii2的相关学习记录,Gridview小部件使用及kartik-v/yii2-grid扩展(五)

现在记录下Gridview的相关内容,也是强迫症犯了,Yii2自带的Gridview虽然不错,但是过滤栏如果一些字段用不着,不会自动合并成一行,当然也可以过滤栏不用,而是在最上方自己写一些需要检索的数据,但是这样很麻烦,还要自己去规划样式,写检索什么的.正好在搜索将检索栏和标题合并时,看到了kartik-v/yii2-grid可以实现这些功能,而且还自带导出excel.csv等数据,所以也顺便试了下它的功能,调出了自己喜欢的样式.在用kartik-v的Gridview之前我们还是要了解Yii2自

Yii2的相关学习记录,后台模板和gii(三)

前面已经可以正常登录,但我们需要体验下最常用的增删查改的操作.这里就需要gii,通过gii可以方便的生成表单.表格的框架,不需要我们再写重复的东西. gii访问地址:http://localhost/vishun/frontend/web/index.php?r=gii或者http://localhost/vishun/backend/web/index.php?r=gii,由于前后台文件都有配置,所以都可以访问.由于Yii框架高级版已经在common/models中存在user模型了,所以,我

Yii2的相关学习记录,前后台分离及migrate使用(七)

最近一直忙其它的(其实是懒!),将<深入理解Yii2>看了一遍,一些当初没明白的稍微明了了点,然后又看yii2的图片上传等处理.富文本.restful什么的,但由于没进行到这里,只看也不管用啊,所以还是按照步骤一步步来,先说说前后台分离.(其实普通的内容管理站点用不着下面所说的彻底分离什么的,看看也无妨) 个人感觉前后台的情况有这么几种,首先是前后台是否是用一个验证体系,其次是前后台是否共用一个数据表.一般来说下面三种比较常用吧: A.共用一个验证体系和一个数据表. B.两个验证体系和共用一个

Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)

呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用alert.confirm和dialog的小部件封装,当然了,本质上还是bootstrap3-dialog,可以用原生的方法,原生方法的用法点这里,而bootstrap3-dialog又是基于bootstrap3的modals做的封装.嗯,基本关系就是这样.在搜索这个相关知识时,经常会看到有人提到b

转义的相关学习记录

学习编程语言的时候,经常碰到需要对字符转义的情况,有时候自己会把一些知识点搞混,特以此文记录,持续更新. 先看一个小例子,要写一个正则匹配像'010-12345'这样的电话号码,由于'-'是特殊字符,在正则表达式中,要用'\'转义,所以,上面的正则是\d{3}\-\d{3,8}.如果不用'\'转义,则'-'就成正则里范围的意思. 以上这个小例子讲了为什么要转义. 另外,js里的字符串也有一些需要转义的字符字面量,详见高程33页.平时用的比较多的是对'\\' ,'\'' ,'\'''以及'\unn

使用hibernate更新数据库记录的信息的相关学习记录

截选代码(可能遗漏标点符号): package name.sql; import java.util.List; import name.session.HibernateSessionFactory; import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction; public class SqlHelper { //增 public void save(Object obj){

[Hanani]JAVA大数相关学习记录

1.Basic remains .题目链接 涉及内容: 大数读入|大数模|大数进制读入时转化为十进制|大数输出时转化为其他进制输出 import java.io.*; import java.math.*; import java.util.*; import java.text.*;//各种头文件 public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in);/

css相关学习记录

为什么写这个呢?因为在开发管理系统的过程中,会不可避免的对一些css属性进行调整,其次虽然在大学中学过这些东西,但是主业为java后端,这些我当时是的确是聊聊而过了 一.flex布局介绍,代码如下 { display: flex; justify-content: space-between; align-items: center; } flex是一个新的布局,采用这个布局的元素,叫做Flex容器,其子元素则自动的成为容器成员,简称项目 容器中存在两个轴(main asix, cross ax