【小智 T113 外设适配 4】OTG 接口

文章目录

1、环境介绍

硬件:小智 T113 板卡

软件:原厂 Tina5.0 SDK v1.2(Buildroot)

2、前言

本文主要记录小智 T113 板卡的 OTG 接口调试。

3、原理图查看

T113 系列芯片内置2个 USB2.0 接口,其中 USB0 支持 OTG 功能,USB1 只支持 USB Host 功能。如下图是关于 USB0 部分的原理图:

如下图是关于 USB1 部分的原理图:

小智板卡中的 USB0 接口只能做 USB Device 模式,因为做 USB Host 时无法对外供电。同理,USB1 Host 也是无法使用的,因为无法对外供电。

所以下面主要介绍 USB0 Device 的使用,把板卡适配成一个虚拟网卡,与 PC 机相连,进而可以实现 SSH 连接。

4、内核配置

shell 复制代码
CONFIG_USB_CONFIGFS_ACM=y
CONFIG_USB_CONFIGFS_ECM=y
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
CONFIG_USB_CONFIGFS_EEM=y

5、设备树配置

c 复制代码
&usbc0 {
	device_type = "usbc0";
	usb_port_type = <0x2>;
	usb_detect_type = <0x1>;
	usb_detect_mode = <0>;
	usb_id_gpio = <&pio PE 12 GPIO_ACTIVE_HIGH>;
	enable-active-high;
	usb_det_vbus_gpio = <&pio PE 12 GPIO_ACTIVE_HIGH>;
	usb_wakeup_suspend = <0>;
	usb_serial_unique = <0>;
	usb_serial_number = "20080411";
	rndis_wceis = <1>;
	status = "okay";
};

&ehci0 {
	drvvbus-supply = <&reg_usb1_vbus>;
};

&ohci0 {
	drvvbus-supply = <&reg_usb1_vbus>;
};

6、Gadget 配置

查看当前 OTG 模式:

shell 复制代码
cat /sys/devices/platform/soc@3000000/soc@3000000:usbc0@0/otg_role

# 切换到 device 模式
echo 1 > /sys/devices/platform/soc@3000000/soc@3000000:usbc0@0/otg_role
# 切换到 host 模式
echo 2 > /sys/devices/platform/soc@3000000/soc@3000000:usbc0@0/otg_role

Gadget 配置:

shell 复制代码
cd /sys/kernel/config/usb_gadget/g1

echo "" > UDC 2>/dev/null

echo 0x1d6b > idVendor
echo 0x0104 > idProduct
echo 0x0100 > bcdDevice
echo 0x0200 > bcdUSB

mkdir -p strings/0x409
echo "0123456789" > strings/0x409/serialnumber
echo "T113 Board" > strings/0x409/manufacturer
echo "USB RNDIS" > strings/0x409/product

mkdir -p configs/c.1/strings/0x409
echo "Config 1: RNDIS network" > configs/c.1/strings/0x409/configuration
echo 120 > configs/c.1/MaxPower

mkdir -p functions/rndis.usb0
echo "02:1A:11:00:00:01" > functions/rndis.usb0/dev_addr
echo "02:1A:11:00:00:02" > functions/rndis.usb0/host_addr
ln -sf functions/rndis.usb0 configs/c.1/

echo 4100000.udc-controller > UDC

ip link set usb0 down 2>/dev/null
ip addr flush dev usb0 2>/dev/null
ip addr add 192.168.42.1/24 dev usb0
ip link set usb0 up

7、Windows 驱动安装

  1. 使用Windows自带的RNDIS驱动(推荐),打开设备管理器。
  2. 右键点击带感叹号的RNDIS设备 → 更新驱动程序。
  3. 选择 "浏览我的电脑以查找驱动程序"。
  4. 选择 "让我从计算机上的可用驱动程序列表中选取"。
  5. 在类别中选择 "网络适配器"。
  6. 在左侧厂商列表中选择 "Microsoft"。
  7. 在右侧模型中选择 "远程NDIS兼容设备"。
  8. 点击 "下一步" 安装。

8、测试

在测试时,Windows 第一安装驱动后,可以正常识别出网卡设备,并且电脑也可以和板卡互ping。但第二次开始后就再也不行了,暂未解决。

9、参考文章

无。

10、总结

略。

相关推荐
唐诺11 天前
Android USB ADB 调试方案完全解析
android·adb·usb
你的强来了99816 天前
好用的USB设备信息查看工具USBList(四)——驱动文件操作
注册表·驱动·usb·inf·驱动版本·硬件id
唐诺18 天前
Android Open Accessory (AOA) 协议完全解析
android·usb·aoa
你的强来了99822 天前
好用的USB设备信息查看工具USBList(二)——查看设备信息
usb·配置描述符·usb设备信息·设备描述符·接口描述符·端点描述符·字符串描述符
ZenasLDR1 个月前
Type-C多口移动电源
接口·芯片·usb
内核笔记1 个月前
01-USB驱动子系统总览:框架与核心文件导读
bsp·usb·瑞芯微
π同学1 个月前
ESP-IDF+vscode开发ESP32第十七讲——USB设备栈
vscode·esp32·usb
sinat_399010272 个月前
snps usb ip及 vip 使用
usb
Championship.23.242 个月前
Linux 3.0 USB机制深度解析:USB 3.0支持与传统外设驱动架构
linux·运维·架构·usb
ZenasLDR3 个月前
Type-C接口iPad键盘皮套
接口·芯片·usb