天天看点

[笔记分享] [Display] MIPI屏调试及举例

Debug

对于使用MIPI出现的问题,如果Tearing,屏幕错位等,总结了如下方法:

1. 当Tearing发生时,测量TE信号,是否和panel刷新率一致;测量TE和DATA PIN相位是否固定,以确定CPU是否配置好了。

2. 确保lcd的vertical front/back porch 以及 pulse width都是否符合要求了。不正常的值会导致mdp同步工作会不正常。

3. 测量clock是否符合设置要求。测量data信号是否正常。

4. 一般每个模块都有寄存器状态可以来读取以方便开发人员调试,lcd也不例外,举例如TE正常工作的时候,有个叫MDP_PRIM_INT_CNT_VAL 的寄存器是用于技术的,来一个TE signal就加一,如果不加那就知道TE同步不正常了。当然,对于其他的registers,如果有需要的话我们可以全部dump出来查找我们需要的信息。

花屏举例

有遇到个别手机开机会一直花屏的状况,不过将FPC重新扣一下就好了。

从现象上我们只能怀疑是接触不良,下面利用MIPI的原理来分析这个问题。

用到的知识:

a) 当发送控制命令的时候,默认都用的模式是LPDT,也就是说只用data0, clock和data 1 pin都没有用到。

b) 当CPU从panel接收返回的信息时,用的也只有data0 pin。

c) 在HS mode的时候发送显示数据,那么data 0, data 1, clock将都会被用到。

d) 使用BTA时,CPU将总线交给panel,panel driver IC会返回用户所需要的数据。

e) 另外一点,花屏表示系统已经初始化完成,而显示数据发送失败了,当然发送失败可能是CPU没发送,或者是PANEL没接收成功,都有可能。

通过以上d)原理得知,花屏手机表示data0连接正常了.那么又如何确定clock或者data1连接不成功,而不是其他原因导致的花屏呢。

思路如下:

  1. 发送command数据也用HS mode来发送,这里我们以发送读取panel driver IC的vendor ID号为command, 所以在HS mode下,command会以clock作同步,在data0和data1上同时发送。
  2. 触发BTA事件,这样,如果发送command失败,panel 会返回error report供我们读取。
  3. 读取vendor ID, 看是否和文档上规定的值一样。如果不一样,那么就证明发送command失败了。当然,根据b)原理,排除了读取失败的可能。
  4. 现在已经确定clock或 data1 pin有问题了。那么如何再进一步确认呢? Step 2不是发送了个BTA吗,如果发送数据失败,会返回error report。对于clock和data连接不同,返回的error report也不一样。接着再读取Qualcomm自带的MIPI寄存器就可知是哪个pin出问题了!

继续阅读