手机帧同步信号

屏的帧同步问题

屏帧同步问题

现象:在刷屏数据比较频繁(如camera preview界面移动屏幕时)会有一条或多条断屏现象

解决方法:

1.

2.

3. 开启mak中的帧同步宏:SYNC_LCM_SUPPORT = TRUE 要在lcd_init函数中打开te功能并设置VSYNC模式,若上层帧同步宏LCD_IOCTROL函数要配置正确,如下红色部分要注意跟LCD_INIT中的设置相匹配 SYNC_LCM_SUPPORT = TRUE,但是lcd_init函数中未打开TE功能则会导致不能开机。 case LCM_IOCTRL_QUERY__FRAME_RATE:

*(kal_uint32*) (Parameters) = 60;// (*) by initial setting//需要与lcd_init函数中设置的一样, return LCM_IOCTRL_OK;

case LCM_IOCTRL_SET__FRAME_RATE:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__FRAME_MARKER:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_SET__FRAME_MARKER:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__SUPPORT_H_V_SIGNAL_FUNC:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__SUPPORT_V_PULSE_WIDTH:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__SUPPORT_H_PULSE_WIDTH:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__BACK_PORCH:

*(kal_uint32*) (Parameters) = 8;//(*)by initial setting //需要与lcd_init函数中设置的一样, return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__FRONT_PORCH:

*(kal_uint32*) (Parameters) = 8;//(*)by initial setting//需要与lcd_init函数中设置的一样, return LCM_IOCTRL_OK;

case LCM_IOCTRL_SET__BACK_PORCH:

case LCM_IOCTRL_SET__FRONT_PORCH:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__TE_EDGE_ATTRIB:

*(kal_uint32*) (Parameters) = LCM_TE_FAILING_EDGE;//此处注意用下降沿 return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__SUPPORT_READBACK_FUNC:

case LCM_IOCTRL_QUERY__SCANLINE_REG:

case LCM_IOCTRL_QUERY__IF_CS_NUMBER:

*(kal_uint32 *)(Parameters) = LCD_IF_PARALLEL_0;

return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__LCM_WIDTH:

*(kal_uint32*) (Parameters) = 240;// (*) by gram width

return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__LCM_HEIGHT:

*(kal_uint32*) (Parameters) = 320;// (*) by gram height

return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__SYNC_MODE:

*(kal_uint32*) (Parameters) = LCM_TE_VSYNC_MODE;//此处注意用VSYNC模式 return LCM_IOCTRL_OK;

4. 如上三点都用到之后若还是有断屏现象,那么就要确认硬件接口TE信号有接出来,包括CPU和LCD。如下图:LPTE脚就是已接出的TE信号

如果还不能确认屏是否已接出TE脚,那么可以用示波器量出来,方法如下:

要一直有刷屏的状态下才能量出来,故进入到camera preview界面,然后量取TE脚的信号,如果是比较规律的一个个脉冲方波,那么就已经接出同步信号。注意:能量出TE信号前提必须将软件TE打开才行。

5. 如果确认了有TE信号输出那么就需要测量一下屏的CS脚和TE脚的信号。

如下图所示,ta 和tb的相同,也就是说每帧数据的起始点和te信号之间的相对位置是一定的,而且Tcs不能大于两个Tte,这时候说明同步了。

如果我们测到Tcs大于两个Tte,那么是肯定没有同步到,肯定会有断屏现象的。此时我们需要将Tcs缩短,或是将Tte加长;

1) 缩短Tcs可以将init_lcd_interface(void)函数中的如下几个参数值减小,但是不能太

小,太小了可能会引起白屏问题。

SET_LCD_PARALLEL_CE2WR_SETUP_TIME((kal_uint32)3);//0 SET_LCD_PARALLEL_CE2WR_HOLD_TIME(1);//0 SET_LCD_PARALLEL_CE2RD_SETUP_TIME(1);//0 SET_LCD_PARALLEL_WRITE_WAIT_STATE(3);//22////1SET_LCD_PARALLEL_READ_LATENCY_TIME(13);//10 SET_LCD_ROI_CTRL_CMD_LATENCY(1);//0

的一致。

3) 如果Tcs在两个Tte之内,但是Ta!=Tb,那么也可以通过微调屏的帧率来使Ta=Tb。

通过如上方法基本可以做到无断屏现象,但是还有其他很多因素可以调节,比如:前廊与后廊,tear scanline等等,这些对帧同步的影响具体还不是很了解,还有待研究。

