http://see.sl088.com/wiki/WR703_USB%E4%B8%8D%E7%A8%B3%E5%AE%9A/%E5%BD%93%E5%89%8D%E7%9A%84%E6%80%BB%E7%BB%93

Openwrt论坛

lsoltero的总结[1]

just want to take a few minutes to sum up the facts... there is a lot of information here and for someone new to this it might be a bit overwhelming.
1. All AR9331 based routers suffer USB 1.1 to USB 2.0 interoperability problems.
2. when purchasing routers from a single vendor some routers fail immediately, some routers work perfectly, some routers work some of the time. For example, I have 11 alfa AP121U routers here 5 of them fail immediately 5 of them work perfectly and one of them works some of the time.
3. the problem is somehow related to WiFi. When you disable the WiFi the problem goes away.
4. The problem can be resolved in every single case by using a passive USB 2.0 hub
5. The problem only happens with USB bulk transfers. Isochronous transfers seem to be OK.
6. the problem is not a power supply issue
7. this is not related to the place of manufacture of the chipset (happens with both korean and taiwan made chips) or version.

sqounk的总结[2]

发生补丁后总结

Actually, the chip has a hardware bug where spurious RF emissions affect the USB PLL. Of course, they will not aknowledge it as a critical bug as they found a software workaround for it.
This workaround is using some undocumented registers, and even the datasheet is normally under NDA only, which makes it very difficult for open source initiatives like OpenWrt to catch up. We basically just lost 2 years because of information obfuscation wink

you have to tweak some USB PLL bits every time you change the WiFi (init, change, reset...).
The original macro appeared publicly in QCA's github, but the merit of applying it to OpenWrt goes to the Carambola2 developers!

早期总结

