CH9141使用十分方便,是一款蓝牙串口透传芯片,无需二次开发,可以直接使用的,支持三种模式:从机模式,主机模式,广播模式。
对于模块刚拿到手的小伙伴可以先接上这几根线:
1.购买带底板的豪友们,使用杜邦线将模块与CH340连接(VCC,GND,TX,RX)即可,TX接板子RX,RX接板子TX。
2.只有模块没有底板可以自行焊接这四根线,模块引脚可查看模块手册:https://www.wch.cn/downloads/BLE-TPT_PDF.html
3.只有芯片的友友们就找沁恒技术支持要个原理图和PCB图自己设计设计,
测试阶段还是建议申请个demo板或者淘宝购买,可以大幅加快进度,就不要扣扣嗖嗖啦。
瞄准链接冲冲冲!!!
接下来使用软件BleUart(安卓应用商城下载)与模块建立连接,测试下收发功能,功能正常则硬件接线是没什么问题了。
BleUart可以在官网搜索BleUartApp下载压缩包(Windows/Android/Linux/iOS):https://www.wch.cn/downloads/BleUartApp_ZIP.html。
PS:微信小程序可以在微信小程序中搜索BleUart,小程序demo开发可找沁恒技术获取。
发送AT...(所有AT指令都需加换行)进入AT模式,如果没反应,那么就重新拔插下USB检查串口接线且检查下发送的AT指令是否正确(需要加换行),返回OK,那就没什么问题了,接下来自由配置就好了,AT指令集在9141手册中,https://www.wch.cn/downloads/CH9141DS1_PDF.html。
配置模式指令AT+BLEMODE=X // X为0(广播模式)、1(主机模式)、2(从机模式)。
PS:配置模式后需要拔插下电源生效或者发送AT+RESET 。
从机模式:从机模式会发送固定的广播数据,仅支持修改扫描应答包中的芯片名称(AT+NAME)不可以超过18 个字符,不支持修改整个广播包。
从机模式是需要搭配主机使用的,主机可以使用手机,电脑上的低功耗蓝牙的软件,或者是主机模式的CH9141,仅支持单连接,多连接需采用点名连接。
使用app搜索连接,app操作很简单,就两个窗口,一个数据接收,一个数据发送,测试透传收发功能即可。
可以使用一个ch340(USB转TTL)连接电脑和模块,来观察收发的数据是否正确,实测结果如下图。
主机模式:主机模式仅支持连接CH914x 从机模式芯片,主机模式支持扫描后根据序号连接和直接根据MAC 地址连接,扫描列表中的设备只显示CH914x 从机芯片,扫描结束后可以使用扫描回显的结果进行序号连接,连接时在AT 模式下输入序号和从机连接密码。也可以不进行扫描,直接输入需要连接的从机的MAC 地址和密码,芯片会根据MAC去发起连接。以上两者方法掉电后均需重新配置,如若要实现每次上电固定连接某一设备,可用下面的第三种方法。主机模式支持设置自动连接的MAC,如果设置该项,主机在初始化完成后会自动连接该设备。只支持单连接。
1.扫描方式步骤:1.AT+SCAN=ON 2.AT+LINK=1,000000(默认密码六个零) 3.返回OK+LINK OK即为连接成功,仅返回OK只是AT发送成功 4.AT+EXIT退出AT模式再进行透传(断开连接后需要重新执行此操作)
PS:第二步的1是序号,实际序号可能有好几个,想连接第几个设备就填入相应序号
2.输入mac地址方式:1.AT+CONN=05:02:03:E4:C2:84,000000(MAC 为小端格式即低字节在前) 2.返回OK+LINK OK即为连接成功,仅返回OK只是AT发送成功 3.AT+EXIT退出AT模式再进行透传(断开连接后需要重新执行此操作)
3.默认自动连接方式:1.AT+CONADD=05:02:03:E4:C2:84,000000(MAC 为小端格式即低字节在前) 2.AT+EXIT退出AT模式再进行透传
PS:这三种方式的保姆级操作已具体到新的博客中供参考!!!
广播模式:支持串口透传数据给芯片,更新广播数据,也支持AT模式下更新广播数据,建议使用AT 命令发送蓝牙数据,芯片不会校验数据的合法性,所以数据一定要符合蓝牙协议规范。广播数据包不可以超过30 个字节,包的格式参考蓝牙协议规范。
举个设置蓝牙名字的例子(AT+ADVDAT=0409424C45 字符发送)(透传模式下修改需要使用hex发送0409424C45)可将蓝牙名称修改为BLE
PS:设置成广播模式后,广播包里是没有数据的,所以并搜索不到,所以需要按照规范设置广播包数据,数据掉电不保存,若想使用掉电保存则需要咨询沁恒技术。
可以简单描述下广播包格式(长度+类型+数据,类型和数据均计算长度)
这以上都是些测试流程,那么有哪些注意点呢?
1.很多小伙伴发现发送AT没反应,那么不是硬件接线错了就是发送格式不正确或者窗口没反应重新拔插打开下,
模块的串口是TTL的,AT的正确格式,需要加换行,可以转换成hex格式看看是否有0D 0A,
2.有些指令是不检验合法性的,所以输入需要保证正确,如修改串口配置需谨慎,否则影响AT和透传,严重的话需要自己飞线RELOAD(模块A没有引出RELAOD脚)
3.连接需要返回link ok才是真连接,否则为假连接,是不可通信的,一般原因是密码输错了,默认密码000000。
4.退出AT才可透传(AT+EXIT),
5.电脑端WCH蓝调试助手不推荐使用,能操作的AT指令很少,且可能存在一些bug,可以直接使用一些com工具,如COMTransmit,是可以将发送转成hex查看的,
6.返回为error一般就是没有这个指令或者是没有在正确的工作模式下输入指令,这个可以参考芯片手册。
7.手册有两个,一个是描述芯片的,一个是描述模块的。