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.

WakeOnRadioRx example: correlation period



Hi, 

in the WakeOnRadioRx example (last TI RTOS)  we see the following note about Correlation Period: 

Correlation Period

The correlation period is the time window in which the radio have to have detected a valid preamble. This time window will be moved forward for every valid PQT detected, which is done in the underlying hardware via correlation peaks, hence the name. The very first peak will happen after about 24 symbols of preamble has been received. Subsequent peaks will happen every two symbols. If there is no correlation peak within the Correlation Period, then there is no valid preamble on the air.

One caveat of this period is that it has to be both wide enough to get the very first correlation peak. Another is that it also has to be wide enough to be able to fit the entire sync word, with some margin. The reason for this is because if it is not, then the command will report back that it can no longer sense preamble as it is receiving the sync word.

 

I don't understand the meaning of the two last phrases.

Q: Why the correlation period should be wide enough to be able to fit the entire sync word?

BR

Leonid

  • Hi Leonid

    Assume that you wake up so that you are just able to detect a correlations peak in the last 8 preamble bits before the sync word. In your next correlation period (and the following) you will not detect any more correlation peaks as you have now started to receive the sync word. The correlation period should therefore be large enough so that in the case where you will not get any correlations peaks from preamble you are still awake long enough for the sync word to be received.

    BR

    Siri

  • Hi Siri,

    Thanks for answer.

    Q1: Is it right  that if during preamble duration  (number of preamble bytes defined in  CMD_PROP_RADIO_SETUP and CMD_PROP_RADIO_DIV_SETUP commands)  the sync word is received,

          the RF state machine will continue to data reception (and it doesn't matter if we use Carrier Sense during or not)?

    Lets say that Correlation period is 24 bit duration, sync is 16 bit long, we wake up 16 bit before sync.

    In this case Correlation peak is not found (only 16 bit preamble, not enough for the 1st peak) during Correlation Period.

    But one byte of the Sync word will be received. 

    Q2: Is it right that in this case the Correlation period should be equal to 32 bit duration?

     

    BR

    Leonid

  • Hi Leonid

    The correlation period should be long enough for the sync word, but minimum 24 bits (no margin included). That means that if your sync word is 32 bits your correlation period should be 32 bits (+ margins) and if your sync word is 16 bits your correlation period should be 24 bits (+ margins).

    To be able to get a correlation peak right before the sync word you must wake up 24 bits before the sync word. Your sniff period would then be from the start of the preamble until this point (see figure 1 below).

    In the case you describe you will not receive the sync word, as your correlation period would time out after receiving only one byte of the sync word (see figure 2)

    However, you should have received a correlation peak in the previous correlation period, and this would keep you in receive so that you would detect the sync word (figure 3).

    BR

    Siri

  • Hi Siri,

    We can define Start/End Trigger for Carrier Sense operation.

    Q1: What is Sniff Period?

    Q2: Is it right  that if during preamble duration  (number of preamble bytes defined in  CMD_PROP_RADIO_SETUP and CMD_PROP_RADIO_DIV_SETUP commands)  the sync word is received,

          the RF state machine will continue to data reception (and it doesn't matter if we use Carrier Sense during or not)?

    BR

    Leonid

  • Hi Leonid

     

    What I showed as the sniff period is simply the time between every Sniff command.

    I am not sure I understand question 2. The receiver side does not care about the programmed preamble length. As long as it receives preamble (and the CS is above threshold) it stays in RX and if a sync word comes along it will receive it. If the csEndTime is set shorter than the correlation period (shorter than the sync word) and the CS is below threshold, the sync word will not be received as the channel will be set to IDLE @ csEndTime .

    Please see the following for more info on the CS command:

     

    http://dev.ti.com/tirex/content/simplelink_cc13x0_sdk_1_00_00_13/docs/proprietary-rf/html/rf-commands-reference/cmd_prop_cs.html 

    BR

    Siri

  • Hi Siri,
    Thanks for explanation.

    What will happened if after programmed preamble length the sync word is not found?
    If Rx operation will continue till end trigger?
    I am talking about Rx operation (without Carrier Sense).
    BR
    Leonid
  • Hi LEonid

    If you are talking about an ordinary RX command (CMD_PROP_RX) the radio simply stays in RX until it reaches its endTrigger (if any) or until a sync word (and packet) is received. The preamble length (nPreamBytes) is not used in RX and the radio will be able to receive a sync word even without an ordinary preamble as long as the transmitter sends a signal before the sync word, so that the AGC can settle.

    That means that if you have a transmitter that sends:

    0xFF, 0xFF, 0x93, 0x0B, 0x51, 0xDE, PAYLOAD

    Then the receiver will be able to receive the packet even if it is programmed with nPreamBytes = 4.

    If you are using the sniff command the way it is set up in the WOR example, you use the correlator to look for a 0101010… preamble. Your receiver will stay in RX as long as you have a preamble with a RSSI above a programmed threshold. If the preamble is done and it receives something other than the sync word you will exit RX since you will not have correlations peaks in your correlation period anymore.

    If there is a preamble on the air that is much longer than the preamble you send in your system, the end trigger of the Sniff command should make sure that your system leaves RX even if you still have a valid preamble and CS. The end trigger of the RX Sniff command should be set slightly longer than the entire preamble plus the length of the sync word.

    BR

    Siri

     

  • Hi Siri,

    thank you for the clear and irrefragable answer

    BR

    Leonid