嵌入式分享#38:踩坑实录!我在 RK3576 HDMI 搭错线

嵌入式分享#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 通常不专用
SOC HDMI 集成,I2C 通常指定专用,以简化驱动并保证信号完整性
结论 是否专用还得看原厂设计指导手册

(完)

相关推荐
Zwawa7 小时前
编译器工具链:GCC、Clang、MSVC、ICC、armclang
c语言·嵌入式·编译器
用户8351414049498 小时前
Makefile从零写起:每条规则在干什么
嵌入式
pipixia200339 小时前
C++继承面试四连问:内存叠加、私有继承、sizeof、权限重映射
c++·面试·嵌入式·继承·面向对象·对象模型
shimly12345617 小时前
(undone) 野火嵌入式 (1) 打开例程工程
嵌入式
Zwawa1 天前
一只按键不只“按下”:短按、长按和连按如何共存
c语言·单片机·嵌入式
Zevalin爱灰灰2 天前
Linux入门第一部分(Ubuntu入门篇) 第三章 shell脚本入门(一)
linux·ubuntu·嵌入式
2035去旅行2 天前
U-Boot DM(Driver Model)驱动框架
嵌入式·arm·soc
硅基造物主2 天前
STM32 从 0 到 1 做智能家居(一):先想清楚要做什么
stm32·mqtt·嵌入式·智能家居·hal库·esp-12f
凉、介2 天前
深入理解 ARMv7-M | 异常/中断处理
笔记·学习·嵌入式·arm
凉、介2 天前
深入理解 ARMv7-M|处理器模式与寄存器
笔记·学习·嵌入式·arm