目前使用TI CC2640R2去测试某个芯片是nxp的BLE Slave遇到了问题,没有接收到BLE Slave notify 的数据。
BLE Slave 的service uuid 是02362affcf3a11e1efde0002a5d5c51b,特征uuid1是02362a10cf3a11e1efde0002a5d5c51b,具有可写属性,特征uuid2 是02362a11cf3a11e1efde0002a5d5c51b,具有可通属性且CCCD uuid是2902;
图1:nxp BLE slave Service 属性表截图
1 正常情况下,若BLE Slave 收到特征uuid 0x2a10写的指定长的的数据(len=40),会notify len =24数据,我使用手机app 测试,
连接后,通过0x2a10 特征值 uuid 发送指定的数据,app端是可以收到BLE Slave通过特征值 uuid 0x2a11 具有notify属性 应答的数据(len=24)。
图2:正常情况手机app 可接收BLE Slave notify的数据log截图
2 我是用 TI CC2640R2 蓝牙模块做个仿真BLE Slave,新增一个同样的service uuid (2aff),
特征值 uuid1 (2a10具有写属性),特征值uuid2 (2a11具有可通知属性),若收到master 通过特征uuid 0x2a10写len=40 数据后,也会通过特征uuid 0x2a11 notify 到master 数据(len=20)
图3:仿真BLE slave service uuid截图
经用手机app 或TI CC2640R2的master测试,连接后,发送len40的指定数据,都能收到CC2640R2仿真salve 设定的notify 数据,说明仿真salve 特征uuid ok。
图4:app 或TI Master 测试仿真slave 能收到notify数据log截图
3 然而,我用TI CC2640R2的master 测试nxp的BLE Slave,经测试发现,连接后master通过特征uuid 0x2A10发送len=40的指定数据,BLE Slave 接收后,没有notify数据。且nxp的BLE Slave 的帧信息不再被侦测。
图5:TI Master 测试nxp BLE slave 不能收到notify数据log截图
以上就是问题描述,
有些注意的是
1 nxp BLE slave 用的蓝牙协议是4.2,TI CC2640R2 蓝牙模块仿真slave以及Master 用的是5.1,不知协议是否会冲突?
2 芯片方面,BLE slave用的是nxp ,型号未知。而仿真slave以及Master用的是TI CC2640R2;
不知TI CC2640R2 master 接收NXP BLE Slave notify 数据失败原因,望TI 技术支持!
user6224880:
谁能帮忙解答下?先谢了。
Viki Shi:
CC2640R2F协议栈里也有BLE4.2的例程,能否用4.2的例程测试一下?
user6224880:
回复 Viki Shi:
好的,我先试一下,谢谢!!
Barbara Wu:
回复 user6224880:
如果用手機APP和NXP slave做同樣操作測試呢?
user6224880:
回复 Barbara Wu:
如2描述所示,app是可以收到 BLE slave notify的数据的。用CC2640R2 master 就不行。
Barbara Wu:
回复 user6224880:
对已经做的测试的理解:
1. 用TI CC2640仿真做BLE slave,使用TI master, 手机APP测试都是可以工作的
2. 用TI master 和 NXP slave测试部工作
但是没有做手机APP和NXP BLE slave的测试?
如果做了,结果是什么?有没有抓包对比TImaster和手机APP接NXP BLE slave的log?
user6224880:
回复 Barbara Wu:
是的,用TI master测试NXP slave,master 没有收到salve 的notify的数据.
而用TI master 或APP 测试仿真的salve 能收到slave notify的数据。
对比log也是有的。
app rsp og截图:
TI CC2640R2 no notify: