使用CH376能否将手机当成U盘来访问? (376使用HOST模式) 我用376读写普通的U盘没问题,但接上手机却没反应,请问是什么原因?难道手机里还要驱动吗?
只要手机接到计算机上面是一个U盘就可以访问的。还有你所谓的没有反应是上面意思?
首先感谢 hcn 的回复! 具体情况如下: 手机连接到电脑可以显示为U盘,但连接到CH376时,手机没有反应(无任何提示),对376使用CMD_TEST_CONNECT命令后,返回值一直为00(而我接U盘则返回14H,什么都不接则返回82H,这表示接U盘正常)。 我的硬件是采用两线的UART连接,目前对常用的U盘的读写都正常,唯独手机不行。
刚刚又试了下,我的手机是中兴的移动定制机,无法识别,而另一台HTC G13则连接成功。等下再试下文件的读写。
对HTC手机的文件操作也正常 与中兴手机连接时,为什么对376使用CMD_TEST_CONNECT命令后,376返回值为0?这个0表示什么?数据手册好像没有00H这个中断返回值啊
应该是可以的。手机有些特殊一些。 1:供电 2:设置 进行操作枚举的时候需要较大的电流,当然你这个还没有操作,但是必须保证VBUS上有足够的电压,否则手机是无法检测到有HOST连接的。 如果上述正常,接入手机后,用万用表测量一下UD+上的电压,正常的应该为3.3V左右。如果UD+上有这个电压,则你看一下INT引脚是否有低电平,最好用示波器看一下,是否有一个脉冲
1.供电电压4.94v 试着将电压提高到5.2v还是不行,UD+的电压为3.0v,接U盘时为3.1v,加个47K上拉上升到3.2左右,手机还是不能检测到USB连接。 2.接上U盘或手机INT管脚都是有脉冲的,而且波形基本上差不多。
感觉到主要是手机无法检测到USB的连接。
仔细看了一下,上面讲错了,CH376使能检测到中兴手机的连接事件的就是说发送CMD_TEST_CONNECT命令后返回值为14H,是不能初始化,使用CMD_DISK_MOUNT命令后得不到正确的返回值(为00H)。这里还有别的命令需发送吗?
尝试跳过CMD_TEST_CONNECT测试,但由于手机不能检测出数据线的连接,无法设置为U盘模式,所以后续的文件访问操作也不能进行。
现在使用DISK_INIT命令也不管用,但使用CMD_AUTO_SETUP命令后,一切操作都正常了,看来《CH376 编程指南》上的初始化步骤是专门针对U盘的简化操作了,而中兴的这款手机就比较特殊一些了。 再次感谢 hcn 和 红桃六 两位工程师的技术支持!
这个具体情况要具体分析,比如可以循环做CMD_DISK_MOUNT直到成功。有时候必须要选择好模式才对USB HOST的命令进行应答。
我试过循环做CMD_DISK_MOUNT,但是手机一直没响应,现在的做法是用CMD_AUTO_SETUP命令替代CMD_TEST_CONNECT命令,中断返回成功后再做CMD_DISK_MOUNT测试。而且CMD_AUTO_SETUP也能检测出USB的断开与连接事件,正好可以满足我的需求。 感觉CH376这个芯片很不错,对于我们这些不懂USB的来说简直就是神器!