RK3588使用RK628D 之 HDMI转成双路LVDS信号接LVDS屏幕

这篇具有很好参考价值的文章主要介绍了RK3588使用RK628D 之 HDMI转成双路LVDS信号接LVDS屏幕。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章来源地址https://www.toymoban.com/news/detail-481634.html

1. 简介

  • 本文是基于RK3588平台,SDK版本:RK3588_ANDROID12.0 RK628D调试总结。

  • 视频桥接芯片:RK628D

  • 驱动代码:“kernel-5.10\drivers\misc\rk628”(驱动用的是rk628-for-all-v21版本)

  • 本次调试的方案功能:从SOC出来的HDMITX通过RK628D转成双路LVDS信号接LVDS屏幕。

2. 视频桥接芯片RK628D调试

2.1 RK628驱动介绍

RK628 分为 Display 通路和 HDMI IN 通路,SDK 版本 Display 通路基于DRM框架,HDMI IN 通路基于

V4L2框架。

RK628-For-All 版本驱动一样也分为Display 通路和 HDMI IN 通路,Display 通路的驱动于drivers/misc/rk628/

下,HDMI IN 通路的驱动于drivers/media/i2c/rk628/下。本文采用RK628-For-All 版本Display 通路:MISC

2.2 调试总览,调试步骤分析

  • 步骤 ① 移植RK628D_For_All_V21的驱动代码

  • 步骤 ② dts配置

  • 步骤 ③ 编译,烧写。

2.3 调试过程

  • 步骤 ① :移植RK628D_For_All_V21的驱动代码

1.联系RK业务拿到最新的RK628-for-all版本代码

本文是基于RK628-for-all-v21版本。要移植RK628D_For_All的驱动代码。

采取手动打补丁的方式移植:因为自动打补丁会因为SDK版本差异,代码不一致导致报错。

2.rockchip_defconfig,Kconfig,Makefile配置

rockchip_defconfig配置:关闭SDK系统自带的rk628d配置,开启rk628-for-all版本的配置:

CONFIG_DRM=y(系统默认是打开)

CONFIG_RK628_MISC=y

CONFIG_ROCKCHIP_THUNDER_BOOT_RK628=y

(下面两项在"kernel-5.10\drivers\misc\rk628\Kconfig"已经默认设置为y了,可以不用在rockchip_defconfig中再配置)

MISC配置如下

将rk628驱动添加进编译规则。

Kconfig配置 :添加 source “drivers/misc/rk628/Kconfig”

Kconfig路径 :“kernel-5.10\drivers\misc\Kconfig”

Makefile配置 :添加 obj-y += rk628/

Makefile路径 :“kernel-5.10\drivers\misc\Kconfig”

rk628-for-all版本驱动配置如下:

Kconfig配置 :添加 config RK628_MISC 和 config ROCKCHIP_THUNDER_BOOT_RK628说明

Kconfig路径 :“kernel-5.10\drivers\misc\rk628\Kconfig”

Makefile配置 :添加RK628_MISC驱动和obj-$(CONFIG_DRM) += rk628_hdmitx.o

Makefile路径 :“kernel-5.10\drivers\misc\rk628\Makefile”

3.驱动手动打补丁:

① 将rk628文件夹复制到"kernel-5.10\drivers\misc\rk628"

② kernel-5.10\drivers\gpu hdmi强制输出固定分辨率 绕过读edid流程

kernel-5.10\drivers\i2c     提前i2c设备的注册 以加快rk628的初始化  

kernel-5.10\drivers\base  增加宏主要是为了实现regmap文件结点可以写628寄存器

kernel-5.10\drivers\pwm  提前pwm设备的注册 以加快rk628的初始化

kernel-5.10\drivers\video 提前backlight设备的注册 以加快rk628的初始化

