This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/CC2564C: The assisted WBS cannot work after disabled BLE

Part Number: CC2564C

Tool/software: Linux

Hello,

Currently my application support headset profile with WB-Speech based on classic BR/EDR , and new feature supporting BLE beacon is needed.

Disable BLE, then establish a WB-speech that works well. Enable BLE after WB-speech is finished, BLE works well.

It means that either BLE or WB-speech works well independently.

If BLE is enabled and working, receive a AT command/Off hook message to establish a WB-speech.Before establish eSCO, I send command disable BLE with setting mode as not discoverable and disable BLE function with VS hci command, but which fails and also affects current headset working.I try some sequence combinations to disable BLE in this case, no one works.

So, how to make current working BLE change to establish WB-speech successfully, any effect steps to do?

Thanks.

  • Hi , Can you pls share CC256x firmware logs and sniffer logs (if possible) ?

    Thanks
    Saurabh
  • Please help check that BLE-related command settings work abnormally after SCO ends.
  • Peijie,

    The logs indicate that the host is not switching between BLE and AVPR correctly. Like I mentioned in my previous post (link), the respective add-ons must be downloaded prior to activating each BLE or AVPR each time. Instead, the host seems to just use HCI_VS_LE_Enable and HCI_VS_AVPR_Enable commands.

    The proper way to switch is like the following.

    • Switching from BLE to AVPR
      1. Send HCI_VS_LE_Enable 0xFD5B, 0x00, 0x00
      2. Download (all commands of) the initscripts-TIInit_6.12.26_avpr_add-on.bts
      3. Start WBS call or assisted A2DP from the host stack.
    • Switching from AVPR to BLE
      1. Send HCI_VS_AVPR_Enable 0xFD92, 0x00, 0x00, 0x00, 0x0000
      2. Download (all commands of) the initscripts-TIInit_6.12.26_ble_add-on.bts
      3. start BLE activities from the host stack.

    This sequence should be followed every time the host switches between the two modes.

    Best regards,

    Vihang

  • Hello,

    When our phone is in beacon, there is incomming call and we first stop beacon and then we following the steps to send HCI_VS_LE_Enalbe 0xFD5B,0x00,0x00 to stop BLE.

    The problem is in this case the stop beacon command can't get reply.

    But if there is no incomming call and the state is in idle, we stop beacon then there will be reply for the stop beacon command.

    And when we make outgoing call, when we received handset offhook state, we know phone is going to use HFP to make call, and we try to stop beacon and BLE. At this moment, it's also late to stop beacon.For we still can't get reply for stop beacon success message.

    It seems during beacon, no activityof BR/EDR related should be done, otherwise there will be error.

    Would you tell how could we handle this?

    Regards

    Gao Hong

  • Hello Hong,

    If the HCI_VS_LE_Enable 0xFD5B, 0x00, 0x00 is sent to the CC2564C, no other BLE commands i.e. HCI_LE_Set_Advertise_Enable 0x00 should be sent after that. Is there a way for you to handle this internally in the host stack?

    If not, you will have to add some implementation in the host stack that will stop all open LE activity before sending the HCI_VS_LE_Enable 0xFD5B, 0x00, 0x00 to the controller.

    BR,
    Vihang