Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
CherryUSB
USB
AX88772C网卡适配笔记
发布于 2022-04-18 22:02:38 浏览:1709
订阅该版
[tocm] 继上次[适配RNDIS](https://club.rt-thread.org/ask/article/3455.html)后,一直想进行烤机测速,奈何CAT1的速率有限,流量也伤不起(手上最大的流量卡也才150GB),于是打算移植一款USB以太网。 某宝搜了一圈,共买了2款百兆USB以太网卡,都说是免驱的。 结果其中一款插上PC出来一个光盘,里面有个exe,安装好以后就**免驱**了🐷。 好在另外一款芯片是AX88772C,这芯片在14年做[LIFI](https://baike.baidu.com/item/%E5%8F%AF%E8%A7%81%E5%85%89%E6%97%A0%E7%BA%BF%E9%80%9A%E4%BF%A1/16268518)项目时还用过,就他了🤞。 这芯片在官网有驱动代码下载,linux kernal也有其驱动代码,所以要适配起来应该还是相对容易的。 要想让USB HOST能识别芯片,首先要写class驱动。 ```c // Class:0xff,Subclass:0xff,Protocl:0x00 static const struct usbh_class_driver axusbnet_class_driver = { .driver_name = "axusbnet", .connect = usbh_axusbnet_connect, .disconnect = usbh_axusbnet_disconnect }; CLASS_INFO_DEFINE const struct usbh_class_info axusbnet_class_info = { .match_flags = USB_CLASS_MATCH_VENDOR | USB_CLASS_MATCH_PRODUCT | USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL, .class = USB_DEVICE_CLASS_VEND_SPECIFIC, .subclass = 0xff, .protocol = 0x00, .vid = 0x0b95, .pid = 0x772b, .class_driver = &axusbnet_class_driver }; ``` 接下来要要移植驱动代码,仔细阅读了其它驱动代码,发现整体结构还是很不错的,主要是需要适配下这几个接口 - ax8817x_read_cmd - ax8817x_write_cmd - ax8817x_mdio_read - ax8817x_mdio_write 有这几个基本API后,我们就可以适配具体的操作代码了。 这里我们尽量沿用原来的代码,不兼容的地方做一些适配,这样可以少写很多代码。 具体看这个提交 [porting](https://gitee.com/RT-Thread-Mirror/CherryUSB/commit/7a59dfff4145fbba5a70b84571e793aa1cda7de4) 适配好基本的操作后,就可以尝试收发数据包了。 这里有遇到一个坑,就是使用开始使用全速HOST,所有的操作都正常完成,最后也能收数据包。 但是发送数据包,只有第1个数据包能发出,后面的数据包,USB上面可以看HOST的OUT包,网卡也有ACK。 一度调自闭了都,仔细对比没有发现任何差异,也对比了linux的驱动,也没发现哪里明显不对。 但PC上面就是收不到,都发邮件给原厂求助了。 然后隔了几天插到High speed的HOST上面,然后代码一行没改竟然完全好了🐶🐶🐶。。 ## 代码参考 - https://github.com/sakumisu/CherryUSB/pull/22 ## 后续计划 要不找个支持USB3.0 HOST的平台,试试AX88179千兆网卡🙉?
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
aozima
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
文章
28
回答
4482
被采纳
381
关注TA
发私信
相关文章
1
请教USB Host
2
STM32F4调试USB 读卡器(Slave)提示格式化
3
急求 STM32F4 USB Device MSC+SD 的相关问题
4
USB 框架问题
5
USB键盘
6
LPC17xx 如何添加USB HOST设备
7
RT-Thread目前支持USB HOST了吗?
8
USB HOST的支持问题
9
RTT 2.0.1 USB存储设备问题,枚举到USBREQ_GET_MAX_LUN后复位
10
USB库已经很久没更新了
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
9
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部