有关CH372或CH375的USB通讯的问题解答

用CH375做了个数据采集系统,下位机定时中断采集数据,立刻通过CH375上传数据,上位机用VB6.0做接收程序。当采样率在1kHz以下时,收发正常。当采样率较大时,如20kHz,则1秒采集的数据要20s左右才能上传完毕。测试发现每上传一个数据包大约需要1毫秒的时间,无法再缩短。请问是什么原因?是否需要修改驱动程序?是否有现成的支持快速传输的驱动程序提供(请发个人信息保护,已隐藏)。谢谢!


如果1MS一个包的话,这个速度基本上也就是62K左右,速度太慢了. 首先上传之前一定要等待上包数据结束.用端点2进行传输,每次传输字节尽量为64个,满包传输. 可以测试一下,CH375只往上传数据,看看速度能有多少,其他功能先不去理会,就一直传输数据. 首先排除你程序中其他功能对CH375的影响.优化的方法很多,关键还要看你写入CH375数据的速度有多快,假如读写子函数本身很多延时的话速度慢是必然的.上下位机分开优化.结合硬件考虑速度是否达到最大.不考虑其他对CH375的影响,CH375速度能达到500KB以上


谢谢回复。 我在主贴上看到这样一段话“由于WINDOWS要提前安排USB帧调度,所以两次USB传输之间的间隔总是会大于1mS,例如传两个64字节的包可能需要2mS,而传一个256字节的包可能只需要1mS。”是不是由于这个原因造成我的数据不能及时被上位机接收?我是不是需要把上位机的接收缓冲区调整成4096B,即下位机传64个包上位机接收1次就可以解决这个问题?请教如何做到这一点?谢谢!


每帧可以包含多个事务,在批量传输里最大可能的是19个64字节的事务.你可以算一下基本符合全速.如果你把缓冲区调整成4096B速度肯定会快很多.当然下位机也应该配合起来,双方有一个慢都不可以.


想问的就是下位机要怎样配合?因为下位机每次只能传64B。是不是应该每次上传64B后先不使用UNLOCK_USB命令释放缓冲区,等19个包传完后再UNLOCK_USB?谢谢你的耐心解答!


不是这么复杂,我的意思是下位机也要尽可能的快的上传.一定要按照原来的流程去写,不要修改.下位机的流程不需要改变.最大每次只能传64个字节,传输完毕后,会有中断通知然后接着穿下面64个字节.


收回刚才的问题。是因为我每次没传够64B,所以才不能一次接收多个包。谢谢解答!


恩,批量传输正常情况下尽量传满包,非满包认为结束.这样会耽误速度.


传输速度过慢就是因为每次是非满包,20KHz的采样率,通过批量传输实现,速度肯定是够的,下位机采用双缓冲方式,一个缓冲区满64B启动上传,另一个继续用来缓存数据。


CH375来读写U盘 U盘为FAT16格式 有一个问题:用CH375来读写U盘时,读出一个扇区后,得到FAT表的地址、大小、数量,并且得到文件目录表的地址等信息。在读文件目录表的时候,读到第14个扇区就不能正常读,舍去这个扇区不读,其他扇区都能正常读取512个字节的值。不知道为什么? 例如:某个U盘,FAT为FAT16,保留扇区=8,FAT大小为F8,数量为2,那第一个FAT的扇区号为00H 00H 00H 08H 第二个FAT的扇区号为00H 00H 01H 00H,文件目录表的起始扇区号为00H 00H 01H F8H,当读到00 00 02 05扇区的时候,不能得到512个字节的值,DISK_READ命令只能到0x1F的返回值 试了几个U盘都这样,希望指点一下,谢谢


(1)读写U盘的物理扇区,与U盘的文件系统没什么关系 (2)U盘的初始化DISK_INIT、DISK_SIZE都成功了?下载CH375EVT.ZIP,用MISCELL下的例程试试


请问,我用52单片机通过CH375芯片与PC机进行通信,CH375与单片机采用的并行口方式,两个晶振都起振,可插到电脑上没有反应。这是怎么回事呢?请指教一下,谢谢!


对CH375进行模式设置了吗?设置为模式2 和CH375通讯有没有成功?发先测试命令.关于测试命令详细参考CH375DS1,CHECK_EXIST


我是新手 请教一个问题: 我想在我的设计的电路系统上增加USB与PC通信功能,我不想更换单片机,要想实现其功能该如何设计接口电路?


单片机必须具备并口或SPI口,我们有款芯片符合要求: CH372:并口操作 CH374:并口/SPI操作 相关的电路设计,下载CH372DS1.PDF,CH374DS1.PDF,里面有电路说明


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