对于U盘读写模块的CMD_DirectWrCmd的中断返回

在使用CMD_DirectWrCmd的时候 发现底层操作的时候,有一些的命令是需要中断返回的。 但是我用的是U盘读写模块,并不是用CH375直接和单片机连接,无法读取中断 请问这个问题怎么解决? 我想用 延时+GET_STATUS 可以么?那么可以延时多长时间

你发封邮件到我们技术信箱,我们给你回一段程序过去吧。


好的,谢谢, 我邮件的题目也是“对于U盘读写模块的CMD_DirectWrCmd的中断返回”[Emot]23[/Emot][Emot]23[/Emot]


其实即使是有中断产生的命令,也可以发通过读取命令来获取中断状态。比如成功设置主机模式之后,插上U盘之后,375会产生个检测到连接的中断,这时候如果发57 AB B5 00的读取命令,就会返回:00 01 15。0X15就是检测到连接的中断状态。


谢谢欧~~~~ 出现新问题了........5555555 我插上U盘以后,按照ch375ds2.pdf后面的外部固件参考流程,想GET status 步骤1返回的中断是55 2 3 步骤的中断是15 这是U盘连在模块的情况,这种情况下CMD_SET_USB_MODE返回的中断都是15 而不插U盘的情况下返回的是51

还有什么是外置固件模式,内置固件模式?? 谢谢


内置固件实际上就是将一些USB通信的协议写好了,固化到芯片中,直接就可以使用的,而不需要涉及USB协议这一部分; 外置固件则是需要用户自己写USB协议这一部分,例如同步,发送令牌等等。 如果U盘先连在模块上,发CMD_SET_USB_MODE命令,其实是先返回操作状态0X51,紧接着才返回的检测到U盘连接的中断状态0X15。 你主要是想用我们芯片做什么,其实按你上面说的,尤其是如果采用外置固件模式时,直接采用芯片而不是模块,处理起来要简单的多。


呵呵,我对硬件方面的知识不是太懂,原想买了U盘模块能减少硬件设计上的困难, 不过现在看来,确实有很多不便。 我想用这个U盘读写模块和打印机通讯, 不能用模块里面下载好的程序了,只能通过底层硬件的读写直接来进行了, 不知道这种方法可行不?楼上否给点意见。


你是想用我们的芯片来操作打印机吗?这样的话,建议你还是直接操作芯片,而不是模块。通过硬件底层命令来操作的话,相对直接操作芯片来说会更复杂。 芯片和单片机的硬件连接并不复杂,可以直接参考芯片说明文档上给出的电路图,并且我们提供一个375做主机操作打印机的例子程序(CH375HST\PUB\USBPRINT\CH375PRT.C)。


十分感谢你的建议。 确实每次都是发串口的同步命令,效率很低。 我想问一下,会不会是因为串口的通讯速率而影响到USB的通讯,或者导致CH375的某些状态检测不到呢? 如果不影响的话,或者是别的影响的话,我想暂时就使用模块来了,我对硬件调试真的没有什么信心>_<

还有就是你在7楼说得“如果U盘先连在模块上,发CMD_SET_USB_MODE命令,其实是先返回操作状态0X51,紧接着才返回的检测到U盘连接的中断状态0X15。” 我用的是串口的通讯,波特率57600 说明书上说命令和数据之间最大为100uS,我使用GET_IC_VER,能收到a4 好用, 但是中断状态在CMD_SET_USB_MODE读不到0x51让人很郁闷。


还是建议你直接操作芯片的好,电路图之类的也不复杂,我们提供的例子程序做到了枚举这一步,客户只需要按打印机的数据格式进行发送数据即可。


我想问一下,“如果U盘先连在模块上,发CMD_SET_USB_MODE命令,其实是先返回操作状态0X51,紧接着才返回的检测到U盘连接的中断状态0X15。” 这个0x51中断状态能保持多久,0x15的连接中断是不是总在不断的刷新?? 我用其他的命令也是,总读出0x15,是不是不及时读取,中断状态就被刷掉了?


对于操作芯片来说,只要前面测试命令正常通过的话,设置模式都能成功的,也就是说前面测试命令正常通过的话,可以不去读取操作状态0X51。


我想问一下其他的操作也是这样的么? 比如ISSUE_TKN_X 有的时候我读取的是15,有的时候是0x55(不知道什么意思) 这个可能是什么原因?


后续的操作都应该是一样的,如果你想直接操作375芯片的话,那你还不如直接用单片机接一个375芯片呢,用这种方法即浪费钱,速度有慢。


我正准备在买一个芯片,不过手里的模块,程序都写完了,就是调不通,心里很不甘,至少让我知道为什么不能行,我都调了一个多礼拜了. 我再详悉的说一遍,我使用的是U盘读写模块,现要实现收发USB的标准设备请求, 在模块上接U盘进行实验. 遇到情况: 1,在GET_DESCR ISSUE_TKN_X 等明令之后,读取中断状态,经常是0x55再读就是0xaa,依次循环,这些信号在说明文档中都找不到. 2,还有读取中断的时候经常能读到0x15这个数据,是不是设备的连接状态每隔一定时间自动检测,还是硬件接触的问题? 希望能够帮我解答一下..


实际上有一种更好的办法,我们的模块上面的控制主控芯片的51单片机,你可以直接用KEIL编译器将程序编好之后烧到模块里面去,就相当于51单片机+375芯片操作你的USB设备,在你程序的一开始需要加上给375复位的程序,也就是: P1。0=1; P1。0=1; P1。0=0; P1。0=0; DELAY_50ms(); 下面的操作直接用我们的CH375HST。ZIP里面的例子来枚举你的设备就可以了,硬件连接图和我们的375评估板的硬件连接是一样的。


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