0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SDK中的B85m_module例程的使用及注意事项

泰凌微电子 来源:泰凌微电子 作者:泰凌微电子 2022-07-12 11:56 次阅读

在泰凌Wiki网站上提供了多种应用场景的软件sdk,供客户选择使用。本系列的几篇文章主要讲述"Bluetooth LE Single Connection",此SDK是单连接应用的SDK,所谓的单连接就是蓝牙芯片做从机跟主机(一般是手机)建立点对点连接,或者蓝牙芯片做主机跟其他的从机建立点对点连接的应用场景。

本篇文章详细讲述此SDK中的B85m_module例程的使用及注意事项,以便客户尽快的熟悉起来,加快项目开发进度。

1module例程说明

单连接sdk中B85m_module是使用825x芯片和827x芯片,所以编译选项中又分为了825x_module和827x_module。module例程提供了基于BLE的数据透传功能,使得用户不必关心BLE复杂的实现细节,只需要处理传输业务数据即可。数据透传的指令是泰凌自己实现的一套指令集,如果用户更习惯使用AT指令,可以将例程中的指令做替换即可。

2module例程编译问题及解决方法

如果开发者直接编译825x_module或者827x_module(下文统称B85m_module),会出现下文的编译错误。

8dc7600e-0101-11ed-ba43-dac502259ad0.png

原因是B85m_module例程实现较复杂,需要使用32K retention的配置来编译,而sdk默认是选择的16K retention的配置。

解决方法:修改retention的配置可以参考Handbook的1.3章节的Software bootloader介绍,使用32K的boot.link文件和cstartup_*_32K.S启动文件。

3硬件连接图

8de61e40-0101-11ed-ba43-dac502259ad0.png

说明:下文以8258芯片为例,来描述B85m_module例程的使用。

在8258开发板上烧录编译成功的825x_module.bin固件,代码中默认的UART tx是PB1, uart rx是PB0。然后根据硬件连接图搭建好环境。

*注意:芯片的uart tx接串口工具的uart rx,芯片的uart rx接串口的工具uart tx,不要接错了。

PC端打开串口工具软件,波特率设置为115200,data bit为8,无校验,stop位为1。

手机端的app使用LightBlue软件,然后扫描到"kModule"的蓝牙设备,然后建立连接。

如果连接时,弹出配对请求,则选择配对。是因为默认使能了smp配对功能。如果不需要这个功能,则把app_config.h文件的 BLE_SECURITY_ENABLE宏定义设置为0,再clean后重新编译生成固件。

4数据透传

当手机app和B85m_module建立蓝牙连接之后,可以看到module例程的Telink SPP透传服务,根据描述符的提示,分成数据接收和数据发送两个方向:

8dfdf3a8-0101-11ed-ba43-dac502259ad0.png

4.1数据接收

数据接收(Phone->Module)即手机app发送数据给蓝牙芯片,然后蓝牙芯片通过uart打印出来,最后在PC端的串口工具软件上显示。

1、蓝牙event事件输出

当在nrf connect软件上点击连接或者断开时,串口工具上会显示出蓝牙连接事件(hex数据 FF 02 83 07)和蓝牙断开事件(hex数据 FF 02 84 07),如下图所示。

8e283636-0101-11ed-ba43-dac502259ad0.png

*备注:FF 02 8D 07是map channel更换的event事件。

2、手机发送hex数据 00 11 22 33 44 55 66

在LightBlue软件上,数据透传使用的服务,UUID是0x000102030405060708090a0b0c0d2b11(注意跟代码中的UUID是反序的),点击红色方框处输入发送的数据。

8e43089e-0101-11ed-ba43-dac502259ad0.png

如下图所示,PC端的串口工具软件已经显示了接收到的数据。注意接收到的数据有格式,前7bytes是数据的header。

8e6d9c1c-0101-11ed-ba43-dac502259ad0.png

4.2数据发送

数据发送(Module -> Phone)即PC端串口工具软件发送数据给蓝牙芯片,然后蓝牙芯片通过BLE发送给手机,最后在LightBlue软件上显示。

(1)手机app端使能notify权限

蓝牙芯片上报数据给手机app,是使用notify方式,手机端必须先使能notify权限,手机端才会监听到蓝牙芯片上报的数据,否则手机app不会接收的。

在LightBlue软件上点击Listen,当软件界面显示Stop Listening时,表示正在listening,已经使能了notify权限。

(2)蓝牙芯片端使能唤醒脚

在B85m_module程序中,默认使能了低功耗,也就是蓝牙芯片会自动进入低功耗模式,并定时唤醒保持蓝牙连接的心跳,因此大部分时间是处于低功耗模式。在低功耗模式下,芯片的UART是无法接收数据的,必须先使用GPIO唤醒芯片,让芯片处于active模式,uart才能接收数据。

代码中默认设置为PA2为高电平唤醒脚。手动把芯片的PA2 pin拉高,接到3.3V上。就可以把蓝牙芯片唤醒并禁止进入低功耗。在app_config.h文件中对应的宏定义:

#define GPIO_WAKEUP_MODULE GPIO_PA2

(3)数据发送

在串口工具中,输入hex数据:1c ff 16 00 11 00 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 07 08 09 00,然后点击send发送。