另外要注意一下:如果硬件都有有接出TE脚,且上层将TE功能打开,但是底层屏的TE功能未打开,那么就会引起不开机状态,因为在开机时上层搜索屏的TE信号,屏需要返回TE信号,手机才会开机。当然如果没有焊接屏的话也是不开机的,因为没有屏就不能返回TE信号而不开机。(这里主要是针对工厂没有焊接屏时需要开机处理时的一些问题,针对这种情况需要在软件中判断是否有焊接屏,有的话上层才打开TE功能,没有就将上层的TE功能关闭,这样不焊接屏是也能开机了)

本文档仅仅根据自己的理解编写,如有错误之处,还请大家指出,谢谢!!

马丽平 2011-11-11 2) 通过降低屏的帧率来加大Tte周期,这里的帧率调整必须要与LCD_IOCTROL函数中设置

屏的帧同步问题

屏帧同步问题

现象:在刷屏数据比较频繁(如camera preview界面移动屏幕时)会有一条或多条断屏现象

解决方法:

1.

2.

3. 开启mak中的帧同步宏:SYNC_LCM_SUPPORT = TRUE 要在lcd_init函数中打开te功能并设置VSYNC模式,若上层帧同步宏LCD_IOCTROL函数要配置正确,如下红色部分要注意跟LCD_INIT中的设置相匹配 SYNC_LCM_SUPPORT = TRUE,但是lcd_init函数中未打开TE功能则会导致不能开机。 case LCM_IOCTRL_QUERY__FRAME_RATE:

*(kal_uint32*) (Parameters) = 60;// (*) by initial setting//需要与lcd_init函数中设置的一样, return LCM_IOCTRL_OK;

case LCM_IOCTRL_SET__FRAME_RATE:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__FRAME_MARKER:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_SET__FRAME_MARKER:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__SUPPORT_H_V_SIGNAL_FUNC:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__SUPPORT_V_PULSE_WIDTH:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__SUPPORT_H_PULSE_WIDTH:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__BACK_PORCH:

*(kal_uint32*) (Parameters) = 8;//(*)by initial setting //需要与lcd_init函数中设置的一样, return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__FRONT_PORCH:

*(kal_uint32*) (Parameters) = 8;//(*)by initial setting//需要与lcd_init函数中设置的一样, return LCM_IOCTRL_OK;

case LCM_IOCTRL_SET__BACK_PORCH:

case LCM_IOCTRL_SET__FRONT_PORCH:

return LCM_IOCTRL_NOT_SUPPORT;

case LCM_IOCTRL_QUERY__TE_EDGE_ATTRIB:

*(kal_uint32*) (Parameters) = LCM_TE_FAILING_EDGE;//此处注意用下降沿 return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__SUPPORT_READBACK_FUNC:

case LCM_IOCTRL_QUERY__SCANLINE_REG:

case LCM_IOCTRL_QUERY__IF_CS_NUMBER:

*(kal_uint32 *)(Parameters) = LCD_IF_PARALLEL_0;

return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__LCM_WIDTH:

*(kal_uint32*) (Parameters) = 240;// (*) by gram width

return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__LCM_HEIGHT:

*(kal_uint32*) (Parameters) = 320;// (*) by gram height

return LCM_IOCTRL_OK;

case LCM_IOCTRL_QUERY__SYNC_MODE:

*(kal_uint32*) (Parameters) = LCM_TE_VSYNC_MODE;//此处注意用VSYNC模式 return LCM_IOCTRL_OK;

4. 如上三点都用到之后若还是有断屏现象,那么就要确认硬件接口TE信号有接出来,包括CPU和LCD。如下图:LPTE脚就是已接出的TE信号

如果还不能确认屏是否已接出TE脚,那么可以用示波器量出来,方法如下:

要一直有刷屏的状态下才能量出来,故进入到camera preview界面,然后量取TE脚的信号,如果是比较规律的一个个脉冲方波,那么就已经接出同步信号。注意:能量出TE信号前提必须将软件TE打开才行。

5. 如果确认了有TE信号输出那么就需要测量一下屏的CS脚和TE脚的信号。

如下图所示,ta 和tb的相同,也就是说每帧数据的起始点和te信号之间的相对位置是一定的,而且Tcs不能大于两个Tte,这时候说明同步了。

如果我们测到Tcs大于两个Tte,那么是肯定没有同步到,肯定会有断屏现象的。此时我们需要将Tcs缩短,或是将Tte加长;

1) 缩短Tcs可以将init_lcd_interface(void)函数中的如下几个参数值减小,但是不能太

小,太小了可能会引起白屏问题。

