当前位置: 首页 > news >正文

rk3568平台调试typec口实现uvc输出,网络共享等功能

一、修改kernel相关配置

注意:一定要知道主控接线,那个物理口是otg的,然后要找准与之所连接的phy和控制器。然后处理CC1 CC2识别芯片,fusb302。默认sdk自带有驱动,需要配上中断脚和提供VBUS 5V的脚。用来判断角色是DFP UFP。

查看rk3568规格书知道rk3568是不单独支持typec控制的硬件接口

RK3568 SDK 未提供 USB 3.0 OTG Type-C 接口的硬件参考电路。如果开发者要⽀持该接口,需要在

RK3568 USB 3.0 OTG 和 Type-C 接口中间增加⼀个 USB 3.1 Switch 芯⽚(如 FUSB340)和⼀个 CC 通信

芯⽚(如 FUSB302)。

我们硬件设计如下:

通过asw3410进行switch,fusb302进行通信并处理UFP DFP角色问题

具体代码修改:

1.添加fusb302驱动,fusb302的驱动在rk平台已经适配过很多,3568平台kernel4.19也是有的,打开即可,在driver/mfd目录。前期可以添加打印,看是否有成功通过i2c控制

2.需要修改usb的控制器和phy的配置

注意:rk3568默认就一个usb3.0的otg口,默认是使用gpio来控制vbus-5v,我们要使用typec需要去掉,使用fusb302去控制vbus-5v。还需要在usb3.0的otg口exton fusb302.具体修改如下:

//vcc5v0_otg: vcc5v0-otg-regulator {//	compatible = "regulator-fixed";//	regulator-name = "vcc5v0_otg";//	regulator-min-microvolt = <5000000>;//	regulator-max-microvolt = <5000000>;//	enable-active-high;//	gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;//	vin-supply = <&vcc5v0_usb>;//	pinctrl-names = "default";//	pinctrl-0 = <&vcc5v0_otg_en>;//};&usbdrd_dwc3 {extcon = <&fusb0>;status = "okay";snps,tx-fifo-resize;snps,dis-u1u2-quirk;
};&usbdrd30 {status = "okay";//extcon = <&usb2phy0>;//extcon = <&fusb0>;
};&usbhost_dwc3 {dr_mode = "host";status = "okay";
};&usbhost30 {status = "okay";
};&combphy0_us {status = "okay";extcon = <&fusb0>;
};

3.关于switch芯片,我们只需要在fusb302驱动里面的UFP或者DFP判断的时候去拉高拉低相应的gpip切换就行。

目前发现,不切换也能判断正反插,切速率达到high speed

修改前面是驱动部分,能够保证插入typec线接电脑,能被设备识别到。

二、添加configfs,配置uvc输出,uac输出,网络共享等功能

修改rkscript,使能uvc_en uac_en.这样会在S50usbdevice里面会自动配置uvc和uac功能

