2 Replies Latest reply on Aug 30, 2020 11:29 PM by TrDo_2870581

    Issue in establishing connection with CYW43012 (standard HCI mode)




      I've another thread with the same question but that thread is locked so I cannot reply at that thread. So I re-created it here.


      I'm using CYW43012, which is controlled by another MCU through UART flow-control with standard HCI protocol (not Wiced).

      Currently, I'm able to make it advertise normally. However, when I'm using a phone to connect to it, it always fails.


      When I look into the HCI data, here is the result when phone is trying to connect to Cypress:



      BLE_GAP_EVT_ADV_START --------------------------> Start advertising normally

      hciEvtProcessMsg: evt=3E, data=0A00400001010FBA4B90174200000000000000000000000018000000480001

      DM_CONN_OPEN_IND, r=0, cid=1 -------------------> Phone is trying to connect

      hciEvtProcessMsg: evt=3E, data=14400000 --------> Channel selection Algorithm event

      hciEvtProcessMsg: evt=FF, data=5500004000 ------> 0xFF as event code indicates that this is a Cypress vendor specific event. I don't know what the meaning of this event.

      hciEvtProcessMsg: evt=05, data=00400008 --------> Disconnect event with reason 0x08 (Supervision timeout)

      DM_CONN_CLOSE_IND, r=0, cid=1 ------------------> Connection close

      hciEvtProcessMsg: evt=0E, data=01082000

      hciEvtProcessCmdCmpl: 2008

      hciEvtProcessMsg: evt=0E, data=01092000

      hciEvtProcessCmdCmpl: 2009

      hciEvtProcessMsg: evt=0E, data=01062000

      hciEvtProcessCmdCmpl: 2006

      hciEvtProcessMsg: evt=0E, data=010A2000

      hciEvtProcessCmdCmpl: 200A

      BLE_GAP_EVT_ADV_START --------------------------> Start advertising again



      As you can see, when the phone is trying to connect to Cypress, the Cypress sent back a vendor-specific HCI event along with the event data (marked as RED above).

      I've tried finding on google if there is any document about this event code and event data but no luck.

      I doubt that this is the reason why the disconnection happens, as the MCU does not handle this event correctly, thus, there is no communication between host and the Cypress board, which leads to disconnect with supervision timeout.


      Could you please help explain what is the meaning of this event and what steps do I need to make it connect successfully?


      Thank you very much.