rk3568 点亮LCD (BT656 BT1120)

news2025/3/13 3:56:00

rk3568 适配 BT656/BT1120

BT.656 TX 和 BT.1120 TX,是一种并行输出接口,而 Camera 对应的是 BT.656 RX和 BT.1120 RX,是一种并行输入接口,两则在协议上是一致的。与同为并口的RGB非常像,在rk3568 芯片上RGB和BT656/BT1120恰好存在GPIO复用关系。BT.656 和 BT.1120 是嵌入式同步信号的并行输出接口,RGB 是有独立同步信号[HSYNC/VSYNC/DEN] 的并行输出接口。为了弥补没有同步信号,BT.656 消隐期数据为 0x80 0x10 0x80 0x10,BT.1120 消隐期数为0x80 0x10 0x80 0x10,使用Y 通道和 UV 通道发送相同数据消隐。早期机顶盒或者电视盒子cvbs和YUV传输音视频信号,BT.656可转换为cvbs,BT.1120 可转为YUV和后期的HDMI。
rk3568-RGB.BT656.BT1120


提示:rk3568 BT656经常用作转cvbs,BT.1220用作转HDMI。

文章目录

  • rk3568 适配 BT656/BT1120
  • 圈重点 看想学
  • 1. BT656/BT1120
  • 2. 核查硬件,适配BT656
    • 2.1 BT656转cvbs
  • 3. 核查硬件,适配BT1120
    • 3.1 BT1120转HDMI
  • Tips
  • 总结


圈重点 看想学

a) rk3568适配BT656
b) rk3568适配BT1120


1. BT656/BT1120

BT.656 和 BT.1120 分别定义了 SDTV 和 HDTV 的接口协议,通过在消隐期传输 EAV、SAV 的定位基准码作为嵌入式同步信号,传输的数据格式为 YCbCr 4 : 2 : 2。BT.656 和 BT.1120 在一些文档和手册上也会被称为视频信号或者 YUV 信号,目前 RK 平台输出的 BT.656/BT.1120 图像数据和定位基准码的位深均为 8bit。

  • P 制扫描时序图
    在这里插入图片描述- I 制扫描时序图
    在这里插入图片描述
  • 定位基准码
    在这里插入图片描述地位基准码前三个 word 固定为:0xFF, 0x00, 0x00,第四个 word 由不同的扫描位置决定:
    Bit9: 固定为1
    Bit8(F):F=0 表示为偶场,F=1 表示为奇场
    Bit7(V):V=0 表示该行包含有效视频数据,V=1 表示该行没有有效视频数据
    Bit6(H):H=0 表示为 SAV,H=1 表示为 EAV
    Bit[5, 2] (P3,P2,P1,P0):由 Bit8~Bit6 计算得来,其中:
    Bit5 = V XOR H
    Bit4 = F XOR H
    Bit3 = F XOR V
    Bit2 = F XOR V XOR H
    Bit[1, 0]: 固定为0,对于 RK 平台,位深为 8 BIT,可以认为没有这 2 个 Bit;
    下面的表格根据不同的 EAV/SAV (F,V,H) 算好了对应的保护位的值(P3,P2,P1,P0):
    在这里插入图片描述结合以上信息,可以得到各个消隐期对应的定位基准码为:
EAVCODESAVCODE
10XFF 0X00 0X00 0X9D00XFF 0X00 0X00 0X80
30XFF 0X00 0X00 0XB220XFF 0X00 0X00 0XAB
50XFF 0X00 0X00 0XDA40XFF 0X00 0X00 0XC7
70XFF 0X00 0X00 0XF160XFF 0X00 0X00 0XEC

BT.656 和 BT.1120 支持以下三种硬件连接,根据不同的连接方式软件在 DTS 文件或者对应的转换芯片
驱动中要对 bus_format 做对应的适配。
BT656/BT1220

2. 核查硬件,适配BT656

RK630是瑞芯微扩展接口类芯片,将BT.656协议的视频信号转换为cvbs。

2.1 BT656转cvbs

&i2c3 {
	status = "okay";
	clock-frequency = <100000>;

	rk630: rk630@50 {
		compatible = "rockchip,rk630";
		reg = <0x50>;
		reset-gpios = <&gpio2 RK_PC7 GPIO_ACTIVE_LOW>;
		status = "okay";

		rk630_tve: rk630-tve {
			compatible = "rockchip,rk630-tve";
			status = "okay";

			ports {
				port {
					rk630_tve_in_rgb: endpoint {
						remote-endpoint = <&rgb_out_rk630_tve>;
					};
				};
			};
		};
	};
};

&rgb {
	pinctrl-names = "default";
	pinctrl-0 = <&bt656m0_pins>; /* bt656m0_pins or bt656m1_pins */
	status = "okay";

	ports {
		port@1 {
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <0>;

			rgb_out_rk630_tve: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&rk630_tve_in_rgb>;
			};
		};
	};
};

&rgb_in_vp2 {
	status = "okay";
};