commit 29d9a2a002946044109967d8c17958bdf534e24e (HEAD -> miniiso, rk3568sdk/miniiso)
Author: huangxiang <“huangx@rgblink.com.cn”>
Date:   Wed Mar 22 10:45:51 2023 +0800Default support uac1 uvc outputdiff --git a/package/rockchip/rkscript/rkscript.mk b/package/rockchip/rkscript/rkscript.mk
old mode 100644
new mode 100755
index 08406e8e..a2a2cd2e
--- a/package/rockchip/rkscript/rkscript.mk
+++ b/package/rockchip/rkscript/rkscript.mk
@@ -10,10 +10,11 @@ RKSCRIPT_LICENSE = Apache V2.0RKSCRIPT_LICENSE_FILES = NOTICERKSCRIPT_USB_CONFIG=$(BR2_PACKAGE_RKSCRIPT_EXTRA_USB_CONFIG)
+RKSCRIPT_USB_CONFIG_FILE = $(TARGET_DIR)/etc/init.d/.usb_config
+#ifeq ($(BR2_PACKAGE_RKSCRIPT_ADBD),y)
+#RKSCRIPT_USB_CONFIG += usb_adb_en
+#endif-ifeq ($(BR2_PACKAGE_RKSCRIPT_ADBD),y)
-RKSCRIPT_USB_CONFIG += usb_adb_en
-endififeq ($(BR2_PACKAGE_RKSCRIPT_MTP),y)RKSCRIPT_USB_CONFIG += usb_mtp_en
@@ -53,8 +54,18 @@ define RKSCRIPT_INSTALL_TARGET_CMDSendefdefine RKSCRIPT_INSTALL_TARGET_USB_CONFIG
-       echo $(RKSCRIPT_USB_CONFIG) | xargs -n 1 > \
-               $(TARGET_DIR)/etc/init.d/.usb_config
+
+       if test ! `grep usb_uac1_en $(RKSCRIPT_USB_CONFIG_FILE)` ; then \
+               echo usb_uac1_en >> $(RKSCRIPT_USB_CONFIG_FILE) ; \
+       fi
+
+       if test ! `grep usb_uvc_en $(RKSCRIPT_USB_CONFIG_FILE)` ; then \
+               echo usb_uvc_en >> $(RKSCRIPT_USB_CONFIG_FILE) ; \
+       fi
+
+       #if test ! `grep usb_uac1_en $(RKSCRIPT_USB_CONFIG_FILE)` ; then \
+       #       echo usb_uac1_en >> $(RKSCRIPT_USB_CONFIG_FILE) ; \
+       #fi
:

2.修改uvc_app和uac_app相关应用功能,去送图像和音频给到电脑,出现下面两个节点即可送图像和声音

相关文章:

rk3568平台调试typec口实现uvc输出,网络共享等功能

一、修改kernel相关配置 注意&#xff1a;一定要知道主控接线&#xff0c;那个物理口是otg的&#xff0c;然后要找准与之所连接的phy和控制器。然后处理CC1 CC2识别芯片&#xff0c;fusb302。默认sdk自带有驱动&#xff0c;需要配上中断脚和提供VBUS 5V的脚。用来判断角色是DF…...

java基础知识——26.反射

这篇文章我们来讲一下java的代理与反射&#xff0c;这是很重要的一部分内容。 目录 1.什么是反射 2.获取class对象的三种方式 3.反射获取构造方法 4.利用反射来获取成员变量 5.利用反射来获取成员方法 6.反射的作用 7.反射小结 1.什么是反射 首先&#xff0c;我们来看…...

【容器化】Docker 简介和安装

【容器化】Docker 简介和安装 DockerDocker的应用场景Docker 的优点1、快速&#xff0c;一致地交付您的应用程序2、响应式部署和扩展3、在同一硬件上运行更多工作负载 Docker 架构Docker 安装Ubuntu Docker 、Debian Docker 安装使用官方安装脚本自动安装手动安装使用 Shell 脚…...

性能测试场景分析并设计?超细案例讲解,看这篇就够了

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试场景&…...

JAVA9新特性

JAVA9新特性 概述 ​ 经过4次推迟&#xff0c;历经曲折的Java9最终在2017年9月21日发布。因为里面加入的模块化系统&#xff0c;在最初设想的时候并没有想过那么复杂&#xff0c;花费的时间超出预估时间。距离java8大约三年时间。 ​ Java 9提供了超过150项新功能特性&#x…...

( 数组和矩阵) 645. 错误的集合 ——【Leetcode每日一题】

❓645. 错误的集合 难度&#xff1a;简单 集合 s 包含从 1 到 n 的整数。不幸的是&#xff0c;因为数据错误&#xff0c;导致集合里面某一个数字复制了成了集合里面的另外一个数字的值&#xff0c;导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了…...

2023年全国最新道路运输从业人员精选真题及答案63

百分百题库提供道路运输安全员考试试题、道路运输从业人员考试预测题、道路安全员考试真题、道路运输从业人员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 119.在危险货物道路运输过程中&#xff0c;&#xff08;&#x…...

Kettle安装与使用

一、Kettle简介 Kettle最早是一个开源的ETL&#xff08;Extract-Transform-Load的缩写&#xff09;工具&#xff0c;全称为KDE Extraction, Transportation, Transformation and Loading Environment。后来Kettle重命名为Pentaho Data Integration 。它由Java开发&#xff0c;…...

C51 - DS18B20

