tzz1983 发表于 2025-1-5 13:14:59

USBCDC 无线透传 串口无线透传模块 可ISP @AI8H2K08U

USBCDC 无线透传串口无线透传模块可ISP@AI8H2K08U


新年2025年已经到来,趁着大家还没放假,春节前夕,
送大家一手 USBCDC串口无线透传模块资料,可用于ISP 无线下载代码。
所有软硬件全部开源。
提前祝大家春节快乐,新年快乐!

手工焊了一对来验证功能:


Ai8H2K08U是一款性能强悍的MCU,不仅有硬件USB,速度也非常快。价格=0.99元
Ci24R1超低成本高性能 2.4GHz GFSK 无线收发芯片, 淘宝=1元。

Ci24R1有非常高的数据传输数率,比特率=2M,
经过软件处理为全双工后,仍然轻松应对绝大多数串口波特率。

模块特点:
.支持动态波特率。
.支持奇偶效验位。
.支持RTS,DTR
.传输延时特别小。

原理图:
      



板效果图:




用无线串口工具为开天斧下载代码,验证ISP下载功能,已成功:


要使用无线下载的朋友请注意:
.    由于UART-TTL模块使用的是用户板电源,所以是不支持断电重启下载代码的,
   因为给用户板断电后,实际上连同模块一起断电了. 模块重启后已错过了下载握手时机。
如何使用无线UART-TTL下载代码:
.    典型的用法是使用ISP软件内置的自定义命令来下载代码,等同于不断电下载的效果。
.    另一种不需要自定义命令的办法->应用中监视串口数据,如果出现大量重复字节数据就重启,这个办法更简单
   原理是:ISP会发送大量的握手命令0x7F, 收到握手数据累积到一定数量就可判定。
   一个可以利用的技巧是,即使应用的波特率不是2400也没关系,因为只关心重复字节数量,而不关心字节内容。
   串口0本来就是用来调试,这么用不影响其它功能。

无线UART-TTL下载代码杂谈:
之前在坛内看到过一些朋友谈到无线ISP下载失败的案例,
经过这次产品制作和调试找到了一些原因,
主要是因为 ISP在下载代码时,上位机会反复的调整波特率,还会使用效验位。
普通的无线UART透传不具备这些功能,可能还延时比较大!

如果只用于USB_CDC串口数据透传,则没什么限制,和有线连接使用一样,无非是现在用无线电波替代了电线。
做飞行器的,电动玩具车的,还有就是设备较大不方便搬到电脑旁边来的朋友们,用这个可方便了许多。

扩展应用:
   两个无线串口模块可以做成 串口全双工透传模块,软件改动非常少。
   多个模块还可以做成一对多星形网络,如果愿间花时间,做成星链网络也是可以的哈

关于射频频率:
   Ci24R1工作于2.4GISM频段,同时工作于这个频段的设备很多,比如WIFI,蓝牙, 无线鼠标等,
   如果Ci24R1 工作不稳定,传输速率变慢,应考虑更换信道,
   Ci24R1 支持多达126个信道,找一个合适的信道避开拥堵频段即可,
    本来留了两个端口在外面用短路帽来选择信道了,但由于懒,这部分代码没做。
    不过项目是开源的,Ci24R1.h头文件中可以轻松更改信道。如下图:



说得有点多了,传上代码和制板吧:









需扩充功能或有不足之处请大家多指教。
如果您喜欢,可以无限制使用本贴中的内容。











tzz1983 发表于 2025-1-7 13:02:57

wnagming 发表于 2025-1-5 16:11
好屌的天线

一般一般,天下第三

tzz1983 发表于 2025-2-11 08:39:55



偶然发现,原理图上这个二极管竞然画反了!
测试时没有发现这个问题,实际PCB图上也并没有反.
(PCB没错的原因是为这个二极管套用了0805电阻的封装后手工加了个方向丝印,添加的标识是对的,PCB图没有问题)
这么久了还没有网友发现这个问题,看来这个工具并不实用哈。

lzts 发表于 2025-3-16 09:41:28

好东西,谢谢分享

ainiwuhui 发表于 2025-3-16 10:26:08

楼主,这个有没有成品模块板可以买到,有没有可买到的链接?

men007 发表于 2025-3-16 10:27:11

挺有意思的的应用。谢谢分享!抽空也搞一个试一试{:lol:}

ercircle 发表于 2025-3-16 11:00:40

楼主这个通讯速率能达到多少呀

tzz1983 发表于 2025-3-17 09:41:39

ercircle 发表于 2025-3-16 11:00
楼主这个通讯速率能达到多少呀
没有仔细测量过,射频收发芯片虽然是2M的波特率,但是他包含了自动ACK协议,收发转换中间需要间隙。
除了硬件ACK,软件上也会使用一些ACK数据来保证正常的数据流。
依稀记得发送一个包(一个包最大32字节,收到ACK的时间约为1毫秒,具体是多少我没有特意去测量。)
以此计算32*8*1000 = 256000 波特率。


实际上用115200的波特率感观还是挺好的。没出现延迟卡顿。

另外是,即使传输速度达到瓶颈,仍可以选择更高的波特率。
原因是,如果串口,射频收发模块,USB_HID,三项中其中有任何一项“拖后腿”,
那么较快的一项会等较慢的硬件。理论上:正常运行不会有问题,只是实际上用的总时间会增加。
比如: USB_HID发现串口来不及发送数据,它会等到串口处理完自己的缓冲区再给串传传数据。
这三个点代码里已经处理了。

ercircle 发表于 2025-3-17 13:18:29

tzz1983 发表于 2025-3-17 09:41
没有仔细测量过,射频收发芯片虽然是2M的波特率,但是他包含了自动ACK协议,收发转换中间需要间隙。
除了 ...

好的,感谢解答
页: [1]
查看完整版本: USBCDC 无线透传 串口无线透传模块 可ISP @AI8H2K08U