RK3568 Android 13 USB OTG/Host 切换调试经验分享

目录

前言

经验

[1. 切换到 Device (OTG) 模式](#1. 切换到 Device (OTG) 模式)

[2. 切换到 Host 模式](#2. 切换到 Host 模式)

[3. 调试中遇到的坑](#3. 调试中遇到的坑)

总结


前言

在RK3568开发过程中,需要动态切换USB3.0接口的OTG(Device)与Host模式。直接修改PHY寄存器或sysfs节点往往无法生效,甚至导致系统USB功能异常。经过摸索,总结出一套可靠的切换流程,在此分享。


经验

1. 切换到 Device (OTG) 模式

关键点:必须先解除UDC绑定,清理软链接,再切PHY,最后触发Android USB配置。

bash 复制代码
# 解除 UDC 绑定,释放控制器
echo "" > /config/usb_gadget/g1/UDC

# 删除之前创建的软链接(根据日志,adb 的链接在 f1)
rm -f /config/usb_gadget/g1/configs/b.1/f1

# 切换 PHY 到 Device 模式
echo peripheral > /sys/devices/platform/fe8a0000.usb2-phy/otg_mode

# 重新触发 Android 的 USB 配置
setprop sys.usb.config adb

注意f1 是示例,实际软链接名需根据 ls /config/usb_gadget/g1/configs/b.1/ 查看。

2. 切换到 Host 模式

关键点:先让Android彻底放弃gadget,再解除UDC,清理残留,最后切PHY。

bash 复制代码
# 让 Android 彻底放弃 gadget
setprop sys.usb.config none
setprop sys.usb.state none

# 解除 UDC 绑定(此时 UDC 应该可写了)
echo "" > /config/usb_gadget/g1/UDC

# 删除残留软链接
rm -f /config/usb_gadget/g1/configs/b.1/f1

# 切 PHY 到 host
echo host > /sys/devices/platform/fe8a0000.usb2-phy/otg_mode

3. 调试中遇到的坑

  • UDC 写不进去 :因为Android的USB服务仍持有gadget,必须先 setprop sys.usb.config none

  • 软链接删不掉 :权限不足或路径错误,建议先 ls 确认。

  • PHY 切换无效:如果UDC仍绑定,PHY模式切换会被忽略或报错。

  • 顺序反了:先切PHY再解绑UDC,可能导致控制器状态混乱,甚至需要重启。


总结

RK3568 Android 13下USB3.0 OTG/Host切换,本质是 "先软后硬"

  1. 软层面:让Android释放gadget(setprop none)、解绑UDC、清理configfs软链接。

  2. 硬层面 :再写 otg_mode 节点切换PHY。

  3. 恢复 :切回Device时,重新 setprop sys.usb.config adb 即可。

按此顺序操作,可稳定切换,避免USB功能异常。希望这份经验能帮到同样在RK3568上调试USB的同行。

相关推荐
终端安全笔记2 小时前
iOS 27 之后「策略空转」:设备升级不报错,但旧策略不再管它
android·网络·安全·ios·智能手机
JMchen3 小时前
实战案例:实现120fps流畅的渐变进度条
android·kotlin·canvas
敲代码的瓦龙3 小时前
Jetpack?DataBinding!!!
android·java·开发语言·mysql·android-studio
Android-Flutter5 小时前
Compose CompositionLocal 详解
android·compose
三少爷的鞋6 小时前
Kotlin 协程闯关:看代码,猜结果
android
2501_932750268 小时前
Android 跑马灯:从一行 XML 到自定义控件
android
BoomHe20 小时前
Android Framework 文件应用移植到 AndroidStudio
android
传奇开心果编程21 小时前
【Jetpack Compose基础语法学与练】第8课 rememberSaveable,页面旋转/系统重建保留状态
android·学习·ui·kotlin·android jetpack
>Andre<21 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件