This may be the final word on this whole story regarding the AR9331's USB stability issue...
Following a conversation that took place between Elektra from the Village Telco and nbd from this forum, it appeared that the "AR9331 chip only implements EHCI, so the USB port is only 2.0 compliant".
The "USB 2.0" term used by Atheros (and other manufacturers too) is rather confusing, since there can be some "USB 2.0"-labeled devices which are in fact only using Full-Speed or even Low-Speed actual protocol. The "USB 2.0" sticker only says that they passed the corresponding version USB-IF compliance, but not at which speed...
At this light, I tried several configurations, and it looks like that the AR9331 only effectively implements EHCI only and not OHCI, so only High-Speed (480Mbps) devices are supported by the AR9331 chip.
So, to summarize, i strongly suspect that:
REAL USB 2.0 High-Speed 480 Mbps devices such as 3G modems or USB drives are supported by the AR9331
SO-CALLED USB2.0 or ACTUALLY USB 1.1 Full-Speed 12 Mbps such as almost all cdc-acm devices (including GSM/GPRS modems, FTDI chip-based devices, POTS modems, GPS devices, Arduino boards, etc.) appear to work but in fact feature the strange bugs we found and do not work reliably
SO-CALLED USB2.0 or ACTUALLY USB 1.1 Low-Speed 1.5 MBps such as mice, keyboards, joysticks and Software-based USB AVR implementations do not work at all
In order for such USB Full-Speed 12 Mbps or Low-Speed 1.5 MBps devices to work with the AR9331, you need to add a High-speed hub (active or passive, it doesn't matter, provided you respect the 100 mA w/o negotiation / 500 mA max current from the USB spec) in-between.
As it looks like it really is a low-level hardware limitation and not a software OHCI driver problem, in this case they seem to work (at least for days) without problem.

有趣

  • 这是avalon为什么要用一个hub的原因吧

引用信息

以下是[WR703 USB不稳定/当前的总结]所有用到的引用信息,向这些伟大的家伙致敬:
  1. ^ https://forum.openwrt.org/viewtopic.php?id=39956&p=5
  2. ^ https://forum.openwrt.org/viewtopic.php?id=39956&p=4
 
ar9331's usb stability issue - [SOLVED]
 
 
https://gitorious.org/openwrt-oxnas/openwrt-oxnas/commit/7ec2cd8a99eeceabe74405b117f66e71790f7560

ath9k: add workaround for AR9331 USB host controller hang with USB1.1 Device

TL-WR703 USB不稳定/当前的总结的更多相关文章

  1. GD32F450 200M时USB不稳定

    使用GD32F450的demo修改usb驱动,发现120M和168M时正常,200M时很不稳定.怀疑USB时钟分频有问题,一查果然是,记录如下: 200M是库函数主时钟分频代码如下 static vo ...

  2. 劳动节BT5 aircrack-ng战记

    劳动节最后一天没事,想捣鼓一下BT5破解无线wep/wpa,BT5+virtual box早已准备就绪,上网专门找了一些资料,并买了一个据评测很兼容的usb网卡tp-link wn722n,芯片代号A ...

  3. USB Keyboard Recorder

    catalogue . 引言 . Device Class Definition for Human Interface Devices (HID) . USB HID Report Descript ...

  4. usb cdc 协议

    什么是CDC类 (Communication Device Class) USB的CDC类是USB通信设备类 (Communication Device Class)的简称.CDC类是USB组织定义的 ...

  5. Android项目实战(四十五):Usb转串口通讯(CH34xUARTDriver)

    需求为:手机usb接口插入一个硬件,从硬件上获取数据 例如:手机usb插入硬件A,A通过蓝牙通讯获取设备a.b的数据,作为中转站(可以做些数据处理)将数据(设备a.b产生的)传给手机程序. 设备A也可 ...

  6. 目前调试移动设备程序只能通过USB线缆

    就像iOS,转移(到设备上)并调试App不可能通过WiFi或蓝牙连接. 一个有线的USB线缆连接现今主要用来调试. 确保你直接将Android设备插入Mac的USB接口,避免使用USB hubs和扩展 ...

  7. 基于USB网卡适配器劫持DHCP Server嗅探Windows NTLM Hash密码

    catalogue . DHCP.WPAD工作过程 . python Responder . USB host/client adapter(USB Armory): 包含DHCP Server . ...

  8. (转)支持 PS/2 与 USB 的键盘过滤驱动(可卸载)

    Author:  sinisterEmail:   sinister@whitecell.orgHomepage:http://www.whitecell.org Date:    2007-02-2 ...

  9. 自制电脑usb红外遥控键盘

    2010-08-08 19:20:00 看个ppt,还要一直按键盘或鼠标,能不能拿个遥控器控制一下. 动动脑,自己做一个吧. 电路分2部分,遥控器为发射部分,单片机为解码部分并且包含usb键盘功能. ...

随机推荐

  1. Arduino开发常见错误

    使用Ethernet时需要指定访问服务器的ip,我用的是本机做服务器.但是有一天重启了路由器,ip地址就变了!程序得跟着改! Arduino突然烧写不了程序:可能是正在运行的程序让arduino死机了 ...

  2. ArcEngine 通过IRelationalOperator.Relation判断几何体相交

    IRelationalOperator 接口: 1. Provides access to members that determine if a certain spatial relationsh ...

  3. 《C++ primer》--第1,2章小结

    来源:http://blog.csdn.net/wangqiulin123456/article/details/8483853 1.变量初始化:      定义变量时,应该给变量赋初始值,除非确定将 ...

  4. php codeigniter (CI) oracle 数据库配置-宋正河整理

    database.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $active_group = 'default'; $active_record ...

  5. OpenCV安装要点

    OpenCV安装要点1.设置系统和用户环境变量PATH指向opencv\build\x86\vc10\bin或者opencv\build\x64\vc10\bin2.新建用户环境变量OpenCV指向o ...

  6. bzoj1036 树的统计Count

    第一次写链剖,于是挑了个简单的裸题写. 以下几点要注意: 1.链剖中的height是从根到该店经过的轻边个数 2.分清num与sum..... #include<cstdio> #incl ...

  7. Java与云计算有什么关系呢

    在如今这个信息技术高速发展的今天,云计算已经不是一个陌生的概念了,但是,当云计算遇到java将会有什么样的问题产生呢?下面,新霸哥将会为你揭晓Java与云计算之间的关系. 众所周知,java是一种应用 ...

  8. 牛课--C/C++

    引用是除指针外另一个可以产生多态效果的手段. //引用是除指针外另一个可以产生多态效果的手段. #include<iostream> using namespace std; class ...

  9. 一起来画画!8款最佳HTML5绘图工具

    HTML5无疑是当前最受宠的一项技术,今天推荐8款HTML5绘图工具,同样惊艳你的眼球!这些绘图工具大多数是用HTML5画布(Canvas)实现的,部分辅以Javascript.对每一个web设计者来 ...

  10. python实现不可修改的常量

    因为种种原因,Python并未提供如C/C++/Java一样的const修饰符,换言之,python中没有常量,至少截止2015年年末,还没有这个打算.Python程序一般通过约定俗成的变量名全大写的 ...