请教:USB设备的复位问题

fishly_0 2009-11-04 11:40:26
我在我的板子上(wince系统)上接入一个usb设备,wince系统起来后,是可以正确的加载这个设备的驱动的。 我现在想对这个设备进行复位,该怎么做呢?
我将VCC直接断掉,然后再重新上电,可是我发现系统无法正常的识别和加载usb设备了。
但是很奇怪的是,我将usb设备放在Demo板上使用,然后我对Demo板进行掉电,上电,wince就可以正常的加载usb设备。 因此我想是不是不能直接给usb设备掉电。 对usb的咚咚不熟,知道的兄弟指点下,如果要复位一个usb设备,该怎么做呢? 就是要通过控制相应管脚的电压,达到拔插设备的效果。
...全文
550 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishly_0 2009-11-19
  • 打赏
  • 举报
回复
通过控制usb5V,解决了这个问题了。
fishly_0 2009-11-13
  • 打赏
  • 举报
回复
谢谢各位兄弟的帮助!
fishly_0 2009-11-13
  • 打赏
  • 举报
回复
楼上的兄弟,我对自己的板子也是 直接掉电,但是跟Demo板的直接掉电的情况就是会不一样。 问usb设备的人,他们说Demo板上也没有做特殊处理。 真是感觉很不解啊。 为啥用我自己的板子时,D+就会提前为高呢?
HeyMe 2009-11-09
  • 打赏
  • 举报
回复
应该是枚举的过程失败了吧。
这两种情况的区别是Demo板是整个板子断电,你对自己板子是VCC掉电,是整个电路都掉电吗?你的板子上USB接口的VBUS(5V)也需要一起掉电。有可能是USB Device部分还没有完成初始化,主机就检测到D+高电平,然后发送请求,这样就会不成功。
不知道对你有没有帮助。
博说医械研发 2009-11-06
  • 打赏
  • 举报
回复
当USB HOST时时检测D+的电平,如果发现是高就会认为有设备插入,就会向设备发送枚举信息,需要设备的回复,可能是因为你的设备没能及时回复HOST的信息,所以才会失败的。
fishly_0 2009-11-06
  • 打赏
  • 举报
回复
up一下
fishly_0 2009-11-05
  • 打赏
  • 举报
回复
楼上的两位兄弟,我用示波器量了 D+上的电平变化,只要是在usb设备工作起来后,D+再变高的话,就可以正常工作; 如果D+在设备正常工作之前就变高的话,就会出错。 usb的信号不是系统控制的吗? 难道电路上要做处理?
博说医械研发 2009-11-04
  • 打赏
  • 举报
回复
不仅要给device断电,还要保证断电的情况下D+是低电平。然后再上电应该就可以了
DISINHUI 2009-11-04
  • 打赏
  • 举报
回复
可以使用所谓的软复位技术,其实只要将USB设备电源以及信号线断开就可以了。
注意先断开电源,后断开数据线。
注意系统电源的设计,和具体的USB芯片有关系,关系到上电复位时间,进而决定复位电路的设计。

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