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.

CC256XB-BT-SP: CC2564B Power Control Step Size and Maximum Power

Part Number: CC256XB-BT-SP
Other Parts Discussed in Thread: CC2564, TEST2

Hi all,

We are currently using Bluetooth Classic on a CC2564B chip with SP version 1.4 (Main Script + AVPR). The power vectors are set to use the maximum power of { 3dBm, 2dBm, 2dBm } and minimum power of { -33dBm, -32dBm, -32dBm } for modulation schemes { GFSK, EDR2, EDR3 }. All required steps to update the power vectors are followed during initializations (set three power vectors->class 2 single power->rf calibration). We performed continuous transmission test using command HCI_VS_DRPb_Tester_Con_RX (0xFD17) (followed by Write_Hardware_Register & Enable_RF_Calibration) for all 8 power levels. No external Power Amplifier is used. The antenna extension cable was used to connect the equipment and UUT. The step size for the first step does not fulfill the specification which is [ 2, 8 ]. Here are the results for GFSK and EDR2 schemes. For EDR3, the output power was measured only for level 8.

  • The first step in increasing power tests does not satisfy the step size criteria
  • Output power for the GFSK is too high, should be ~3 dBm
  • EDR2 and EDR3 powers are 0.5dBm higher than expected (this may not be an issue considering the gain adjustments  on equipment for losses)
  • Lowest power level does not match the power vector settings for GFSK ( -33dBm ) and EDR2 ( -32dBm )
  • Using latest SP version 1.6 yields similar results. (shouldn't make any difference as the improvements/fixes made after v1.4 were intended for BLE)
GFSK
POWER LEVEL   AVG. POWER  STEP SIZE
Level 1 -20.1 dBm  - 
Level 2 -21 dBm 0.9
Level 3 -16 dBm 5
Level 4 -11 dBm 5
Level 5 -5.9 dBm 5.1
Level 6 -1 dBm 5.3
Level 7 3.8 dBm 4.9
Level 8 9.1 dBm
(should be ~3 dBm)
5.3

EDR2
POWER LEVEL   AVG. POWER  STEP SIZE
Level 1 -24.2 dBm  - 
Level 2 -24.2 dBm 0
Level 3 -19.9 dBm 4.3
Level 4 -15.6 dBm 4.3
Level 5 -10.9 dBm 4.7
Level 6 -6.8 dBm 4.1
Level 7 -2.2 dBm 4.6
Level 8 2.5 dBm
(EDR3: 2.48 dBm)
4.7

We have similar software running on other product with cc2564 chip and it does pass continuous transmission test.

Please let me know if you have any suggestions/comments.

Thanks,
Chetan

  • Hi Chetan,

    Your query has been assigned to CC256x hardware experts. We will get back to you soon.

    Best regards,
    Vihang
  • Hi Chetan,

    Can send your log capture?
    see link below for guidelines on how that is done.
    processors.wiki.ti.com/.../CC256x_Logger_User_Guide

    Regards,
    Charles O
  • Here is the log file. It contains the activities for the continuous transmission test - starting from the power level 1, up to power level 8

    Let me know if you require more information.

    BT_CONT_TX_TEST.rar

    Thanks,
    Chetan

  • Can you please list the precise commands you used to reconfigure the power levels? Is the issue that the adjusted power levels are not taking effect?
  • Hi Chetan,

    I second Brad, the logs do not cover the part where the power levels were actually written to the CC256x.

    Capturing the log starting before the device initializes will capture all the info we need. With that info, we can look into what is going wrong.

    Best regards,
    Vihang

  • Hi all,

    Thank you for your responses. Here is the full log. The last part of the log should be the continuous transmission test.

    Brad, at this moment, it is unclear that if the chip is taking the adjusted power levels or not but EDR2 ( and EDR3) schemes are following the maximum power level of ~2dBm so  I wouldn't say for sure that the new levels are not in effect. 

    We are going to perform tests with all 8 power levels increased by 3dBm and 6dBm. The purpose of  these tests would be to see if the chip took the new levels or not and if it behaves the same or not. I will let you guys know the results soon.

    BT_CONT_TX_TEST_FULL_LOG.rar

    Thanks,
    Chetan 

  • Please see the results for the new tests performed with the 3dBm and 6dBm increased power levels.

    PREVIOUS TEST POWERS: (TEST1)
    Schemes:                              : { GFSK,         EDR2,      EDR3   }
    Maximum power levels      : { 3dBm,         2dBm,      2dBm    }
    Minimum power levels for : { -32dBm,  -33dBm,    -33dBm  }

    NEW TEST (TEST2):

    - All 8 powers incremented by 3dBm (with respect to TEST1)
    Schemes:                             : { GFSK,         EDR2,      EDR3   }
    Maximum power levels     : { 6dBm,         5dBm,      5dBm    }
    Minimum power levels      : { -29dBm,  -30dBm,    -30dBm  }

    NEW TEST (TEST3):

    - All 8 powers incremented by 6dBm (with respect to TEST1)
    Schemes:                             : { GFSK,         EDR2,       EDR3   }
    Maximum power levels     : { 9dBm,         8dBm,       8dBm    }
    Minimum power levels      : { -26dBm,   -27dBm,    -27dBm  }

    RESULTS

    GFSK
    POWER LEVEL  MAX: 6dBm( 3dB increment to previous test) MAX: 9dBm( 6dBm increment to previos test) STEP
    8 7.6 7.7 -
    7 3.6 3.6 4
    6 -0.95 -0.96 4.55
    5 -5.9 -5.9 4.95
    4 -10.9 -10.9 5
    3 -16.0 -16.0 5.1
    2 -21.0 -21.0 5
    1 -21.0 -21.04 0

    EDR2
    POWER LEVEL  MAX: 6dBm( 6dBm increment to previous test) MAX: 9dBm( 6dBm increment to previos test) STEP
    8 2.1 2.14 -
    3 -20.0 -20.0 -
    2 -24.26 -24.26 4.26
    1 -24.25 -24.25 0

    EDR3
    POWER LEVEL  MAX: 6dBm( 6dBm increment to previous test) MAX: 9dBm( 6dBm increment to previos test) STEP
    8 2.10 2.14 -
    3 -20.05 -20.0 -
    2 -24.28 -24.28 4.28
    1 -24.28 -24.28 0

  • PS: The results are for the frequney 2440
  • It looks like your changes have no impact on the power levels. Are you sure you're sending the right commands? Please see the documentation for the power command:

    processors.wiki.ti.com/.../CC256x_VS_HCI_Commands

    Specifically please be sure that you read ALL THE WAY because there is a full example showing how to change the power vectors. The last step is to send a calibration command. If you're not sending the calibration command then you will see no change.
  • Alrighty. Thank you for the response. I checked the RF calibration command and we are currently using calibration procedure value (CPV for short) of 0x00000001. The example at the link you sent me uses CPV of 0x00000800. I changed the CPV  to new value and the results no longer violate the step size specifications. I do see all 8 power levels values as expected except that observed average power levels are decremented by 3dBm ( but it could be our equipment calibration and losses calculations issues ) which is consistent throughout the tests for 3dB and 6dB incremented power levels.

    Now, coming back to those CPVs, TI wIkipage 'CC256x VS HCI Commands' does not contain any information on what how this value affect the calibration.

    In 'CC256x VS HCI Commands' wikipage revision as of 10:56, 11 December 2015 , there are two calibration commands used after updating the power vectors in the example shown and the first RF calibration command uses CPV of 0x00000001. Here are the commands for the reference.

    #1: Run TPC (Transmission Power Control) calibration

    Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x00, 0x00000001, 0x01
    Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, 0x00, 0xfd80, 0x00

    #2: Run TPC (Transmission Power Control) calibration

    Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x3c, 0x00005ff0, 0x00
    Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, 0x00, 0xfd80, 0x00

    Later, Revision as of 13:21, 22 December 2015, the example contains only one calibration command with CPV of 0x00000800. Here is the command for the reference.

    #Run internal calibration

    Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x00, 0x00000800, 0x01  

    Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, 0x00, 0xfd80, 0x00

    Questions:

    1. I'd like to know that how these two different CPVs affect the calibration procedure ? If the chip gets an incorrect CPV, does it perfrom incorrect calibration or  no calibration at all ?

    2. The tests with the invalid step size results utilized CPV of 0x00000001 with the stack version 1.4. Using the same CPV with stack version 1.6 yielded the same results. Does this mean that CPV of 0x00000001 was for older stakc version and is no longer supported in service pack 1.4 or 1.6 ?

    Please let me know !

    I really appreciate your help in tackling his issue.

    Thanks,
    Chetan

  • This comment is just a place holder.

  • Glad to hear you can actually adjust the power now. I've sent some emails to try and dig up some further details pertaining to that wiki update.
  • Great. Thank you so much for your support. I'll wait for your response to learn how the CPVs affect the calibration procedure. For now, as per our observations, I can infer that CPV does depend on the BT stack version (1.4 and 1.6 do not work with 0x00000001 but 0x00000800).

    Thanks & have a great weekend,
    Chetan
  • Chetan Patel46 said:
    For now, as per our observations, I can infer that CPV does depend on the BT stack version (1.4 and 1.6 do not work with 0x00000001 but 0x00000800).

    No, this is not related to the firmware revision.  These have a fixed meaning.

    <Values name="RF_Calibration_DRPb_Bitmap" type="mask">
    <Value val="0x00000001">Pre RF init</Value>
    <Value val="0x00000008">Clock Dependant Calc</Value>
    <Value val="0x00000010">Temperature recognition</Value>
    <Value val="0x00000020">DC</Value>
    <Value val="0x00000040">LDO</Value>
    <Value val="0x00000080">DCO Current Optimization</Value>
    <Value val="0x00000100">DCO Coarse Open Loop</Value>
    <Value val="0x00000200">KDCO Nominal Current</Value>
    <Value val="0x00000400">PPA LDO Current</Value>
    <Value val="0x00000800">TPC</Value>
    <Value val="0x00001000">IFA Pole Location</Value>
    <Value val="0x00002000">LPS</Value>
    <Value val="0x00004000">Wide Band RSSI TH</Value>
    <Value val="0x00008000">IQ MM</Value>
    <Value val="0x80000000">Don't Change</Value>
    </Values>

    The value 0x800 relates to TPC (Transmission Power Control).  The comment in the wiki page above that command has been updated accordingly.  FYI, the initscript is already sending the following commands and it is not necessary to send them again:

    Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x00, 0x00000001, 0x01

    Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, 0x00, 0xfd80, 0x00

    Send_HCI_VS_DRPb_Enable_RF_Calibration 0xFD80, 0x3c, 0x00005ff0, 0x00

    Wait_HCI_Command_Complete_VS_DRPb_Enable_RF_Calibration_Event 5000, 0x00, 0xfd80, 0x00

  • That helps. Thank you for your support.

    Chetan