两颗低成本的片子。
CH552不用说了,WCH的低价片1块多。
LT8920是一个只有三颗外围器件的无线模块,某创只要1块多钱。具用过的大佬说天线随便搞根导线就能发射。
所以...两个片子加起来成本也不到3块钱.
问题是.......
CH552资料只有官方的例子,本人USB以前没怎么接触过,现在在摸索。
LT8920几乎就没人用过,资料很少。
目前USB在我看来有几种解决方案
1.直接通过WCH的HID代码魔改,基本不用了解USB,但速度其实挺低的,好处是免驱。
2.通过CDC驱动来做,看起来还可以,但是貌似驱动十分蛋疼。
3.就是通过WINUSB驱动,定制化能力高,但是编码会硬核一些。
新人通过查询CH552资料到这个论坛,之后如果有更新会及时和大家分享。
等到差不多,和大家分享开源。目前只做了硬件,做开源也没全测,等没问题了再开好了。
我估计会在USB坑里爬一段时间了。
之后再去挖LT8920的坑。。。
离线
无脑winusb就好。cdc和hid吞吐率都不高,cdc有人做到了1mbps,就要写汇编代码了。推荐直接搞个ep1,双向,走bulk就好。控制可以走ep0的feature request,或者ep1的数据包自定义一个格式。不要做软件合包拆包,直接卡死最大包大小64字节,拆分合并在用户层做。简单粗暴,把尽可能多的计算放在主机。
离线
两颗低成本的片子。
CH552不用说了,WCH的低价片1块多。
LT8920是一个只有三颗外围器件的无线模块,某创只要1块多钱。具用过的大佬说天线随便搞根导线就能发射。
所以...两个片子加起来成本也不到3块钱.问题是.......
CH552资料只有官方的例子,本人USB以前没怎么接触过,现在在摸索。
LT8920几乎就没人用过,资料很少。目前USB在我看来有几种解决方案
1.直接通过WCH的HID代码魔改,基本不用了解USB,但速度其实挺低的,好处是免驱。
2.通过CDC驱动来做,看起来还可以,但是貌似驱动十分蛋疼。
3.就是通过WINUSB驱动,定制化能力高,但是编码会硬核一些。新人通过查询CH552资料到这个论坛,之后如果有更新会及时和大家分享。
等到差不多,和大家分享开源。目前只做了硬件,做开源也没全测,等没问题了再开好了。我估计会在USB坑里爬一段时间了。
之后再去挖LT8920的坑。。。
你要是对性能没有很高的要求,可以直接用 https://github.com/DeqingSun/ch55xduino
CDC在win10(也可能是win8)及以上可以免驱,描述符加好 Interface Association Descriptor 就问题不大。
如果想上winusb,配置好Microsoft OS 2.0 Platform Capability Descriptor也可以实现免驱。开发用webusb就很方便。
离线
没用过,这个是用来刷什么的?也是flash的吗
离线
我参考了坛友metro和 ljbfly 两位大佬的代码,做了一个简单版本。
基本就是在ljbfly代码上修改的。现在已经能够实现两个完全相同设备间的通讯了。
代码在这里
CH552_LT8920_WINUSB
原理图在这里
SCH
我用VS写了个简单的HEX上位机
这个上位机可以测试一下丢包率,根据ACK来测的。
在这里
VSTool
适配win7的驱动
这是适用于win7的驱动
这个方案有个坑,一个就是CH552的SPI和LT8920的SPI硬件级别的不兼容。
CH552只支持上升沿采样,LT8920只支持下降沿采样(LT8920它PDF说有个脚改一改就能支持上升沿采样,结果我发现它任何封装都没有引出所谓的这个脚,是真的奇葩,没印出来你干嘛写PDF上呢,LT8920资料很少,FAE就丢你一个DEMO,很多寄存器连PDF都没讲咋用,结果官方demo告诉你,写就是了...)
目前只能使用软件来模拟了,速度上不去。
离线
测试的话,需要两台电脑都跑SFTOOL软件,然后插上两个硬件,就可以互相通讯了。
离线
我这边试过了,这个可以相互通讯
离线
我16年的时候用GD32和LT8920做了个模块,后来就搁置了。
CH552建议用CH552T,TSSOP-20封装和LT8920看起来更协调。
离线