Other Parts Discussed in Thread: SYSCONFIG,
Hello,
In my EasyLink-based project, I developed my source code with a predefined PHY setting for the 2.4 GHz band (250 kbps, 125 kHz Deviation, 2-GFSK). After initializing EasyLink, I change the frequency and that always worked fine. After changing the default PHY to a custom PHY setting however, the frequency changing was not successful anymore. This is the (reduced) code I used for initializing and changing the frequency:
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;
}
With debugging, I found out that the CMF_FS command in the EasyLink_setFrequency function has the status 0x0808 after being run, which translates to ERROR_NO_FS ("Operation using Rx or Tx attempted without frequency synth configured").
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;
}
I also could not find any suspicious different behaviour in the EasyLink_init function between the custom and the pre-defined PHY setting I used. I am using the SimpleLink CC13xx CC26xx version 6.10.0.29 and sysConfig 1.12.0. The hardware is a CC1352P-2 board.
Any hints on this error would be appreciated.
Regards,
Alex

