咨询一下:CH341A的若干问题!

原设备使用并口SPP方式传输数据,用得非常好。现在在测试使用CH341A的EPP方式传输数据,发现若干问题: 1、数据传输速度极慢极慢,感觉不到原来并口SPP的1/10! 2、数据传输经常出错。测试数次,每次发送几百k字节,基本无全部正确发送的可能。 3、开始若干字节和末尾若干字节,几乎100%丢失,十分奇怪! 4、只能使用CH341EppWriteData单字节发送(每次发送一字节),发送多字节时,WAIT信号好象无效(CH341A不等待WAIT信号变高,就发了下一个字节),造成前面的数据未接收,后面的数据又发了,毁掉了前面的数据。 5、驱动已经安装,但每次开电脑,仍然出现“找到新硬件...”,十分讨厌。

注:1、设备是多任务的,使用空闲时间传输数据;原来在并口SPP下如此,现在也是如此; 2、原来在并口SPP模式下,使用普通的打印线,数据传输准确无误。现在专门搞了根USB屏蔽线,传输却频繁出错,不知是何缘故。

1-如果你使用EPP1.9模式那么在应用层要设置一下并口工作模式,默认情况下是1.7模式,请确认 2-如果驱动已经安装,理论上来说是不会在发现新硬件的,因为驱动没有经过数字签名,当你把设备拔出再插入另一个usb端口,系统会提示发现新硬件,如果拔出后再插入原来插入的那个usb端口,系统是不会发现新硬件的.


使用的是EPP1.7。每次插入的都是同一个USB端口,这个每次开机都出现“找到新硬件...”,不管你插不插带CH341A的设备,只要安装过CH341A的驱动,电脑开机就出现“找到新硬件”。我试了3台机器,都如此,可说是通病。这些都不会搞错的。

现在的情况是: 1、数据传输速度极慢极慢,感觉不到原来并口SPP的1/10! 2、数据传输经常出错。测试数次,每次发送几百k字节,基本无全部正确发送的可能。使用的是屏蔽线,线长不到2米. 3、开始若干字节和末尾若干字节,几乎100%丢失,十分奇怪! 4、只能使用CH341EppWriteData单字节发送(每次发送一字节),发送多字节时,WAIT信号好象无效(CH341A不等待WAIT信号变高,就发了下一个字节),造成前面的数据未接收,后面的数据又发了,毁掉了前面的数据。 5、驱动已经安装,但每次开电脑,仍然出现“找到新硬件...”,十分讨厌。

使用的工作模式是:CH341A拉低DS#时的下降沿,设备产生中断,接收数据,接收数据完成,设备拉高CH341A的WAIT#引脚,结束EPP周期,时序应该没错。现在的情况是只能使用CH341EppWriteData单字节发送,否则CH341A好象并不等待WAIT#信号,呼啦啦把数据连续发出。速度极慢,可以肯定就是单字节发送的原因,但多字节一起发,WAIT#信号又好象无效

使用的应用层函数是:CH341OpenDevice(0)->CH341InitParallel(0, 0)->CH341EppWriteData(0, &Buffer[0], BufLen)->CH341CloseDevice(0)


我设想的CH341A工作在EPP模式的逻辑是这样:

PC发送USB包给CH341A,CH341A解析出数据,存放在缓冲中,然后逐个字节按照EPP方式发送到下位机。


是这样的


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