ch375设备模式下传输速率问题

我现在375用作设备模式下向pc传输数据速率只有大概10k/s(内置固件模式),若是再加快上传的速率就会产生丢包,请问有可能是什么问题呢,有没有上位机接受数据的例子呢。好多天了,苦恼

上位机发送IN令牌的速度是多少? 单片机通过CH372芯片发送数据的处理步骤如下: ①、 单片机执行WR_USB_DATA命令向CH372写入要发送的数据; ②、 CH372被动地等待USB主机在需要时取走数据; ③、 当USB主机取走数据后,CH372首先锁定当前USB缓冲区,防止重复发送数据,然后将INT# 引脚设置为低电平,向单片机请求中断; ④、 单片机进入中断服务程序,首先执行GET_STATUS命令获取中断状态; ⑤、 CH372在GET_STATUS命令完成后将INT#引脚恢复为高电平,取消中断请求; ⑥、 由于通过上述GET_STATUS 命令获取的中断状态是“上传成功”,所以单片机执行 WR_USB_DATA命令向CH372写入另一组要发送的数据,如果没有后续数据需要发送,那么 单片机不必执行WR_USB_DATA命令; ⑦、 单片机执行UNLOCK_USB命令; ⑧、 CH372在UNLOCK_USB命令完成后释放当前缓冲区,从而可以继续USB通讯; ⑨、 单片机退出中断服务程序; ⑩、 如果单片机已经写入了另一组要发送的数据,那么转到②,否则结束。 也就是说如果上位机没有取走上次写入的数据,你继续向端点缓冲区写数据,就会覆盖前面的数据,造成丢包的现象,所以过程必须是上位机取走数据后你再往端点缓冲区写数据。在单片机往端点写数据速度一定情况下,此时取决于上位机IN令牌的速度


因为效果不理想这个项目取消了,所以也好多天没在跟进了。这几天没什么事,还是想把之前遇到的问题解决下,因为上位机程序是另外的同事写的(她对usb也是一窍不通。。。)基本就是根据你们提供的例程简单的修改的。请问特雷西大神,我在固件里按照你们的例程把往单片机往端点写数据的操作放到了单片机的中断服务程序中,也就是上位机每取走一次数据(64字节)数据我就写一次(64字节),这样的话是in令牌的发送速度成为决定整体速度的短板了吗


我是用的你们提供的ch372/375接口驱动,是不是也对速度有限制


如果上位机连续读的话,上位机的影响是较小的,你的下位机是用的总线还是模拟IO?模拟IO会比较慢,可以先用我们的测速度的例子,在CH372EVT里面有。


用的模拟io口方式,本来是用总线的,不过挂了2个不同频率的片子,调了半天没成功。 谢谢回答 我再去试一下


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