打印

嵌入式设备通过USB连接到PC后,*下位机*可选择切换设备类型,

[复制链接]
1338|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Isara|  楼主 | 2013-8-28 18:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Isara 于 2013-8-29 11:30 编辑

最近需要做这样一个功能,下位机(ARM7,无操作系统)可以作为Mass Storage device和Usb audio device两种不同的设备,并且在连接到PC时,*下位机*可以选择设备类型。
不知道如何实现啊,希望有大神指点一下...
没有大神,有做过的老手说说经验,提示提示也好....谢谢啦

可能没说清楚,补充一下,就像大家的手机一样,用USB接到PC上,可以选择相机啊,存储器啊等设备

相关帖子

沙发
kokoromi| | 2013-8-29 16:45 | 只看该作者
本帖最后由 kokoromi 于 2013-8-29 16:47 编辑

这个好办,需要做的就是要编写两套枚举代码,一套用于枚举成大容量存储设备,另一套用于枚举成音频设备,下位机可以用菜单来实现,选择某个菜单就软断开USB连接(断开D+上拉电阻)然后再连接USB(连接D+上拉电阻)并枚举成需要的设备类就可以了。

PS:软断开和软连接之间需要有一段时间延迟。

使用特权

评论回复
板凳
Isara|  楼主 | 2013-8-30 13:32 | 只看该作者
kokoromi 发表于 2013-8-29 16:45
这个好办,需要做的就是要编写两套枚举代码,一套用于枚举成大容量存储设备,另一套用于枚举成音频设备,下 ...

只需要reset USB吧?需要reset芯片吗

使用特权

评论回复
地板
Isara|  楼主 | 2013-8-30 15:05 | 只看该作者
kokoromi 发表于 2013-8-29 16:45
这个好办,需要做的就是要编写两套枚举代码,一套用于枚举成大容量存储设备,另一套用于枚举成音频设备,下 ...

还有下位机如何检测USB插入?

使用特权

评论回复
5
kokoromi| | 2013-8-30 20:47 | 只看该作者
Isara 发表于 2013-8-30 15:05
还有下位机如何检测USB插入?

设备软断开再软连接主机就会重新检测并枚举设备,肯定也会复位设备的啊;
检测USB插入是Host的事儿吧,下位机需要做的就是处理好Host发送的复位、挂起还有USB请求就可以了。

使用特权

评论回复
6
Isara|  楼主 | 2013-9-2 11:05 | 只看该作者
kokoromi 发表于 2013-8-30 20:47
设备软断开再软连接主机就会重新检测并枚举设备,肯定也会复位设备的啊;
检测USB插入是Host的事儿吧,下 ...

谢谢,差不多清楚了,就是想再问一下,切换设备能不能不复位arm,只是重新枚举另外的USB设备

使用特权

评论回复
7
kokoromi| | 2013-9-2 20:49 | 只看该作者
Isara 发表于 2013-9-2 11:05
谢谢,差不多清楚了,就是想再问一下,切换设备能不能不复位arm,只是重新枚举另外的USB设备 ...

切换设备的过程是:断开D+上拉电阻 > 延迟一段时间 > 重新连接D+上拉电阻 > Host检测到设备插入重新枚举设备
在枚举的过程中就会复位USB模块的,比如在设置地址之前。复位会触发USB模块的复位中断,在中断里处理你要处理的事情就行,这个复位和你arm的复位没关系,Host只是在D+-差分信号线上产生一个复位电平来复位arm里的USB模块而已。

使用特权

评论回复
8
Isara|  楼主 | 2013-9-3 15:52 | 只看该作者
kokoromi 发表于 2013-9-2 20:49
切换设备的过程是:断开D+上拉电阻 > 延迟一段时间 > 重新连接D+上拉电阻 > Host检测到设备插入重新枚举 ...

十分感谢你的回答

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

67

帖子

0

粉丝