阅读:1266回复:5
帮我解决问题的人,提供usb host技术支持
采用MSP430+isp1161方案,usb host这一部分基本上已经完成,只是还有点问题一直没能很好的解决,我不能实现即插即用,就是说,我要使用u盘的话,就必须在程序运行前先把u盘插上,如果先运行程序,再插u盘的话,就不能读出描述符等。不知道什么原因,如果知道的话,不仿解释一下,我可以提供其他方面的技术支持。
|
|
最新喜欢:![]() |
沙发#
发布于:2003-10-21 11:31
你是不是没做检测usb设备插入的代码?
记得好像是有设备插入的时候,有个信号线的电平会拉高,以示有设备接入。 |
|
板凳#
发布于:2003-10-21 14:40
我当然要检测u盘,使用中断方式,一旦有u盘接上就会有中断产生,这时进行设备枚举,却得不到设备描述符。但是,我将这一套过程用在已插入情况下,完全可以。
|
|
地板#
发布于:2003-10-21 15:16
你的中断允许寄存器怎么设的?
我遇到过的问题是同时允许了inserted/removed和device detect/resume会出现中断信号不停产生的现象。 后来我禁止了device detect/resume中断才好了。 不知道你是怎么做的。我这样做每次都要先运行程序才可以 在u盘插入/拔除的时候产生中断。 不过我现在的问题跟你有点象,我无法读出设备描述符。 一次也不行。 我是这样做的:先写80h 06h 0001h 0000h 4000h 进入sl811 1,写pid(setup)和endpoint地址(0) 2,设备地址(0) 3,数据长度(8) 4,写sl811数据缓冲区首地址 5,写data0_wr到ep0control 6,等待中断,读intrstatus(读到是81h,usb a done)再读ep0status(读到04h,timeout) 7,返回1 在这里就不停的循环。 你可以读出描述符了,你是怎么做的,大家讨论一下! |
|
地下室#
发布于:2003-10-22 20:37
我一时也很难跟你讲清楚,推荐一本书给你看吧,中国电力出版社的<usb外围设备设计与应用>,里面有一章讲述的很详细.
|
|
5楼#
发布于:2003-10-22 22:01
我问题已经解决了.多谢各位了.
|
|