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.

Output power configuration of CC256x

Other Parts Discussed in Thread: CC2564

HI!

How can I configure the maximal output power of the CC256x to fulfill the regulatory requirement?

Best

 Matthias 

  • Mattais,

    You need to set power vectors for the individual modulation types (GFSK=0, EDR2=1, EDR3=2) and set the max power levels in a separate command. All in all, that's 4 commands which are also executed by the service patch. You can adapt them to your needs.

    To set the following:
    a) Max Output Power is 12dBm(GFSK) and 10dBm (EDRx)
    b) Min Output Power is -35dBm
    c) Dynamic Range is ~30dBm
    d) Step Size is 5dBm
    e) The number of levels is defined by duplicating the same value in consecutive power levels.
    f) Level 0 is used for BLE/ANT in new devices. For old devices, it should be left as is.
    g) If updating the Power Vectors after loading the service patch, the re-calibration sequence must be sent afterwards.

    For the power vectors, the  command "HCI_VS_DRPb_Set_Power_Vector (0xFF82)" is used.

    The format is: { 0x82, 0xfd, 0x14, modulation type, power level 0, power level 1, ..., power level 15, 0xff, 0x00, 0x00};

    The power levels are given as signed 8-bit integers in 1/2 dBm steps, e.g. to use 10 dB, the value 0x14 (20) has to be specified. Only even values (= integer dBm steps) are possible.
     
    h) The "HCI_VS_DRPb_Set_Class2_Single_Power" (0xFF87) command should be used to pick a power level from the power vectors set before. You should pick the level with greatest value smaller than 4dBm.

    The format is: { 0x87, 0xFD, 0x03, GFSK index, EDR2 index, EDR3 index}

  • Thanks again.

    I've found the those HCI commands in the patch script from the Stellaris Bluetopia SDK, and I can recreate/adapt them now.

    Best

     Matthias

  • Hi, Kevin

    You recommend not to change power level 0.

    I use TiWi-Ub2 based on cc2564 and it seems to me that power level 1 is important too. I see HCI_VS_DRPb_Set_Power_Vector command

    0x01, 0x82, 0xfd, 0x14, 0x00, 0x9c, 0x18, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xdc,
    0xe6, 0xf0, 0xfa, 0x04, 0x0e, 0x18, 0xff, 0x00, 0x00

    for GFSK in service pack. So, power levels are:

    -50, 12, -23, -23, -23, -23, -23, -23, -23, -18, -13, -8, -3,  2, 7, 12 dBm.

    I should left power level 1 as 12 if I don't want to decrease transmit power, should I? By the way, it takes place in reality

  • Hi there

    According to a customer of BTstack, it looks like picking a power level of 4 dBm for "HCI_VS_DRPb_Set_Class2_Single_Power" also limits the output of the whole system to 4 dBm. Is this observation correct?

    If yes, why should the output be limited to 4 dBm here?

    If this command limits the total output power, I don't see why we shouldn't use power level 15, as we already calculated the power levels before.

    I'd be glad for any insight on this topic.

    best,

     Matthias

  • Hi Matthias,

    I'm not sure I followed your question...
    Can you send me the "HCI_VS_DRPb_Set_Class2_Single_Power" commands that you have in your bts file?

    Like Miguel told, you need to have this command for each modulation types. Please see: processors.wiki.ti.com/.../CC256x_VS_HCI_Commands

    for more details.

    Regards,
    Gigi Joseph.
  • Hi. No problem, I'll try again.

    In Kevin's answer, which might be from Miguel, he states that we should pick a power level <= 4 dBm for HCI_VS_DRPb_Set_Class2_Single_Power.

    He also states that the max output power is 12 dBm (GFSK), resp. 10 dBm(EDRx).

    So, the question really is: why limit the power to 4 dBm in the HCI_VS_DRPb_Set_Class2_Single_Power commands when the module can do 10/12 dBm? 

    The documentation for this command suggests that the HCI_VS_DRPb_Set_Class2_Single_Power is only relevant for backwards compatibility. According to a customer of us, the output power goes down when using 4 dBm in the HCI_VS_DRPb_Set_Class2_Single_Power command. I don't know how they did the measurement, but I assume that they did see a clear difference between limiting it to 4 dBm vs. 10/12 dBm.

    Any ideas?

  • Hi Matthias,

    The Bluetooth Specification limits the max output power of power class 2 device to 4 dBm.
    Please see the Bluetooth spec (www.bluetooth.org) - Volume 2, Part A, Section 3, Table 3.1.

    Regards,
    Gigi Joseph.
  • Hi Gigi

    The CC2564 is promoted as "Class 1.5 TX Power Up to +12 dBm". If I want to build a Class 1.5 device and use this max power (12/10 dBm), what settings should we use for the HCI_VS_DRPb_Set_Class2_Single_Power call?

    Best
    Matthias
  • Hi Matthias,

    The information provided by Kevin above is accurate. You have to use the "HCI_VS_DRPb_Set_Power_Vector" command and set max output power (for power level 15) for each modulation.

    The "HCI_VS_DRPb_Set_Class2_Single_Power" command is useful only with some bluetooth device that does NOT support "power control" - the ability to receive lmp_incr_power/lmp_decr_power requests from remote.

    Please see: processors.wiki.ti.com/.../CC256x_VS_HCI_Commands for more details.

    Regards,
    Gigi Joseph.
  • Hello Gigi

    I've read the info on the wiki. So, do I understand that the settings to 4 dBm in HCI_VS_DRPb_Set_Class2_Single_Power is only relevant for these devices that do not support the "power control", hence, it does not limit the output power for communication with other devices. 

    Do you know what devices do not support power control? is it a feature that has been added with a certain Bluetooth Core spec version?

    Thanks, Matthias

  • Hi Mathias,

    "Do you know what devices do not support power control?"
    >>> You need to check for the "Power Control"/ "Power Control Requests" bitmasks in the response to HCI_Read_Remote_Features command.

    Regards,
    Gigi Joseph.