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.

frequency hopping using cc1110



Please help to implement frequency hopping using cc1110.I able to change channels and calibrate them successfully but cc1110 works perfect when a constant frequency is set.But when i change the channels during the run time i encounter packet loss.I use master slave system in which initially at the channel 0  master transmits signal first and then slave transmit the signal at channel 0 and chage to the next channels in a common list and then the master transmits the signal at the next channel and the link is maintained is there anything wrong about the implementation any help would be appreciated.

void setChannel (INT8U ch) {

//{0, 8, 16, 24};

CHANNR = 0;

SCAL();
}

INT8U code HoppingChannels[4]= {0,8,16, 24};

void main()

{

while(nolink)

{

channel=0;

setChannel(HoppingChannels[channel]);

//code to perform tx

{}

}

if(link)

{

if(master

{
//change channel send packet

setChannel(HoppingChannels[channel]);
channel++;
if(channel>3)
{
channel=0;
}

{code for tx}

}else

{

//slave

{code for tx}

setChannel(HoppingChannels[channel]);
channel++;
if(channel>3)
{
channel=0;
}

}

}

}

  • Try to output a signal both on slave and master that goes high when you are in Tx/ Rx to see if the slave and master is on in the same channel at the same time
  • thanks for the reply ,when the packet loss occurs they will be reset ed to the initial channel and that is happening most of time ,please confirm me about my method is it correct way to do hopping?
  • Timing is not that easy to see from a code like this. I strongly advice to monitor some signals that will tell you when you actually are on a given channel. We don't have a example on hopping that I have found but the principle is fairly simple.
    - Go to IDLE, set new frequency word, do calibration if required, go to Rx/ Tx.
    But if you don't do this at the same time both on the Rx and Tx side or add some margin you risk that either the Rx or Tx side change channel/ state before the other side.