【小智 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、总结

略。

相关推荐
Championship.23.2411 天前
Linux 3.0 USB机制深度解析:USB 3.0支持与传统外设驱动架构
linux·运维·架构·usb
ZenasLDR17 天前
Type-C接口iPad键盘皮套
接口·芯片·usb
smallerxuan17 天前
九、CherryUSB 设计架构与工作逻辑分析
usb·cherryusb·cherryusb分析
smallerxuan18 天前
二、USB协议中的设备类
usb·usb协议·usb设备类
smallerxuan19 天前
三、USB协议通信过程
usb·usb协议·usb通信过程
smallerxuan19 天前
七、USB协议中的事务
usb·usb协议·usb事务
smallerxuan20 天前
五、USB协议中的请求
usb·usb协议·usb请求
smallerxuan20 天前
八、USB协议分析与调试实战
usb·usb协议分析·usb协议·usb协议调测
smallerxuan20 天前
四、USB协议中的描述符
usb·usb协议·usb描述符
ZenasLDR22 天前
Type-C接口水冷散热器
接口·芯片·usb