驱动之路#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】。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !