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.

  • Resolved

CC1120: About the preamble Length

Prodigy 160 points

Replies: 10

Views: 115

Part Number: CC1120

  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

  • Guru 57135 points

    Hi Kiny,

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

    Best regards,

    M-W

  • Guru 284190 points

    In reply to M-W:

    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. 

     

  • In reply to TER:

    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. 

  • In reply to TER:

    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?

  • Guru 284190 points

    In reply to kinyanderson:

    - 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.  

     

  • In reply to TER:

    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.

  • In reply to TER:

    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.

  • Guru 284190 points

    In reply to kinyanderson:

    Are you able to do conducted tests?

     

  • Guru 284190 points

    In reply to TER:

    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.  

     

  • In reply to TER:

    Thanks. We'll try it later.

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.