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.

CC2550 not wake up - help

Other Parts Discussed in Thread: CC2550, CC2500

Hi TI engineer team,

I'm from SerialSystem distributor of TI.

My customer has problem with CC2550. It doesn't wake up after sleeping with code of CC2500. Pls help.

Below code is valid with CC2500.  

/******************************************************************
* power down mode
*
*
*******************************************************************/
void RF_Sleep()
{
  //change to idle
  TI_CC_SPIStrobe( TI_CCxxx0_SIDLE );                          
  
  TI_CC_SPIStrobe( TI_CCxxx0_SPWD );
  
}
/******************************************************************
* wake up from sleep
*
*******************************************************************/
void RF_Wakeup()
{
  TI_CC_CSn_PxOUT &= ~TI_CC_CSn_PIN;        // /CS enable

  while (!(USICTL1&USIIFG));
  TI_CC_CSn_PxOUT |= TI_CC_CSn_PIN;        // /CS enable
   //change to idle
  TI_CC_SPIStrobe( TI_CCxxx0_SIDLE );                          
  TI_CC_SPIStrobe( TI_CCxxx0_SNOP );
}

  • Hello Tan, 

    What kind of HW plattform are you using? Have you changed the pin mapping correctly. the CSn (Chip Select  (active low)) pin is different on the two devices. CC2500 use pin 7 while CC2550 use pin 9. 

    PS:

    Just to let you know, the CC2550 status has been changed to NRND (Not Recommended for New Designs). We advise customers to use the CC2500 for new designs that requires a 2.4 GHz transceiver, but we still support the CC2550 for already existing projects.

    BR. Eirik

  • Hello Eirik,

    My customer confirms the HW they use is similar with the board they are success with CC2500.

    Ofcourse they changed pin mapping correctly.

    They think problem is in software

    Pls continue to support me.

  • Hello Tan, 

    Does the TX operation work correctly?

    I am not really sure at this point. Could you give me more of the code that is actually being executed when this problem occurs. Try to present the whole flow and not just the functions that are being called. You could perhaps try two things first:

    1)

    Try to add a short wait statement (200 us or so) after:  

    TI_CC_CSn_PxOUT &= ~TI_CC_CSn_PIN;        // CS enable
    while (!(USICTL1&USIIFG));

    2)

    Could you try to wait until the chip is idle after you issue the IDLE. So add a wait condition between these two:

     TI_CC_SPIStrobe( TI_CCxxx0_SIDLE );                          

     /* Add a wait until chip is in IDLE */

     TI_CC_SPIStrobe( TI_CCxxx0_SPWD );

    The wait statement can be a while loop that continously sends SNOP commands to the CC2550 and wait for a IDLE state reply.

    BR. Eirik