WhyCan Forum(哇酷开发者社区)

我们能随心所欲"有问题百度(谷歌)一下", 这得感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2020-06-20 14:53:23

xifengzui
会员
注册时间: 2020-06-20
累计积分: 8

【分享】做了个CH552+LT8920的无线Dongle,但是....

两颗低成本的片子。
CH552不用说了,WCH的低价片1块多。
LT8920是一个只有三颗外围器件的无线模块,某创只要1块多钱。具用过的大佬说天线随便搞根导线就能发射。
所以...两个片子加起来成本也不到3块钱.

问题是.......
CH552资料只有官方的例子,本人USB以前没怎么接触过,现在在摸索。
LT8920几乎就没人用过,资料很少。

目前USB在我看来有几种解决方案

1.直接通过WCH的HID代码魔改,基本不用了解USB,但速度其实挺低的,好处是免驱。
2.通过CDC驱动来做,看起来还可以,但是貌似驱动十分蛋疼。
3.就是通过WINUSB驱动,定制化能力高,但是编码会硬核一些。

新人通过查询CH552资料到这个论坛,之后如果有更新会及时和大家分享。
等到差不多,和大家分享开源。目前只做了硬件,做开源也没全测,等没问题了再开好了。

我估计会在USB坑里爬一段时间了。

之后再去挖LT8920的坑。。。

FluxBB bbcode dongle

离线

#2 2020-06-20 14:58:50

哇酷小二
管理员
注册时间: 2020-04-22
累计积分: 1,585

Re: 【分享】做了个CH552+LT8920的无线Dongle,但是....

^_^ 围观, 帮不上忙, 只能帮你置顶两天了。

离线

#3 2020-06-20 23:50:47

Blueskull
会员
注册时间: 2020-02-20
累计积分: 189

Re: 【分享】做了个CH552+LT8920的无线Dongle,但是....

无脑winusb就好。cdc和hid吞吐率都不高,cdc有人做到了1mbps,就要写汇编代码了。推荐直接搞个ep1,双向,走bulk就好。控制可以走ep0的feature request,或者ep1的数据包自定义一个格式。不要做软件合包拆包,直接卡死最大包大小64字节,拆分合并在用户层做。简单粗暴,把尽可能多的计算放在主机。

离线

#4 2020-06-21 01:47:19

iamseer
会员
注册时间: 2020-06-06
累计积分: 13

Re: 【分享】做了个CH552+LT8920的无线Dongle,但是....

xifengzui 说:

两颗低成本的片子。
CH552不用说了,WCH的低价片1块多。
LT8920是一个只有三颗外围器件的无线模块,某创只要1块多钱。具用过的大佬说天线随便搞根导线就能发射。
所以...两个片子加起来成本也不到3块钱.

问题是.......
CH552资料只有官方的例子,本人USB以前没怎么接触过,现在在摸索。
LT8920几乎就没人用过,资料很少。

目前USB在我看来有几种解决方案

1.直接通过WCH的HID代码魔改,基本不用了解USB,但速度其实挺低的,好处是免驱。
2.通过CDC驱动来做,看起来还可以,但是貌似驱动十分蛋疼。
3.就是通过WINUSB驱动,定制化能力高,但是编码会硬核一些。

新人通过查询CH552资料到这个论坛,之后如果有更新会及时和大家分享。
等到差不多,和大家分享开源。目前只做了硬件,做开源也没全测,等没问题了再开好了。

我估计会在USB坑里爬一段时间了。

之后再去挖LT8920的坑。。。

https://whycan.cn/files/members/4555/1.png

你要是对性能没有很高的要求,可以直接用 https://github.com/DeqingSun/ch55xduino

CDC在win10(也可能是win8)及以上可以免驱,描述符加好 Interface Association Descriptor 就问题不大。
如果想上winusb,配置好Microsoft OS 2.0 Platform Capability Descriptor也可以实现免驱。开发用webusb就很方便。

离线

#5 2020-06-21 14:16:12

xieyang
会员
注册时间: 2020-06-21
累计积分: 3

Re: 【分享】做了个CH552+LT8920的无线Dongle,但是....

没用过,这个是用来刷什么的?也是flash的吗

离线

#6 2020-07-02 17:12:07

xifengzui
会员
注册时间: 2020-06-20
累计积分: 8

Re: 【分享】做了个CH552+LT8920的无线Dongle,但是....

我参考了坛友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告诉你,写就是了...)

目前只能使用软件来模拟了,速度上不去。

离线

#7 2020-07-02 17:20:19

xifengzui
会员
注册时间: 2020-06-20
累计积分: 8

Re: 【分享】做了个CH552+LT8920的无线Dongle,但是....

测试的话,需要两台电脑都跑SFTOOL软件,然后插上两个硬件,就可以互相通讯了。

离线

#8 昨天 22:29:49

wwkkww1983
会员
注册时间: 2019-10-29
累计积分: 4

Re: 【分享】做了个CH552+LT8920的无线Dongle,但是....

我这边试过了,这个可以相互通讯

离线

页脚

工信部备案:粤ICP备20025096号-1 Powered by FluxBB