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.

CC1200 CCA with going automatically to FSTXON state after receive

Hi,

I would like to achieve following:

1. CCA using interrupts. G2 is configured to assert TXONCCA_DONE. As far as I understood it is asserted if radio has sampled the channel and has come to a decision about CCA. Decision about if channel is clear or not must be read out from  MARC_STATUS0 register, where bit 2 shows whether channel is busy or not.

Bit 2 TXONCCA_FAILED:

This bit can be read after the TXONCCA_DONE signal has been asserted
0 The channel was clear. The radio will enter TX state
1 The channel was busy. The radio will remain in RX state

I could also just ask for radio state to check if channel is clear. If radio is in TX state after G2 TXONCCA_DONE pulse then channel is clear, if radio is still in RX channel is busy. Is this correct?

2. Radio is configured to go to FSTXON state after receive. It is done because I would like to send out special ACK packet as quickly as possible. However I do not see G2 pulse if I strobe STX while I am in FSTXON state. I have 2 ms timeout timer for interrupts in case they are missed for some reason. After 2 ms radio certainly is in STX state, but I did not see any activity on G2. Is this normal behavior? CCA G2 pulse only happens if state transition has done from RX to TX and not from FSTXON to TX? Actually it would be preferred in my use case because I would like send ACK as quickly as possible without doing CCA.

 

Here are main register values:

// Indicates clear channel when RSSI is below threshold and currently not receiving a packet

PKT_CFG2 = 0x0C;

 

// TX: 6 assert when sync is sent out, deassert at the end of packet

// RX: 19 assert if packet with correct CRC is received, deassert when going to RX mode

IOCFG0 = 19;

 

// TXONCCA_DONE, A pulse occurring when a decision has been made as to whether the channel is busy or not.

IOCFG2 = 15;

 

RFEND_CFG1 = 0x1F // radio goes automatically to FSTXON to send ACK message after receiving a good packet

RFEND_CFG0 = 0x30 // radio goes automatically to RX to listen incoming message after sending a packet

 

Another questions is about TXFIFO. What really happens if I strobe STX and TXFIFO is not yet filled? I can see that it clearly send packet out, however is this preferred behavior? I have seen from examples that typically TXFIFO is filled before strobing STX.

Andres

  • Hi Anders

    1. Yes the TXONCCA_FAILED signal on one of the GPIO's will tell you exactly the same as the bit in MARC_STATUS0. If the signal stays low after TXONCCA_DONE is set, the channel is clear and the radio will go to TX state.

    2. Yes this is normal behavior. The CCA will only happen when you strobe either STX or SFSTXON when you are in RX. When you strobe STX from FSTXON it will go directly to TX. There is not possible for the radio to check channel activity unless it is in RX.

    3. Assuming you use FIFO mode, if you strobe STX without anything in the TXFIFO the radio will start to send preamble and continue to do this until you write to the TXFIFO. Then it will immediately send the sync word and then the TXFIFO content.