您尚未登录。

楼主 # 昨天 21:14:58

秦始皇
会员
注册时间: 昨天
已发帖子: 6
积分: 6

全志平台 HDMI 调试问题小结:从 DTS、时钟到 EDID/HPD

最近翻了一下全志平台里和 HDMI 相关的问题,感觉这类问题表面看是“屏不亮/无信号”,实际经常不是 HDMI 这一层单独坏了,而是显示链路里某一环没接上。这里整理一下排查思路,方便后面遇到类似问题少走弯路。

1. 先确认显示链路有没有走到 HDMI

全志平台一般不是只开一个 hdmi 节点就完事,前面还有 DE/TCON/disp 这一串。屏不亮时,先别急着改 HDMI 参数,建议先看启动日志里有没有这些信息:

  • disp/DE 是否初始化成功

  • TCON 是否绑定到 HDMI 输出

  • HDMI PHY 是否 enable

  • 最终输出模式是 720p/1080p 还是默认 fallback

如果 DE/TCON 没起来,HDMI 后面再怎么调也不会有图。

2. DTS 里几个容易漏的点

常见要核对:

  • hdmi / hdmi-phy 节点 status 是否 okay

  • tconmixer/dedisplay-engine 相关节点是否打开

  • clock/reset 是否完整

  • pinctrl 里 HPD/DDC 相关引脚有没有配对

  • 电源域/regulator 是否被裁掉

有些板子原理图上 HDMI 5V、HPD、DDC 是经过电平转换或开关管的,DTS 里如果少了 GPIO/regulator,现象就会很像“线插了但系统不知道”。

3. HPD 和 EDID 分开看

HDMI 调试建议把 HPD 和 EDID 拆开看:

  • HPD 不对:系统可能认为没插显示器;

  • HPD 对了但 EDID 读不到:一般是 DDC/I2C、上拉、电平转换、线材、显示器兼容性问题;

  • EDID 能读到但无图:再看 mode、pixel clock、PHY、TCON/DE 数据流。

有条件的话,用示波器/逻辑分析仪看一下 DDC 的 SCL/SDA,有时候比盯半天 dmesg 快。

4. 分辨率先用保守模式

一上来别直接 1080p60 拉满。建议先固定一个保守模式,例如 720p60 或 1024x768,确认链路通了再往上调。

如果某些显示器能亮、某些不亮,优先怀疑 EDID 解析/模式选择/PHY 参数边界,而不是单纯“HDMI 驱动坏”。

5. U-Boot 和 Linux 要分开排

有的项目要求开机 logo,U-Boot 阶段就要点 HDMI;有的只要求进 Linux 后显示。两边配置不一定共用:

  • U-Boot 能亮,Linux 不亮:查内核 DTS/DRM/disp 配置;

  • U-Boot 不亮,Linux 能亮:查 U-Boot 显示驱动和板级配置;

  • 两边都不亮:先回到供电、HPD、DDC、clock/reset 这些基础项。

6. 一个比较实用的排查顺序

我一般会这样排:

  1. 确认 HDMI 5V 输出、HPD 电平;

  2. 看内核 log,确认 HDMI/PHY/DE/TCON 是否 probe 成功;

  3. 读 EDID,看 DDC 是否通;

  4. 固定 720p60 输出;

  5. 再调分辨率、音频、热插拔;

  6. 最后才考虑改 PHY/timing 细节。

简单说,HDMI “无信号”不要只盯一个 hdmi 节点。全志平台显示链路比较长,DTS、clock/reset、HPD、DDC、EDID、TCON/DE 任一环断了,最后表现都可能是黑屏。先把链路拆开验证,定位会快很多。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


东莞哇酷科技有限公司开发