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

描述

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

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

1

ble_sample例程说明

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

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

2

开发板选择

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

开发板

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

开发板

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

3

使用演示

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连接,是看不到上面的按键的效果。

4

电流测试

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跳线帽需要拔掉。

5

低功耗注意点

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()中,开发者可以根据需要做修改。

开发板

审核编辑 :李倩

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分