查看: 934|回复: 0
打印 上一主题 下一主题

2.4G无线串口,全双工,支持AT指令集,自动波特率

[复制链接]
跳转到指定楼层
沙发
发表于 2015-10-8 07:42:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大概两个月前,我用LGT8F08A和nRF24L01+制作了无线串口模块。

传送门:《LGT版无线串口模块》

因为LGT8F08A的硬件SPI和串口是引脚复用的,所以只能使用软件SPI的方式驱动nRF24L01。传输的速度受到软件SPI速度的限制。

这次将程序移植到了STM8S上,由于可以使用硬件SPI接口,所以传输速度提升了一倍:最大可以用230400的波特率来传输文件。

并且由于STM8S的FLASH有32KB,所以有额外的代码空间,可以添加自动设置串口波特率的功能。

同LGT版本的模块一样,仍然可以支持使用AT指令来设置模块的参数,包括无线功率,无线波特率,串口波特率等等。

同LGT版本的模块一样,仍然全部开源(这次能不能给条裤子穿了? )

原理图:
源代码:

打样的电路板:



主要参数和功能:

1.  串口波特率从1200到230400可任意设置
2.  支持AT命令设置器件参数
3.  可自动设置串口波特率
4.  可选内部自供电和外部供电,内部电池低电压检测
5.  时分全双工传输,可同时收发数据

制作无线串口的目的,其实主要是用来作为无线Linux终端使用。无论是前一阵很红的树莓派(我的树莓派在线鱼缸传送门),还是BeagleBoneBlack之类的Linux单板机,在没有配置好网络和系统之前,无法使用ssh之类的远程登录,只能接上电视,接上键盘,在屏幕上进行操作。

电视的HDMI接口有限,频繁的插拔调换HDMI接口,相当令人麻烦。

所以我想到了使用无线串口来作为Linux终端机来使用。这也成为Linux单板机网络故障时的备用登录手段。

这样,我就可以把Linux单板机扔在房间角落,默默的运行SVN,FTP和我的个人网站,即使网络系统出现了故障,我也可以愉快的坐在沙发上,使用无线串口登录Linux排除问题。而不用再去拉扯电视机后面布满灰尘的HDMI线。

使用无线串口和screen,在Mac上登录BeagleBoneBlack,因为BBB的调试引脚没有电源引出,这时有自供电就方便许多:



按住板子上的按钮开机的话,可以进入AT命令模式,这个模式下可以设置器件的一些参数。使用“at+what?”命令可以查看系统所有的参数和可用命令。



相比较LGT版本的无线串口,STM8S版本多了自动串口波特率的功能。所谓的自动串口波特率,就是不需要手动设置串口的波特率,设备会在开机的时候检测串口输入的数据,然后自动判断出正确的通信波特率。

自动波特率适用的范围是1200bps到115200bps,使用“at+abdr=enable"命令来开启自动串口波特率。

如果自动波特率功能开启,设备上的红色和蓝色的LED会同时闪烁,表示正在等待串口数据输入。



将无线串口和USB转串口连接到一起,打开超级终端之类的串口工具上,只要胡乱敲几下键盘发送一些字符,无线串口的波特率就会自动完成匹配,很方便吧。

第一次使用STM8芯片,发现单总线调试,比起JTAG真的方便很多,板子上不用预留那么多的调试引脚,就是调试速度慢了一点,但还是可以接受的水平。
转载

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表