ch32 v208 usb全速主机 如何设置端点数据包最大接收长度

v208 usb host 4g rndis模块,bulk in 批量传输,中断响应UIF_TRANSFER,读取RX_LEN ,同时抓包 ,发现数据包大于64,最大到512,  但是在枚举端点描述符的时候,设备返回的wMaxPacketSize是64,且这个模块在windows上面是返回DATA 64字节的(抓包)。

查了一下手册, R16_UH_RX_MAX_LEN 寄存器高速的才有,全速的找不到,请问怎么设置,或者哪个步骤有问题?


你好,USBFS除了同步传输,正常的最大包长是64字节。可以看下数据是否正确,主机RX LEN寄存器是USBOTG_H_FS->RX_LEN


读的寄存器是USBOTG_H_FS->RX_LEN? 0x50000008,? ? 超出64的部分读出来的数据也是正确的,最大包变成了512了。

而且是几个 rndis 包粘在一起了,正常我的理解是 一次事务一个包,然后TRANSFER中断响应一次,我处理包。 现在一次事务多个包在里面,且有时候出现半包,下次中断响应接收到剩下的。


你好,这边搭的环境测试是正常的,可以把代码、相关打印和抓包的截图发到邮箱zc@wch.cn


截图如下512KB.png


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