ImageVerifierCode 换一换
格式:DOCX , 页数:5 ,大小:19.16KB ,
资源ID:17246007      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17246007.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LCD驱动调试中部分常见问题的分析及解决办法文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

LCD驱动调试中部分常见问题的分析及解决办法文档格式.docx

1、在上电成功以后, BB 会通过 LCD 串行总线发送 LCD 的初 始化数据, 如果这个环节出现问题, 那肯定初始化不能成功。 在这个过程中能出现问题的就只有 SPI 的通讯控制这一块了, (通常 LCD 的通讯接口有 CPU 和串 行总线接口等,手机中较常用的就是串行总线接口,串行总 线接口又以 SPI 接口居多),其实造成SPI 通讯不符合 LCD 模组驱动芯片的要求的原因也是多种多样的:1、 虽然都是 SPI 接口,但是,不同的 LCD 模组,在控制 信号的要求上往往都会有细小的不同, 有时候, CPU 的 SPI 接口甚至都无法产生 LCD 模组所要求的特定波形时序。有 些 LCD 模

2、组可能还会有特定的势能信号来控制 SPI 接口工作与否。2、 多数 LCD 驱动芯片其实都是具有读取寄存器和 ID 号 的功能的,但是很多模组在封装的时候往往没有吧芯片的 SPI 接口的 SDO 信号线引出来。导致无法通过读取寄存器 和 ID 的方式来判断 SPI 总线上的通信协议是否正确。 那么,如果确定了是 SPI 通讯控制不满足要求的话,就可以 通过修改 SPI 的读写控制来适配 LCD 模组 IC 的要求。 如果 CPU 所提供 SPI 接口实在没有办法配置到完全和 LCD 模组要求的时序波形相同,可以采用 CPIO 口模拟 SPI 信号 的方式来初始化 LCD 。最后,如果模组能够将

3、 SDO 引出就尽量引出,不仅方便调 试,而且可以很方便的做不同 IC 的 LCD 自适应的兼容。 初始化成功, LCD 点不亮有的时候 LCD 点不亮,通过上面讲的方法,测量 LCM 的 FPC 上的电容的电压确认初始化正常。 即有时候初始化已经 成功了,但是 LCD 还是没有被点亮。这个时候就要仔细的对照 LCD 模组的规格书来检查了,是否是 一些非常规的原因,例如串口和 RGB 数据接口相互影响或 者别的什么原因。见过别人讲的一个案例:某厂商的一款 LCD 驱动芯片,初 始化成功了以后 LCD 还是点不亮,经查发现,在 RGB 接口 上写入数据前,要通过串口对某一寄存器写 入特殊值,但实

4、际上在初始化的代码中已经包含了对该寄存 器写值,即使写入这一特殊值以后 RGB 数据口上仍然写入 不了数据。最后发现,对暖气修改以后,不能 再写其它的寄存器,否则就会出现问题。当然这也是极个别 的现象,不过当你在调试过程中遇到此类问题无法解决的时 候,不妨在这个方向上进行检查。 LCD 图像错位LCD 显示在水平方向发生位移,或者在上面或底部 有一条几个像素的彩色、白色或黑色条纹。一般来说,出现 这种情况,都是因为初始化参数设置不对,和行同步或者场 同步信号有关。显示位置有位移或者错位, 就检查 LCD 模组和 CPU 上的 LCD 控制器的行同步与场同步信号的宽度、 前后延时、 极性的匹配。

5、最可能的就是回扫的前后延时时间不匹配。另外,这种情况通常错位不会很多,如果出现错位 了一半的图像之类的情况,通常就是别的原因造成的了。而且有时候,有的 LCD 的行信号、场信号的设置还和 LCD 驱 动芯片的部分电压参数的取值设置有关。 LCD 大片图片错位、 叠加、重复LCD 显示上大范围的图像出现错位、 叠加或者重复, 出现这 种情况一般不会是行同步或者场同步信号的延时引起的,基 本可以排除这方面的影响。可以间检查下抽 样等功能的参数是否正常,还有就是因为 LCD 的硬件平台 不同,而在时序或者时钟频率上存在差异引起的。碰见这种 情况首先应该做的就是先仔细计算 DMA 传输 参数。其它的情

6、况要具体问题具体分析。UBOOT 过程中 LCD 不显示开机的时候在 UBOOT 过程中 LOGO 不显示,只有背光亮。 这种情况出现的时候如果其它都正常,不妨检查下 FLASH 的配置。我碰见这个问题的原因最后是FLASH 的 MCP 没有设置正确。 FLASH 换小以后 MCP 只有 CS0 这一片封装,而在配置文件里还是沿用以前的 CS0 和 CS1 两片的配置,从而可能会引 起各种意想不到的问题。开机 LCD 亮的瞬间有花屏 出现这种问题,一般都是由于 LCD 在初始化完成后 刷新第一副图像未完全准备好的时候背光已经亮了。解决的 办法就是在 UBOOT 时候背光亮之前的延时相应的加长一

7、点 问题: RGB 接口的屏,在 uboot 显示正常,进入 kernel 显 示时先花屏几秒钟然后才显示正常;打 log 显示在 uboot 阶 段, dpicontroler 的 framebuffe 地址一致,进入 kernel 后, dpi controler 的 framebuffe 地址发生变化。1. 在调试 mipi 接口的时候 ,lcmdriver 添加了 te 功能,在进入 kernel 那一瞬间同步紊乱而出 现花屏, 解决办法是在 uboot 的时候不要做 te 的动作, 在进 入 kernel 后再开 启同步信号。2.framebuffersize 设置过小导致 kern

