1 套件清单
为了方便客户使用低功耗蓝牙模组,Lierda BT产品线特别推出低功耗蓝牙评估套件,该套件清单如表1所示。
![f6627a658339ccf6616968ef8ce84402.png](https://i-blog.csdnimg.cn/blog_migrate/91d756dee0bbf0f776d2ed27cea755c8.jpeg)
1.1 模组
产品简介:该低功耗蓝牙模组是基于 SIG 发布的 BLE 标准设计的低功耗蓝牙透传模组。模组的控制方式灵活,不仅可以通过串口和功能性引脚进行控制,而且支持移动端远程控制。使用该模组,用户无需关注复杂的蓝牙协议,就可在短期内开发出标准的 BLE 产品。更多详细信息请参考LSD4BT-E66ALSP001【资料汇总】。
1.2 转接板
产品简介:用于连接模组和底板,并为模组提供烧写接口和外置天线焊接口;
连接方式:模组已焊接在转接板上,转接板需要正面朝上安插于底板上侧。
![45d35512a55db70634a77d73df73b652.png](https://i-blog.csdnimg.cn/blog_migrate/e71c44628cb1945cf05f999834691bbe.jpeg)
1.3 底板
产品功能:
●提供转接板插座并引出模组的大部分引脚,可使用跳线帽将引出脚接高或接地;
●提供 USB 转串口功能,支持 2 路串口(串口 0、串口 1);
●支持多种供电方式:USB 供电、纽扣电池供电和 5 号干电池供电,可通过电源选择接口选择;
●提供 4 个 LED 指示灯(LED1——黄,LED2——蓝, LED3——绿,LED4——电源指示灯(红))、2 个普通按键(K1、 K2)以及 1 个复位按键(K3);
●提供电流测试接口:去除 R1,串联电流表在 P10 位置即可。
![046cbfdd8423c43196d22feb01f7c892.png](https://i-blog.csdnimg.cn/blog_migrate/8d446b586a27215af5dc15e68b2c3a96.jpeg)
图2中处于同一侧的引出脚和转接板插座是对应的,且在同一水平线上的两个焊点之间是物理连接的,同时引出脚对应外围电路图如表 2 所示。无外围电路说明该引出脚仅使用排针引出,未连接任何外围设备。
![5820df638ffc28e112f6d54e31831cce.png](https://i-blog.csdnimg.cn/blog_migrate/0a29a79048070ce39abe05f5a80d648a.jpeg)
(4)Micro USB 转接线
如果用户选择USB供电方式或使用串口指令功能,则需要自备一根Micro USB 转接线,如图 3 所示。
![c8aacd8712e3ddaf66ba58c784e1f1d4.png](https://i-blog.csdnimg.cn/blog_migrate/06c57b442c0de4b4c53006d450d7ff6e.jpeg)
2 评估示例
2.1 实验前准备
客户在进行应用程序开发之前,可先通过串口调试助手和Lierda提供的开发套件验证蓝牙模组的功能,以评估蓝牙模组的可用性。
串口调试助手可选用任意一款支持16进制发送和接收的串口调试工具。Lierda提供的开发套件需按照图4所示的方式连接,该套件使用Micro USB接口供电即可直接使用,使用过程中有以下几点需要注意。
●标注①处是转接板和底板的插口标准,要求转接板和底板最顶端的排针处于同一直线上;
●标注②处是3个控制引脚接口,默认全接地;
●标注③处是串口选择接口,默认选择串口0;
●标注④处是电源选择接口,默认选择USB供电。
![cebf80d756de1cb49ea0fd0408637fd3.png](https://i-blog.csdnimg.cn/blog_migrate/09610d2de7b3c93d7f95d3e4e2d9f2fd.jpeg)
2.2 简单例程
用户拿到E66开发套件时,所有跳线帽均需按照图4所示位置插好,此时通过Micro USB接口为套件供电,即可通过手机端APP扫描到模组的广播,如图5所示。
安卓手机APP推荐使用nRF Master Control Panel(BLE),苹果手机APP推荐使用LightBlue Explorer,以下示例均以安卓手机为准。
![1fb396a2ac79274da458578c95863397.png](https://i-blog.csdnimg.cn/blog_migrate/0653d3a5e629c277e80086bfcfeca4ed.jpeg)
电脑端打开串口调试助手,默认波特率9600,Hex发送,Hex接收。发送产品信息查询指令,查询产品型号,查询结果图 6 如所示。
T:01 FC 18 01 00
R:04 FC 18 13 00 00 4C 53 44 34 42 54 2D 45 36 36 41 4C 53 50 30 30 31
图6查询产品型号
发送设备名称设置指令,设置结果如图7所示。此时手机端的扫面结果如图8所示。
T:01 FC 07 0E 4C 53 44 20 42 4C 45 20 44 45 56 49 43 45 //设备名称设置
R:04 FC 07 01 00
T:01 FC 08 00 //设备名称查询
R:04 FC 08 0F 00 4C 53 44 20 42 4C 45 20 44 45 56 49 43 45
图7设备名称设置与查询
![b3805b8f18c54ee415301f37a0532783.png](https://i-blog.csdnimg.cn/blog_migrate/9bf65227860c36d134c077d9b0a53310.jpeg)
2.3 修改广播数据
模组默认广播数据为0x020106030260FE,扫描响应数据为设备当前名称,如图9所示。
![3c4ce782164336a2019bce646def18de.png](https://i-blog.csdnimg.cn/blog_migrate/d49818a3f871f7703b84edad70838097.jpeg)
发送广播数据设置指令,设置结果如图10所示。此时手机端的扫面结果如图11所示。
T:01 FC 0D 0A 00 08 FF 60 FE 11 22 33 44 55 //广播数据设置
R:04 FC 0D 01 00
T:01 FC 0E 00 //广播数据查询
R:04 FC 0E 0A 00 08 FF 60 FE 11 22 33 44 55
图10广播数据设置与查询
![3c20bb1beba55b3168ea8e14121bdf72.png](https://i-blog.csdnimg.cn/blog_migrate/4bd328461b7b9ab6c132ff4edb940d10.jpeg)
2.4 发送透传数据
手机端点击CONNECT按钮连接上述设备,连接完成后如图12所示。
![90279940999bfa3b7684f6d660802855.png](https://i-blog.csdnimg.cn/blog_migrate/1a949406462facaed6ae4e048362c9bc.jpeg)
然后打开Unknown Service服务,使能Notifications功能,准备接收模组发来的数据,如图13所示。
![4af36b43e4d714110b8e179822b5736a.png](https://i-blog.csdnimg.cn/blog_migrate/c0df1d262ea769a3808bbf1dea4d7882.jpeg)
将模组的MODE_CTL引脚接高电平,切换到透传模式,此时可通过串口助手控制模组发送数据,如图14所示。
T:01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
图14发送透传数据
此时手机端可以看到接收到的数据,如图15所示。
![e033828de81ba6af731be8e4b5a33941.png](https://i-blog.csdnimg.cn/blog_migrate/59f9c8d8ad572cebe0d3a1041bb43075.jpeg)
此时也可以通过手机端向模组发送数据,点击发送通道的发送按钮,如图16所示,输入要发送的数据,如图17所示,点击SEND按钮发送数据,此时,在串口助手接收区域可以看到手机端发来的数据,如图18所示。
![091189b1a7b140f2edd13f76ea1b94e2.png](https://i-blog.csdnimg.cn/blog_migrate/3a7955980a543cef9bc0499dcffb54ad.jpeg)
![891df4996805b6a452a57d9562e27e03.png](https://i-blog.csdnimg.cn/blog_migrate/d4f98801d04a358a5b0ff9d151ba098a.jpeg)
R:11 22 33 44 55
图18串口助手接收到的数据
3 应用示例
3.1 硬件准备
MCU和模组按照图 19 所示连接,如果模组由其他方式(USB、纽扣电池或5号干电池)供电,可不接VCC。如果需要指示功能,可选择性连接休眠指示引脚、串口数据指示引脚、连接状态指示引脚或数据拥塞指示引脚。
![c56b834ab80637c5e2dc0610e5805ab1.png](https://i-blog.csdnimg.cn/blog_migrate/06243c15036e9348759f035b456da573.jpeg)
最简功能设计原则:
●如果用户不需要快速的数据传输,BUSY_IND可不接;
●如果用户不需要通过引脚获取蓝牙的连接状态,CONN_IND可不接,如果用户不需要通过引脚关闭蓝牙的广播功能,BT_CTL可直接接地,使模组保持广播状态,此时也可通过指令控制模组的蓝牙功能;
●如果用户不需要通过引脚获取模组的功耗模式,PWR_IND可不接,如果用户不关心模组的功耗,PWR_CTL可直接接地,使模组保持唤醒状态,此时可通过指令控制模组的功耗模式(RX唤醒模式);
●如果用户的MCU不需要休眠或者在休眠状态下也能接收UART数据,DOUT_IND可不接;
●如果用户不需要通过引脚控制模组的指令/透传模式切换,MODE_CTL可直接接地,使模组保持指令模式,此时可通过指令控制模组的指令/透传模式切换(RX唤醒模式)。
3.2 软件准备
应用示例由Lierda提供示例源码文件,用户只需要根据特定的嵌入式平台实现平台相关的驱动代码即可。源码文件如图 20 所示。
![ba93e14c1a79fc43315f2a0fe1e5234a.png](https://i-blog.csdnimg.cn/blog_migrate/79470093e58e1b4d6595b6265bee2d88.jpeg)
3.2.1 Lsd_ble_uart_driver.x
串口驱动源文件/头文件,提供处理串口指令和控制/指示IO的驱动函数,一般情况下用户无需做任何修改,驱动函数调用方法详见Lsd_ble_uart_driver.h中对每个驱动函数的注释,驱动函数调用示例参考My_ble_interface.c中的多个初始化和应用示例。
其中Ble_RcvChar()是串口接收函数,用户应该在收到串口数据时调用该函数。
3.2.2 Lsd_ble_uart_impl.x
底层驱动源文件/头文件,用户需要根据平台和函数说明自主实现各函数。其中IO_SetHighLevel()函数的具体实现如示例 1 所示(STM32平台代码,仅供用户参考,用户需根据自己的平台修改),IO_SetLowLevel()和IO_GetCurrentLevel()接口的实现方式类似,要注意IO_XXX_CTL和XX_CTL_PIN类型宏的使用。
![fd7096a896e964303c55a55cd7f09048.png](https://i-blog.csdnimg.cn/blog_migrate/22a7f2cf9181e2657710151df5c080f6.jpeg)
3.2.3 My_ble_interface.x
应用示例用到的接口源文件/头文件,用户既可作为入门演示代码使用,也可作为实际项目开发过程中的参考代码使用。如果用户要实现示例代码的功能,在My_ble_interface.h中有以下几项需要用户处理:
●MAX_RCVTIME——串口接收超时时间,用户自定义
●AIM_BAUDRATE——用户选择的目标波特率,用户自定义
●Control Pin——用户使用平台的引脚号,用户自定义
●PIN_INIT宏定义接口,用户自主实现
●UART_INIT宏定义接口,用户自主实现
以下两个跟串口接收超时相关的函数需要在合适的地方调用:
●App_RunTimer(),建议放到定时器超时中断中,定时器超时时间会影响串口接收的超时时间,详细信息参考MAX_RCVTIME宏的注释。
●App_TimerTick(),建议放到主任务中,不断轮询检查串口接收超时的状态,如果超时,及时处理收到的数据,示例用法参考下文。
3.2.4 main.c
应用示例的一个具体实现,仅供用户参考,用户可将该文件移植到已有工程中。初始化时序参考main.c的实现即可,主循环中的应用示例代码可分别演示,应用示例分析参考下文。
![1b5120d9716f50dff7900598bd4cf3ed.png](https://i-blog.csdnimg.cn/blog_migrate/72ea39393c755b4847ffd84b501a81c4.jpeg)
3.3 应用示例分析
3.3.1 示例3:透传模式数据回传
为了最大限度降低模组功耗,只有在模组收到数据时才会唤醒模组回传数据,回传结束即刻进入休眠模式。为了防止串口数据粘连,每两次串口发送之间间隔至少5毫秒。
示例 3 的现象:手机连接模组,发送数据给模组,手机端会收到模组原样返回的数据。
![3eaee875d270633eabe6bc5f6142969e.png](https://i-blog.csdnimg.cn/blog_migrate/a7200543c67eb57a5aa6003ee7e1d8ae.jpeg)
3.3.2 示例4:发送大量数据
大量数据发送需要使用数据拥塞指示引脚,当引脚指示拥塞时应暂停发送,等待发送完成,指示空闲时应继续发送不超过200字节的数据。为了防止串口数据粘连,每两次串口发送之间间隔至少5毫秒。
示例4的现象:手机连接模组,使能接收通道Notify功能,手机端会收到大量数据。
![6971c2ed965dcae6c9b4e765f61488d8.png](https://i-blog.csdnimg.cn/blog_migrate/6522d50654e6612e9dc7095e1e2da316.jpeg)
3.3.3 示例5:指令模式数据回传
指令模式数据回传和透传模式数据回传类似,为了最大限度降低模组功耗,只有在模组收到数据时才会唤醒模组回传数据,回传结束即刻进入休眠模式。为了防止串口数据粘连,每两次串口发送之间间隔至少5毫秒。
示例5的现象:手机连接模组,手机端使用远程数据发送指令发送数据给模组,手机端会依次返回指令响应帧和已发送的数据。
![d07df700bfa4e7ac6140568d083b0ccd.png](https://i-blog.csdnimg.cn/blog_migrate/da5b0cd98d5727b0207e9548ca707963.jpeg)
4、资料列表
@LSD4BT-E66ALSP001_EVK应用说明_V01.01_181101.pdf
配套驱动源码@LsdBleDrv.rar
现在就登录“物联网开发者社区”手机版
![4e04b946af9dfd470eb86073767ec514.png](https://i-blog.csdnimg.cn/blog_migrate/ea427a46183851e984d995f48ed6756c.jpeg)
觉得内容不错的话请多关注利尔达物联网开发者社区,请点击链接了解详情