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 TX UnderFlow Transmit Packet Handling



Hi

I have a doubt about the packet handler in transmit mode.In fixed packet mode, does the transmitter start transmitting the data even when the data available in FIFO is less than the defined size of the packet ?

If i put my transmitter in transmit mode and then start writing data, it immediatly causes TX underflow.  

 

  • Hello,

    I hope the following helps as a start.

    With a fixed packet length the easiest thing to do might be to set the underflow level a bit below the packet size.   Then put the data in the FIFO, then strobe the TX command.  You should always of course monitor for flags or problems, but the above should in general keep you running smoothly.  Note for fixed packet length, this should not be a value larger than the FIFO size!

    Cheers,

    Yoda

     

  • I am having a similar problem. 

    Using the demo board, I have set the packet size to 8 bytes. I then place the device in TX state.  Using the burst bit, I send 8 bytes to the radio, and monitor the status byte after each transfer.   I then read the MARCSTATE byte from the radio, and see that it is still in TX state.   Everything is working fine.  A second later the MARCSTATE is checked, and it indicates the device is in TX_UNDERFLOW.  But the configuration is set that it should change to RX state after the packet is transmitted.

    Oddly enough, I had this working with a 6 byte packet.  I added some code to another module (serial) and tried to organize this source module to make the source cleaner.  Now it stopped functioning, and I can't seem to get it back.  The MSP430 x 2274 is set to 8mhz, and the UART baud reg is set to 2

    Are you saying I should:
    1. Set the FIFOTHR to something really low (like 1?)
    2. Leave the device in IDLE while the 8 bytes are transferred to the FIFO
    3. Change the state to TX, and then monitor it to see when it changes back to RX (or IDLE)?

    Thanks for any help.

    Christopher Weber

  • I had the same problem.  Since my packet were small, I transferred the whole packet (about 10 bytes) while the unit was idle.

    The I changed the sate to TX.  worked fine.

    Basically this:

    spiWriteArray(TXFIFO,buf,len); // Send the message
    Strobe(STX); // Set the Transmit mode
    state = spiReadReg(MARCSTATE); //  See if we are in TX mode (or have completed)

  • Oppp..  I mean Then I changed the STATE  to TX  (actually STX they way they defined it...)