Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

PSoC™ 6 Forum Discussions

zhji_4006061
Level 3
First solution authored 10 questions asked 25 sign-ins
Level 3

我们用PSOC6 BLE当外围设备,手机当中心设备, 两者传输数据时,psoc6概率性(1%的概率)出现蓝牙挂死。具体现象是 断开手机蓝牙后,无法收到ble广播,硬件上查到ble的晶振一直处于起振状态,硬复位后恢复正常。

看起来是,psoc6的ble协议栈没有检测到对端设备已经断开连接,所以一直保持连接状态。这是psoc6协议栈的问题?还是晶振或者硬件时钟问题?

0 Likes
1 Solution
ShipingW_81
Moderator
Moderator 500 replies posted 250 solutions authored 250 replies posted
Moderator

那有没有收到CY_BLE_EVT_TIMEOUT事件?一般来说即使GATT Client蓝牙突然断掉,会首先产生CY_BLE_EVT_TIMEOUT事件继而产生CY_BLE_EVT_GAP_DEVICE_DISCONNECTED

你可以试下,在能复现问题的手机上,主动断开连接和直接关掉蓝牙,设备端反应有什么不一样。

View solution in original post

0 Likes
4 Replies
Roy_Liu
Moderator
Moderator 1000 replies posted 500 solutions authored 5 questions asked
Moderator

WangS_81

Roy Liu
0 Likes
ShipingW_81
Moderator
Moderator 500 replies posted 250 solutions authored 250 replies posted
Moderator

可以观察下出现问题的情况下,断开连接后,设备端有没有产生以下事件?

CY_BLE_EVT_GATT_DISCONNECT_IND

CY_BLE_EVT_GAP_DEVICE_DISCONNECTED

还有,断联之后重启广播的代码放在哪里的?

不同手机是否复现问题的概率也不一样?

0 Likes
zhji_4006061
Level 3
First solution authored 10 questions asked 25 sign-ins
Level 3

1, 断开连接后,设备端没有收到disconnect事件

2,重启广播的代码放在 收到CY_BLE_EVT_GAP_DEVICE_DISCONNECTED事件后。

3,出现概率很低,在小米4 和 iphone8P 各出现了一次。很难复现问题。

0 Likes
ShipingW_81
Moderator
Moderator 500 replies posted 250 solutions authored 250 replies posted
Moderator

那有没有收到CY_BLE_EVT_TIMEOUT事件?一般来说即使GATT Client蓝牙突然断掉,会首先产生CY_BLE_EVT_TIMEOUT事件继而产生CY_BLE_EVT_GAP_DEVICE_DISCONNECTED

你可以试下,在能复现问题的手机上,主动断开连接和直接关掉蓝牙,设备端反应有什么不一样。

0 Likes