Manchester Encoding

Many legacy protocols use manchester encoding to increase robustness. This is not needed on modern devices like the CC13x0 and we do not recommend using manchester encoding. Manchester encoding consumes half the channel bandwidth and reduces spectral efficiency. Instead, the CC13x0 offers a powerful sync word correlator. It also provides whitening in order to improve the spectral efficiency.

The CC13x0 supports manchester encoding of the payload and the CRC only. Since the sync word is not encoded, it must be done manually which limits the effective length to 16 bits.

Manchester encoding of the preamble is only possible via an additional override:

// Set new preamble pattern 1100110011001100 (0xCCCC)
(uint32_t)0xCCCC0043,

The pattern length is limited to 16 bits and will be repeated afterwards, depending on the configured preamble length in the setup command.

  • Enable manchester coding by changing the MCE_RF_OVERRIDE to MCE_RFE_OVERRIDE(0,5,0,1,0,0) and setting PROP_RADIO_DIV_SETUP.formatConf.fecMode = 0xA
  • The following override has to be added to get the bytes in the correct order: HW_REG_OVERRIDE(0x52B4,0x270C)
../_images/cc1350-man1.png

Figure 28. CC13x0 configuration manchester

../_images/cc1350-man2.png

Figure 29. CC13x0 override editor manchester

The strict sync word check in CC13x0 is not in use when using manchester coding. To reduce the number of false syncs the sync threshold could be increased.

The sync word threshold could be set with the following override:

HW_REG_OVERRIDE(0x5104,0xYYZZ)

where YY and ZZ is the threshold for the two correlators. For simplicity the two thresholds can be set equal. Higher value is stricter.