SET_LCD_PARALLEL_CE2WR_SETUP_TIME((kal_uint32)3);//0 SET_LCD_PARALLEL_CE2WR_HOLD_TIME(1);//0 SET_LCD_PARALLEL_CE2RD_SETUP_TIME(1);//0 SET_LCD_PARALLEL_WRITE_WAIT_STATE(3);//22////1SET_LCD_PARALLEL_READ_LATENCY_TIME(13);//10 SET_LCD_ROI_CTRL_CMD_LATENCY(1);//0

的一致。

3) 如果Tcs在两个Tte之内,但是Ta!=Tb,那么也可以通过微调屏的帧率来使Ta=Tb。

通过如上方法基本可以做到无断屏现象,但是还有其他很多因素可以调节,比如:前廊与后廊,tear scanline等等,这些对帧同步的影响具体还不是很了解,还有待研究。

另外要注意一下:如果硬件都有有接出TE脚,且上层将TE功能打开,但是底层屏的TE功能未打开,那么就会引起不开机状态,因为在开机时上层搜索屏的TE信号,屏需要返回TE信号,手机才会开机。当然如果没有焊接屏的话也是不开机的,因为没有屏就不能返回TE信号而不开机。(这里主要是针对工厂没有焊接屏时需要开机处理时的一些问题,针对这种情况需要在软件中判断是否有焊接屏,有的话上层才打开TE功能,没有就将上层的TE功能关闭,这样不焊接屏是也能开机了)

本文档仅仅根据自己的理解编写,如有错误之处,还请大家指出,谢谢!!

马丽平 2011-11-11 2) 通过降低屏的帧率来加大Tte周期,这里的帧率调整必须要与LCD_IOCTROL函数中设置


相关文章

  • 万能手机数据线接线图
  • 一共是五根线...中间的三根是数据 两边则是供电 数据线剥开.一般情况下红线是正极 黑线是负极 手里要有一个万能表..没万能表 说不清楚 线只起导电的作用,没有别的原理.一共5跟,一跟联结外面的矩形金属,剩下的是里面的4个.有的线外面包着一 ...查看


  • 电磁场在社会中的应用
  • 电磁场在社会中的应用 麦克斯韦全面地总结了电磁学研究的全部成果,并在此基础上提出了"感生电场"和"位移电流"的假说,建立了完整的电磁场理论体系,不仅科学地预言了电磁波的存在,而且揭示了光.电.磁现象的 ...查看


  • ATU自动路测对移动网络的应用
  • ATU 自动路测系统对移动网络的应用 摘要:目前,移动正在使用的ATU 自动路测系统是一种自动化程度很高,客观性好,采样的时间.范围.样本数量能满足海量数据要求,操作省时省力的采集测试系统. 关键词:ATU 自动路测设备.自动路测管理平台 ...查看


  • 全球定位系统(中英对照)
  • 全球定位系统 第一节 GPS的原理概述 一. 全球定位系统GPS GPS(Navigation Satellite Timing and Ranging /Global Position System ),授时与测距导航系统/全球定位系统, ...查看


  • 通信技术基础知识
  • 通信技术基础知识 电信网(telecommunication network)是构成多个用户相互通信的多个电信系统互连的通信体系,是人类实现远距离通信的重要基础设施,利用电缆.无线.光纤或者其它电磁系统,传送.发射和接收标识.文字.图像.声 ...查看


  • 移动互联网应用技术
  • 1. 简述IPv4到IPv6的过渡技术. (1)双协议栈技术 (2)隧道技术 (3)网络地址转换技术 2. 某A类网络10.0.0.0的子网掩码255.224.0.0,请确定可以划分的子网个数,写出每个子网的子网号及每个子网的主机范围. 由 ...查看


  • 手机的软件工作原理
  • 手机的雏形十分类似于对讲机,最早出现在20世纪40年代,曾在第二次世界大战用 于军事通话,是后来的"大哥大"的前身.哪个 时候还没有手机软件的概念,手机上也没有任何增值的服务.后来手机逐渐从军用 转为商用`民用,随着手机 ...查看


  • 示波器使用方法
  • 示波器使用方法 1 示波器使用 本节介绍示波器的使用方法.示波器种类.型号很多,功能也不同.数字电路实验中使用较多的是20MHz或者40MHz的双踪示波器.这些示波器用法大同小异.本节不针对某一型号的示波器,只是从概念上介绍示波器在数字电路 ...查看


  • 基本光纤通信系统
  • 基本光纤通信系统 基本光纤通信系统 最基本的光纤通信系统由数据源.光发送端.光学信道和光接收机组成.其中数据源包括所有的信号源,它们是话音.图象.数据等业务经过信源编码所得到的信号:光发送机和调制器则负责将信号转变成适合于在光纤上传输的光信 ...查看


热门内容