Topic

FAQ
Login Register
tlsr8267 蓝牙模块休眠问题
Nov 27, 2018 10:59

/

A

/A
HI :

在用826x_ble_remote的demo source做测试时发现在disable PM(BLE_REMOTE_PM_ENABLE= 0)的情况下,连接8267的设备会在连接后一段时间后收到断开的信号。
请问,8267在空闲的情况会不会自动关闭蓝牙?或者有什么操作没有?

sdk版本:telink_ble_sdk_release_v3.2.0_20170906



best regards
18 replies
TL_Jerry Nov 28, 2018 11:15
0
/A
可以关闭PM的宏,BLE_REMOTE_PM_ENABLE;另外确认下bls_pm_setSuspendMask (SUSPEND_DISABLE)有打开,这时就关闭了低功耗;
HugeZeng [Author] Nov 28, 2018 11:42
0
/A
HI :

已经是设置了bls_pm_setSuspendMask(SUSPEND_DISABLE);和 BLE_REMOTE_PM_ENABLE=0.

现在的情况还是每30S就会断开,但是断开之后在8267没有重启的情况可以重新连接。 对826_ble_remote的连接有什么特殊的要求没有?
TL_Jerry Nov 28, 2018 13:47
0
/A
1、如果BLE_REMOTE_PM_ENABLE= 0,bls_pm_setSuspendMask (SUSPEND_DISABLE);app_power_management ()低功耗处理就会屏蔽掉,应该不会进入到deep状态。请设置后重新clear 一下工程重新编译,确保设计的宏都关掉。
2、如果你说是30s 就会断开,判断不应该是硬件其他问题造成射频问题;还需要具体在查下你的代码;
只有以上2点应该会影响到,不能解决的话需要找具体FAE 协助看下你的应用可能有设置错误导致。
HugeZeng [Author] Nov 28, 2018 16:59
0
/A
HI:

用tdebug读取参数时里面的值全部是cccc,为什么?
TL_Jerry Nov 28, 2018 17:49
0
/A
在进行tedebug时,需要关掉低功耗,保证SWS通信是一直联通的;如果有suspend或者deep,sws 通信会中断;所以没有读出来数据,表现是CCC;
HugeZeng [Author] Nov 29, 2018 12:09
0
/A
HI :

我已经disable了pm,但是只成功一次。3v3,gnd,sws这三根线插上的顺序有要求吗?

另外一个问题:蓝牙和设备连接成功后断电重启blc_smp_param_getCurrentBondingDeviceNumber() 或取到的number是0。
成功配对之后需要手动取储存绑定设备的信息吗?还是它自动保存的?
TL_Jerry Nov 29, 2018 14:52
0
/A
1、三根线插线顺序没有要求,但是在读取ram之前需要sws sync ok,才能读取;具体请详阅AN-18101200-E1_Telink Burning and
Debugging Tool (BDT) User Guide.pdf手册;
2、请确保BLE_REMOTE_SECURITY_ENABLE ,加密宏是打开的,并且设置了
blc_smp_param_setBondingDeviceMaxNumber(4); 绑定设备数量;
bls_smp_enableParing (SMP_PARING_CONN_TRRIGER );打开加密绑定;
设置了加密绑定,才可以读取到bond_number;
请详阅开发手册3.5章节;
HugeZeng [Author] Nov 29, 2018 16:56
0
/A
HI :

#define BLE_REMOTE_SECURITY_ENABLE 1
这个已经设置为1了,但是那个bond_number还是0
bond_number = blc_smp_param_getCurrentBondingDeviceNumber();

我用的是8267x_ble_remote的代码
blc_smp_param_setBondingDeviceMaxNumber(1);
最大bonding number设置为1.
HugeZeng [Author] Nov 29, 2018 19:15
0
/A
HI :

经过测试,我用手机连接82XX_ble_remote那个bond_number是不为0的。
但是我添加了一个gatts service,然后只连接我添加的service,那个bond_number是0
{4,ATT_PERMISSIONS_READ, 2,2,(u8*)(&my_primaryServiceUUID), (u8*)(&my_timerUUID), 0},
{0,ATT_PERMISSIONS_READ, 2, 1,(u8*)(&my_characterUUID), (u8*)(&PROP_READ_NOTIFY), 0}, //prop
{0,ATT_PERMISSIONS_RDWR,2,sizeof(my_controlTimer),(u8*)(&my_timerCharUUID), (u8*)(my_controlTimer), 0}, //value
{0,ATT_PERMISSIONS_RDWR, 2,sizeof (my_timerCCC),(u8*)(&clientCharacterCfgUUID), (u8*)(my_timerCCC), 0},

