TI中文支持网
TI专业的中文技术问题搜集分享网站

在打开低功耗的情况下,自定义的HID-USB不能被PC识别问题

芯片是CC2540 ,协议栈是1.3.2,如果在xPOWER_SAVING的情况下,电路板接到PC的USB口是可以被识别并能正常通信。

但如果POWER_SAVING,开了低功耗,那么PC就识别不了电路板的HID-USB了,这问题应该怎么解决呢?

Yan:

QIHAO,

理解应该是POWER_SAVING的时候USB不能使用。所以。。。

user4359466:

回复 Yan:

这个是否能官方确认一下呢,确定开了POWER_SAVING时,USB不能用?

如果真是不能用,是否可以用软件来处理,

如检测到USB插入时,屏蔽POWER_SAVING,使PC枚举USB,如果是从USB切换到电池时(因为我的系统是USB跟电池两种供电方式),再开POWER_SAVING,进入低功耗。但我没有找到POWER_SAVING的开和关函数呢

Yan:

回复 user4359466:

QIHAO ,

这个这个,,,这么跟你说吧。

POWER SAVING模式下,用的是32.768K的晶振工作。这种龟速显然是没法满足USB需求的。USB至少需要精准的12M以上的速度。

所以当你看CC2540 dongle的参考设计的时候,上面是没有用32K晶振的,如果你再看dongle的代码,也是不会进入低功耗模式的。

user4359466:

回复 Yan:

hi , Y 谢谢你的热心帮助。

如果这样,那么就不能做低功耗了,因为设备是支持USB跟电池供电,如果这样的话,但现在又要兼顾USB功能 ,就不能开POWER SAVING,如果此时又是用了电池的话,那么对电池就比较耗电了。请问Y对于这问题有什么好的两个条件都兼顾的方法或思路不

Yan:

回复 user4359466:

QIHAO,

没有好的办法,如果你要用USB的话,就不能用低功耗模式,再者,USB本身就是个电老虎 🙂

user4359466:

回复 Yan:

Hi,Y,

我想到一个办法,就是软件上控制进或退出低功耗。

现在有一个IO口可以检测到目前是电池还是USB供电,当如果是电池时,就进入低功耗,如果是USB时就退出低功耗。

而关键的位置是USB的上拉电阻也是由软件控制,只有当USB接入后且退出了低功耗后,再把上拉接上,使PC识别USB有设备接入进而枚举。

进入或退出低功耗模式的代码如下(在void osal_run_system( void )中关于低功耗部分进行改动,增加一个标志位BATT_POWERED_BY进行供电判断):

#if defined( POWER_SAVING )  else  {    if (BATT_POWERED_BY)//如果是电池供电,则开低功耗    {        osal_pwrmgr_device( PWRMGR_BATTERY );    }    else//如果是USB供电,则关闭低功耗    {        osal_pwrmgr_device( PWRMGR_ALWAYS_ON );     }    osal_pwrmgr_powerconserve();    }#endif 请问这个osal_pwrmgr_device( PWRMGR_ALWAYS_ON )是否确保能让系统正确退出低功耗模式呢?因为目前用这方式测试,试过识别USB成功,但不是100%,所以还想请教一下。 其实最根本的问题就是怎么软件上控制低功耗进入跟退出。

user4359466:

回复 user4359466:

按照楼上的方法,是可以实现低功耗进入或退出,但当退出低功耗后,USB依然是未能被识别,具体原因未明,有技术支持回答一下吗

user4359466:

回复 user4359466:

上述问题经解决,注意使能USB就行。来回切换模式,USB能用,低功耗也能用

赞(0)
未经允许不得转载:TI中文支持网 » 在打开低功耗的情况下,自定义的HID-USB不能被PC识别问题
分享到: 更多 (0)