Chinaunix首页 | 论坛 | 博客
  • 博客访问: 425900
  • 博文数量: 116
  • 博客积分: 7087
  • 博客等级: 少将
  • 技术积分: 1175
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-19 23:32
文章分类

全部博文(116)

文章存档

2012年(1)

2011年(2)

2010年(10)

2009年(21)

2008年(18)

2007年(12)

2006年(21)

2005年(31)

我的朋友

分类:

2008-01-02 14:48:58

How to control usb port recharging by software



一般情况,usb设备在接入主机后,会接受主机的查询。主机会将设备的配置信息一一读出,然后加载相应的驱动程序。如果一切正常,很快设备就可以投入使用了。


根据usb规范,默认情况下,每个usb port只提供100mA的电流。这样大小的电流,已经足够主机识别并配置usb设备了。


但是有时候设备需要更多的电才能正常工作,100mA就不够了。根据usb规范,每个口最多可以提供500mA的电流,但是,必须通过设置,才能输出。


我的samsung i718+是一款Windows Mobile 6的手机,Mac OS X 10.4不认识。接入USB之后,并没有开始充电。(但是同样这台机器,切换到windows xp下,安装好驱动,就可以充电)。


经过一番搜索,看了很多正式的文档。终于明白,为什么没有充电是因为在默认情下,usb port只输出100mA的电,而i718+至少要500mA才能充电。那么如何使得usb的port可以输出500mA的电,却没有具体的资料。


看到过一篇文章,讲可以修改windows xp注册表,使得手机可以利用主机充电,但我是Mac OS,对我毫无帮助;后来看到一篇blog,其中总算隐晦的提到,要使得usb port输出500mA,要使它变成配置状态。


根据这一点,去搜索了相关api,终于发现了Mac OS X 的 usb sdk中有个setConfiguration函数,而且在usb 规范中似乎看到这是个开关变量,不是1就是0。


于是修改了apple 提供的例子Usbprivatedatasample程序,在其检测usb设备的地方,加入了修改configuration的命令。


经过编译,测试,果然成功了。(充电的灯亮了)



  

文件:USB.zip
大小:5KB
下载:下载
阅读(2852) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~