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.

CC1101 custom preamble problem

Other Parts Discussed in Thread: CC1101

Hello everybody.

I am having a problem with the CC1101 outputting data.

My application requires 1.3 seconds of 0001b preamble transmitting followed by a short data burst.

The 1.3 seconds of preamble is fine, but the data does not start transmitting after that has anyone any suggestions as to where I am going wrong?

Code to tx data: -

SPI routine (preamble and data only): -

Thank you

Matt

  • Slight update,

    It seems the first two bytes of data are being transmitted.

    I've read the status after each command and it is always 0x2f (state = 2 [TX], FIFO bytes availiable 16)

    Any ideas?

    Thank you

    Matt

  • It seems the slave select pin is going high prior to the end of the transmission.

    I'll investigate!

  • Hi,

    No it is not that, I've put a break point in the micro before the point the CS is exerted, but after the data should have been transmitted.

    Still no data coming out.

    Matt

  • Hi

    Start by using recommended settings from SmartRF Studio.

    As long as there are no data in the TX FIFO and the radio is in TX mode, the radio will transmit preamble. You should never flush the FIFO unless the radio is in IDLE state or in TXFIFO_UNDERFLOW state.

    Here is some pseudo code for what your program should do (assume you want to send the following packet: 0x03, 0x01, 0x02, 0x03):

    uint8 txBuffer[] = {0x03, 0x01, 0x02, 0x03};

    void main (void) {

      initMcu();

      resetRadio():     // Perform manual reset as described in hte data sheet

      writeRegisters(); // Configure the rdaio with the register values exported from SMartRf Studio

      strobe(STX);

      wait for radio to enter TX mode

      delay(1.3);       // Let the radio transmit preable for 1.3 s

      Write the txBuffer to the TXFIFO

      Wait for the packet to be sent (Wait for falling edge int. on GDOx where IOCFGx = 0x06)

      while (TRUE);

    }

     

    BR

    Siri