将您的IoT项目连上手机——瑞萨DA14531 BLE模块使用教程

蓝牙技术经历数十年的发展,早期经典蓝牙主要用于替代有线限连接,典型应用包括耳机、音箱等等;随着BLE低功耗的出现,蓝牙开始大量进入传感器、智能穿戴、医疗设备、资产标签和工业物联网等领域。

因此BLE在嵌入式开发领域十分主流且重要,从嵌入式系统的实现方式来看,常见的BLE方案大致可以分为三种:

一种是在芯片内部集成BLE功能的MCU,例如瑞萨的RA4W1,在一颗芯片中同时提供处理器、通用外设、射频电路和蓝牙协议栈。

一种是BLE SoC,例如瑞萨的DA1453X系列、DA1459X系列等等。这些专为无线设计的芯片可独立运行广播、连接、GATT服务和用户程序,适合Beacon、无线传感器及纽扣电池设备。相应地,开发者需要接触蓝牙协议栈、SDK、GATT和低功耗设计。

最后一种就是带有预烧录固件的蓝牙模块。在SoC的基础上集成天线、晶振、Flash和射频匹配等等,并通过UART、SPI等接口与主MCU通信。同时提供AT指令,使开发者不必立即学习完整的蓝牙协议栈,就能完成广播配置、设备连接和数据传输。

因此,对于刚接触蓝牙,想为自己的已有项目增添蓝牙功能的开发者来说,使用蓝牙模块是最方便也最简单的模式。

当然,后续如果想进一步自定义GATT服务、优化功耗,或者让蓝牙芯片独立运行,就需要在基础通信验证完成后,进入BLE SoC的底层开发了。

对于蓝牙模块开发,我们只需要掌握UART通信搭配AT指令文档就可以轻松实现蓝牙功能:对于BLE SoC底层开发,瑞萨有SDK6;对于BLE MCU,瑞萨有QE for BLE。

因此本文就先从最基础的蓝牙模块开始,一起来看看如何使用一个蓝牙模块将您的项目通过BLE连接到手机吧。

Part 01 硬件与软件

MCU开发板我们这里使用RA-ECO-RA4M2 v2.0来演示:

RA-ECO-RA4M2 v2.0

719dc796-c458-11f1-9b19-92fbcf53809c.png

配合DA14531低功耗蓝牙模块:

DA14531低功耗蓝牙模块

软件用的是瑞萨FSP6.5,蓝牙软件用的是瑞萨的SmartBond。

BLE模块做了纽扣电池座,但是主要用于独立使用时,我们开发时不用装上电池。

Part 02 UART配置

瑞萨RA-ECO-RA4M2 v2.0为我们预留了PMOD接口,使用时只需要将模块插入PMOD接口就可以,十分方便。

查询资料可知RA-ECO-RA4M2 v2.0的PMOD2接口对应引脚如下:

点击可查看大图

其中我们会用到的是RX/TX/LPR/CONNECT这四个引脚。

这块板子的板载晶振12MHz,与系统默认的24MHz不同,这里我们先修改时钟:

点击可查看大图

这里我们将系统时钟切换到HOCO,调试不容易出问题。

然后在stack中添加UART (r_sci_uart) 模块,修改属性如下:

7250dd7c-c458-11f1-9b19-92fbcf53809c.png

点击可查看大图

这样我们的UART就配置完成了。

Part 03 其余引脚配置

LPR必须接高电平,不然串口不能工作;

RESET引脚必须接高电平保持非复位状态,否则模块一直在复位状态,不工作;

CONNECT引脚是连接状态指示引脚,未连接手机时低电平,已连接后跳高。

将P414配置为GPIO输入:

左右滑动查看完整内容

726f827c-c458-11f1-9b19-92fbcf53809c.png

点击可查看大图

如上操作,程序便可以读取P414判断手机是否已经连接。

Part 04 UART连接

完成上述引脚配置后,在程序中打开SCI0:

左右滑动查看完整内容

7282dc0a-c458-11f1-9b19-92fbcf53809c.png

点击可查看大图

UART接收通过FSP回调函数处理:

左右滑动查看完整内容

729ea994-c458-11f1-9b19-92fbcf53809c.png

长按可保存查看大图

到这里,瑞萨RA4M2与蓝牙模块之间的本地硬件通信接口就配置完成了。

Part 05 常用AT指令

UART和控制引脚配置完成后,就可以开始使用AT指令。

AT指令是模块固件提供的一组文本命令。主MCU通过UART发送命令,可以查询模块信息、修改参数或控制蓝牙功能。AT指令并不是Bluetooth标准的一部分,也不是DA14531芯片天然具备的功能,因此不同固件支持的指令可能不同。

常用的AT指令大概有三类:

一类是AT?这类指令一般用来测试模块是否响应;

一类是AT+命令?这类一般用来查询参数;

最后是AT+命令=参数,这类用来修改参数。

对于BLE模块,通过查询文档,我们可以得知,常用指令有下面这些:

72b6f814-c458-11f1-9b19-92fbcf53809c.png

