在泰凌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()中,开发者可以根据需要做修改。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !