驱动之路#05:如何调试 LCD?

在嵌入式开发中,LCD 调试是绕不开的外设,因为大多数嵌入式产品都需要通过 LCD 与用户进行交互。通过前面 LCD 系列文章,我们已经很清楚 LCD 的工作原理以及流程。今天分享我个人的 LCD 调试思路,仅供参考。

调试流程

当我们拿到一块 LCD 屏幕,首先确认硬件的电压以及线序。硬件确认没问题后,接上屏幕查看背光是否点亮。背光不亮,需要先解决背光问题再往下。然后根据 LCD 参数配置 dts 屏参、复位/使能脚以及时钟等,并确认使用的具体屏驱动以及其加载情况。最后就是根据 log 以及现象解决问题。

说明:全志平台的显示分为 uboot 和内核阶段(这话具有时效性),需要同时修改这两个阶段的 dts。而 RK 平台显示共用一份屏参(参考本系列《RK 调屏,为何无需修改 uboot dts?》),因此调试时只需关注内核阶段即可。

排查思路

排查时一定要遵循"先硬件后软件,先基础后细节"的原则。千万不要跳过简单步骤,不然你很有可能折腾半天软件,却发现硬件是虚焊。硬件是基础,这一步没搞定,后续软件调试都是白费(切记!)。因此我的排查建议是,出现问题第一时间先怀疑硬件(胜率高达 80%),确保硬件没问题再排查软件。

对了,还有一点就是要善用交叉验证,尽量避免拿着一个坏了的 LCD 屏在那折腾半天。

最后说句废话:具体问题具体分析。不过实际情况确实如此,这里无法列出所有情况,只能提供一些常见问题的排查思路。

背光不亮

  1. 使用万能表,对应原理图确认硬件各路电压;

  2. 使用示波器,确认 PWM 背光脚是否有波形输出,并确认用户层是否存在并可控的背光节点;

  3. 如以上两步都没有问题,换一个屏幕。

背光亮,但黑屏、花屏或乱码

  1. 如果是 MIPI 接口,跟屏厂确认屏参以及 init code,没问题就往下;

  2. 确认配置的时钟频率、像素格式是否正确;

  3. 示波器抓一下时钟波形,确认是否有输出;如有,那换个屏测试。如没有,继续往下排查。

  4. 确认显示链路、图层是否正确,这个一般可以通过 log 查看。不同平台显示链路和图层会有所差异,具体排查手段参考原厂资料(全志平台要特别留意 uboot )。

  5. 使用示波器抓数据脚波形,确认是否有数据在发送;如有,换屏。

关于 LCD 调试你又有哪些独到的见解或经验?欢迎留言交流。

(完)

相关推荐
嵌入式分享3 小时前
嵌入式分享#22:嵌入式外设调试思路——MIPI CSI 调试篇
嵌入式
beluge1 天前
SPI通信
嵌入式
beluge1 天前
I2C通信
嵌入式
qq_456168282 天前
通信协议学习笔记汇总
嵌入式·开源协议
番茄灭世神2 天前
PN学堂GD32教程第12篇——SPI与Nor Flash
c语言·stm32·单片机·嵌入式·gd32·总线协议
潘潘的嵌入式日记3 天前
大彩串口屏型号怎么看?DC80480M070 命名拆解与选型
嵌入式·硬件·串口屏·选型·大彩·型号命名
蓝天居士3 天前
PY32F系列MCU在OTA时App区概率性跑不起来的根因分析(5)
mcu·嵌入式
Zwawa3 天前
传感器模块都在交出什么:从模拟电压到数字协议
c语言·单片机·嵌入式
会周易的程序员3 天前
STVM OSAL 层架构设计文档
c++·物联网·嵌入式·虚拟机·iot·软plc·iec61131