全部博文(116)
分类:
2008-01-02 14:48:58
一般情况,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的命令。
经过编译,测试,果然成功了。(充电的灯亮了)
|