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.

Help setting up CC115 in normal mode ( using TXFIFO)

Other Parts Discussed in Thread: CC115L, TEST2, CC1101, CC110L


I apologize if this question seems trivial although I do not have any experience with TI radio and time is short

Currently we use the CC115L TI radio in asynchronous mode and use Timer A to control manchester encoding and timings. I would like to use the normal mode which I assume is writing data in the TXFIFO and letting the chip handle the timings and manchester encoding.

I am wondering what I am missing and need to do in order to switch to this mode. I found the setting in the packet control register and set to normal mode and nothing transmits.

My psudocode would be as followed:

    SpiSendCommand( ADD_PATABLE_BURST );
    SpiSendCommand( PA_TABLE[0] );
    SpiSendCommand( PA_TABLE[1] );



    //set test0 register (lost on sleep)
    SpiSendCommand(ADD_TEST0_BURST );
    SpiSendCommand(rfSettings.test0);
   
    //set TX mode
    SendDataToTXFIFO();

    //set TX mode
    RadioSendCommand(CMD_STX);


Here are my register settings for 345 MHz with my change in PKTCONT0 from asynchronous to normal mode

RF_SETTINGS rfSettings = {
    0x00,//0x2E,  // IOCFG2        GDO2 Output Pin Configuration
    0x00,//0x2E,  // IOCFG1        GDO1 Output Pin Configuration
    0x00,//0x2E,  // IOCFG0        GDO0 Output Pin Configuration
    0x47,  // FIFOTHR       RX FIFO and TX FIFO Thresholds
    0xD3,  // SYNC1         Sync Word, High Byte
    0x91,  // SYNC0         Sync Word, Low Byte
    0xFF,  // PKTLEN        Packet Length
    0x04,  // PKTCTRL1      Packet Automation Control
    0x02, //0x32,  // PKTCTRL0      Packet Automation Control
    0x00,  // ADDR          Device Address
    0x00,  // CHANNR        Channel Number
    0x06,  // FSCTRL1       Frequency Synthesizer Control
    0x00,  // FSCTRL0       Frequency Synthesizer Control
    0x0D,  // FREQ2         Frequency Control Word, High Byte
    0x44,  // FREQ1         Frequency Control Word, Middle Byte
    0xEC,  // FREQ0         Frequency Control Word, Low Byte
    0xF7,  // MDMCFG4       Modem Configuration
    0x20,  // MDMCFG3       Modem Configuration
    0x38,  // MDMCFG2       Modem Configuration
    0x22,  // MDMCFG1       Modem Configuration
    0xF8,  // MDMCFG0       Modem Configuration
    0x15,  // DEVIATN       Modem Deviation Setting
    0x07,  // MCSM2         Main Radio Control State Machine Configuration
    0x30,  // MCSM1         Main Radio Control State Machine Configuration
    0x18,  // MCSM0         Main Radio Control State Machine Configuration
    0x16,  // FOCCFG        Frequency Offset Compensation Configuration
    0x6C,  // BSCFG         Bit Synchronization Configuration
    0x03,  // AGCCTRL2      AGC Control
    0x40,  // AGCCTRL1      AGC Control
    0x91,  // AGCCTRL0      AGC Control
    0x87,  // WOREVT1       High Byte Event0 Timeout
    0x6B,  // WOREVT0       Low Byte Event0 Timeout
    0xFB,  // WORCTRL       Wake On Radio Control
    0x56,  // FREND1        Front End RX Configuration
    0x11,  // FREND0        Front End TX Configuration
    0xE9,  // FSCAL3        Frequency Synthesizer Calibration
    0x2A,  // FSCAL2        Frequency Synthesizer Calibration
    0x00,  // FSCAL1        Frequency Synthesizer Calibration
    0x1F,  // FSCAL0        Frequency Synthesizer Calibration
    0x41,  // RCCTRL1       RC Oscillator Configuration
    0x00,  // RCCTRL0       RC Oscillator Configuration
    0x59,  // FSTEST        Frequency Synthesizer Calibration Control
    0x7F,  // PTEST         Production Test
    0x3F,  // AGCTEST       AGC Test
    0x81,  // TEST2         Various Test Settings
    0x35,  // TEST1         Various Test Settings
    0x09,  // TEST0         Various Test Settings
};

Thanks,


