主题中讨论的其他器件:SysConfig、 CC1312R、CC1352P 、CC2652RSIP、CC2652PSIP、 CC1312R7、 CC1352P7、CC2652R7
您好
SDK 是6.10。 Txpower 在433频率下设置为13dBm。
在 ti_radio_config 文件中、txpower 为0x6a。
当我使用 EasyLink_getRfPower 函数时、我得到的值是127 (=0x7f)。
为什么我不能得到13个呢?
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.
您好
SDK 是6.10。 Txpower 在433频率下设置为13dBm。
在 ti_radio_config 文件中、txpower 为0x6a。
当我使用 EasyLink_getRfPower 函数时、我得到的值是127 (=0x7f)。
为什么我不能得到13个呢?
仍然对您在代码中执行的操作感到困惑:
首先、SmartRF Studio 不导出 ti_radio_config、 而是导出 smartrf_settings.c/h。
您是否在使用这些 文件而不是 SysConfig 生成的 ti_radio_config 文件?
如果需要、如何禁用 SysConfig 生成的文件?
此外、如何 为433MHz 生成 RF_TxPowerTable_Entry 条目?
据我所见、该表没有从 SmartRF Studio 导出。
您需要详细解释您正在做什么/如何更改我们的默认示例、以便我们可以在此处重新创建您的问题并告诉您正在发生什么情况。
Siri
好的、我可以很清楚地看到这个问题:
使用调试器、我可以看到、对于13dBm、我在变量中获得以下值(对于我在下面附加的 TI 代码):
currvalue.rawValue = 22
rfPowerTable =指向一个有效的地址
rfPowerTableSize = 18
txPowerDbm = 127
这意味着在这一行:
txPowerDbm = RF_TxPowerTable_findPowerLevel (rfPowerTable、currValue);
转换表无法获取值
这是因为设定频率没有有效的转换表。
你建议如何解决这一问题?
TI 规范:
EasyLink_Status EasyLink_getRfPower (int8_t * pi8TxPowerDbm)
{
int8_t txPowerDbm = 0xff;
如果(!configured)||挂起)
{
返回 EasyLink_Status_Config_Error;
}
#if (定义的 CONFIG_CC1352R1F3RGZ)||(定义的 CONFIG_CC1312R1F3RGZ)||
(定义的 CONFIG_CC2652R1FRGZ)||(定义的 CONFIG_CC2652R1FSIP)||
(定义的 CONFIG_CC2652P1FSIP)||(定义的 CONFIG_CC1312R7RGZ)||
(定义的 CONFIG_CC1352P7RGZ)||(定义的 CONFIG_CC2652R7RGZ)||
(定义的 CONFIG_CC1312R1_LAUNCHXL)||(定义的 CONFIG_CC1352R1_LAUNCHXL)||
(定义的 LAUNCHXL_CC1352P1)||(定义的 CONFIG_CC26X2R1_LAUNCHXL)||
(定义的 LAUNCHXL_CC1352P_4)||(定义的 LAUNCHXL_CC1352P_2)||
(已定义 CONFIG_LP_CC2652PSIP)||(已定义 CONFIG_LP_CC2652RSIP)||
(已定义 CONFIG_LP_CC1312R7)||(已定义 LP_CC1352P7_4)||
(定义的 LP_CC1352P7_1)||(定义的 CONFIG_LP_CC2652R7)
uint8_t rfPowerTableSize = 0;
rf_TxPowerTable_Entry *rfPowerTable = NULL;
RF_TxPowerTable_Value 当前值= RF_getTxPower (rfHandle);
if (currValue.rawValue == rf_TxPowerTable_invalid_value)
{
//值无效
返回 EasyLink_Status_Config_Error;
}
您是否在使用这些 文件而不是 SysConfig 生成的 ti_radio_config 文件? 是的、我有。
如果需要、如何禁用 SysConfig 生成的文件? 我在 syscfg GUI 中告诉它不要生成这些文件、从而将其禁用。
此外、如何 为433MHz 生成 RF_TxPowerTable_Entry 条目? 我从 SmartRF Studio 中获取了值、并将其设置为433。 这是可以做到的。
我无法重现您的问题、因此我需要有关您如何操作的确切说明、以便我能够找出问题所在。
我采用了6.10 SDK 中的 rfEasyLinkTx 示例(用于 CC1312R)。
我在 Studio 中生成了433个设置、并在 ti_nRADIO_CONFIG.c 中使用了这些设置(该文件是手动添加到工程中的、并在 SysConfig 中被禁用)。
然后、我读出 TX 功率为13dBm:
Studio 中的相关设置:
RF_TxPowerTable_Entry txPowerTable[TX_POWER_TABLE_SIZE] =
{
{-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(0, 3, 0, 0) }, // 0x00C0
{-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(1, 3, 0, 0) }, // 0x00C1
{-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(2, 3, 0, 0) }, // 0x00C2
{-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(4, 3, 0, 0) }, // 0x00C4
{0, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 0) }, // 0x00C8
{1, RF_TxPowerTable_DEFAULT_PA_ENTRY(9, 3, 0, 0) }, // 0x00C9
{2, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 0) }, // 0x00CA
{3, RF_TxPowerTable_DEFAULT_PA_ENTRY(11, 3, 0, 0) }, // 0x00CB
{4, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 3, 0, 0) }, // 0x00CD
{5, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 3, 0, 0) }, // 0x00CF
{6, RF_TxPowerTable_DEFAULT_PA_ENTRY(18, 3, 0, 0) }, // 0x00D2
{7, RF_TxPowerTable_DEFAULT_PA_ENTRY(21, 3, 0, 0) }, // 0x00D5
{8, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 3, 0, 0) }, // 0x00D9
{9, RF_TxPowerTable_DEFAULT_PA_ENTRY(31, 3, 0, 0) }, // 0x00DF
{10, RF_TxPowerTable_DEFAULT_PA_ENTRY(39, 3, 0, 0) }, // 0x00E7
{11, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 1, 0, 0) }, // 0x0048
{12, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 1, 0, 0) }, // 0x004E
{13, RF_TxPowerTable_DEFAULT_PA_ENTRY(42, 1, 0, 0) }, // 0x006A <-------------------------------------------
// This setting requires CCFG_FORCE_VDDR_HH = 1. The original PA value (14.5 dBm) has been rounded to an integer value.
{15, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 0, 0) }, // 0x003F
RF_TxPowerTable_TERMINATION_ENTRY
};
// CMD_PROP_RADIO_DIV_SETUP
// Proprietary Mode Radio Setup Command for All Frequency Bands
rfc_CMD_PROP_RADIO_DIV_SETUP_t RF_cmdPropRadioDivSetup =
{
.commandNo = 0x3807,
.status = 0x0000,
.pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx
.startTime = 0x00000000,
.startTrigger.triggerType = 0x0,
.startTrigger.bEnaCmd = 0x0,
.startTrigger.triggerNo = 0x0,
.startTrigger.pastTrig = 0x0,
.condition.rule = 0x1,
.condition.nSkip = 0x0,
.modulation.modType = 0x1,
.modulation.deviation = 0x64,
.modulation.deviationStepSz = 0x0,
.symbolRate.preScale = 0xF,
.symbolRate.rateWord = 0x8000,
.symbolRate.decimMode = 0x0,
.rxBw = 0x51,
.preamConf.nPreamBytes = 0x4,
.preamConf.preamMode = 0x0,
.formatConf.nSwBits = 0x20,
.formatConf.bBitReversal = 0x0,
.formatConf.bMsbFirst = 0x1,
.formatConf.fecMode = 0x0,
.formatConf.whitenMode = 0x0,
.config.frontEndMode = 0x0,
.config.biasMode = 0x1,
.config.analogCfgMode = 0x0,
.config.bNoFsPowerUp = 0x0,
.config.bSynthNarrowBand = 0x0,
.txPower = 0x006A, // <-------------------------------------------------------------------------------------
.pRegOverride = pOverrides,
.centerFreq = 0x01B1,
.intFreq = 0x8000,
.loDivider = 0x0A
};
Siri