我想使用ch375a的issue_token命令完成requiry命令,(前面的获取描述符及最大逻辑单元都已成功)。先发送WR_USB_DATA7命令,然后写入cbw的长度31,再接下来给ch375a发送31个cbw命令字(命令字我查过了,应该没问题),设置发送同步为0后,再使用issue_token和 DEF_USB_PID_OUT命令 将cbw发到设备端(使用端点0)。这些操作完成后,ch375a返回USB_INT_SUCCESS,但是再使用DEF_USB_PID_IN 命令读数据的时候却没有再收到中断状态,程序一直在等待中断,(接受同步我也设置为0了),这是为什么啊?是不是我这样使用外置程序完成bulk-only传输不对啊?请各位前辈帮帮忙啊
我想问问进行bulk-only传输是不是向u盘中的bulk-out和bulk-in端点通过ch375a的issue_token命令的out和in令牌发送和接收cbw,csw就可以完成啊?能不能给说说通过ch375a进行bulk-only传输的流程
(1)issue_token命令是进行控制传输,不能用于BulkOnly传输 (2)BulkOnly传输(CBW,CSW)是通过批量端点进行传输
那么ch375a有没有相关命令进行bulk-only传输呢?
CH375内置一些通过BulkOnly传输操作USB存储设备的命令,以"DISK_"为前缀。
ch375的资料上说是也支持批量和中断传输的,那么如果我想进行批量传输和中断传输的话,应该调用哪些指令?
ISSUE_TKN_X或ISSUE_TOKEN可以进行批量或中断传输,操作流程参考CH375DS2.PDF
那么bulk-only传输是不是建立在批量传输上,通过in和out令牌封包发送命令,数据和状态呢?
是的,另外DISK_BOC_CMD命令比ISSUE_TKN_X或ISSUE_TOKEN更简单,它会自动封装令牌包,启动批量传输,无需要用户设定PID以及端点号
我没有在ch375的资料中找到你说的disk_boc_cmd命令,你说的是不是disk_read和disk_write命令呢?另外我如果要进行批量传输,那么需要设置ch375内部寄存器吗,ch375是不是再我发送out令牌后会将主机发送缓存中的数据全部填到数据封包中的数据域中发送出去?
(1)这个命令在CH375DS2.PDF中 (2)CH375是命令驱动,没有用户寄存器,对于批量传输,只要事先准备好数据和令牌包,执行ISSUE_TKN_X或ISSUE_TOKEN即可
嗯 找到了。 (我手上的资料还是原来的版本,所以一开始没有找到)。非常感谢
有个问题还想请教一下 就是我使用disk_boc_cmd命令读取一个扇区的数据,扇区字节数是512字节,但是主机端缓存不是只有64字节吗? 我怎么才能将这512字节读完呢?
循环的读取8次数据,每次读取64字节,最后一次中断状态为操作成功