Thermometer 1> 实验概述2> 硬件设计3> DS18B203.1> 原理框图3.2> 数据格式 4> 单总线&#xff08;1-Wire&#xff09;通讯协议4.1> 初始化&#xff08;复位&#xff09;时序4.2> 写-DS18B20时序4.3> 读-DS18B20时序4.4> 命令 5> 程序设计5.1…...

手把手教你使用vue2搭建微前端micro-app

​ 简述 本文主要讲述新手小白怎么搭建micro-app&#xff0c;几乎是每一步都有截图说明。上手应该很简单。 研究背景 这段时间在网上找了很多有关微前端相关的知识&#xff0c;起初本来是想着先搭建一个single-spa&#xff0c;但是奈何网上能找到的内容都是千篇一律。我也是…...

DDR3(MIG核配置官方demoFPGA代码实现及仿真)

由于直接对 DDR3 进行控制很复杂&#xff0c;因此一般使用 MIG IP 来实现&#xff0c;同时为了更简单地使用 MIG IP&#xff0c;我们采用 AXI4 总线协议进行控制。下面首先介绍 MIG IP 的配置&#xff0c;然后看看官方 demo &#xff08;里面包含一个仿真要用到的 DDR3 模型&am…...

传奇人物《周兴和》书连载之67 不辱神圣的使命

不辱神圣的使命 这里&#xff0c;先前还是一个十分神秘的地方。 外人和车辆要想进入这片区域&#xff0c;那是绝对不允许的。这片区域隐于群山之中&#xff0c;且戒备森严&#xff0c;外人若想进入&#xff0c;那是要经过好几道政治审查和随身检查的。近年来&#xff0c;随着…...

Spring框架中的单例Beans是线程安全的么?

在Spring框架中&#xff0c;单例Beans默认是线程安全的。 当你在Spring框架中声明一个单例Bean并配置为默认的单例作用域时&#xff0c;Spring会确保对该Bean的并发访问是线程安全的。以下是一个简单的代码演示&#xff1a; 假设我们有一个名为 SingletonBean 的单例 Bean 类…...

AI脚本插件开发-链接图自动建立档名-插件制作源码-illustrator插件开发

文章目录 1.illustrator1.1.app.activeDocument1.2.selection2.模块分析3.源码工程4.功能描述5.作者答疑本文主要分析一款插件的源码,链接图自动建立档名,代码一般较长,读者耐心阅读,对于学习插件开发具有不小的帮助。先介绍了一下基础资料,如有不懂的地方,就去这些资料里…...

rust智能指针

智能指针 智能指针虽然也号称指针&#xff0c;但是它是一个复杂的家伙&#xff1a;通过比引用更复杂的数据结构&#xff0c;包含比引用更多的信息&#xff0c;例如元数据&#xff0c;当前长度&#xff0c;最大可用长度等。引用和智能指针的另一个不同在于前者仅仅是借用了数据…...

Git、Gitee、Github、Gitlab区别与联系

Git&#xff1a;本地软件&#xff0c;无需联网即可使用&#xff0c;实现本地代码的管理。 分布式版本控制系统&#xff0c;是一种工具&#xff0c;用于代码的存储和版本控制。 将本地文件通过一定的操作将其同步上传到Github或Gitee Gitee&#xff1a;是一家中…...

接口优化的策略

1.批处理 批量思想&#xff1a;批量操作数据库&#xff0c;这个很好理解&#xff0c;我们在循环插入场景的接口中&#xff0c;可以在批处理执行完成后一次性插入或更新数据库&#xff0c;避免多次IO。 //批量入库 batchInsert();List的安全操作有以下几种方式&#xff1a; 使…...

android 隐藏底部虚拟按键

