CC2564C: Migration issues from CC2564B regarding wideband speech

Part Number: CC2564C
Other Parts Discussed in Thread: CC2564MODA, BDE-3P-BD2564CX

Tool/software:

Hi there,

we're currently facing a problem when we migrate our software from CC2564B to CC2564C.

We're using in our hardware the PCM interface with an attached DSP in combination with the assisted modes to do the audio in/out there.

Attached the BTS file we're using.

The current status is, that media playback is working fine.

However, we're not able get wide band speech working on this setup.

The CC2564C datasheet mentions about that:
Support added for standard HCI command for WBS to replace HCI VS command sequence
– Part of the Core Specification Addendum 2 (CSA2)

I would guess, the following commands are meant by the supported standard command, right?

- HCI_Enhanced_Setup_Synchronous_Connection
- Enhanced Accept Synchronous Connection Request Command

Unfortunately, if I query the supported commands from the CC2564C device, the enhanced commands for setting up the synchronous connections are not listed as supported.

My question: Is there anything I have to enable/update/... in the BTS file so these commands get reported as "supported"?

Additional question:

Do you know if the old HCI_VS_WBS_Associate/HCI_VS_WBS_Disassociate commands do have any negative influence on the behaviour of the CC2564C?
Our current software still sends out these commands and they are answered with a positive response.

However, it seems that the command has no effect because if we try to run our current software on the updated device, we hear only loud disturbances. I learded in the past: That indicates that the WBS data is not decoded by the CC2564C internal DSP.

Best regards,

Adalbert