点击可查看大图

注意:

每个命令要以回车和换行结束。

左右滑动查看完整内容

72d58bb2-c458-11f1-9b19-92fbcf53809c.png

长按可保存查看大图

因此我们只需要调用`R_SCI_UART_Write()`即可发送命令:

左右滑动查看完整内容

72e9a728-c458-11f1-9b19-92fbcf53809c.png

长按可保存查看大图

`R_SCI_UART_Write()`返回成功,表示UART驱动接受了本次发送请求。发送真正完成后,回调函数会收到:UART_EVENT_TX_COMPLETE。

模块返回数据时,回调函数会收到:UART_EVENT_RX_CHAR。

可以在回调中将每个返回字节保存到缓冲区:

左右滑动查看完整内容

73080808-c458-11f1-9b19-92fbcf53809c.png

长按可保存查看大图

Part 06 使用手机连接模块

AT通信正常后,再开始验证BLE连接。

本项目使用Renesas SmartBond手机应用。BLE设备不一定显示在手机系统的普通蓝牙配对页面中,因此需要使用支持BLE扫描和GATT调试的应用。

打开SmartBond并开始扫描,可以找到:

73248f28-c458-11f1-9b19-92fbcf53809c.png

点击可查看大图

这里的名称来自模块内部的预烧录固件,不是我们创建的。

点击Connect完成连接。连接成功后,P414/CONNECT变为高电平。

Part 07 双向收发测试

连接模块后,SmartBond会显示模块的GATT服务和Characteristic。本次数据透传主要使用两个Characteristic:

左右滑动查看完整内容

7346e6c2-c458-11f1-9b19-92fbcf53809c.png

长按可保存查看大图

数据方向即:

手机写入Inbound→模块从UART发送给RA4M2;

RA4M2向UART发送→模块通过Outbound Notify通知手机;

手机接收数据前,需要先找到CodeLess Outbound Command并启用Notify,否则即使RA4M2已经返回数据,手机也不会显示。

在SmartBond中找到CodeLess Inbound Command,点击写入按钮。

上下滑动查看完整内容

7362a4fc-c458-11f1-9b19-92fbcf53809c.png

长按可保存查看大图

注意:

Raw输入框按照十六进制字节解析,而不是普通文本。

比如希望发送字符串:123,应该输入:31 32 33。

因为字符`1`、`2`和`3`的ASCII编码分别是`0x31`、`0x32`和`0x33`。

如果直接输入`123`,页面可能显示:Value: [12],此时实际只发送了一个字节`0x12`。

正确发送`31 32 33`后,RA4M2调试变量显示:

左右滑动查看完整内容

g_ble_rx_length=3g_ble_last_uart_event= UART_EVENT_RX_CHARg_ble_uart_error_flags=0

说明数据已经通过以下路径到达RA4M2。

同时为了验证反向链路,程序将RA4M2收到的数据原样写回UART:

左右滑动查看完整内容

738613f6-c458-11f1-9b19-92fbcf53809c.png

长按可保存查看大图

模块收到UART数据后,通过CodeLess Outbound Command发送Notify。由于手机已经打开Notify,因此收到相同的数据。

最终测试结果:

手机发送:31 32 33

RA4M2接收长度:3

RA4M2接收内容:31 32 33

手机接收:31 32 33

至此,手机、DA14531模块和RA4M2之间的双向BLE通信已经建立。

RA6M5 AFCI拉弧检测方案

该方案基于瑞萨RA6M5 MCU与Reality AI工具开发,能够快速、准确地识别光伏及储能系统中的电弧故障。在光伏系统中,采用250kHz采样率时,方案可在8ms观察窗口实现99.2%的检测准确率,在16ms观察窗口实现99.7%的检测准确率;在200MHz运行频率下,AI模型推理时间仅为10ms。在储能系统中,方案基于8,192个采样点和500kHz采样率,可实现96.4%的检测准确率;在240MHz运行频率下,推理时间仅为40ms,为提升新能源系统的运行安全性提供高效支持。

RA6T2电机异常检测方案

该方案采用搭载Arm Cortex-M33内核、主频达240MHz的瑞萨RA6T2 MCU,CPU负载低于1%。借助Reality AI工具,开发人员可便捷完成电机运行数据的采集与分析,并快速生成面向异常检测的AI模型。该模型仅占用6KB Flash和6KB RAM,推理时间仅为1.38ms,检测准确率超过90%,且无需额外增加传感器,可帮助客户以较低系统成本实现设备状态监测和预测性维护。

RA8T2 EtherCAT双轴伺服方案

该方案基于高性能RA8T2 MCU,可驱动两轴、每轴0.4kW电机,并支持位置、速度和转矩三环控制。方案采用EtherCAT工业通信接口,支持多摩川绝对值编码器,并集成过流、过压及过热保护功能,可广泛应用于伺服控制、变频器、远程I/O及机器人电机控制等场景,为高实时性、高可靠性的工业运动控制提供支持。

  • 随机文章
  • 热门文章

您可以还会对下面的文章感兴趣:

暂无相关文章