【技术专栏】泰凌微电子BLE单连接SDK(二):B85m_sample例程使用演示

来源:泰凌微电子 #泰凌微电子#
4.7w

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

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

一、ble_sample例程说明

单连接SDK中B85m_ble_sample适用825x芯片和827x芯片,所以编译选项中又分为了825x_ble_sample和827x_ble_sample(下文统称ble_sample)。

ble_sample例程是简单的slave demo,具有广播和连接功能。在BLE服务有HID服务,连接后可以枚举为HID设备,可以控制音量和输入数字等功能。

二、开发板选择

以TLSR8258芯片为例子,常用的有两种开发板,一种是TLSR8258 Development Board(型号C1T139A30_V1.2),如下图所示:

另一种是TLSR8258 Dongle板(型号C1T139A3_V2.0A),如下图所示:

同样,TLSR8278芯片也有上述两种类型的开发板,此处不再赘述。

三、使用演示

1、代码中默认使能了电流测试(禁止了按键等操作),先禁止电流测试。在ble_sample/app_config.h文件中,修改后如下:

#define TEST_CONN_CURRENT_ENABLE       0

2、根据使用的开发板类型,代码中使能的宏定义不同,在ble_sample/app_config.h文件中,修改的宏定义如下:

使用TLSR8258 Development Board

#define BOARD_SELECT       BOARD_825X_EVK_C1T139A30

此时默认使能了UI_KEYBOARD_ENABLE宏,即使用2行2列的按键矩阵,对应开发板的SW2 ~ SW5这4个按键。

使用TLSR8258 Dongle

#define BOARD_SELECT        BOARD_825X_DONGLE_C1T139A3

此时默认使能了UI_BUTTON_ENABLE宏,即使用2个按键,对应TLSR8258 Dongle的SW1和SW2按键。

3、clean工程,然后rebuild编译,并把生成的固件download到开发板中,重新上电或者reset一次。

4、在手机-->设置-->蓝牙 页面,扫描到“VHID”,点击建立连接并选择配对。

5、点击开发板上的按键,手机上会有对应的显示。

在TLSR8258 Development Board上:

按SW2按键,手机的音量增加;

按SW4按键,手机的音量减小;

按SW3按键,在手机的文字输入页面,输入文字“1”;

按SW5按键,在手机的文字输入页面,输入文字“2”;

在TLSR8258 Dongle Board上:

按SW1按键,手机的音量增加;

按SW2按键,手机的音量减小;

*注意:ble_sample例程是HID设备,不需要在手机app中使用。如果使用手机app连接,是看不到上面的按键的效果。

四、电流测试

ble_sample例程默认是开启了电流测试功能,禁止了按键和LED的显示。

#define TEST_CONN_CURRENT_ENABLE    1

如果开发者需要测试各种广播间隔或者连接间隔的低功耗的数据,主要修改的参数有如下几个:

1、发射功率

发射功率越大,RF发射时的瞬时电流就越高。宏定义如下:

#define   MY_RF_POWER_INDEX        RF_POWER_P0dBm

2、广播间隔

广播间隔越小,RF发送数据就越频繁,功耗就越高。宏定义如下:

#define         MY_ADV_INTERVAL_MIN              ADV_INTERVAL_1S

#define         MY_ADV_INTERVAL_MAX             ADV_INTERVAL_1S

最大值和最小值最好设置一样,或者相差5ms。如果设置的最大值远大于最小值,SDK中默认选择使用最大值。

3、广播channel

广播channel总共有3个,当选择3个channel时,每次广播都会在3个channel各发送一次。宏定义如下:

#define     MY_APP_ADV_CHANNEL         BLT_ENABLE_ADV_ALL

4、广播内容

广播数据和扫描回复数据,设置的数据长度越大(最大31bytes),每次广播发送的耗时就越久,功耗也就越高。tbl_advData[ ]数组是广播内容数据;tbl_scanRsp[ ]数组是扫描回复数据。

5、连接间隔

建立连接后,从机可以主动更改连接参数,使用的API函数是:

bls_l2cap_requestConnParamUpdate();

具体的函数说明,请在handbook的文档中搜索。

设置好上述几点之后,就可以重新编译ble_sample例程,下载到开发板中,使用电流分析仪等设备做功耗测试。

*注意:测试功耗时,TLSR8258 Development Board开发板上的J29和J35跳线帽需要拔掉。TLSR8258 Dongle Board开发板上的J8跳线帽需要拔掉。

五、低功耗注意点

1、ble_sample例程默认使能了低功耗功能,宏定义为:

#define BLE_APP_PM_ENABLE                              1

#define PM_DEEPSLEEP_RETENTION_ENABLE     1

2、ble_sample例程,广播超过60s会自动进入深睡眠(deepsleep模式)而停止广播。建立连接,60s内无按键事件,会断开连接并进入deepsleep模式。代码如下图所示,在blt_pm_proc()中,开发者可以根据需要做修改。

关于泰凌:

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

责编: 爱集微
来源:泰凌微电子 #泰凌微电子#
THE END
关闭
加载

PDF 加载中...