本合集分享的是,我当初学习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】。
审核编辑 黄宇
-
lcd
+关注
关注
36文章
4630浏览量
177920 -
驱动
+关注
关注
12文章
1989浏览量
88684
发布评论请先 登录
驱动之路#04:LCD 驱动程序分析(基于RK3576)
驱动之路#03:LCD 时序参数分析
MAXIM Triplexed LCD Decoder/Drivers:高性能LCD驱动的全面解析
RK3576+Android15+Linux6.1调试EM05 4G模块全记录:从底层到上层的踩坑与破局
深入剖析STCS05A:0.5A最大恒流LED驱动芯片
STCS05:低电压LED驱动的理想选择
汽车应用利器:STAP16DPS05 LED驱动芯片深度解析
STP04CM05:高性能4位恒流功率LED灌电流驱动器的深度剖析
EVAL-M1-05F804R评估板:电机驱动设计的得力助手
EVAL-M1-05F310R评估板:助力电机驱动设计的利器
使用Nano112驱动LCD时,如果不用于驱动LCD的引脚也配置为LCD功能会发生什么情况?
液晶显示(LCD)制造行业:未来之路是星辰大海还是荆棘密布?
硬件调试:JLink 驱动配置与调试技巧
驱动之路#05:如何调试LCD?
评论