揭开LCD在MTK驱动中的神秘感 一 (硬体部分)

对于LCD的调试,我们必须要让它的时序深入我们内心,但是对于目前的一些驱动工程师来说(手机行业的),好像很多事情太多寄托在FAE上,而自己却只是换换初始化代码,了解接口原理,是驱动工程师所必备的理论基础。

我整理了一下关于MCU接口的LCD时序,整个时序设置是针对MTK的时序命名来介绍:

一、硬件原理图设计:

揭开LCD在MTK驱动中的神秘感 一 (硬体部分)_第1张图片

上图为标准的MCU接口电路, IM0~IM3为通信数据宽度选择位,选择DriverIC的通信位数,一般有8bit、9bit、16bit、18bit四种通信的宽度。

在该部分还有一个重要的部分就是它的电压,它一般会有两个电源分别作为IOVCC(IO电压)和DVCC(电源)。

下图就是该接口LCD的时序图:

揭开LCD在MTK驱动中的神秘感 一 (硬体部分)_第2张图片

在MTK的LCD时序里面,主要包括如下参数:
CE2WR_SETUP ( CS to WR setup time  写等待时间): 是指片选信号拉低到 V1L 开始到 WRX 信号拉低到 V1L 结束( // 等于 Tcs – T WRL );
CE2WR_HOLD  CS to WR hold time 写片选保持时间 ): WRX 拉高后,片选保持时间,等于 T CSH
WRITE_WAIT_STATE  data write wait state period  写信号有效时间 ):写信号 拉低的时间,图中的 T WRL
CE2RD_SETUP(CS to RD setup time 片选读保持时间): 是指片选有效到读信号的建立时间,图中为 T RCS  – T RDL
READ_LATENCY data read wait state period ): 是指读信号被拉低的时间,图中的 T RDL   / T RDLRM

图中的PERIOD数就是在  SET_LCD_ROI_CTRL_CMD_LATENCY(0)里面设置的周期数,它就是//在两个连续的写之间CS拉高的周期数

二、常见问题:

1、切屏

即TE(tearing effect)现象

揭开LCD在MTK驱动中的神秘感 一 (硬体部分)_第3张图片揭开LCD在MTK驱动中的神秘感 一 (硬体部分)_第4张图片
上图就是TE现象,切屏的位置会有不同,有时候切屏的线会是斜的。
 说这个问题之前先说几个名词,一个是刷屏速度,即LCM的刷新速度,常说的帧率就是这个,它的值在初始化程序中给定,同常设置在60HZ左右,太低了就会有闪烁现象。CS频率,每个CS片选信号同时对应一个WR写有效信号这个信号是cpu向LCM写数据的频率。Fmark脚,在cpu上有一个Fmark脚是与LCM相连的,是同步信号,这个信号是在LCM读完数据之后,发送一个信号给CPU让其写数据。GRAM,是LCM上自带的一个空间,用于存储图像数据,之前说的CPU写数据就是写到GRAM里面,而LCM读数据也是从GRAM里面读数据。
出现TE现象的本质就是写数据的位置在前,而读数据的位置在后,但是写数据的速度要慢于读数据速度,当读的位置超过写的位置时就会出现TE。图5中主控开始写新数据,而LCM读旧数据。LCM的读数据的周期范围必须大于一个写周期并且要小于两个写周期。先分析这个范围,当两个周期相同时,LCM开始读旧数据,同时主控开始写新数据,只要读数据速度大一点就不会有相遇的时刻,即要大于一个写周期,再看另一个极限值,当数据读到末尾时,主控恰好写了一半的数据,这时主控写到末尾,LCM 又读到末尾,此时也不会相遇。要满足CS(时序)信号在一个TE到两个TE之间,一般不调CS信号,因为调CS信号即是调节时序,而对时序不是很了解的很容易弄成轻微的花屏,我们通过调节帧率在改变TE的周期。有时候会出现在屏幕上方出现切屏,怎么调节都没用,这种情况是因为 IC在从GRAM读完最后一行就输出te信号, 此时CPU开始写GRAM。但可能还要有一两条line的时间,IC才开始从GRAM的第一行读数据刷下二桢,而写GRAM的速度要慢于ICGRAM的速度,此时可能还没有开始写。导致读GRAM超过写GRAM,所以会在上方产生切屏,要避免这种情况就的先读几行后发送TE信号才让CPU开始写,这个设置在IC的datasheet中找到Blanking porch control寄存器去配置。







你可能感兴趣的:(MTK成长)