记一次lcd休眠异常导致的底电流大

本文详细记录了一次主板休眠电流优化的过程,通过排查LCD和触摸屏驱动问题,逐步定位到Mipi信号线和IC休眠流程异常,最终通过调整代码和硬件配置解决了高休眠电流的问题。

主板外设调试ok,测主板休眠电流,26mA。这里首先拔掉lcd,休眠底电流正常。根据以往套路,有几种可能,外设没进入休眠,电源控制异常,引脚状态不对。一般也容易排除问题。

由于lcd和tp一体ic,需要同时看这两个驱动。

先看tp驱动,由于是移植高通平台的代码,发现没进入休眠,修改代码,随fb进行休眠。再次测量电流,18mA。再次查看原理图,发现en使能引脚在休眠没有拉低,修改代码后发现tp休眠异常了。跟fae沟通后,原来需要在tp休眠后,才能拉低使能脚,同时不能拉lcd的复位脚。该ic的整体休眠过程

1.lcd发0x28,0x10

2.tp 0xA5写0x03

3 en引脚拉低

按该流程修改代码后,整机电流4mA。还是漏电,得继续排除。

图上还有个id脚(没用到),该引脚的配置没问题。

en脚芯片内部有上拉,怀疑这里有问题,量到该引脚确实拉低,去掉该上拉电阻,也是一样的情况。最终也要求屏厂去掉该上拉电阻,虽然消耗电流小,但该上拉电阻没必要。

接下来就排除mipi信号的影响了(这个也不好确定问题,一般也不怀疑这个的影响),由于第一次主板数量少,主板在调试过程经常会焊接,导致正常的主板就不多。跟屏厂沟通后,寄主板给他们分析。

这是他们测量出来的数据

差异也就在mipi信号线上,屏厂在lcd休眠后,让mipi的时钟保持1.2V,底电流正常。我这边让cpu休眠时,不让mipi进入休眠,休眠电流也正常,也就是问题mipi时钟的电压上。屏厂的解释是该ic有误进hs mode行为,导致mipi模块从电源抽取电流导致待机功耗偏大。于是提议发送0x28,0x10后,忽略mipi信号的变化,这样应该就不会进入hs mode模式。最新的解决方案是发送0x28,0x10后,继续发送其他两个命令。

将这款屏移植到另一种平台时,屏耗电的情况又出现了,检查下移植都到位了,没发现问题。最终解决开机闪屏时,发现屏的复位脚被一个芯片占用了,屏蔽该无用的器件,闪屏情况消失了,屏的底电流也正常了。