David

  • The only real issue I can see is that you need to provide a SYNC word that the demodulator can use to detect the frame start with. You are using 0x38, I recommend going to 0x3B on both TX and RX.

        0x38   // MDMCFG2       Modem Configuration 0x13 // MDMCFG2 Modem Configuration

    Regards,
    /TA
  • Thanks for the response,

    Still not RF transmission after changing to 0x3B...

    I was wondering about the sync word as we appear to be sending our own 2 byte Preamble ( not 1010...) and no sync word asynchronous. Is it possible this is an older legacy message format that cannot not be transmitted using the built-in functionality ( which according to datasheet should have a sync word). I would assume the chip would put these on regardless and just transmit the TXFIFO

    Another general question...In asynchronous mode , we use GDO0 to transmit the TX data and in normal mode we do not use this pin ( data goes in TXFIFO)...correct?
  • Please use SmartRF Studio to generate register settings for using the chip in Normal mode (you settings indicated infinite packet length mode and this should not be used in under “normal” operation). Also take a look at the EasyLink code examples for CC1101 and CC110L found here: http://processors.wiki.ti.com/index.php/Category:Sub-1GHz#EasyLink_Versions and use that as a reference.

    When using the radio in Normal mode the following steps are necessary to transmit a packet:

    • Reset radio
    • Configure radio with settings from SmartRF Studio
    • Write to TX FIFO
    • Strobe STX
    • Wait for packet sent signal to be asserted

    Siri

  • Thanks all,


    I finally got this working...I used a spectrum analyzer to verify communications.After looking at the manchester encoded data and data bit rate, I then adjusted the MDCFG accordingly from previous smart RF settings

    It also did not like me sending a Flush Buffer command to the TXFIFO and I was not inverting my data for manchester encoding before putting it in the TXFIFO. I also added the correct number for the packet length to the PKTLEN register.


    Here are my new settings

    RF_SETTINGS rfSettings = {
        0x00,//0x2E,  // IOCFG2        GDO2 Output Pin Configuration
        0x00,//0x2E,  // IOCFG1        GDO1 Output Pin Configuration
        0x00,//0x2E,  // IOCFG0        GDO0 Output Pin Configuration
        0x47,  // FIFOTHR       RX FIFO and TX FIFO Thresholds
        0xD3,  // SYNC1         Sync Word, High Byte
        0x91,  // SYNC0         Sync Word, Low Byte
        0x08,   // PKTLEN        Packet Length
        0x00,  // PKTCTRL1      Packet Automation Control
        0x00, //0x32,   // PKTCTRL0      Packet Automation Control
        0x00,  // ADDR          Device Address
        0x00,  // CHANNR        Channel Number
        0x06,  // FSCTRL1       Frequency Synthesizer Control
        0x00,  // FSCTRL0       Frequency Synthesizer Control
        0x0D,  // FREQ2         Frequency Control Word, High Byte
        0x44,  // FREQ1         Frequency Control Word, Middle Byte
        0xEC,  // FREQ0         Frequency Control Word, Low Byte
        0xF8,   // MDMCFG4       Modem Configuration
        0x2C,  // MDMCFG3       Modem Configuration
        0x38,  // MDMCFG2       Modem Configuration
        0x22,  // MDMCFG1       Modem Configuration
        0xF8,  // MDMCFG0       Modem Configuration
        0x15,  // DEVIATN       Modem Deviation Setting
        0x07,  // MCSM2         Main Radio Control State Machine Configuration
        0x30,  // MCSM1         Main Radio Control State Machine Configuration
        0x18,  // MCSM0         Main Radio Control State Machine Configuration
        0x16,  // FOCCFG        Frequency Offset Compensation Configuration
        0x6C,  // BSCFG         Bit Synchronization Configuration
        0x03,  // AGCCTRL2      AGC Control
        0x40,  // AGCCTRL1      AGC Control
        0x91,  // AGCCTRL0      AGC Control
        0x87,  // WOREVT1       High Byte Event0 Timeout
        0x6B,  // WOREVT0       Low Byte Event0 Timeout
        0xFB,  // WORCTRL       Wake On Radio Control
        0x56,  // FREND1        Front End RX Configuration
        0x11,  // FREND0        Front End TX Configuration
        0xE9,  // FSCAL3        Frequency Synthesizer Calibration
        0x2A,  // FSCAL2        Frequency Synthesizer Calibration
        0x00,  // FSCAL1        Frequency Synthesizer Calibration
        0x1F,  // FSCAL0        Frequency Synthesizer Calibration
        0x41,  // RCCTRL1       RC Oscillator Configuration
        0x00,  // RCCTRL0       RC Oscillator Configuration
        0x59,  // FSTEST        Frequency Synthesizer Calibration Control
        0x7F,  // PTEST         Production Test
        0x3F,  // AGCTEST       AGC Test
        0x81,  // TEST2         Various Test Settings
        0x35,  // TEST1         Various Test Settings
        0x09,  // TEST0         Various Test Settings
    };

    Now I need to work on the packet sent assert


    Thanks for the help