12121|23

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

USB OTG驱动 [复制链接]

设备上USB客户端是没问题了,现在想把USB HOST加上去.
driver已经有现成的,可能注册表哪里没设置好,U盘插上后,没反应,灯是亮了(表示供电正常),做过这个的人帮忙看看.
注册表设置为:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USBOTG1]
    "Prefix"="OTG"
    "Dll"="usbotg1.dll"
    "Index"=dword:1
    "Order"=dword:4
; InterfaceType: Pcibus
    "InterfaceType"=dword:5
; USBOTG system interrupt number,commented by Rushon   
    "SysIntr"=dword:A
    "Priority256"=dword:64
          "MemBase"=dword:99000000
    "MemLen"=dword:4000
    "HnpPriority256"=dword:60
    "PortNum"=dword:1
                "BusIoctl"=dword:2a0048
    "LegacyHost"=dword:1
; Data memory size in byte
    "DMSize"=dword:200
; OTGPortMode values: 0 - Hardware HNP; 1 - Host only; 2 - Function only; 3 - Software HNP;
    "OTGPortMode"=dword:0
; TransceiverType valuse: 0 - Tx differential, Rx differential; 1 - Tx differential, Rx single-ended;
;                         2 - Tx singled-ended, Rx differential; 3 - Tx single-ended, Rx single-ended;
    "OTGTransceiverType"=dword:2
    "HostTransceiverType"=dword:2
    "IClass"=multi_sz:"{A32942B7-920C-486b-B0E6-92A702A99B35}","{E2BDC372-598F-4619-BC50-54B3F7848D35}=%b","{6F40791D-300E-

44E4-BC38-E0E63CA8375C}=%b"
   
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USBOTG1\OTGHOST]
    "Class"=dword:06
    "SubClass"=dword:80
    "VendorID"=dword:105B
    "DeviceID"=dword:9030
    "ETDCount"=dword:8
    "Priority256"=dword:64

最新回复

各位大侠,你们的问题解决的怎么样了?小弟最近也碰到这个问题,硬件接口已经调好,正在写usb otg HOST 驱动,郁闷啊!不知如何下手,各位给个建议吧,谢谢!  qq:191300850  详情 回复 发表于 2010-3-25 18:08
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
xqhrs232同学来解答下吧. 
我搜到你之前也遇到这个问题的,一模一样的问题,呵呵.
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
"U盘插上后,没反应"??
USB系统是通过简单的数据线上的电平变化检测到USB设备的接入和移出的.
所以可能不一定是注册表有问题.
可以先看看USB设备硬件是否正常.
如果USB设备正常,设备管理器会探测是否接入USB设备,然后设法加载驱动。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
U盘本身是没问题的,插在pc上可以读写。
呼唤牛人。
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

5
 
茫茫人海,这么容易的淹没了我的帖子...
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

6
 
是HOST?还是OTG?两者实现是不同的。
不过不管哪种,你得先确认你的板子是支持HOST或者OTG功能的。尤其是OTG,必须要有ID脚实现切换和识别的。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

7
 
lz检查一下D+和D-这2个pin脚的电平是否正常,他们应该是一高一低的,还有这2个脚是否有上拉
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
不好意思说错了,lz看看host两端的D+和D-上是否有15k的下拉电阻。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

9
 
谢谢楼上的两位,
1,下拉电阻没加,等会加了验证下.
2,我用的OTG功能,OTG应该包含了HOST吧.
ID脚悬空了...
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

10
 
我记得当时解决插U盘不识是因为,OTG要维持一个状态机,一个状态之后会进入另一个状态,比如:a_idle ---> a_virse --->a_host(大概这样),如果状态机不能循环很有可能就死在那边了,你去查查看看
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

11
 
OTG支持HOST功能,但是需要触发条件(不然怎么知道自己应该作为HOST还是Device?),协议规定的条件就是ID脚。这也是为什么MiniUSB接口是5pin,而常用的USBA/B口都是4Pin。

要作为HOST,必须在D+/D-上接15K下拉电阻,当设备端在D+或者D-上接了1.5K上拉电阻时,可以识别出是FullSpeed还是SlowSpeed设备。

要作为OTG,在芯片内部支持自动切换15K下拉或1.5K上拉(接在D+或者D-上),以应对自己作为HOST或者Device。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

12
 
谢谢shuiyan,解释的很清楚。 也就是OTG不支持USB A/B接口吧?
引用 10 楼 shuiyan 的回复:
OTG支持HOST功能,但是需要触发条件(不然怎么知道自己应该作为HOST还是Device?),协议规定的条件就是ID脚。这也是为什么MiniUSB接口是5pin,而常用的USBA/B口都是4Pin。

要作为HOST,必须在D+/D-上接15K下拉电阻,当设备端在D+或者D-上接了1.5K上拉电阻时,可以识别出是FullSpeed还是SlowSpeed设备。

要作为OTG,在芯片内部支持自动切换15K下拉或1.5K上拉(接在D+或者D-上),以应对自己作为HOST或者Device。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

13
 
uping
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

14
 
最近也是被OTG问题搞得很郁闷。
我的板子无法转换为host状态。
有关OTG相关的资料在哪里会有吗?各位推荐一下吧。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
楼上的兄弟, 了解下otg的硬件先,http://www.gd-emb.org/detail/id-45055.html
如果你的板子既要做HOST又要做Device,那你的ID脚一定要接通,如果只用作HOST,你可以把ID脚接地就行了.
系统中断号要设置对.
不过我的BSP里面把系统中断已经内定了,所以注册表中的中断号是没有用的.
但是一般下面的项要设好:
; OTGPortMode values: 0 - Hardware HNP; 1 - Host only; 2 - Function only; 3 - Software HNP;
    "OTGPortMode"=dword:1
如果只用作HOST,设1就行了,如果既要做HOST又要做Device,那就得选3了,当然硬件上ID脚也要接通到miniUSB上.
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

16
 
现在U盘插上,中断是被捕获了,不过一直有中断...
Wait for reset successfully and port is enabled...
@@@USB interrupt!,status:2 @@@
@@@ HOST! @@@
@@@ HOST interrupt handle @@@

HnpStateProc:g_dwCurOtgState=0x15,dwEvent
CHub::AttachDevice-port=1,fIsLowSpeed=0,fIsHighSpeed=0

以上输出一直循环.

g_dwCurOtgState=0x15 对应的状态是:A_WAIT_VRISE, dwEvent=0x12对应的事件是 "Remote device connected to OTG port"

状态死循环了?
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

17
 
昨天试了一下,用MINI-USB OTG接了一个U盘,没有产生任何中断,串口输出没有任何反应。
我把ID给悬空了,想让我的板子做HOST,具体怎么搞?
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

18
 
搞了一天,我的问题解决了,LZ你的问题解决了没有。
但是似乎还是没有弄清楚原理。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 1 楼 rushonin 的回复:
xqhrs232同学来解答下吧. 
我搜到你之前也遇到这个问题的,一模一样的问题,呵呵.


我的也没搞定,现在都没搞!!!
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

20
 
如果只做HOST用的话,把ID脚简单接地就可以.
暂时没时间搞这个问题了,
中断已经能成功捕获了.
我猜可能是硬件信号问题,
就是状态一直在切换.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表