注意: drivers\gpu\drm\bridge\synopsys\dw-hdmi-qp.c 此c文件的第一组分辨率改成你要固定的分辨率 1920*1080

  • 步骤 ② dts配置
  1. rk628-for-all的dts配置

&i2c6 {

    //clock-frequency = <400>;

    pinctrl-names = "default";

    pinctrl-0 = <&i2c6m0_xfer>;

    status = "okay";

    rk628: rk628@50 {

        compatible = "rockchip,rk628";

        reg = <0x50>;

        interrupt-parent = <&gpio4>;

        interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;

        //pinctrl-names = "default";

        //pinctrl-0 = <&rk628power>;

        enable-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;

        reset-gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_LOW>;

        //panel-enable-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;

        panel-backlight = <&backlight_lvds>;

        status = "okay";

        rk628,hdmi-in;

        rk628-lvds{

            /* "jeida_18","vesa_24","vesa_18" */

            bus-format = "vesa_24";

            //bus-format = "jeida_18";

            /* "dual_link_odd_even_pixels"

             * "dual_link_even_odd_pixels"

             * "dual_link_left_right_pixels"

             * "dual_link_right_left_pixels"

            */

            link-type = "dual_link_even_odd_pixels";

            //link-type = "dual_link_odd_even_pixels";

            status = "okay";

        };

        display-timings {

            src-timing {

                clock-frequency = <148500000>;

                hactive = <1920>;

                vactive = <1080>;

                hback-porch = <148>;

                hfront-porch = <88>;

                vback-porch = <6>;

                vfront-porch = <4>;

                hsync-len = <44>;

                vsync-len = <5>;

                hsync-active = <0>;

                vsync-active = <0>;

                de-active = <0>;

                pixelclk-active = <0>;

            };

            dst-timing {

                clock-frequency = <148500000>;

                hactive = <1920>;

                vactive = <1080>;

                hback-porch = <148>;

                hfront-porch = <88>;

                vback-porch = <6>;

                vfront-porch = <4>;

                hsync-len = <44>;

                vsync-len = <5>;

                hsync-active = <0>;

                vsync-active = <0>;

                de-active = <0>;

                pixelclk-active = <0>;

            };

        };

    };

};

  1. hdmi的dts配置:

&hdmi0 {

    status = "okay";

};

&hdmi0_in_vp0{

status = "okay";

};

&hdptxphy_hdmi0 {

    status = "okay";

 };

&dsi0{

status = "disabled";

};

&dsi1 {

    status = "disabled";

};

2.4 调试命令,方法

命令:


1. cat sys/kernel/debug/dri/0/summary

2. dmesg | grep rk628

3. cat /sys/kernel/debug/gpio 查看gpio占用状态

4. dmesg | grep src 查看src(cpu输出的hdmi信号)状态

5. dmesg | grep “rxphy power”  查看rxphy power是否上电

6. dmesg | grep vop查看显示信息或者dmesg | grep drm

7. dmesg | grep stable查看628clock是否起来。

8. cat sys/kernel/debug/rk628/summary

3. 调试成功

​​
RK3588使用RK628D 之 HDMI转成双路LVDS信号接LVDS屏幕

ArmSoM 产品介绍: http://wiki.armsom.org/index.php/ArmSoM-w3

ArmSoM 技术论坛: http://forum.armsom.org/

