Thread 中讨论的其他器件:SysConfig、
您好!
在基于 EasyLink 的项目中、我使用2.4GHz 频带(250kbps、125kHz 偏差、2-GFSK)的预定义 PHY 设置开发了源代码。 初始化 EasyLink 后、我更改频率、并且始终正常工作。 但是、将默认 PHY 更改为自定义 PHY 设置后、频率更改不再成功。 这是我用于初始化和更改频率的(简化的)代码:
static macInit(macParams_t * params)
{
// Initialize the EasyLink parameters to their default values
EasyLink_Params easyLink_params;
EasyLink_Params_init(&easyLink_params);
/*
* Initialize EasyLink with the settings found in ti_easylink_config.h
* Modify EASYLINK_PARAM_CONFIG in ti_easylink_config.h to change the default
* PHY
*/
if(EasyLink_init(&easyLink_params) != EasyLink_Status_Success)
{
macCleanUp();
return Mac_Status_Error;
}
if (changeGroup(params->groupId) != Mac_Status_Success)
{
macCleanUp();
return Mac_Status_Error;
}
}
static Mac_Status_t changeGroup(TtngpMacGroupId_t groupId)
{
EasyLink_abort();
if (EasyLink_setFrequency(TTNGPMAC_GROUPID2FREQ_HZ((int) groupId)) != EasyLink_Status_Success)
{
return Mac_Status_Error;
}
currentGroupId = groupId;
return Mac_Status_Success;
}
在调试过程中、我发现 EasyLink_setFrequency 函数中的 CMF_FS 命令在运行后的状态为0x0808、转换为 ERROR_NO_FS ("在未配置频率同步的情况下尝试使用 Rx 或 Tx 的操作")。
EasyLink_Status EasyLink_setFrequency(uint32_t ui32Frequency)
{
EasyLink_Status status = EasyLink_Status_Cmd_Error;
uint16_t centerFreq, fractFreq;
if ( (!configured) || suspended)
{
return EasyLink_Status_Config_Error;
}
.
.
.
RF_EventMask result;
if (rfModeMultiClient)
{
/* Run command */
result = RF_runScheduleCmd(rfHandle, (RF_Op*)&EasyLink_cmdFs,
&schParams_prop, 0, EASYLINK_RF_EVENT_MASK);
}
else
{
/* Run command */
result = RF_runCmd(rfHandle, (RF_Op*)&EasyLink_cmdFs,
RF_PriorityNormal, 0, EASYLINK_RF_EVENT_MASK);
}
if((result & RF_EventLastCmdDone) && (EasyLink_cmdFs.status == DONE_OK))
{
status = EasyLink_Status_Success;
}
Semaphore_post(busyMutex);
return status;
}
在 EasyLink_init 函数中、我也找不到我使用的自定义 PHY 设置和预定义 PHY 设置之间的任何可疑不同行为。 我使用的是 SimpleLink CC13xx CC26xx 6.10.0.29版和 SysConfig 1.12.0。 硬件是 CC1352P-2板。
请提供有关此错误的任何提示。
此致、
Alex

