用WCH沁恒的USB_CDC代码,请沁恒官方解决

用WCH沁恒的芯片真的踩了不少的坑,很多项目都是被逼取消用了其他晶片,希望官方能大大方方的公开下实用例程,技术上就不要再有所保留了,让更多的商家用你们的产品才是道。


恳请官方提供一下https://www.wch.cn/products/WCH-Link.html 的CH549 USB-SimulateCDC 的代码,本人的一个项目中用到通讯这部份。用CH340通讯一切正常,

用WCH-Link CH549中的串口通讯也一切正常。在此恳请官方提供WCH-Link 项目中CH549USB-串口通讯这部分的代码。请发邮箱:个人信息保护,已隐藏

原因:用你们公开的ch55X USB串口CDC 模拟CH340,558模拟CH34X,S-CDC, CH554-CDC等例程代码,在大数据连续通讯几分钟就会出现通讯中断异常。而WCH-Link的串口就很正常

所以请官方不要说上面的例程了。本人实测过能通讯,但都是有BUG的。做不了项目,只能做玩具。


您好

CH55X可以参考这个链接中的例程13,模拟CDC例程进行开发,该例程仅供参考,您可以将您遇到的问题提出,协助您进行分析解决。

https://www.wch.cn/bbs/thread-65023-1.html


连接在哪里,漏发了吧。


沁恒的例程不完善是个通病。代码虽然简略,但是边界保护不足。如果用户不熟悉该功能很容易掉坑。


官方例程CDC.C 2017/03/01 我粗略看了一下,至少有两个问题:


UartByteCount -= length; 不是原子操作,可能和中断冲突。


如果length等于MAX_PACKET_SIZE(64字节),缺乏再发0长度包的机制。这样在windows上的4096字节缓冲区填满前都收不到数据。虽然用UART输入速度慢不太出这个问题,但是如果用代码直接写还是会有问题的。



TECH29 你好,用你们的代码太多坑了,花时间下去还不稳定,你给的全部代码,没一个能长时间正常传输数据的,不信自己测试。


你们公开的全部USB-CDC代码我都测试过。唯一正常有一个你们自己不公开的WCHLINK-CH549的固件,完美正常。如果能公开这个转串口部分的代码

给工程用,相信很多工程师都采用你们的方案。

现在改用了S**8H的CDC方案,一步到位完美正常,沁恒确实出不了大场面,难怪很多工程师们用沁恒都用来做小玩具而已。真正体会到了。


这个转串口代码很正常,可惜没有代码用在产品上。

icon_rar.gifWCHLINK_V1.5.rar



UartByteCount -= length; 不是原子操作,可能和中断冲突。


如果length等于MAX_PACKET_SIZE(64字节),缺乏再发0长度包的机制。这样在windows上的4096字节缓冲区填满前都收不到数据。虽然用UART输入速度慢不太出这个问题,但是如果用代码直接写还是会有问题的。

4楼,这个问题不大,我用STC-CDC,? 数据长度也定义的64字节,2Mbps速度很正常。我用沁恒官方《13,CH554模拟CDC类,win10系统免驱,win10以下需要装驱动,可以实现快速批量上下传》的代码,在USB上下传数据,长时间传输数据时响应出现问题,有个别串口调试软件还根本打不开沁恒转的串口,但用官方的WCHLINK转的串口的固件就没有问题

1683722571109634.png

1683722572882546.png



那你为什么不把STC的代码移植到沁恒的芯片里?哦!原来是库不给看代码,移植不了。

“希望官方能大大方方的公开下实用例程,技术上就不要再有所保留了” 这话也请去对STC说一遍。


另外STC的代码都不给你看,你只是用别人的代码就好意思说”这个问题不大“?


没必要移植S**,沁恒的官方代码问题也不是在环形数据缓冲和数据长度上,而是官司方提供用户的代码在USB上下传数据响应机制有问题,有些串口调试软件是打不开沁恒的虚拟串口的。


WCH-Link仿真调试器https://www.wch.cn/products/WCH-Link.html这个串口也很正常。希望官方能提供这个的CDC通讯部分的代码应用。


不妨说来看看哪些串口调试软件打不开?我也顺便测一下我这边的实现有没有问题。

https://github.com/DeqingSun/ch55xduino/blob/ch55xduino/ch55xduino/ch55x/cores/ch55xduino/USBCDC.c


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