方法一 滑动屏幕 可重新显示出来 protected void hideBottomUIMenu() { //隐藏虚拟按键&#xff0c;并且全屏 if (Build.VERSION.SDK_INT <11 && Build.VERSION.SDK_INT < 19) { // lower api View v this.getWindow().getDecorView(); v.setSyst…...

基于电流控制的并网逆变器(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

learn_C_deep_9 (汇编角度理解return的含义、const 的各种应用场景)

return 关键字 不知道我们大家是否有一个疑惑&#xff1a;我们下载一个大型游戏软件&#xff08;王者荣耀&#xff09;&#xff0c;都要花几个小时去下载&#xff0c;但是一旦我们游戏连输&#xff0c;想要删除这个软件的时候&#xff0c;它仅仅只需要十几秒&#xff0c;这是为…...

ExplorerPatcher终极指南:快速打造你的专属Windows工作界面

ExplorerPatcher终极指南&#xff1a;快速打造你的专属Windows工作界面 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher 厌倦了Windows 11强制性…...

Chromatic深度解析:基于QuickJS的跨平台动态代码注入框架实现原理

Chromatic深度解析&#xff1a;基于QuickJS的跨平台动态代码注入框架实现原理 【免费下载链接】chromatic Universal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器 项目地址: https://gitcode.com/gh_mirrors/be/chromatic 你是否曾经遇到过这样的技术…...

PostgreSQL 跨表数据同步实战:Update Join 与 Delete Using 核心指南

1. 为什么需要跨表数据同步&#xff1f; 在日常数据库运维中&#xff0c;经常会遇到这样的场景&#xff1a;你需要根据另一张表的数据规则&#xff0c;批量更新或清理主表的数据。比如电商系统中根据商品类别更新折扣价&#xff0c;或者根据黑名单清理用户数据。这类操作如果逐…...

GitHub中文化插件完整指南:3分钟让GitHub界面变中文的终极方案

GitHub中文化插件完整指南&#xff1a;3分钟让GitHub界面变中文的终极方案 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitH…...

设计专利实战指南:从概念到风险防控,硬件工程师必读

1. 从“喷气式冲浪板”看设计专利的迷思与实战那天在翻看一些老旧的行业资料时&#xff0c;我又看到了那篇经典的“What were they thinking: Jet powered surfboard”。每次看到这个标题和那张滑稽的专利图&#xff0c;都让我忍不住会心一笑。一张图纸&#xff0c;寥寥数语&am…...

Claude Code省Token终极指南:MCP与Skill生态全解析

Claude Code省Token终极指南&#xff1a;MCP与Skill生态全解析 Claude Code的能力毋庸置疑&#xff0c;但让人不得不面对的现实是&#xff1a;token在燃烧&#xff0c;账单在咆哮。一句“你好”开场就可能消耗13%的配额&#xff0c;大项目里改一个函数就要先Grep全局搜一遍、再…...

ARM架构线程私有内存管理及TPMAX0_EL1寄存器详解

1. ARM架构线程私有内存管理概述在ARMv8/v9架构中&#xff0c;线程私有内存&#xff08;Thread-Private Memory&#xff09;是一种重要的内存保护机制。它允许操作系统为每个线程定义专属的内存区域&#xff0c;其他线程无法访问&#xff0c;从而提供硬件级别的内存隔离。这种机…...

OpenClaw数据包工厂:从非结构化业务信息到可审查工作包的AI自动化实践

1. 项目概述&#xff1a;从混乱业务输入到可审查工作包的转变如果你是一名创业者、服务运营商或者任何需要处理大量非结构化业务信息的人&#xff0c;那么“信息过载”和“行动泄漏”这两个词你一定不陌生。每天&#xff0c;会议录音、客户邮件、CRM导出数据、表单提交像潮水一…...

从mekong-cli看现代CLI工具的设计哲学与工程实践

1. 项目概述&#xff1a;一个命令行工具能做什么&#xff1f;在开发者的日常工作中&#xff0c;命令行界面&#xff08;CLI&#xff09;是我们与计算机系统交互最直接、最高效的桥梁。无论是自动化部署、批量处理文件&#xff0c;还是与远程API进行交互&#xff0c;一个设计精良…...

AI助力船舶稳性计算:Gemini3.1Pro设计辅助新思路

在船舶设计工作中&#xff0c;稳性计算一直是非常核心、也非常严谨的环节。无论是新船方案设计、改装评估&#xff0c;还是载况校核&#xff0c;都需要围绕重心、浮心、横稳心、复原力臂、装载状态、自由液面影响等内容进行系统分析。过去这些资料往往分散在规范条文、设计手册…...