屏幕的FMARK--最后一段是出现切屏的本质
来源:互联网 发布:成都网站制作龙兵网络 编辑:程序博客网 时间:2024/06/05 05:57
(本文转自 http://hi.baidu.com/wuguoyana/item/f860107a7dd89e3d71442391 仅用于方便自己学习和其他需要的朋友使用。)
最近调试R61509V这颗LCM驱动芯片时,出现在纯色测试画面下画面刷新有残留(tearing effect,即TE)的问题。根本原因是主控写图像数据的速度与LCM刷屏的速度不一致造成的,具体是刷屏速度要快于主控写速度。好在很多LCM驱动芯片都有一个Fmark脚,用来与主控同步,当Fmark发出一个信号给主控时,主控才开始写一帧数据,这样就可以保证两边同步。讲述前首先对几个概念描述:
(1)刷屏速度
刷屏率是指LCM刷新的速度,这个值一般在LCM的初始化CODE中会设定好。对于瑞萨的R61509V这颗LCD驱动,设定0x0010寄存器就是设定刷屏速度。根据公式:帧率=678KHZ/{(RTN)*DIV*(432+8+8)} ,其中678K是LCM内部的时钟源,RTN是每行的时钟数,DIV是分频系数,(432+8+8)则是行像素。测得的结果是:
0X011F 20HZ,最小频率.
0X011A 29HZ
0X0115 36HZ
0X0110 52HZ
0X001C 60HZ
0X0018 70HZ
0X0014 80HZ
刷屏率太低会导致出现flicker现象,所以一般要设定在60HZ以上。
(2)主控写速度WR跟片选CS
这两个PIN脚对每个DBI的LCM都具备,两者的工作频率是一致的。主控每次写一帧数据时,会有一个片选信号,同时对应一个WR的写有效信号。主控的写频率的变化是由工作状态决定的,比如摄像时,拍摄动态物体的显示写速度就快于拍摄静态物体的显示写速度。
如果屏幕的画面没有更新,就会70ms update一次lcd,如果画面有动,就是最多33ms刷一次屏。意思就是CS频率只能限定在1/70到1/30,14.28HZ至33.33HZ之间。最高频率已经快于PAL或者NTSC的帧频,可以保证摄像头工作或者播放视频时不会出现丢帧现象。
(3)Fmark功能
要使能fmark,首先要保证主控的fmark脚与LCM的fmark脚是正确连接的;其次要在LCM初始化中使能屏的fmark功能,保证LCM周期性发出信号给主控,同时使能主控的fmark功能,保证主控收到一个fmark信号才写一帧数据。
LCM的fmark有两个参数可以配置:一是刷多少次屏发出一个fmark信号,比如不一定要每次刷屏都发fmark信号,可以刷几次屏发一次fmark信号;二是fmark的位置参数,可以让fmark迟滞几条线输出,目的是让主控晚点写数据到GRAM,避免TE。
举例:存在这样的情况,就是IC在从GRAM读完最后一行就输出te信号,此时BB开始写GRAM。但可能还要有一两条line的时间,IC才开始从GRAM的第一行读数据刷下二桢,而写GRAM的速度要慢于IC读GRAM的速度,此时可能还没有开始写。导致读GRAM超过写GRAM,所以会在上方产生tearing。要避免TE输出太早,导致写GRAM先开始,所以要加延迟,保证读老旧数据开始后,写GRAM才开始。
(4)fmark周期与CS周期
出现TE现象的根本原因是两边速度不一致,具体是LCM的刷新速度要快于主控送数据的速度,两者的速度要符合一定的范围才行。只要保证CS的周期在两个TE周期之间即可,也就是CS的写频率不能低于TE读频率的二分之一,Tearing出现的根本条件是读写有交叉。通常都是写Gram速度(WR)慢于lcd刷屏速度(TE),只要刷屏的位置不超过写Gram位置就不会有切屏现象。
举个实例:比如CS差不多就比两个TE周期小一点,要刷两桢数据,首先第一桢刷屏开始刷屏了,表示读GRAM开始,它的速度比较快,它读的是老旧数据;紧接着主控开始写GRAM,大概写到GRAM的快一半时,这时候已经刷完一桢,然后开始刷第二桢,即又从GRAM的最上方开始读并刷屏,此时读出来的才是刚写入的新数据,在写完GRAM之前,读的步骤永远跟不上写的步骤,就不会出现tearing。
如果CS比两个TE周期大,假设相当于三个TE周期,那么只有在第三个TE读周期时,显示的数据才是写好的GRAM的数据;第一个TE读的是老旧的数据,第二个TE周期由于GRAM还没有写完,但读步骤赶上写GRAM步骤了,导致显式一部分是旧的一部分是新的,所以出现TE。此即本质。
- 屏幕的FMARK--最后一段是出现切屏的本质
- MCU屏FMARK信号的作用
- 睡觉前的最后一段
- 屏幕适配的本质
- 关于郑渊洁的最后一段话
- 郁闷是人生的本质
- 数学是本质的东西
- 编程的本质是业务
- 业务的本质是需求
- 人生的本质是痛苦
- 索引的本质是排序
- 真的是最后的最后了!
- 每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子。
- 每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子
- java反射最简单最本质的一段代码
- 今天是最后的悠闲。
- 最后的地址是sinaBlog
- 投资的本质是认知的变现
- UVA 127 - "Accordian" Patience---用STL做的(TLE超时)
- ubuntu下tftp文件,Retry count exceeded; starting again问题
- secure crt 6.6.3 设置
- 教你玩转11gR2 GNS(Grid Naming Service)
- 原型模式
- 屏幕的FMARK--最后一段是出现切屏的本质
- Poco::BasicEvent
- hdu_4355 Party All the Time(简单数学题)
- 汉字转全拼
- word恢复默认设置
- CSS hack之特殊符号的应用
- [斯坦福ios开发][assignment2]1
- 汇编和C语言
- hadoop lzo安装