TIInit_6.12.26.bts.zip

  • Hi Adalbert,

    I am looking into it, ill follow up once I have more information.

    Best,

    Rogelio

  • Hi Rogelio,

    all right, please let me know if you need more information.

    Are you aware about updated documents for the CC2564C compared to the CC2564B?

    I'm aware about the following documents:

    CC254x VS HCI commands
    CC256X Advanced Voice and Audio Features
    swra751

    All of them seem to be pretty generic and I'm not aware about recent updates.

    Best regards,
    Adalbert

  • Hi Adalbert

    I apologize for the delay.

    I have looked into the FW and have confirmed both the new CSA commands and the older VS HCI commands are supported by the CC2564C. I also looked at your bts file and confirmed you do have the AVPR patch included.

    Is the codec configured the same in the cc2564B device and the cc2564C device?

    Could you take FW logs of both devices for comparison?

    Here is the guide for the logger you will need.

    https://www.ti.com/lit/ug/swau058d/swau058d.pdf 

    https://www.ti.com/tool/WILINK-BT_WIFI-WIRELESS_TOOLS 

    Best,

    Rogelio

  • Hi Rogelio,

    thanks for the clarification about the supported commands.
    So, that seems to offer two options to go ahead:

    1. Using the vendor specific commands to get WBS working also on CC2564C. In best case, we can keep our implementation compatible to address both controllers.

    2. Avoid using vendor specific commands for CC2564C and use standard commands definded by CSA2.

    Regarding our hardware:
    We simply replaced the CC2564MODA by a BDE-3P-BD2564CX. All other components like codecs are identical.

    Regarding option 1, I have attached two logs for your.
    Both logs were done in a similar condition:
    - Starting up the system with A3DP streaming
    - Start an outgoing call
    - Hangup
    - Start another outgoing call

    During this test, the cal is established on both platforms, but there's no audio at all or disturbances on the CC2564C.

    CC2564C_12.024.00_EVAL2_2Calls.lgr.txtCC2564B_12.024.00_EVAL2_2Calls.lgr.txt

    I also have done another test, where I avoided to start A3DP before starting a call.
    - Starting up the system without A3DP streaming
    - Start an outgoing call
    - Hangup
    - Start another outgoing call

    During this test, the first call works on CC2564C but the 2nd one fails again with disturbances.

    CC2564B_12.024.00_EVAL2_2Calls_SRCTuner.lgr.txtCC2564C_12.024.00_EVAL2_2Calls_SRCTuner.lgr.txt

    To me, the two devices behave totally different regarding the WBS functionality.
    While the CC2564B seems to remain in WBS mode and works/decodes WBS data also in following calls, it seems that the CC2564C stops WBS decoding when the 1st call ends.

    The documentation I have seen (see above) is not detailed enough to get an clear idea about in which conditions the WBS core reacts on what signals.
    It would be very helpfull to get some more details about the assisted modes (Assisted A2DP as well as Assisted HFP) and the interaction on different situations, conditions, signals,... so we can better implement our software without making guesses or do trial and error.

    About the 2nd option:

    Another way to implement the wide band speech properly may be to use the CSA2 commands.

    On the first glance, the controller seems not to report support for these commands.
    # hciconfig hci0 features
    hci0: Type: Primary Bus: UART
    BD Address: 70:B9:50:6C:FF:C9 ACL MTU: 1021:4 SCO MTU: 180:4
    Features page 0: 0xff 0xfe 0x2f 0xfe 0x9b 0xff 0x7b 0x87
    <3-slot packets> <5-slot packets> <encryption> <slot offset>
    <timing accuracy> <role switch> <hold mode> <sniff mode>
    <RSSI> <channel quality> <SCO link> <HV2 packets>
    <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme>
    <power control> <transparent SCO> <EDR ACL 2 Mbps>
    <EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan>
    <interlaced pscan> <inquiry with RSSI> <extended SCO>
    <EV4 packets> <EV5 packets> <AFH cap. perip.>
    <AFH cls. perip.> <3-slot EDR ACL> <5-slot EDR ACL>
    <sniff subrating> <pause encryption> <AFH cap. central>
    <AFH cls. central> <EDR eSCO 2 Mbps> <EDR eSCO 3 Mbps>
    <3-slot EDR eSCO> <extended inquiry> <LE and BR/EDR>
    <simple pairing> <encapsulated PDU> <err. data report>
    <non-flush flag> <LSTO> <inquiry TX power> <EPC>
    <extended features>
    Features page 1: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00


    # hciconfig hci0 commands
    hci0: Type: Primary Bus: UART
    BD Address: 70:B9:50:6C:FF:C9 ACL MTU: 1021:4 SCO MTU: 180:4
    Commands: Octet 0 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 1 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 2 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 3 = 0x03 (Bit 0 1)
    Octet 4 = 0xce (Bit 1 2 3 6 7)
    Octet 5 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 6 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 7 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 8 = 0x0f (Bit 0 1 2 3)
    Octet 9 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 10 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 11 = 0x1f (Bit 0 1 2 3 4)
    Octet 12 = 0xf2 (Bit 1 4 5 6 7)
    Octet 13 = 0x0f (Bit 0 1 2 3)
    Octet 14 = 0xe8 (Bit 3 5 6 7)
    Octet 15 = 0xfe (Bit 1 2 3 4 5 6 7)
    Octet 16 = 0x3f (Bit 0 1 2 3 4 5)
    Octet 17 = 0xf7 (Bit 0 1 2 4 5 6 7)
    Octet 18 = 0x8f (Bit 0 1 2 3 7)
    Octet 19 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 20 = 0x1c (Bit 2 3 4)
    Octet 24 = 0x61 (Bit 0 5 6)
    Octet 25 = 0xf7 (Bit 0 1 2 4 5 6 7)
    Octet 26 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 27 = 0xff (Bit 0 1 2 3 4 5 6 7)
    Octet 28 = 0x7f (Bit 0 1 2 3 4 5 6)
    Octet 29 = 0x38 (Bit 3 4 5)
    'Inquiry' 'Inquiry Cancel' 'Periodic Inquiry Mode'
    'Exit Periodic Inquiry Mode' 'Create Connection' 'Disconnect'
    'Add SCO Connection' 'Cancel Create Connection'
    'Accept Connection Request' 'Reject Connection Request'
    'Link Key Request Reply' 'Link Key Request Negative Reply'
    'PIN Code Request Reply' 'PIN Code Request Negative Reply'
    'Change Connection Packet Type' 'Authentication Requested'
    'Set Connection Encryption' 'Change Connection Link Key'
    'Temporary Link Key' 'Remote Name Request'
    'Cancel Remote Name Request' 'Read Remote Supported Features'
    'Read Remote Extended Features' 'Read Remote Version Information'
    'Read Clock Offset' 'Read LMP Handle' 'Hold Mode' 'Sniff Mode'
    'Exit Sniff Mode' 'QoS Setup' 'Role Discovery' 'Switch Role'
    'Read Link Policy Settings' 'Write Link Policy Settings'
    'Read Default Link Policy Settings'
    'Write Default Link Policy Settings' 'Flow Specification'
    'Set Event Mask' 'Reset' 'Set Event Filter' 'Flush' 'Read PIN Type'
    'Write PIN Type' 'Create New Unit Key' 'Read Stored Link Key'
    'Write Stored Link Key' 'Delete Stored Link Key' 'Write Local Name'
    'Read Local Name' 'Read Connection Accept Timeout'
    'Write Connection Accept Timeout' 'Read Page Timeout'
    'Write Page Timeout' 'Read Scan Enable' 'Write Scan Enable'
    'Read Page Scan Activity' 'Write Page Scan Activity'
    'Read Inquiry Scan Activity' 'Write Inquiry Scan Activity'
    'Read Class Of Device' 'Write Class Of Device' 'Read Voice Setting'
    'Write Voice Setting' 'Read Automatic Flush Timeout'
    'Write Automatic Flush Timeout' 'Read Num Broadcast Retransmissions'
    'Write Num Broadcast Retransmissions' 'Read Hold Mode Activity'
    'Write Hold Mode Activity' 'Read Transmit Power Level'
    'Read Synchronous Flow Control Enable'
    'Write Synchronous Flow Control Enable'
    'Set Host Controller To Host Flow Control' 'Host Buffer Size'
    'Host Number Of Completed Packets' 'Read Link Supervision Timeout'
    'Write Link Supervision Timeout' 'Read Number of Supported IAC'
    'Read Current IAC LAP' 'Write Current IAC LAP'
    'Set AFH Channel Classification' 'Read Inquiry Scan Type'
    'Write Inquiry Scan Type' 'Read Inquiry Mode' 'Write Inquiry Mode'
    'Read Page Scan Type' 'Write Page Scan Type'
    'Read AFH Channel Assessment Mode' 'Write AFH Channel Assessment Mode'
    'Read Local Version Information' 'Read Local Supported Features'
    'Read Local Extended Features' 'Read Buffer Size' 'Read BD ADDR'
    'Read Failed Contact Counter' 'Reset Failed Contact Counter'
    'Get Link Quality' 'Read RSSI' 'Read AFH Channel Map' 'Read BD Clock'
    'Read Loopback Mode' 'Write Loopback Mode'
    'Enable Device Under Test Mode' 'Setup Synchronous Connection'
    'Accept Synchronous Connection' 'Reject Synchronous Connection'
    'Read Extended Inquiry Response' 'Write Extended Inquiry Response'
    'Refresh Encryption Key' 'Sniff Subrating' 'Read Simple Pairing Mode'
    'Write Simple Pairing Mode' 'Read Local OOB Data'
    'Read Inquiry Response Transmit Power Level'
    'Write Inquiry Transmit Power Level'
    'Read Default Erroneous Data Reporting'
    'Write Default Erroneous Data Reporting' 'IO Capability Request Reply'
    'User Confirmation Request Reply'
    'User Confirmation Request Negative Reply'
    'User Passkey Request Reply' 'User Passkey Request Negative Reply'
    'Remote OOB Data Request Reply' 'Write Simple Pairing Debug Mode'
    'Enhanced Flush' 'Remote OOB Data Request Negative Reply'
    'Send Keypress Notification' 'IO Capability Request Negative Reply'
    'Read Encryption Key Size' 'Read Enhanced Transmit Power Level'
    'Read LE Host Support' 'Write LE Host Support' 'LE Set Event Mask'
    'LE Read Buffer Size' 'LE Read Local Supported Features'
    'LE Set Random Address' 'LE Set Advertising Parameters'
    'LE Read Advertising Channel TX Power' 'LE Set Advertising Data'
    'LE Set Scan Response Data' 'LE Set Advertise Enable'
    'LE Set Scan Parameters' 'LE Set Scan Enable' 'LE Create Connection'
    'LE Create Connection Cancel' 'LE Read Accept List Size'
    'LE Clear Accept List' 'LE Add Device To Accept List'
    'LE Remove Device From Accept List' 'LE Connection Update'
    'LE Set Host Channel Classification' 'LE Read Channel Map'
    'LE Read Remote Used Features' 'LE Encrypt' 'LE Rand'
    'LE Start Encryption' 'LE Long Term Key Request Reply'
    'LE Long Term Key Request Negative Reply' 'LE Read Supported States'
    'LE Receiver Test' 'LE Transmitter Test' 'LE Test End'

    As far as I can see, octet 29 has bits 3, 4 and 5 set, so it seems that the controller reports support for the commands already.
    Last time, I just looked for the decoded values instead of the registers, which lead me to the wrong assuption that the commands are not reported as "supported".

    Sorry for the confusion about that point...

    But that means: Sending the enhanced commands from CSA2 should enable WBS once we send it to the CC2564C controller.

    Best regards,

    Adalbert