CH582M 通过USB插入电脑时退出低功耗 usb虚拟U盘,拔下时进入低功耗,如何实现

需求描述及遇到问题:
芯片 CH582M 
1、正常状态下  芯片进入低功耗,开启从站蓝牙广播(1秒2次广播),功耗小于100微安 (主从一体,主只有在触发时使用)
2、  低功耗状态下,通过USB连接电脑,能正常虚拟出U盘,拔下U盘时设备进入低功耗

遇到问题:

1、低功耗使用的sleep模式, 广播加主机扫描在20ma   500ms广播时 大概在60微安  是否正常 
2、usb使用问题
    1)  usb使用时不能进入低功耗 ,那么 如何处理可以使设备在低功耗状态下检测到插入电脑,退出低功耗,断开时重新进入低功耗, usb只是初始化,并为接入电脑,功耗在 7-8mA,

     2)因为设备自身有电池供电,在第一次接入电脑时可以正常识别为U盘,如果电脑上没有通过鼠标操作弹出U盘,直接拔下usb,再次接入电脑时,usb中断中有事件提示,但不能正常识别为U盘,如果电脑上通过鼠标操作弹出U盘,则再次接入电脑时可以正常识别 

    3)蓝牙连接之后, 插入U盘会导致蓝牙工作不正常,是否需要在接入U盘时,停止广播或者禁止主站使用

模拟U盘插入时退出低功耗,可以使用GPIO的唤醒方式,选择一个GPIO,跟模拟U盘的公口外壳连接,设置为输入上拉,低电平方式进入中断。电脑的母口外壳接地。当两者相连接时,此时模拟U盘的公口外壳电平被拉低,触发中断,然后执行你的模拟U盘所需要的操作。


就是说 上电的时候默认不初始化usb功能,当检测到USB插入的时候才初始化USB功能?

如何使设备在使用usb期间,不进入睡眠模式,拔掉usb的时候使能睡眠模式,



嗯,使用USB期间,不能进入睡眠,所以需要操作一下。可以在操作USB时,设置一个flag,检测到U盘工作,则在刚进入睡眠函数时,就执行return退出的操作,这样操作U盘时不会睡眠,可正常操作。同样,拔掉U盘时,将flag取消,则睡眠恢复正常。


只有登录才能回复,可以选择微信账号登录