用USB代替网络通讯(2)—自制开发板上实现的解决故障过程

任务动机:在自制RK3399开发板上实现基于openEuler的usbnet

任务描述:在两个RK3399板子上分别烧录openEuler系统,编译内核实现usbnet的通信。通过比较不同开发板的电路设计原理图,内核源码,定位故障原因;通过修改硬件电路和内核,解决故障。

1. 自制开发板的踩坑与解决

        这次准备测试两个RK3399之间使用usbnet进行直接通信,如果测试成功,那么将来开发机器人系统的话就可以省下网卡和网络接口了!正好同隔壁组那边有一个基于RK3399定制的板子,这次借过来进行一下开发板间通过usbnet通信的测试。

1.1 出师不利

        由于之前做过了开发板和电脑之间使用usbnet进行通信的测试,这次轻车熟路,直接开始安装usbnet的驱动,之前的链接:https://blog.csdn.net/zhzwang/article/details/109304765。本来认为可以很快进入到测试阶段的,没想到usbnet模块成功加载后,由于type-c口插入device不供电,导致usbnet失败。 

输入图片说明

         如上图虚拟网卡usb0设备启动,使用type-c转usb线连接Windows电脑,Windows下没有应有的RNDIS设备,如下图。

输入图片说明

        测试type-c口连接U盘,U盘无供电反应,该不会usb OTG根本没有启动吧…

输入图片说明

1.2 定位问题原因

        如果是软件的问题的话,usb0应该是无法枚举上的,想着会不会是电路不支持呢?拿着板子去隔壁组问了一下,得到了板子肯定可以支持OTG的回复。分析可能性有以下两种情况:

  1. 操作系统问题,原板载内核源码不支持
  2. 硬件电路问题,电源或设备检测线没有连接

1.3 问题排查

        首先对比该板子和Firefly RK3399(支持usbnet)内核代码。哈!发现有部分被注解删除掉了!被删除部分的代码和usb OTG相关联。

......省略.......

&usbdrd3_0 {
	extcon = <&fusb0>;//加进去
	status = "okay";
};

......省略.......



&i2c4 {
	status = "okay";
	i2c-scl-rising-time-ns = <475>;
	i2c-scl-falling-time-ns = <26>;
    fusb0: fusb30x@22 {
		compatible = "fairchild,fusb302";
		reg &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值