Other Parts Discussed in Thread: CC2564C, CC2564
We have been able to get the unassisted A2DP and unassisted HFP up and running now with the CC2564C. The A2DP works great in terms of sound quality. However with HFP we have the following observations.
- The SCO packets are received with 3 different status - valid packets, no data packets and possibly invalid packets - this is based on the return value from the Bluetopia stack (etHFRE_Audio_Data_Indication) event handler.
- The amount of "no data packets" is way to high (almost 40-60%). This causes a loss of quality of voice. We have implemented a basic PLC (Packet Loss Concealment) but it really can't handle this much packet loss.
- The SCO data is routed over HCI using the following
HCI_VS_Write_SCO_Configuration (0xFE10) 0x01, 0x3C, 0xD0, 0x02, 0x01
SCO_Set_Physical_Transport(BluetoothStackID, sptHCI);
HCI_Change_SCO_Configuration(BluetoothStackID, hscOneChannel16BitVoice);
HCI_Write_Default_Erroneous_Data_Reporting(BluetoothStackID, HCI_ERRONEOUS_DATA_REPORTING_ENABLED, &erroneousData);
HCI_Write_SCO_Flow_Control_Enable(BluetoothStackID, HCI_SCO_FLOW_CONTROL_ENABLE, &scoFlowControl);
HCI_Set_Host_Flow_Control(BluetoothStackID, 100, 1024);
- We believe there is some kind of flow control settings in the controller that needs to be set to optimize this.
- We have been looking into the following commands but not much could be found in the documentation or the Internet in terms of what they do and what is the optimum for a good quality.
- HCI_Flow_Spec_Modify/HCI_FLOW_Specification:
- HCI_Write_SCO_Flow_Control_Enable: Have tried this but without any visible/audible changes in quality
- HCI_Set_Host_Controller_To_Host_Flow_Control:
- HCI_Write_Flow_Control_Mode:
- HCI_Set_Host_Flow_Control: This commands seems to have given some improvement. When doing one way sound (AG to HF) with ACL set to 100 and SCO to 1024 reduced the "no data" packets from ~50% to ~25% but the reduction is not very consistent (sometimes the loss is ~35%). And the moment we did two way - the loss increased again making the sound quality bad.
- One more observation is that with 2 way call - the sound quality is good for initial few seconds and then deteriorates.
It would be of great help if you can throw some light on this - what can be done to reduce the "no data" packets over the eSCO link. Any pointers to look into would be of immense help.
