I have followed the solution in to enable CC2592 on CC2640. With those settings, what is the default TX power?
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.
According to bleUserConfig.c in the CC2640App folder, I see txPowerTable as the followings:
const txPwrVal_t txPowerTable[] =
{ { TX_POWER_MINUS_21_DBM, GEN_TX_POWER_VAL( 0x07, 3, 0x0C ) },
{ TX_POWER_MINUS_18_DBM, GEN_TX_POWER_VAL( 0x09, 3, 0x0C ) },
{ TX_POWER_MINUS_15_DBM, GEN_TX_POWER_VAL( 0x0B, 3, 0x0C ) },
{ TX_POWER_MINUS_12_DBM, GEN_TX_POWER_VAL( 0x0B, 1, 0x14 ) },
{ TX_POWER_MINUS_9_DBM, GEN_TX_POWER_VAL( 0x0E, 1, 0x19 ) },
{ TX_POWER_MINUS_6_DBM, GEN_TX_POWER_VAL( 0x12, 1, 0x1D ) },
{ TX_POWER_MINUS_3_DBM, GEN_TX_POWER_VAL( 0x18, 1, 0x25 ) },
{ TX_POWER_0_DBM, GEN_TX_POWER_VAL( 0x21, 1, 0x31 ) },
{ TX_POWER_1_DBM, GEN_TX_POWER_VAL( 0x14, 0, 0x42 ) },
{ TX_POWER_2_DBM, GEN_TX_POWER_VAL( 0x18, 0, 0x4E ) },
{ TX_POWER_3_DBM, GEN_TX_POWER_VAL( 0x1C, 0, 0x5A ) },
{ TX_POWER_4_DBM, GEN_TX_POWER_VAL( 0x24, 0, 0x93 ) },
{ TX_POWER_5_DBM, GEN_TX_POWER_VAL( 0x30, 0, 0x93 ) } };
I also get RF_TX_POWER_TABLE from TI Z-Stack Home 1.2.2a with CC2592 enable as the followings:
#ifdef PA_LNA_CC2592
/* CC2592 TX power table is a place holder. Further calibration is required and
* should not be used without contacting TI support.
*/
#define RF_FE_MODE_AND_BIAS ( RF_FE_DIFFERENTIAL | RF_FE_INT_BIAS)
#define RF_TX_POWER_TABLE { \
20, /* tramsmit power level of the first entry */ \
(uint16)(int16)0, /* transmit power level of the last entry */ \
/* 20 dBm */ TX_POUT( 0x30, 0, 0x93 ), /* characterized as 20 dBm in datasheet */ \
/* 19 dBm */ TX_POUT( 0x24, 0, 0x93 ), /* characterized as 20 dBm in datasheet */ \
/* 18 dBm */ TX_POUT( 0x1C, 0, 0x5A ), /* characterized as 19 dBm in datasheet */ \
/* 17 dBm */ TX_POUT( 0x18, 0, 0x4E ), /* characterized as 19 dBm in datasheet */ \
/* 16 dBm */ TX_POUT( 0x14, 0, 0x42 ), /* characterized as 19 dBm in datasheet */ \
/* 15 dBm */ TX_POUT( 0x21, 1, 0x31 ), /* characterized as 18 dBm in datasheet */ \
/* 14 dBm */ TX_POUT( 0x21, 1, 0x31 ), /* characterized as 18 dBm in datasheet */ \
/* 13 dBm */ TX_POUT( 0x21, 1, 0x31 ), /* characterized as 18 dBm in datasheet */ \
/* 12 dBm */ TX_POUT( 0x18, 1, 0x25 ), /* characterized as - dBm in datasheet */ \
/* 11 dBm */ TX_POUT( 0x18, 1, 0x25 ), /* characterized as - dBm in datasheet */ \
/* 10 dBm */ TX_POUT( 0x18, 1, 0x25 ), /* characterized as - dBm in datasheet */ \
/* 9 dBm */ TX_POUT( 0x12, 1, 0x1D ), /* characterized as - dBm in datasheet */ \
/* 8 dBm */ TX_POUT( 0x12, 1, 0x1D ), /* characterized as - dBm in datasheet */ \
/* 7 dBm */ TX_POUT( 0x12, 1, 0x1D ), /* characterized as - dBm in datasheet */ \
/* 6 dBm */ TX_POUT( 0x0E, 1, 0x19 ), /* characterized as - dBm in datasheet */ \
/* 5 dBm */ TX_POUT( 0x0E, 1, 0x19 ), /* characterized as - dBm in datasheet */ \
/* 4 dBm */ TX_POUT( 0x0E, 1, 0x19 ), /* characterized as - dBm in datasheet */ \
/* 3 dBm */ TX_POUT( 0x0B, 1, 0x14 ), /* characterized as - dBm in datasheet */ \
/* 2 dBm */ TX_POUT( 0x0B, 1, 0x14 ), /* characterized as - dBm in datasheet */ \
/* 1 dBm */ TX_POUT( 0x0B, 1, 0x14 ), /* characterized as - dBm in datasheet */ \
/* 0 dBm */ TX_POUT( 0x0B, 3, 0x0C ), /* characterized as 0 dBm in datasheet */ \
/* Filler */ 0, \
/* Filler */ 0, \
/* Filler */ 0, \
/* Filler */ 0, \
/* Filler */ 0, \
/* Filler */ 0 \
}
If you compare two table, I would say CC2640+CC2592 with BLE default TX power, which means CC2640 output 0dbm on TX, the CC2640+CC2592 should get 13~15 dbm. Am I correct? By the way, we can use Z-Stack API Zstackapi_sysSetTxPowerReq to set TX power to 19dbm or other value. Does BLE stack has related API or HC command?
If you use SmartRF studio, and press CMD_RADIO_SETUP on the right side of the config window and double-click on tx power, you will get more info on the mapping of gc and ib.
You will also find information on the temp coeffsient.
So for the stack, the numbers given in the PA tables is given as follows: Pout, GEN_TX_POWER_VAL(IB, GC, TC).
So the table given in the CC2650 CC2592 table translates to:
TXPOWER | GC | IC | TC |
0x3F | 0 | 0x3F | NA |
0x1C | 0 | 0x1C | NA |
0x0E | 0 | 0x0E | NA |
0x0B | 0 | 0x0B | NA |
0x53 | 1 | 0x13 | NA |
0x51 | 1 | 0x11 | NA |
The temp coeff is not given in the table, SVS can you comment on what value you used for the temp coeff when you made the PA table?
YiKai,
We will test this tomorrow (Dallas time), I agree the data in the appnote does not align with the values in SmartRF Studio. Unfortunately the person who did the report is on vacation so we need to do a little digging to find you the answer.
Regards,
/TA
YK,
Here is the power table that correlates the target power to the Register values needed on the CC2650 for power levels from 10-22dBm output power.
UPDATE : This table is based on old reference design, new table is here.
/TA
Expected output power (dBm) |
txPower register value |
21 |
0x5A1E |
20 |
0X4816 |
19 |
0X3612 |
18 |
0X310E |
17 |
0X290C |
16 |
0X2555 |
15 |
0X1D53 |
14 |
0X1751 |
13 |
0x1613 |
12 |
0X154E |
11 |
0x0CCF |
10 |
0X0CCE |
9 |
0X0CCD |
I change the following table:
#if defined(CC2650EM_7ID) || defined(CC2650EM_5XD) || defined(CC2650EM_4XD)
// Differential Output
// ALT: Consider basing this direction on type of output (RF_FE_MODE_AND_BIAS)?
// Tx Power Values (Pout, IB, GC, TC)
const txPwrVal_t txPowerTable[] =
{ { TX_POWER_MINUS_21_DBM, GEN_TX_POWER_VAL( 0x07, 3, 0x0C ) },
{ TX_POWER_MINUS_18_DBM, GEN_TX_POWER_VAL( 0x09, 3, 0x0C ) },
{ TX_POWER_MINUS_15_DBM, GEN_TX_POWER_VAL( 0x0B, 3, 0x0C ) },
{ TX_POWER_MINUS_12_DBM, GEN_TX_POWER_VAL( 0x0B, 1, 0x14 ) },
{ TX_POWER_MINUS_9_DBM, GEN_TX_POWER_VAL( 0x0E, 1, 0x19 ) },
{ TX_POWER_MINUS_6_DBM, GEN_TX_POWER_VAL( 0x12, 1, 0x1D ) },
{ TX_POWER_MINUS_3_DBM, GEN_TX_POWER_VAL( 0x18, 1, 0x25 ) },
{ TX_POWER_0_DBM, GEN_TX_POWER_VAL( 0x21, 1, 0x31 ) },
{ TX_POWER_1_DBM, GEN_TX_POWER_VAL( 0x14, 0, 0x42 ) },
{ TX_POWER_2_DBM, GEN_TX_POWER_VAL( 0x18, 0, 0x4E ) },
{ TX_POWER_3_DBM, GEN_TX_POWER_VAL( 0x1C, 0, 0x5A ) },
{ TX_POWER_4_DBM, GEN_TX_POWER_VAL( 0x24, 0, 0x93 ) },
{ TX_POWER_5_DBM, GEN_TX_POWER_VAL( 0x30, 0, 0x93 ) } };
...
to
#if defined(CC2650EM_7ID) || defined(CC2650EM_5XD) || defined(CC2650EM_4XD)
// Differential Output
// ALT: Consider basing this direction on type of output (RF_FE_MODE_AND_BIAS)?
// Tx Power Values (Pout, IB, GC, TC)
const txPwrVal_t txPowerTable[] =
{ { TX_POWER_MINUS_21_DBM, GEN_TX_POWER_VAL( 0x07, 3, 0x0C ) },
{ TX_POWER_MINUS_18_DBM, GEN_TX_POWER_VAL( 0x09, 3, 0x0C ) },
{ TX_POWER_MINUS_15_DBM, GEN_TX_POWER_VAL( 0xCB, 3, 0x0C ) }, //output 10.2 dbm on CC2592
{ TX_POWER_MINUS_12_DBM, GEN_TX_POWER_VAL( 0x4B, 1, 0x14 ) },//output 12.4 dbm on CC2592
{ TX_POWER_MINUS_9_DBM, GEN_TX_POWER_VAL( 0x4E, 1, 0x19 ) },//output 15.1 dbm on CC2592
{ TX_POWER_MINUS_6_DBM, GEN_TX_POWER_VAL( 0x52, 1, 0x1D ) },//output 17.5 dbm on CC2592
{ TX_POWER_MINUS_3_DBM, GEN_TX_POWER_VAL( 0x58, 1, 0x25 ) },//output 19.7 dbm on CC2592
{ TX_POWER_0_DBM, GEN_TX_POWER_VAL( 0x61, 1, 0x31 ) },//output 21.3 dbm on CC2592
{ TX_POWER_1_DBM, GEN_TX_POWER_VAL( 0x14, 0, 0x42 ) },//output 21.6 dbm on CC2592
{ TX_POWER_2_DBM, GEN_TX_POWER_VAL( 0x18, 0, 0x4E ) },//output 22.1 dbm on CC2592
{ TX_POWER_3_DBM, GEN_TX_POWER_VAL( 0x1C, 0, 0x5A ) },
{ TX_POWER_4_DBM, GEN_TX_POWER_VAL( 0x24, 0, 0x93 ) },
{ TX_POWER_5_DBM, GEN_TX_POWER_VAL( 0x30, 0, 0x93 ) } };
Am I correct?
for the -12 dBm setting that will give you an output power of 12.4 dBm when including the CC2592, the setting is 0x144B. From that: