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.

Manual reset CC2500 after its initial power up

Other Parts Discussed in Thread: CC2500, CC1100, SIMPLICITI

Hi all:

    I have a question about how to manul reset CC2500 after its inital power up.

    According to the CC2500 datasheet, page 41 of 92, section 19.1.2 Manual Reset: the procedure should be as following:

    1: Set SCLK = 1 and SI = 0, to avoid potential problems with pin contorl mode.

    2: Strobe CSn low / high (does this mean we toggle CSn pin from low to high or what?)

    3: Hold CSn high for at least 40 uS relative to pulling CSn low.

    4: Pull SXn low and wait for SO to go low.

    5: Issue the SRES strobe on the SI line.

    6: When SO goes low again, reset is complete.

    But from the code example MSP430 CC1100/2500(slaa 325) from T.I., in file TI_CC_spi.c:

void TI_CC_PowerupResetCCxxxx(void)
{
  TI_CC_CSn_PxOUT |= TI_CC_CSn_PIN;
  TI_CC_Wait(30);
  TI_CC_CSn_PxOUT &= ~TI_CC_CSn_PIN;
  TI_CC_Wait(30);
  TI_CC_CSn_PxOUT |= TI_CC_CSn_PIN;
  TI_CC_Wait(45);

  TI_CC_CSn_PxOUT &= ~TI_CC_CSn_PIN;        // /CS enable
  while (TI_CC_SPI_USART0_PxIN&TI_CC_SPI_USART0_SOMI);// Wait for CCxxxx ready
  U0TXBUF = TI_CCxxx0_SRES;                 // Send strobe
  // Strobe addr is now being TX'ed
  IFG1 &= ~URXIFG0;                         // Clear flag
  while (!(IFG1&URXIFG0));                  // Wait for end of addr TX
  while (TI_CC_SPI_USART0_PxIN&TI_CC_SPI_USART0_SOMI);
  TI_CC_CSn_PxOUT |= TI_CC_CSn_PIN;         // /CS disable
}

 

    I can not see how the code example manages to reset CC1100/2500 according to the datasheet.

    Can anyone help me out here?

 

Thank you

  • I captured the Ez430-RF2500’s initialize process for reference.

    1. /CS H → L

    2. Delay 15us

    3. /CS L → H

    4. Delay 140us

    5. /CS H → L

    6. Delay 2.2us

    7. Send SRES(0x30) to MOSI

    8. Until MISO goes Low or Delay 40us (> 37us)

    9. /CS L → H

    I ignore the datasheet's procedure and try to make the same signal as the Ez430-RF2500.

    I think the key points are just 5ms time delay for POR, and Manual reset instead of Automatic POR.

    (All of the sample codes Which I'd seen on TI or other web sites are using the Manual Reset)

    If the MISO signal check routine is complex to implement, then just use SPI interface & time delay as I mentioned upper descriptions.

    After the manual reset is success, then check a write and read test with PKTLEN(0x06) register.

    If these Initialization is correctly done, reduce unnecessary time by repeated operational test.

    (The first SRES command after power-on is operated as manual reset only,

     but the next SRES command just reset immediately.

     So, the timing delay which MISO goes low is 0 at the no power down situation. be careful)

    Notice

    If you use the PART_NUM and VERSION registers, then these makes some troubles.

    I don't know why the /CHIP_RDY goes HIGH and the MISO level is ambiguous.

    So I try to check the operation by write and read a PKTLEN(0x06) registers.

    (It's shown the method on the Simpliciti's HAL code.)

  • I have a notice about designing with CC2500, RF devices, and etc.

    One of the important characteristics of crystal is a load capacitance.

    I use Epson's crystal, it's load capacitance is 12pF.

    I'd consider the load capacitance as insignificant. However, this makes a big problem.

    (After configuring the spi interface same as the ez430-rf2500, my cc2500 does not work correnctly.

     Tx error, and GDO0 interrupt error)

    However, After changing the capacitors which is laid by the crystal, I'd experienced the TX and GDO0 Interrupt errors are fixed at once.

    The capacitor's value is 19pF with 12pF load capacitance. so I used the 18pF capacitor.

    Refer the TI's CC2500 datasheet.

    Typically the parasitic capacitance is 2.5pF.

    C = (CL - Cparasitic) * 2 = (12pF - 2.5pF)*2 = 19pF

**Attention** This is a public forum