<think> 嗯,用户现在的问题是查找展锐平台屏幕休眠后无法点亮的可能原因。我需要结合站内引用资料来分析这个问题。首先,用户提供了四个引用,其中引用[1]是关于展锐平台MIPI屏幕调试的文档,引用[2]提到休眠唤醒导致的烧屏问题和解决方案,引用[3]涉及Android触摸面板双击灭屏和亮灭屏流程,引用[4]则是关于LCD亮灭屏流程和时钟计算。 首先,可能的原因有哪些呢?根据引用[2],在休眠情况下频繁唤醒和睡眠操作可能导致IC芯片状态异常,甚至击穿VCOM。这可能会造成屏幕无法点亮,因为IC损坏了。解决方案中提到只在特定模式下允许调用TP的resume/suspend,或者修改固件。因此,IC状态异常或损坏是一个可能原因。 其次,引用[3]讨论了Android输入触摸面板的双击灭屏和亮屏流程。在suspend和resume过程中,涉及中断唤醒使能、状态标志位管理,以及按键上报流程。如果这里的流程有误,比如中断唤醒未正确配置,或者状态标志位混乱,可能导致休眠后无法点亮屏幕。此外,引用[3]中的代码片段显示在resume时需要通过input子系统上报POWER键来模拟亮屏,如果这一步缺失或错误,也会导致无法点亮。 第三,引用[4]详细描述了LCD的时钟计算,包括DSI时钟的各个参数。如果时序参数不正确,比如在休眠唤醒后时钟未正确恢复,或者参数配置错误,可能导致信号无法正常传输,屏幕无法点亮。特别是涉及H-total、V-total以及各Porch和Sync脉冲的计算错误,会影响整个数据传输的同步。 另外,引用[1]提到的环境准备、驱动安装、连接问题等基础步骤也需要检查。比如硬件连接是否稳固,驱动程序是否正确安装,这些基础问题也可能导致休眠后无法点亮。此外,电源管理配置错误,比如休眠状态下供电异常,无法在唤醒时恢复供电,也是一个常见原因。 综合所有引用,可能的原因可以归纳为:电源管理配置错误(如VDD/VSP/VSN未恢复)、时序参数错误(DSI时钟配置问题)、固件或驱动逻辑缺陷(如suspend/resume流程错误)、IC状态异常(频繁切换导致击穿)、硬件连接问题(如FPC松动)。同时,引用[2]和[3]都提到频繁切换状态可能导致IC异常,所以需要检查是否有频繁的休眠唤醒操作触发问题。 用户可能需要按照步骤排查:首先检查硬件连接,然后验证电源管理配置,接着检查时序参数和固件版本,最后分析驱动中的状态管理逻辑。此外,引用[1]中的调试工具和案例研究可能提供实际问题的解决方案,建议用户参考相关文档和FAQ。 </think> 根据引用资料分析,展锐平台屏幕休眠后无法点亮的可能原因及排查方向如下: ### 一、核心原因分析 1. **电源管理异常** - VCOM电压击穿(引用[2]):频繁休眠/唤醒导致IC芯片状态异常,造成VCOM电路击穿。 - 屏供电异常休眠时屏电源(VDD/VSP/VSN)未正常关闭或唤醒时未恢复供电。 - PMIC时序错误:电源管理芯片的上电/下电时序与屏幕规格不匹配。 2. **信号时序失准** - DSI时钟配置错误(引用[4]):唤醒后未正确恢复DSI时钟参数(H-total/V-total等)。 - 眼图偏移:休眠唤醒后MIPI信号眼图未校准,导致信号完整性不足(引用[1]技术要点)。 - 同步脉冲丢失:Horizontal/Vertical Sync信号在唤醒后未重新同步。 3. **驱动逻辑缺陷** - 中断唤醒失效:休眠后IRQ未正确配置 `enable_irq_wake()`(引用[3])。 - 状态机混乱:`suspend/resume`流程中标志位未重置,导致驱动卡在休眠状态。 - 上报机制缺失:未正确发送亮屏指令 `input_report_key(KEY_POWER)`(引用[3])。 4. **硬件物理问题** - FPC连接松动:频繁热插拔导致屏幕排线接触不良。 - 背光电路故障:背光驱动芯片或LED灯条损坏。 ### 二、关键排查步骤 1. **电源检测** ```bash # 唤醒时测量屏幕供电引脚 VDD:预期1.8V/3.3V | VSP:5.6V | VSN:-5.6V ``` - 若电压缺失,检查PMIC输出使能信号 2. **DSI信号分析** - 使用MIPI协议分析仪捕获唤醒过程: - 检查 `LP11->HS0` 模式切换是否完成 - 验证 `DSI_CMD_SET_ON` 命令是否发送 3. **驱动日志分析** ```c // 内核关键日志标 printk("LCD: Resume start"); dsi_panel_power_on(); // 供电函数 mdss_dsi_on(); // DSI启动函数 ``` - 检查 `resume` 函数是否完整执行(引用[3]流程) 4. **IC固件验证** - 升级TP固件(引用[2]解决方案2) - 检查IC休眠电流异常时>10μA提示漏电 ### 三、解决方案优先级 1. **紧急处理** - 添加唤醒延时:避免电源震荡 ```c msleep(20); // 在resume后增加20ms延迟 ``` 2. **驱动修正** - 强制重初始化:在 `resume()` 中调用 `panel_init()` 函数 - 修复状态机:确保 `panel->power_state` 正确更新 3. **硬件改进** ```diff - 频繁唤醒操作 + 增加唤醒冷却时间(如500ms内仅允许1次唤醒) ``` > **根本预防**:参考引用[1]的 **时序校准指南** 重新调整以下参数: > ```math > \text{DSI\_CLK} = \frac{(H_{active} + H_{porch}) \times (V_{active} + V_{porch}) \times \text{fps} \times \text{bpp}}{ \text{lanes} \times 2} > $$ > 重点验证 $V_{front\_porch}$(垂直前肩)唤醒值是否≥规格书最小值。 ### 四、扩展风险预警 - **烧屏风险**:频繁唤醒可能加速OLED老化(引用[2]案例) - **功耗劣化**:错误时序导致电流增加,待机功耗上升30%+ - **兼容性问题**:第三方屏幕需重签 `ESD/Timing` 协议(引用[1]注意事项)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值