另外我注册了两个回调函数,也没有被调用到:

bls_app_registerEventCallback (BLT_EV_FLAG_PAIRING_END, &pairing_end);
bls_app_registerEventCallback (BLT_EV_FLAG_PAIRING_BEGIN, &pairing_begin);

有什么建议没?
TL_Jerry Nov 30, 2018 10:03
0
/A
1、“经过测试,我用手机连接82XX_ble_remote那个bond_number是不为0的。“-------在这种可配对的情况下去调用paring begin&end的回调函数,另外你是怎么判断没有进的;两个方法,一是,抓包看BLT_EV_FLAG_PAIRING_BEGIN/BLT_EV_FLAG_PAIRING_END配对过程的底层事件;二是、在该底层事件回调函数中设置LED指示;参见开发手册3.5章节抓包数据说明;
2、“但是我添加了一个gatts service,然后只连接我添加的service,那个bond_number是0“-------只连接你的server,这个概念是错误的;server相关的请参考开发手册3.4章节内容;
PS:如果您是个人开发爱好者请详阅SDK开发手册,基本概念性的信息比较详细;
HugeZeng [Author] Nov 30, 2018 11:33
0
/A
HI :


1、“经过测试,我用手机连接82XX_ble_remote那个bond_number是不为0的。“-------在这种可配对的情况下去调用paring begin&end的回调函数,另外你是怎么判断没有进的;两个方法,一是,抓包看BLT_EV_FLAG_PAIRING_BEGIN/BLT_EV_FLAG_PAIRING_END配对过程的底层事件;二是、在该底层事件回调函数中设置LED指示;参见开发手册3.5章节抓包数据说明;

huge: 我知道怎么判断,我设置了变量通过debug工具读取。也设置了LED。判断没有问题的。问题是无论成功配对与否我设置的回调函数都没有进。

bls_app_registerEventCallback (BLT_EV_FLAG_PAIRING_END, &pairing_end);
bls_app_registerEventCallback (BLT_EV_FLAG_PAIRING_BEGIN, &pairing_begin);

这两个是不是在做slave时无法使用?

2、“但是我添加了一个gatts service,然后只连接我添加的service,那个bond_number是0“-------只连接你的server,这个概念是错误的;server相关的请参考开发手册3.4章节内容;
PS:如果您是个人开发爱好者请详阅SDK开发手册,基本概念性的信息比较详细;
huge: 我是公司行为,而且已经看了SDK的手册。只是蓝牙的概念也许没表达清楚。
我的意思是连接之后在search service时只search我自己定义的UUID和处理相关的character。
TL_Jerry Nov 30, 2018 13:50
0
/A
1、这两个底层事件就是slave 在连接的时候的事件;你可以抓包去分析这个过程;
2、你可以参考文档添加你需要的server,看是否可以读到对应属性值;如果添加没有问题,你可以在尝试删除其他你不需要的server;(但是通用属性部分不要删除);
可以找对应FAE做一下开发培训。
HugeZeng [Author] Nov 30, 2018 13:59
0
/A
Hi

1. sdk好像没有提到怎样抓包?蓝牙的包要怎样抓取?

2. 我自己添加的service是可以了,那些character也可以正常访问。

现在就是好像有些什么东西不匹配,它连接上之后32s就会断开。即使我不断发notify给master,它还是断。
但是反过来,如果master不断去write character则不会断。
TL_Jerry Nov 30, 2018 18:51
0
/A
1、telink 抓包可详阅AN_BLE-15060200-C1_Telink BLE Sniffer User Guide.pdf文档;BLE 抓包方式各家相同,也可以使用友商工具进行开发;
2、如果是固定时间周期断开,请检查代码是否有定时低功耗设置处理;如果是不定时断开请排查RF 硬件相关问题;

[size=150][size=150]请咨询对应FAE,谢谢。[/size][/size]
HugeZeng [Author] Nov 30, 2018 18:59
0
/A
HI:

Thanks。

FAE让有问题先发贴 :lol:
TL_Jerry Nov 30, 2018 19:06
0
/A
我司都是拜访客户实地培训,体现优良服务。你的评论需谨慎一些,这里是公共服务平台!谢谢合作。 :)
HugeZeng [Author] Nov 30, 2018 20:34
0
/A
HI :

有问题先发贴是正常的流程啦。这个流程我也表示理解,否则什么事情都找FAE,忙不过来。
TL_tigeryang0203 Dec 05, 2018 09:16
0
/A
你好,你的问题比较复杂,建议来深圳或上海办公室现场解决。
Related topics
No related topics
Author's other topics
No more topics