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.

CC2500: Confusion with Continous Transmission Mode

Part Number: CC2500

Working on trying to get some FCC prescans done of our product  and having some trouble getting the continuous transmission mode enabled on the device. I can use smartRF studio and a development board to setup the registers and then copy those register setting over to our product but the product radio doesn't output anything after doing so. I've read some conflicting information from various sources. Some seem to indicate that just copying the register settings is enough and then there's the following application note: http://www.ti.com/lit/an/swra359a/swra359a.pdf. In section 4.1.1 it seems to indicate that additional data needs to be sent over the data line (MOSI??) in order for continuous transmission mode to work. Looking for some help/advice on clearing up the confusion with what's actually supposed to happen.

  • Hi Kevin,
    For modulated TX test mode you should write 0x26 to PKTCTRL0 register.
    For unmodulated TX test mode you should write 0x32 to PKTCTRL0 and 0x33 to MDMCFG2 register.
    for both cases above, start from IDLE and after setting the register values set the radio in TX mode.
  • That didn't seem to work. We're measuring with a spectrum analyzer and it's not seeing anything coming from our product still.
  • Just for clarity I'm attaching our code snippet to demonstrate what we're doing.

    SPIStrobeCommand(SRES);
    SPIStrobeCommand(SIDLE);
    WaitForRadioState(0x00);
    // Continuous Transmission
    SPIWrite(IOCFG2,0x0B); //GDO2Output Pin Configuration
    SPIWrite(IOCFG0,0x0C); //GDO0Output Pin Configuration
    SPIWrite(PKTCTRL0,0x26); //Packet Automation Control
    SPIWrite(FSCTRL1,0x08); //Frequency Synthesizer Control
    SPIWrite(FREQ2,0x5D); //Frequency Control Word, High Byte
    SPIWrite(FREQ1,0x93); //Frequency Control Word, Middle Byte
    SPIWrite(FREQ0,0xB1); //Frequency Control Word, Low Byte
    SPIWrite(MDMCFG4,0x86); //Modem Configuration
    SPIWrite(MDMCFG3,0x83); //Modem Configuration
    SPIWrite(MDMCFG2,0x00); //Modem Configuration
    SPIWrite(DEVIATN,0x44); //Modem Deviation Setting
    SPIWrite(MCSM0,0x18); //Main Radio Control State Machine Configuration
    SPIWrite(FOCCFG,0x16); //Frequency Offset Compensation Configuration
    SPIWrite(FSCAL1,0x00); //Frequency Synthesizer Calibration
    SPIWrite(FSCAL0,0x11); //Frequency Synthesizer Calibration
    SPIWrite(RSSI,0x80); //Received Signal Strength Indication
    SPIWrite(MARCSTATE,0x01); //Main Radio Control State Machine State
    SPIWrite(VCO_VC_DAC,0x94);//Current Setting from PLL Calibration Module
    WaitForRadioState(0x00);
    SPIStrobeCommand(STX); //transmit
    WaitForRadioState(0x20);
    while(TRUE)
    {
    for (int i = 0; i < 100; i++)
    {

    }

    blink(GREEN,1); //blink the green LED
    }
  • Hi Kevin,
    I just verified your settings on my side and they work with the instructions provided earlier. Make sure you reset the device before writing to the complete register set and then put the chip in idle before writing to PKTCTRL0 register the value 0x26.