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.

CC1120: About the preamble Length

Part Number: CC1120
Other Parts Discussed in Thread: CC1175

  We'd made some communication tests with CC1120 recently.

  We tried several communication  baudrate and found that at different baudrate it is better to use different preamble length. When preamble length was wrong, packet loss will happen.

The configuration of our system is as below:

A:

  • Xtal Frequency             32 MHz
  • Modulation Format       2FSK
  • Symbol Rate                38.4 Ksps
  • Deviation                      19.2 KHz
  • Rx Filter BW                 125 KHz
  • Sync Word Length        16 bit
  • Zero-IF
  • AGC_WIN_SIZE          64 samples
  • UPSAMPLER_P          P = 8

  The preamble length 4 Bytes seems to be the best. 

B:

  • Xtal Frequency             32MHz
  • Modulation Format       2FSK
  • Symbol Rate                76.8Ksps
  • Deviation                      38.4KHz
  • Rx Filter BW                 200KHz
  • Sync Word Length        16bit
  • Zero-IF
  • AGC_WIN_SIZE          128 samples
  • UPSAMPLER_P           P = 4

  The preamble length 12 Bytes seems to be the best.

  Longer preamble means more protocol overhead, hence we want to get the minimum usable preamble length. 

  What is related to the preamble length configuration? 

Thanks.

KinyAnderson

  • Hi Kiny,

    I have assigned an expert to comment on your question above.

  • Do you have a table that summarize your findings?

    Have you tested with different values for AGC_WIN_SIZE?

    Most of our testing has been done with 4 byte preamble meaning that we haven't looked into performance vs preamble length. 

  • At first we used the setting export from SmartRF Studio.

    The BaudRate is 76.8Kbps.

    Setting

    Rx Freq 428.11MHz
    Rx Preamble Num 4
    Rx Preamble Type 0xAA
    Rx Sync Length 4
    Rx Sync Word0 0x4E
    Rx Sync Word1 0x55
    Rx Sync Word2 0x33
    Rx Sync Word3 0xcc
    Rx AGC_WIN_SIZE 32
    Rx AGC_REF 0x3C
    RSSI_VALID_CNT   2
    AGC_SYNC_BEHAVIOUR 0x5

    Result:

    RSSI
    (Min)
    RSSI
    (Max)
    AGC FE Gain
    (Min)
    AGC FE Gain
    (Max)
    Rx Interrupt Recv Timeout Recv Fail
    (MARCSTATE Error)

    Pkt Error

    (CRC Failed)

    Success Rate
    -8 -6 -21 -21 163 20 0 0 89.07%
    -16 -15 -21 -21 212 22 0 0 90.60%
    -24 -22 -21 -12 186 23 0 0 89.00%
    -31 -29 -12 -12 271 23 0 1 91.84%
    -37 -35 3 3 205 21 0 1 90.27%
    -46 -44 3 15 144 17 0 1 88.82%
    -50 -47 15 15 167 16 0 1 90.71%
    -52 -49 15 15 244 18 0 1 92.75%

    Then we changed the setting to this.

     

    Setting

    Rx Freq 428.11MHz
    Rx Preamble Num 8
    Rx Preamble Type 0xAA
    Rx Sync Length 2
    Rx Sync Word0 0x4E
    Rx Sync Word1 0x55
    Rx Sync Word2 -
    Rx Sync Word3 -
    Rx AGC_WIN_SIZE 64
    Rx AGC_REF 0x3C
    RSSI_VALID_CNT   5
    AGC_SYNC_BEHAVIOUR 0x1

    Result:

    RSSI
    (Min)
    RSSI
    (Max)
    AGC FE Gain
    (Min)
    AGC FE Gain
    (Max)
    Rx Interrupt Recv Timeout Recv Fail Pkt Error Success Rate
    -21 -16 -21 -12 252 0 0 1 99.60%
    -29 -24 -12 -12 210 0 0 0 100.00%
    -38 -31 3 3 226 0 0 1 99.56%
    -49 -41 3 15 269 0 0 4 98.51%
    -54 -50 15 15 277 3 0 3 97.86%
    -62 -52 15 27 128 73 0 1 63.18%
    -60 -55 15 27 143 79 0 0 64.41%
    -88 -54 15 27 52 99 0 1 33.77%

    Finally.

     

    Setting

    Rx Freq 428.11MHz
    Rx Preamble Num 12
    Rx Preamble Type 0xAA
    Rx Sync Length 2
    Rx Sync Word0 0x4E
    Rx Sync Word1 0x55
    Rx Sync Word2 -
    Rx Sync Word3 -
    Rx AGC_WIN_SIZE 128
    Rx AGC_REF 0x3C
    RSSI_VALID_CNT   5
    AGC_SYNC_BEHAVIOUR 0x1

    Result:

    RSSI
    (Min)
    RSSI
    (Max)
    AGC FE Gain
    (Min)
    AGC FE Gain
    (Max)
    Rx Interrupt Recv Timeout Recv Fail
    (MARCSTATE Error)

    Pkt Error

    (CRC Failed)

    Success Rate
    -18 -16 -12 -12 266 0 0 0 100.00%
    -27 -24 -12 -12 222 0 0 0 100.00%
    -35 -30 3 3 203 0 0 0 100.00%
    -40 -39 3 3 231 0 0 0 100.00%
    -46 -45 15 15 221 0 0 0 100.00%
    -49 -48 15 15 192 0 0 0 100.00%
    -50 -50 15 15 255 0 0 0 100.00%
    -53 -51 15 15 234 0 0 1 99.57%

    We had made the test at different time and with different terminal, got the same result. 

  • We also readed the SWRU295E - CC112X/CC1175 Low-Power High Performance Sub-1 GHz RF Transceivers/Transmitter Page 38 and calculated the time by DN510_CC112X_RSSI_and_CS_Response_Time_Calculation_Sheet.

    When AGC_WIN_SIZE=128 sample

    AGC Hold = 335.0 us, it means 25.73 bits at 76.8 Kbps

    AGC STABLE = 697.88 us, it means 53.60 bits at 76.8 Kbps

     

    Does it mean we need longer preamble length + sync word size?

    When the sync word size is fixed 16 bit, does it mean we need the preamble length be longer than 4 bytes?

  • - How are these tests done?

    - What does the AGC FE Gain min/ max mean? In general, could you explain what the different columns are? It's not clear.

    - If you need CS you need to adjust the preamble length (not the sync word) according to the equations in the app note.  

  • We used 2 pieces of CC1120, one act as transmitter and the other as receiver, and tried different settings.

    AGC FE Gain is the value we read from this reg. We tried to learn how AGC behave. Then we got the min and max value at each input level.

  • We also found that the RSSI value would jitter within a large range when AGC_WIN_SIZE was set to a small value. Hence we had to choose a big value in order to get more stable RSSI value.

    When AGC_WIN_SIZE was set to a bigger value, it's better to use a longer preamble length, or else the packet loss would happen at some input level.

  • Are you able to do conducted tests?

  • The reason I ask is that when finding settings you should do this conducted meaning that a signal generator should be connected directly to the DUT. When you test radiated you may get in noise etc that is not relevant at this stage. First you should get good performance conducted and then start radiated testing.

    To find optimal settings are also a bit with trial and error since it's not possible to write equations that cover all permutations of settings.  

  • Thanks. We'll try it later.