1、供电问题可以增加一个对USB输入的5V的检测,在单纯供电模式下,检测到该5V不存在的时候,重新启动USB模块即可;
2、不让主机提示未知设备稍微麻烦一点,因为D+存在上拉电阻,解决方法是增加一个开关控制,来控制D+的上拉电源,用三极管即可;USB模式下,打开上拉,非USB模式下,断开上拉。Host识别USB设备的原理如下:在USB集线器的每个下游端口的D+和D-上,分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备,上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。这样,当设备插入到集线器时,由1.5K的上拉电阻和15K的下拉电阻分压,结果就将差分数据线中的一条拉高了。集线器检测到这个状态后,它就报告给USB主控制器,这样就检测到设备的插入了。