
嵌入式分享#38踩坑实录我在 RK3576 HDMI 搭错线嵌入式分享#38踩坑实录我在 RK3576 HDMI 搭错线# 嵌入式分享#38踩坑实录我在 RK3576 HDMI 搭错线2020 年 8 月 30 日一个三岁台湾女童不小心被风筝缠住身体。一阵大风吹来就飞上了天至少五层楼高。所幸风筝下落被众人抓住女童没有大碍。最近在调试 RK3576 HDMI。了解这块的老铁都知道HDMI 基本不需要调试。因为 HDMI 是集成在 SOC所以直接使用原厂的默认配置就能点亮。有问题就是硬件设计问题。这会还真让我遇到了使用 HDMI 后系统启动立马挂掉。经排查硬件发现HDMI 的硬件设计上使用了普通的 I2C而不是 HDMI 专用的 I2C 接口。殊不知HDMI 的 I2C 是专用的分别为 HDMI_TX_SCL 与 HDMI_TX_SCA。虽然改版后 HDMI 显示功能正常但是存在疑问为什么硬件设计会踩这样的坑了解后发现硬件同事之前是搞 MCU 裸机的。MCU 通常不直接集成 HDMI 接口如需使用 HDMI 显示功能一般是通过外挂 HDMI 芯片实现的顾然 I2C 就没有专用一说。而 SOC 的 HDMI 接口通常是集成的。基于简化软件驱动以及硬件信号完整性的考虑I2C 通常是指定专用的。毕竟 SOC 的 IO 资源不差那两根线。当然这也不能一概而论I2C 是否需要为专用具体还得看原厂相关的设计指导手册。在这里分享以及记录一下希望可以帮助读到这篇文章的老铁避坑。附DTS 片段/{ hdmi_sound: hdmi-sound { compatible rockchip,hdmi; rockchip,mclk-fs 128; rockchip,card-name rockchip-hdmi; rockchip,cpu sai6; rockchip,codec hdmi; rockchip,jack-det; } }; hdmi { status okay; // enable-gpios gpio3 RK_PA2 GPIO_ACTIVE_HIGH; rockchip,sda-falling-delay-ns 360; }; hdmi_in_vp0 { status okay; }; hdptxphy_hdmi { status okay; }; sai6 { status okay; }; route_hdmi { status okay; connect vp0_out_hdmi; };避坑要点项内容现象使用 HDMI 后系统启动立马挂掉原因用了普通 I2C而不是 HDMI 专用 I2C专用信号HDMI_TX_SCL / HDMI_TX_SCA为什么容易踩MCU 裸机时代外挂 HDMI 芯片I2C 通常不专用SOCHDMI 集成I2C 通常指定专用以简化驱动并保证信号完整性结论是否专用还得看原厂设计指导手册完