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.

CC2520: CC2520: How to enable Continuous Wave / Carrier Wave on the CC2520 for certification.

Part Number: CC2520
Other Parts Discussed in Thread: CC2530,

I've recently implemented Continuous Wave / Carrier Wave for certification purposes on the CC2530 using the MDMTEST1.MOD_IF register to output a single unmodulated tone.

I also need the same functionality on my IEEE802.15.4 access points, which are using the CC2520 radio.

However the CC2520 is missing any descriptions of the following registers in the datasheet:

MDMCTRL0.TX_IF   // Modulator outputs tone set by rfr_tx_tone.

MDMTEST1.MOD_IF // 1: A tone is transmitted with frequency set by MDMTEST0.TX_TONE.

MDMTEST0.TX_TONE

This is the current code I'm using. It outputs a modulated signal that sends zeros, instead of a unmodulated tone, so I think one of the 3 registers above is not implemented on the CC2520:

macRadioSetChannel( tst_Channel );

reg = macSpiReadReg(MDMTEST1);
reg |= MOD_IF;
macSpiWriteReg(MDMTEST1, reg);

macSpiWriteReg( MDMCTRL0, TX_IF);

reg = macSpiReadReg(FRMCTRL0);
reg |= TX_MODE_INFINITE_FIFO_TRANSM;
macSpiWriteReg(FRMCTRL0, reg);

MAC_RADIO_FLUSH_TX_FIFO();
MAC_RADIO_TX_ON();

while(1)
{
        MAC_RADIO_WRITE_TX_FIFO("\0\0\0\0\0\0\0\0\0\0", 10);
}

Is there any way to implement Continuous Wave / Carrier Wave on the CC2520 ?

  • Hi,

    Have you tried the continuous TX mode in SmartRF Studio?

    It has both modulated and unmodulated.


    Regards,
    Toby

  • Good point. I wasn't able to connect the CC2520 to SmartRF Studio, but noticed that in unmodulated TX mode it sets the following registers:

    macSpiWriteReg(MDMTEST1, 0x65);
    macSpiWriteReg( MDMCTRL0, 0x85 );
    macSpiWriteReg( MDMCTRL1, 0x14 );

    The end result is however still a modulated signal when I set it to TX_MODE_INFINITE_FIFO_TRANSM mode.

    reg = macSpiReadReg(FRMCTRL0);
    reg |= TX_MODE_INFINITE_FIFO_TRANSM;
    macSpiWriteReg(FRMCTRL0, reg);

    Below you'll see the difference between the CC2530 and CC2520

  • Using SmartRF studio I got the right values:

    macSpiWriteReg(MDMTEST0, 0x65);
    macSpiWriteReg(MDMTEST1, 0x08);
    macSpiWriteReg( MDMCTRL0, 0x85 );
    macSpiWriteReg( MDMCTRL1, 0x14 );

    Thanks for the support!