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

描述

 本合集分享的是,我当初学习Linux驱动的来时路——《《驱动之路》开篇:自序&前言》。

正文

在嵌入式开发中,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 调试你又有哪些独到的见解或经验?欢迎留言交流。

(完)

本人专注 Linux 驱动 & Linux/Android BSP 开发调试,可接外包项目/技术支持/问题定位。有需求可加微信:【Chen_WeChat2026】。


审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分