到了这里,关于RK3588使用RK628D 之 HDMI转成双路LVDS信号接LVDS屏幕的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • yolov5训练自己的pt文件,转onnx,再转成rknn,到RK3588开发板运行测试

    yolov5训练好自己的模型,例如训练完后,名称为best.pt,路径为runs/exp/weights/best.pt。 采用detect.py文件验证best.pt可以正常检测目标,再进行下一步工作。 修改utils/yolo.py文件的后处理部分,将class Detect(nn.Module) 类的子函数forward由 修改为: 注意:训练和检测的时候,yolo.py文件应

    2024年02月01日
    浏览(46)
  • RK3588使用openCL

    一、opecnCL简介         OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核

    2024年02月07日
    浏览(55)
  • rk3588使用gstreamer推流

    在https://launchpad.net/上搜索软件名+ppa 找到需要的包后下面命令安装 如果不需要了下面命令删除 查看支持的编码器 不支持rkmpp的硬编码 下面安装插件gstreamer1.0-rockchip 这时已经支持硬件编码了 播放本地视频mp4 查找设备 播放视频画面 rk3588 硬件编码mpph264enc,使用gstreamer udp 传输

    2024年02月16日
    浏览(51)
  • rk3588 ffmpeg使用硬件解码

    在https://johnvansickle.com/ffmpeg/下载最新的版本然后解压 将ffmpeg移动到/usr/local/bin文件夹 命令行输入ffmpeg没有报错就安装好了 git下载mpp包 编译安装 解压 –prefix 指定安装目录 –host 当前编译工具链的前缀 ll /usr/bin/gcc*查看 编译指令 –enable-gpl 允许使用GPL代码,生成的库和二进制

    2024年02月04日
    浏览(31)
  • RK3588平台开发系列讲解(工具篇)ADB的使用

    平台 内核版本 安卓版本 RK3588 Linux 5.10 Android 12 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍ADB的使用。 ADB(Android Debug Bridge)是一种用于在计算机和Android设备之间进行通信和调试的工具。它允许开发者通过命令行界面与Android设备进行交互,并执行各种

    2024年02月07日
    浏览(40)
  • 在RK3588上使用Gstreamer做推拉流并推理记录

    角色 版本 rknn-toolkit2 1.2.0 python 3.7.3 视频流拉取: 视频流推流或显示: 推理结构: 2.1 Gstreamer安装 测试,在终端输入以下正常运行则安装成功 2.2 opencv安装 不能使用python3-opencv,通过pip安装的opencv无法支持gstreamer,必须使用源码编译安装 确保opencv开启对gstreamer与python支持的

    2024年02月11日
    浏览(33)
  • 玩转rk3588(六):rk3588使用ffmpeg实现硬件解码,解决opencv中VideoCapture获取网络摄像头视频时,一直在open时返回false的问题(一)

    目录 0、前言 1、开发环境 2、安装rkmpp 3、安装x264 4、安装libdrm 5、安装ffmpeg 6、相关报错 1)libdrm编译过程中报错

    2024年02月03日
    浏览(38)
  • rk3588使用npu进行模型转换和推理,加速AI应用落地

    本文完成于2022-07-02 20:21:55 。博主在瑞芯微RK3588的开发板上跑了deepsort跟踪算法,从IP相机中的server拉取rtsp视频流,但是fps只有1.2,和放PPT一样卡顿,无法投入实际应用。本来想使用tensorrt进行加速推理,但是前提需要cuda,rk的板子上都是Arm的手机gpu,没有Nvidia的cuda,所以这条

    2023年04月12日
    浏览(34)
  • rk3588 编译(使用github公版源码)和烧录(sd、emmc)

    使用 github 上的代码进行编译 https://github.com/rockchip-linux/rkbin/tree/master https://github.com/rockchip-linux/u-boot/tree/next-dev https://github.com/rockchip-linux/kernel/tree/develop-5.10 下载他们的压缩包,自行解压,解压后把文件夹名里的分支名去掉 mkimage 需要使用 rockchip 提供的 uboot 里的 sd 的启动优先

    2024年02月11日
    浏览(35)
  • rk3568点亮LCD(lvds)

    LVDS(Low Voltage Differential Signal)即低电压差分信号。1994年由美国国家半导体(NS)公司为克服以TTL电平方式传输宽带高码率数据时功耗大、电磁干扰大等缺点而研制的一种数字视频信号传输方式。它是一种电平标准,广泛应用于液晶屏接口。 其中发送端是一个3.5mA的电流源,

    2024年02月06日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包