STM32WB central role freeze when call disconnect after bonding
I have interesting problem.
Custom PCB as master role using SDK 1.15.0.
Trying bonding procedure, I find an situatiotion where after ACI_GAP_PAIRING_COMPLETE_VSEVT_CODE event, waiting 100ms (as in "BLE_HeartRateFreeRTOS_ANCS" example) (Ithink it is a mistake or error using that algorithm) and starting disconnect operation calling "aci_gap_terminate()" - the FW freeze and I newer receive an "HCI_DISCONNECTION_COMPLETE_EVT_CODE" event.
This log of bonding proc with trying disconnect after ACI_GAP_PAIRING_COMPLETE_VSEVT_CODE like in "BLE_HeartRateFreeRTOS_ANCS" example :
-------------------------------------------------------------------------------
SCAN START: 1 use white_list: 0 result: 0
CONNECT BEGIN: 0
HCI_VENDOR: 0407
HCI_LE_META: 0001
CONNECTION_COMPLETE wit peer: 0000
Bonded=0 SMode=1 SLevel 1
HCI_VENDOR: 0C03
HCI_LE_META: 0007
HCI_VENDOR: 0C03
HCI_VENDOR: 0C10
HCI_ENCRYPTION_CHANGE: enabled: 0001 status: 0000
HCI_VENDOR: 0802
HCI_LE_META: 0003
HCI_VENDOR: 0401
ACI_GAP_PAIRING_COMPLETE: 0000 0000
Bonded=1 SMode=1 SLevel 2
SYS_EVT: 9204 //SHCI_SUB_EVT_NVM_START_WRITE
DISCONNECT BEGIN: 0 0 (!!! calling aci_gap_terminate() after 2 minutes timeout !!!)
----------/* !!! after 2 minutes !!! */----------
SYS_EVT: 9205 //SHCI_SUB_EVT_NVM_END_WRITE
SYS_EVT: 9204 //SHCI_SUB_EVT_NVM_START_WRITE
SYS_EVT: 9205 //SHCI_SUB_EVT_NVM_END_WRITE
-----------------------------------------------------------------------------------------
But when after ACI_GAP_PAIRING_COMPLETE_VSEVT_CODE I continue connection with geting service, characteristics, descriptors and after that ytying to disconnect - its all ok.
LOG:
SCAN START: 1 use white_list: 0 result: 0
CONNECT BEGIN: 0
HCI_VENDOR: 0407
HCI_LE_META: 0001
CONNECTION_COMPLETE wit peer: 0000
Bonded=0 SMode=1 SLevel 1
HCI_VENDOR: 0C03
HCI_LE_META: 0007
HCI_VENDOR: 0C03
HCI_VENDOR: 0C10
HCI_ENCRYPTION_CHANGE: enabled: 0001 status: 0000
HCI_VENDOR: 0802
HCI_LE_META: 0003
HCI_VENDOR: 0401
ACI_GAP_PAIRING_COMPLETE: 0000 0000
Bonded=1 SMode=1 SLevel 2
SYS_EVT: 9204 //SHCI_SUB_EVT_NVM_START_WRITE
CMD_BLE_DISCOVERY_OWN_SERVICE /* begin discovery porc*/
SYS_EVT: 9205 /* WOW i dont need wait 2 minutes!! */
HCI_VENDOR: 0C05 ACI_ATT_FIND_BY_TYPE_VALUE_RESP_VSEVT_CODE
HCI_VENDOR: 0C11 ACI_GATT_ERROR_RESP_VSEVT_CODE
ACI_GATT_ERROR_RESP: 0006 001D 000A
HCI_VENDOR: 0C10 ACI_GATT_PROC_COMPLETE_VSEVT_CODE
CMD_BLE_DISCOVERY_ALL_CHARS
HCI_VENDOR: 0C06 ACI_ATT_READ_BY_TYPE_RESP_VSEVT_CODE
HCI_VENDOR: 0C11 ACI_GATT_ERROR_RESP_VSEVT_CODE
ACI_GATT_ERROR_RESP: 0008 001B 000A
HCI_VENDOR: 0C10 ACI_GATT_PROC_COMPLETE_VSEVT_CODE
CMD_BLE_DISCOVERY_ALL_DESCS
HCI_VENDOR: 0C04 ACI_ATT_FIND_INFO_RESP_VSEVT_CODE
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C04
HCI_VENDOR: 0C10 ACI_GATT_PROC_COMPLETE_VSEVT_CODE
CMD_BLE_DISCOVERY_PARSE_CHARS
HCI_VENDOR: 0C10 ACI_GATT_PROC_COMPLETE_VSEVT_CODE
HCI_VENDOR: 0C10
HCI_VENDOR: 0C10
HCI_VENDOR: 0C10
DISCONNECT BEGIN: 0 0
HCI_DISCONNECTION_COMPLETE: 0016 /* BINGO */
-----------------------------------------------------------------------------
- Is "BLE_HeartRateFreeRTOS_ANCS" example works?
- Why after calling aci_gap_terminate() the second (maybe first) stone is stuck?
Thanks all who answer me.