立即注册 登录
一牛网 返回首页

Gally的个人空间 http://www.16rd.com/?6978 [收藏] [复制] [RSS]

日志

LCM之Fmark功能

热度 2已有 2857 次阅读2015-4-7 17:11 |个人分类:基础知识

最近调试R61509V这颗LCM驱动芯片时,出现在纯色测试画面下画面刷新有残留(tearing effect,即TE)的问题。
根本原因是主控写图像数据的速度与LCM刷屏的速度不一致造成的,具体是刷屏速度要快于主控写速度。
好在很多LCM驱动芯片都有一个Fmark脚,用来与主控同步,当Fmark发出一个信号给主控时,主控才开始写一帧数据,这样就可以保证两边同步。
讲述前首先对几个概念描述:
(1)刷屏速度
&nBSP;       刷屏率是指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。此即本质。

路过

鸡蛋
1

鲜花

握手

雷人

刚表态过的朋友 (1 人)

发表评论 评论 (2 个评论)

回复 longwu0327 2015-4-7 18:13
学习下,最近也开始弄LCD了
回复 Gally 2015-4-7 18:43
longwu0327: 学习下,最近也开始弄LCD了
嘿嘿,我也是从高手那里做下笔记,方便以后查看,哥们有文章也可分享分享,大家学习学习!!!

facelist

您需要登录后才可以评论 登录 | 立即注册

网站地图| 联系我们|小黑屋

一牛网论坛 (粤ICP备13053961号)  © 2013-2016 www.16rd.com | 营业执照 | EDI证