数据输入的格式说明,都是hex格式的数据:

1C FF:表示data send命令

16 00:表示数据长度,handle值(2bytes)+ data Length(20bytes)

11 00:数据发送使用的handle值为0x0011,小端字节序原因。

01 02 …00:实际需要发送的数据。

注意数据发送的长度在20字节以内,如果要发送更长的数据,可以查看Handbook中的MTU和DLE功能,使能长包后再发送长包数据。

8e83445e-0101-11ed-ba43-dac502259ad0.png

在手机LightBlue软件上,可以看到收到的数据,如下图所示。

8ea7496c-0101-11ed-ba43-dac502259ad0.png

关 于 泰 凌

泰凌微电子致力于为客户提供一站式的低功耗高性能无线连接SoC芯片解决方案,包括经典蓝牙,蓝牙低功耗,蓝牙Mesh,Zigbee,Thread,Matter,Apple HomeKit,Apple“查找(Find My)”,和私有协议等低功耗2.4GHz多协议无线连接系统级芯片和丰富的固件协议栈。公司产品广泛应用于智能照明,智能家居/楼宇,智能遥控,无线外设,智能零售,穿戴设备,无线音频,智能玩具,物流追踪,智慧城市等各类消费和商业应用场景中。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙芯片
    +关注

    关注

    17

    文章

    344

    浏览量

    45471
  • Module
    +关注

    关注

    0

    文章

    58

    浏览量

    12810
  • SDK
    SDK
    +关注

    关注

    3

    文章

    966

    浏览量

    44708
  • 泰凌
    +关注

    关注

    0

    文章

    7

    浏览量

    4253

原文标题:【技术专栏】泰凌微电子BLE单连接SDK B85m_module例程使用演示

文章出处:【微信号:telink-semi,微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    高速电路过孔设计注意事项

    高速电路过孔设计注意事项::在高速PCb设计,过孔设计是一个重要因素,它由孔、孔周围的焊盘区电源层隔离区组成,通常分为盲孔、埋孔和通孔三类。在PCb设计过程通过对过孔的寄生电容和
    发表于 08-16 13:33

    Vivado除法IP的注意事项

      第一个注意事项  首先可以在除法IP的定制界面看到被除数、除数、商的位宽有详细的说明:    从上面的位宽信息,我们可以发现被除数有18位整数,除数有18位整数,商有18位整数、11位小数。当然
    发表于 01-08 17:00

    示波器在测量注意事项是是什么?

    上升时间的定义是什么?示波器在测量注意事项是是什么?
    发表于 05-07 06:06

    说明一下代码移植过程注意事项

    STM32F工程移植注意事项文档由来 最近项目用到STM32F429,参考的是正点原子的STM32F4开发板。本文主要说明一下代码移植过程注意事项,记录一下其中最基本的几个改动。方便后续再次做
    发表于 08-04 08:52

    胆机使用的注意事项

    胆机使用的注意事项:胆机使用的注意事项 我是初哥, 现在对胆机感兴趣, 但听说胆机使用麻烦, 请问有什么需要注意的?湖南吉首火车站 范增不必担心, 胆机的使用方法
    发表于 11-29 17:09 46次下载

    傲龙微晶屏的使用技巧和注意事项

    傲龙微晶屏的使用技巧和注意事项
    发表于 02-10 10:03 585次阅读

    钽电解应用注意事项

    钽电解应用注意事项 使用电压---------------------------------------------------------------------------------------------------------------------电容器
    发表于 03-31 15:54 557次阅读

    浅谈PCB板设计注意事项

    在设计PCB板时应注意的一些基本事项:相关PCB设计参数详解以及相关注意事项
    发表于 05-09 16:05 3364次阅读

    H3 SDK1.0 USB模块的配置方法及注意事项

    本文介绍H3 sdk1.0 USB模块配置方法,以及使用注意事项
    发表于 03-26 16:36 6次下载
    H3 <b class='flag-5'>SDK</b>1.0 USB模块的配置方法及<b class='flag-5'>注意事项</b>

    SDK中的B85m_ble_sample例程的使用及注意事项

    单连接SDK中B85m_ble_sample适用825x芯片和827x芯片,所以编译选项中又分为了825x_ble_sample和827x_ble_sample(下文统称ble_sample)。
    的头像 发表于 07-13 16:21 1263次阅读

    SDK中的B85m_ble_remote例程的使用及注意事项

    在泰凌Wiki网站上提供了多种应用场景的软件SDK,供客户选择使用。本系列的几篇文章主要讲述"Bluetooth LE Single Connection",此SDK是单连接
    的头像 发表于 07-20 16:34 1878次阅读

    使用注意事项

    使用注意事项
    发表于 03-17 20:14 0次下载
    使用<b class='flag-5'>注意事项</b>

    使用注意事项

    使用注意事项
    发表于 07-07 19:04 0次下载
    使用<b class='flag-5'>注意事项</b>

    中8位MCU EEPROM使用注意事项

    中颖8位MCU EEPROM使用注意事项
    的头像 发表于 09-27 15:34 504次阅读
    中8位MCU EEPROM使用<b class='flag-5'>注意事项</b>

    展频IC布板注意事项

    展频IC布板注意事项
    发表于 04-14 10:12 4次下载