两颗低成本的片子。
CH552不用说了,WCH的低价片1块多。
LT8920是一个只有三颗外围器件的无线模块,某创只要1块多钱。具用过的大佬说天线随便搞根导线就能发射。
所以...两个片子加起来成本也不到3块钱.
问题是.......
CH552资料只有官方的例子,本人USB以前没怎么接触过,现在在摸索。
LT8920几乎就没人用过,资料很少。
目前USB在我看来有几种解决方案
1.直接通过WCH的HID代码魔改,基本不用了解USB,但速度其实挺低的,好处是免驱。
2.通过CDC驱动来做,看起来还可以,但是貌似驱动十分蛋疼。
3.就是通过WINUSB驱动,定制化能力高,但是编码会硬核一些。
新人通过查询CH552资料到这个论坛,之后如果有更新会及时和大家分享。
等到差不多,和大家分享开源。目前只做了硬件,做开源也没全测,等没问题了再开好了。
我估计会在USB坑里爬一段时间了。
之后再去挖LT8920的坑。。。
离线
我参考了坛友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软件,然后插上两个硬件,就可以互相通讯了。
离线