【Telink - 泰凌 TL322X 开发板】BLE 广播和连接状态低功耗设置与测试篇
本帖最后由 eefocus_4231172 于 2026-7-1 13:14 编辑一、前言
本篇介绍,如何修改参数使BLE在广播和连接时的功耗达到理想的状态。
二、SDK和DEMO的使用介绍
1、使用的SDK
下载地址:Telink Semiconductor/tl_ble_sdk - Gitee.com
2、使用的DEMO
路径为:tl_ble_sdk\vendor\acl_peripheral_demo
三、开发板展示以及接线
1、正面程序下载口
如上图所示,左上角的三个pin,是程序下载口
2、背面电源供电口
如上图所示,我们在测试功耗的时候,第一需接一个USB口给这个小模组供电,第二需要将SW15上拨,第三给J13引脚的TL_VBAT和GND引脚供电,我上面的仪器可以在给TL_VBAT和GND引脚供电的同时看到当前的电流值。
文章的末尾会有视频进行演示,感兴趣的小伙伴可以查看。
四、正文
1、app_config.h更改
1.1、从机数量,安全管理和低功耗宏修改
#define ACL_PERIPHR_MAX_NUM 1 // ACL peripheral maximum number将ACL_PERIPHR_MAX_NUM 修改为1,表示支持一个从机
#define ACL_PERIPHR_SMP_ENABLE 0 //1 for smp,0 no security将安全管理关闭
#define BLE_APP_PM_ENABLE 1
#define PM_DEEPSLEEP_RETENTION_ENABLE 1
开启电源管理和低功耗RAM保持
1.2、修改LED 和按键功能
#define UI_LED_ENABLE 0
#define UI_KEYBOARD_ENABLE 0
#define UI_BUTTON_ENABLE 0关闭LED和按键功能
1.3、关闭打印功能
#define TLKAPI_DEBUG_ENABLE0关闭打印功能
2、广播间隔修改
blc_ll_setAdvParam(ADV_INTERVAL_500MS, ADV_INTERVAL_500MS, ADV_TYPE_CONNECTABLE_UNDIRECTED, OWN_ADDRESS_PUBLIC, 0, NULL, BLT_ENABLE_ADV_ALL, ADV_FP_NONE);上述代码在app.c中的user_init_normal()函数中,该函数更改的内容为将广播间隔为500ms,意味着每500ms广播一次。
3、连接间隔更改
bls_l2cap_requestConnParamUpdate(pConnEvt->connHandle, CONN_INTERVAL_20MS, CONN_INTERVAL_20MS, 49, CONN_TIMEOUT_4S);// 1 second上述代码在app.c中的app_le_connection_complete_event_handle(u8 *p)函数中,该函数的作用为,更改间隔已经延迟次数,让从机和主机没1s通讯一次。
4、使用nRF Connect手机APP软件查看广播间隔
4.1、搜索“periphr_demo”广播名
4.2、查看广播间隔
如上图所示广播间隔为500ms
5、使用nRF Connect手机APP软件查看连接间隔和延迟参数
5.1、搜索“periphr_demo”广播名
5.2、点击CONNECT后的GATT服务表
点击右上角的三个点
5.3、点击show log
5.4、出现下图红色框出来的log信息表示更新连接参数成功
6、广播时的功耗图片
如上图所示,广播时的功耗在52ua左右
7、连接时的功耗
如上图所示,连接时的功耗在45ua左右
8、视频演示
https://www.bilibili.com/video/BV17YTh6qEDg/?buvid=XUDD9FDDA3E064600D84FE58C9699BCDC63AE&is_story_h5=false&mid=2LX7LHy1gNxE8gmGqAdQCQ%3D%3D&plat_id=147&share_from=ugc&share_medium=android&share_plat=android&share_session_id=414656dc-6991-4c9d-be1d-df33632518e1&share_source=weixin&share_tag=s_i×tamp=1782872208&unique_k=1tnLJ0V&up_id=473390974
页:
[1]