&route_rgb {
	status = "okay";
};

3. 核查硬件,适配BT1120

rk628则是瑞芯微近两年推出的扩展接口类芯片,支持多种协议之间的信号转换。当然也包含即将用到的BT1220转HDMI,受到通信带宽限制,只支持到1080P/60fps。rk628用到的GPIO本文直接跳过,需要同学可自行核对。

3.1 BT1120转HDMI

&i2c3 {
	clock-frequency = <400000>;
	status = "okay";

	rk628: rk628@50 {
		reg = <0x50>;
		interrupt-parent = <&gpio0>;
		interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
		enable-gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
		status = "okay";
	};
};

#include <arm/rk628.dtsi>

&rk628_hdmi {
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;

			hdmi_in_post_process: endpoint {
				remote-endpoint = <&post_process_out_hdmi>;
			};
		};
	};
};

&rk628_post_process {
	pinctrl-names = "default";
	pinctrl-0 = <&rk628_vop_pins>;
	status = "okay";

	mode-sync-pol = <0>;
	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;

			post_process_in_bt1120: endpoint {
				remote-endpoint = <&bt1120_out_post_process>;
			};
		};

		port@1 {
			reg = <1>;

			post_process_out_hdmi: endpoint {
				remote-endpoint = <&hdmi_in_post_process>;
			};
		};
	};
};

&rk628_bt1120_rx {
	status = "okay";

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;

			bt1120_in_rgb: endpoint {
				remote-endpoint = <&rgb_out_bt1120>;
			};
		};

		port@1 {
			reg = <1>;

			bt1120_out_post_process: endpoint {
				remote-endpoint = <&post_process_in_bt1120>;
			};
		};
	};
};

&rgb {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&bt1120_pins>;

	ports {
		port@1 {
			reg = <1>;

			rgb_out_bt1120: endpoint {
				remote-endpoint = <&bt1120_in_rgb>;
			};
		};
	};
};

&rgb_in_vp2 {
	status = "okay";
};

Tips

  1. rk630 响芯片不工作,可从时钟信号和供电核查硬件。
  2. rk628 时钟信号可取自rk3568,可减少始终不同步引起相关问题。

总结

活学活用,做个合格的搬运工。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【jenkins】Jenkins连接 Gitlab实现 push代码自动构建

目录 一、安装插件 二、构建任务 三、为任务配置触发器 四、到gitlab进行设置webhooks 4.1 设置网络 4.2 到jenkins对应项目的源码库 4.3 测试 4.3.1 点击测试--标签推送事件 4.3.2 点击编辑 一、安装插件 持续部署的第一步需要检查是否安装gitlab插件&#xff1a; gitla…

Doris(9):删除数据(Delete)

Delete不同于其他导入方式&#xff0c;它是一个同步过程。和Insert into相似&#xff0c;所有的Delete操作在Doris中是一个独立的导入作业&#xff0c;一般Delete语句需要指定表和分区以及删除的条件来筛选要删除的数据。 Doris 目前可以通过两种方式删除数据&#xff1a; DE…

记录-JavaScript常规加密技术

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 当今Web开发中&#xff0c;数据安全是一个至关重要的问题&#xff0c;为了确保数据的安全性&#xff0c;我们需要使用加密技术。JavaScript作为一种客户端编程语言&#xff0c;可以很好地为数据进行加…

Spring Boot 安全

目录 1.概述 2.token 2.1.理论 2.2.使用 3.JWT 3.1.理论 3.2.使用 4.oauth 5.Spring Security 5.1.概述 5.2.基本认证授权 5.3.加密 1.概述 在后端来说&#xff0c;安全主要就是控制用户访问&#xff0c;让对应权限的用户能访问到对应的资源&#xff0c;主要是两点…

AOP通知中获取数据

AOP通知中获取数据 之前我们写AOP仅仅是在原始方法前后追加一些操作&#xff0c;接下来我们要说说AOP中数据相关的内容&#xff0c;我们将从获取参数、获取返回值和获取异常三个方面来研究切入点的相关信息。 获取切入点方法的参数&#xff1a;所有的通知类型都可以获取参数 …

Vulhub开源漏洞靶场用Java远程访问

事件起因&#xff0c;被迫参加某竞赛&#xff0c;中途发现&#xff0c;全员摸鱼&#xff0c;遂一起摸鱼Vulhub是一个面向大众的开源漏洞靶场&#xff0c;无需docker知识&#xff0c;简单执行一条命令即可编译、运行一个完整的漏洞靶场镜像。 Installation 在Ubuntu 20.04下安…

JVM 垃圾回收详解之内存分配和回收原则+死亡对象判断方法

前言 当需要排查各种内存溢出问题、当垃圾收集成为系统达到更高并发的瓶颈时&#xff0c;我们就需要对这些“自动化”的技术实施必要的监控和调节。 堆空间的基本结构 Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时&#xff0c;Java 自动内存管理最核…

【STM32】基础知识 第七课 存储器映射 寄存器映射

【STM32】基础知识 第七课 存储器映射 & 寄存器映射 STM32 寻址范围存储器映射存储器功能划分 (F1 为例)Block 0Block 1Block 2寄存器映射 寄存器映射 (F1 为例)寄存器映射举例寄存器地址计算GPIO 外设基地址及偏移量寄存器地址及偏移量寄存器地址计算过程 使用结构体映射寄…

《2-数组》

数组 1.简介&#xff1a; 数组&#xff08;Array&#xff09;是一种固定长度的存储相同数据类型在连续内存空间中的数据结构 引出&#xff1a;[索引 &#xff08;Index&#xff09;]----元素在数组中的位置 2.初始化 写法&#xff1a;一般用到无初始值、给定初始值 在不给定…

中国制造业连续13年全球第一,MES管理系统,打造竞争新优势

根据工业和信息化部最近发布的数据&#xff0c;在2022年&#xff0c;中国的制造业增加值在全球的占比接近30&#xff05;&#xff0c;制造业规模已连续13年位居世界第一。根据国家统计局的最新数字&#xff0c;一到二月份&#xff0c;我国的生产值与去年同期相比上升了2.1&…

实现声明式锁,支持分布式锁自定义锁、SpEL和结合事务

目录 2.实现 2.1 定义注解2.2 定义锁接口2.3 锁的实现 2.3.1 什么是SPI2.3.2 通过SPI实现锁的多个实现类2.3.3 通过SPI自定义实现锁3.定义切面 3.1 切面实现3.2 SpEL表达式获取动态key3.3 锁与事务的结合4.测试 4.1 ReentrantLock测试4.2 RedissonClient测试4.3 自定义锁测试5…

移动硬盘如何分区?教您快速解决!

案例&#xff1a;怎么对移动硬盘进行分区&#xff1f; 【我平常找一个文件需要耗费很长时间&#xff0c;十分麻烦。我现在想通过对移动硬盘进行分区的方式&#xff0c;整理好我的文件&#xff0c;方便使用时查找。有没有人知道移动硬盘怎么分区&#xff1f;教教我&#xff01;…

深入浅出JS定时器:从setTimeout到setInterval

前言 当谈到 JavaScript 编程语言最基本的概念时&#xff0c;定时器就是一个必须掌握的知识点。在编写网站时&#xff0c;你经常会遇到需要在一定时间间隔内执行一些代码的情况。这时候&#xff0c;JavaScript 定时器就可以派上用场了。 什么是定时器&#xff1f; JS 定时器是…

[Gitops--2]Argocd和Gitlab-runner安装配置

ArgoCd Argo是一组k8s原生工具集,用于运行和管理k8s上的作业和应用程序.Argo提供了一种在k8s上创建工作和应用的三种计算模式:服务模式,工作流模式和基于事件模式.所有的Argo工具都实现为了创建控制器和自定义资源. 为什么选ArgoCD 应用程序的定义,配置和环境都应该是声明性…

ChatGPT和GPT-4帮你写人物传记

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

研读Rust圣经解析——Rust learn-11(测试,迭代器,闭包)

研读Rust圣经解析——Rust learn-11&#xff08;测试&#xff0c;迭代器&#xff0c;闭包&#xff09; 测试编写测试模块声明test模块编写测试方法执行测试测试结果检查 闭包定义一个闭包完整写法闭包可以捕获环境闭包类比函数闭包类型推断闭包获取所有权将被捕获的值移出闭包和…

Jenkins配置邮件通知

1、下载Email Extension插件 2、配置发件人邮箱地址 系统管理 > 系统配置 3、配置邮件通知 系统管理 > 系统配置 > 邮件通知 往下滑找到 通过发送测试邮件测试配置 测试 如果以上配置没有问题,会发送一封测试邮件到服务器中,如果有问题请优先检查一下端口号和是…

网络协议-HTTP协议详情讲解

目录 HTTP协议内容和方法 HTTP请求常见请求头 HTTP常见返回头 HTTP协议基本方法 常见HTTP状态码 面试解惑&#xff1a;301 vs 308 面试解惑&#xff1a;302 / 303 / 307 常见HTTP头 User-Agent Content-Type Origin Accept Referer Connection HTTP协议内容和方法…

Nginx中location规则 与 URL重写(rewrite)详解

1.Nginx中location与rewrite 1.1 location与rewrite常用的正则表达式 符号作用^匹配输入字符串的起始位置$ 匹配输入字符串的结束位置*匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” 匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“olll”…

微信为什么使用 SQLite 保存聊天记录

SQLite “只是”一个库&#xff0c;它不是传统意义上的服务器。因此&#xff0c;在某些场合下&#xff0c;它确实不合适。但是&#xff0c;在相当多的其他场合&#xff0c;它却是最合适的选择。SQLite 号称是部署和使用最广泛的数据库引擎。我认为这很有可能&#xff0c;因为 S…