8、el 时 logo 未能正常加 载,解决办法是将 buffersize 改大。屏的帧同步问题现象:在刷屏数据比较频繁(如 camera preview 界面移动 屏幕时)会有一条或多条断屏现象 解决方法:1. 开启 mak 中的帧同步宏: SYNC_LCM_SUPPORT = TRUE2. 要在 lcd_init 函数中打开 te 功能并设置 VSYNC 模式, 若 上层帧同步宏 SYNC_LCM_SUPPORT = TRUE ,但是 lcd_init 函数中未打开 TE 功能则会导致不能开机。3.LCD_IOCTROL 函数要配置正确, 如下红色部分要注意跟LCD_INIT 中的设置相匹配c

9、ase LCM_IOCTRL_QUERY_FRAME_RATE:*(kal_uint32*) (Parameters) = 60;/ ( *) by initialsetting/ 需要与 lcd_init 函数中设置的一样return LCM_IOCTRL_OK;case LCM_IOCTRL_SET_FRAME_RATE:return LCM_IOCTRL_NOT_SUPPORT;case LCM_IOCTRL_QUERY_FRAME_MARKER:case LCM_IOCTRL_SET_FRAME_MARKER:caseLCM_IOCTRL_QUERY_SUPPORT_H_V_SIGNA

10、L_FUNC:LCM_IOCTRL_QUERY_SUPPORT_V_PULSE_WIDTH: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 函数中设置的一样case LCM_IOCTRL_QUERY_FRONT_PORCH:/ ( *)by initial setting/ 需要与 lcd_ini

11、t 函数中设置的一样case LCM_IOCTRL_SET_BACK_PORCH:case LCM_IOCTRL_SET_FRONT_PORCH:case LCM_IOCTRL_QUERY_TE_EDGE_ATTRIB: *(kal_uint32*) (Parameters) =LCM_TE_FAILING_EDGE;/ 此处注意用下降沿 return LCM_IOCTRL_OK;LCM_IOCTRL_QUERY_SUPPORT_READBACK_FUNC:case LCM_IOCTRL_QUERY_SCANLINE_REG:case LCM_IOCTRL_QUERY_IF_CS_NUMBER

12、: *(kal_uint32 *)(Parameters) = LCD_IF_PARALLEL_0; return LCM_IOCTRL_OK;case LCM_IOCTRL_QUERY_LCM_WIDTH:widthcase LCM_IOCTRL_QUERY_LCM_HEIGHT: *(kal_uint32*) (Parameters) = 320;/ ( *) by gramheightcase LCM_IOCTRL_QUERY_SYNC_MODE:LCM_TE_VSYNC_MODE;/ 此处注意用 VSYNC 模式 return LCM_IOCTRL_OK; 4. 如上三点都用到之后若还

13、 是有断屏现象,那么就要确认硬件接口 TE 信号有接出来, 包括 CPU 和 LCD 。如下图: LPTE 脚就是已接出的 TE 信号 如果还不能确认屏是否已接出 TE 脚,那么可以用示波器量 出来,方法如下: 要一直有刷屏的状态下才能量出来,故 进入到 camera preview 界面, 然后量取 TE 脚的信号, 如果 是比较规律的一个个脉冲方波,那么就已经接出同步信号。 注意:能量出 TE 信号前提必须将软件 TE 打开才行。 5. 如 果确认了有 TE 信号输出那么就需要测量一下屏的 CS 脚和 TE 脚的信号。 如下图所示, ta 和 tb 的相同,也就是说每 帧数据的起始点和 t

14、e 信号之间的相对位置是一定的,而且 Tcs 不能大于两个 Tte ,这时候说明同步了。如果我们测到 Tcs 大于两个 Tte ,那么是肯定没有同步到, 肯定会有断屏现象的。此时我们需要将 Tcs 缩短,或是将 Tte 加长;1)缩短 Tcs 可以将 init_lcd_interface(void) 函数中的如下几 个参数值减小, 但是不能太小, 太小了可能会引起白屏问题。SET_LCD_PARALLEL_CE2WR_SETUP_TIME(kal_uint32)3);/0SET_LCD_PARALLEL_CE2WR_HOLD_TIME(1);SET_LCD_PARALLEL_CE2RD_SET

15、UP_TIME(1);SET_LCD_PARALLEL_WRITE_WAIT_STATE(3);/22/1SET_LCD_PARALLEL_READ_LATENCY_TIME(13);/10SET_LCD_ROI_CTRL_CMD_LATENCY(1);2) 通过降低屏的帧率来加大 Tte 周期,这里的帧率调整必 须要与 LCD_IOCTROL 函数中设置的一致。3)如果 Tcs 在两个 Tte 之内,但是 Ta !=Tb ,那么也可以 通过微调屏的帧率来使 Ta=Tb 。 通过如上方法基本可以做到无断屏现象,但是还有其他很多 因素可以调节,比如:前廊与后廊, tear scanline 等等,这些对帧同步的影响具体还不是很了解,还有待研究。另外要注意一下: 如果硬件都有有接出 TE 脚,且上层将 TE 功能打开,但是底层屏的 TE 功能未打开,那么就会引起不 开机状态,因为在开机时上层搜索屏的 TE 信号,屏需要返 回 TE 信号,手机才会开机。当然如果没有焊接屏的话也是 不开机的, 因为没有屏就不能返回 TE 信号而不开机。(这里 主要是针对工厂没有焊接屏时需要开机处理时的一些问题, 针对这种情况需要在软件中判断是否有焊接屏,有的话上层 才打开 TE 功能,没有就将上层的 TE 功能关闭,这样不焊 接屏是也能开机了)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1