admin管理员组

文章数量:1637217

一.引言

最近算是和显示屏问题杠上了,一个量产的产品,又出现了显示屏黑屏问题。从已入库的产品中领出一台,发现偶发黑屏,发生概率还挺高,平均开机10次左右,会出现一次异常。

最终定位到是eMMC读取异常,排查过程记录下来,以供大家参考。

二.排查记录

1. 显示连接线排查

遇到偶发黑屏问题,第一反应可能是线束连接不良造成的。本设备中显示接口为MIPI,采用FPC线的方式。如果线束连接不良,会导致MIPI线阻抗匹配不好,引发MIPI信号识别异常,进而引起显示屏黑屏,各种原理见《TFT显示屏偶发无法点亮》或者《PCBA飞线要注意细节》一文。

检查连接线,发现并无异常。排除连接线的原因

2. 核心板对比测试

显示线没问题,接下来排查核心板。

直接找两台设备对比,一台偶发黑屏,一台正常;将两者的核心板对调,黑屏的问题随着核心板走。可以明确问题出现在核心板上。

3. 打印信息

将黑屏设备接上调试串口打印信息,结果不再复现黑屏问题,累计开机测试200次都正常。难道是调试串口干扰造成的。由于设计上的忽略,调试串口只是单纯的引出来,没有接上拉电阻,抗干扰能力确实很弱,在不接串口调试助手的时候,调试串口处于悬空状态,会有脏数据,引起系统启动问题,具体详情见《UART的抗干扰设计》一文。

在反复对比测试的时候,还发现当DC输入电源线远离调试串口的时候,触发黑屏的概率会大幅下降,从平均测试10次复现增加到平均测试40次复现。

似乎好像都解释的通了,由于DC输入电源线是散装的,电源线和地线有一定的环路面积,向外辐射较大,UART接口越接近电源线,受干扰的程度就越大,因此当电源线远离UART接口,黑屏的复现概率就大大降低。

UART干扰是怎么影响核心板启动的?

内核启动之前3S,串口有数据输入会进入UBOOT调试模式,这点我是知道的,软件对此也做了处理,直接不再响应。UBOOT和内核启动还有什么地方会与UART相关?

由于核心板是直接外购的,本人对内核启动这块也不太了解,核心板对我而言,就像是一个黑匣子。想再进一步定位,就很茫然了。

4. eMMC排查测试

果断向核心板的供应商求教。对方提了一个思路:将系统的启动方式改为TF卡启动。当改为TF卡启动后,连续测试120次也未出现。而直接从eMMC启动,平均10次就复现黑屏问题。概率对比很明显。可以明确与eMMC相关。

由于出现黑屏的时候,连上串口助手也没有打印信息,无法通过串口打印系统定位问题。

从现象上来看,猜测黑屏的时候,系统一直就没启动。于是将适配器换成带输出电流显示的稳压电源,发现正常启动的时候,电流为480mA左右,而出现黑屏的时候,电流先增加到370mA,大致过几秒后,电流下降到220mA,并一直维持。

推测是eMMC读取失败,系统无法启动。PMIC在系统启动失败一段时间后,关闭ARM的外设供电电压,因此会有一个电流下降的过程。

三.结论和遗留问题

可以明确是eMMC读取失败造成系统无法启动成功,因此显示屏外设未启动,自然也就一直黑屏。但是具体是什么原因造成eMMC读取失败,还有待核心板供应商帮忙分析。

另外有一点不解的是:UART上的干扰与系统启动失败有什么关联?

四.参考资料

1. UART的抗干扰设计

2. TFT显示屏偶发无法点亮

3. PCBA飞线要注意细节

4. TFT显示屏偶发黑屏排查记录

本文标签: 显示屏黑屏TFT