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相关配置 注意:一定要知道主控接线,那个物理口是otg的,然后要找准与之所连接的phy和控制器。然后处理CC1 CC2识别芯片,fusb302。默认sdk自带有驱动,需要配上中断脚和提供VBUS 5V的脚。用来判断角色是DF…...
java基础知识——26.反射
这篇文章我们来讲一下java的代理与反射,这是很重要的一部分内容。 目录 1.什么是反射 2.获取class对象的三种方式 3.反射获取构造方法 4.利用反射来获取成员变量 5.利用反射来获取成员方法 6.反射的作用 7.反射小结 1.什么是反射 首先,我们来看…...
【容器化】Docker 简介和安装
【容器化】Docker 简介和安装 DockerDocker的应用场景Docker 的优点1、快速,一致地交付您的应用程序2、响应式部署和扩展3、在同一硬件上运行更多工作负载 Docker 架构Docker 安装Ubuntu Docker 、Debian Docker 安装使用官方安装脚本自动安装手动安装使用 Shell 脚…...
性能测试场景分析并设计?超细案例讲解,看这篇就够了
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试场景&…...
JAVA9新特性
JAVA9新特性 概述 经过4次推迟,历经曲折的Java9最终在2017年9月21日发布。因为里面加入的模块化系统,在最初设想的时候并没有想过那么复杂,花费的时间超出预估时间。距离java8大约三年时间。 Java 9提供了超过150项新功能特性&#x…...
( 数组和矩阵) 645. 错误的集合 ——【Leetcode每日一题】
❓645. 错误的集合 难度:简单 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了…...
2023年全国最新道路运输从业人员精选真题及答案63
百分百题库提供道路运输安全员考试试题、道路运输从业人员考试预测题、道路安全员考试真题、道路运输从业人员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 119.在危险货物道路运输过程中,(&#x…...
Kettle安装与使用
一、Kettle简介 Kettle最早是一个开源的ETL(Extract-Transform-Load的缩写)工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。后来Kettle重命名为Pentaho Data Integration 。它由Java开发,…...
C51 - DS18B20
Thermometer 1> 实验概述2> 硬件设计3> DS18B203.1> 原理框图3.2> 数据格式 4> 单总线(1-Wire)通讯协议4.1> 初始化(复位)时序4.2> 写-DS18B20时序4.3> 读-DS18B20时序4.4> 命令 5> 程序设计5.1…...
手把手教你使用vue2搭建微前端micro-app
简述 本文主要讲述新手小白怎么搭建micro-app,几乎是每一步都有截图说明。上手应该很简单。 研究背景 这段时间在网上找了很多有关微前端相关的知识,起初本来是想着先搭建一个single-spa,但是奈何网上能找到的内容都是千篇一律。我也是…...
DDR3(MIG核配置官方demoFPGA代码实现及仿真)
由于直接对 DDR3 进行控制很复杂,因此一般使用 MIG IP 来实现,同时为了更简单地使用 MIG IP,我们采用 AXI4 总线协议进行控制。下面首先介绍 MIG IP 的配置,然后看看官方 demo (里面包含一个仿真要用到的 DDR3 模型&am…...
传奇人物《周兴和》书连载之67 不辱神圣的使命
不辱神圣的使命 这里,先前还是一个十分神秘的地方。 外人和车辆要想进入这片区域,那是绝对不允许的。这片区域隐于群山之中,且戒备森严,外人若想进入,那是要经过好几道政治审查和随身检查的。近年来,随着…...
Spring框架中的单例Beans是线程安全的么?
在Spring框架中,单例Beans默认是线程安全的。 当你在Spring框架中声明一个单例Bean并配置为默认的单例作用域时,Spring会确保对该Bean的并发访问是线程安全的。以下是一个简单的代码演示: 假设我们有一个名为 SingletonBean 的单例 Bean 类…...
AI脚本插件开发-链接图自动建立档名-插件制作源码-illustrator插件开发
文章目录 1.illustrator1.1.app.activeDocument1.2.selection2.模块分析3.源码工程4.功能描述5.作者答疑本文主要分析一款插件的源码,链接图自动建立档名,代码一般较长,读者耐心阅读,对于学习插件开发具有不小的帮助。先介绍了一下基础资料,如有不懂的地方,就去这些资料里…...
rust智能指针
智能指针 智能指针虽然也号称指针,但是它是一个复杂的家伙:通过比引用更复杂的数据结构,包含比引用更多的信息,例如元数据,当前长度,最大可用长度等。引用和智能指针的另一个不同在于前者仅仅是借用了数据…...
Git、Gitee、Github、Gitlab区别与联系
Git:本地软件,无需联网即可使用,实现本地代码的管理。 分布式版本控制系统,是一种工具,用于代码的存储和版本控制。 将本地文件通过一定的操作将其同步上传到Github或Gitee Gitee:是一家中…...
接口优化的策略
1.批处理 批量思想:批量操作数据库,这个很好理解,我们在循环插入场景的接口中,可以在批处理执行完成后一次性插入或更新数据库,避免多次IO。 //批量入库 batchInsert();List的安全操作有以下几种方式: 使…...
android 隐藏底部虚拟按键
方法一 滑动屏幕 可重新显示出来 protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT <11 && Build.VERSION.SDK_INT < 19) { // lower api View v this.getWindow().getDecorView(); v.setSyst…...
基于电流控制的并网逆变器(Simulink)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
learn_C_deep_9 (汇编角度理解return的含义、const 的各种应用场景)
return 关键字 不知道我们大家是否有一个疑惑:我们下载一个大型游戏软件(王者荣耀),都要花几个小时去下载,但是一旦我们游戏连输,想要删除这个软件的时候,它仅仅只需要十几秒,这是为…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
Unity中的transform.up
2025年6月8日,周日下午 在Unity中,transform.up是Transform组件的一个属性,表示游戏对象在世界空间中的“上”方向(Y轴正方向),且会随对象旋转动态变化。以下是关键点解析: 基本定义 transfor…...
ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
在Zenodo下载文件 用到googlecolab googledrive
方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!࿰…...
C++ 类基础:封装、继承、多态与多线程模板实现
前言 C 是一门强大的面向对象编程语言,而类(Class)作为其核心特性之一,是理解和使用 C 的关键。本文将深入探讨 C 类的基本特性,包括封装、继承和多态,同时讨论类中的权限控制,并展示如何使用类…...
