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.

CC11xx Manchester Behavior

Other Parts Discussed in Thread: SIMPLICITI, CC1100E, CC1101, CC1120

Hey crew,

Trying to figure out a little bit how the CC11xx core behaves when receiving Manchester encoding. Going between two CC radios using SimpliciTi seems to be no problem, but I'm trying to interface with a legacy system, and need to know more about the inner workings of the ME feature. The datasheet doesn't explain how it behaves, and it seems that even TI employees don't quite understand how it behaves. It seems that my best option right now is to use Sverre's trick, and manually decode the Manchester encoding. I have heaps of questions, so I'll try and organize them the best I can. To save time, ME == Manchester Encoding

Legacy Packet Format is as follows, with "raw" unencoded bits: (01 == zero, 10 == one)

  • Preamble: [0x55, 0x55, 0x55, 0x55]
  • Sync Word: [0xA5, 0x5A] (After ME decoding, this becomes 0xC3)
  • Fixed Length Packet Data (6 bytes before ME decoding, 3 bytes after)
  • Checksum (not TI's implementation, but that's ok, I can handle this in the firmware)

Some questions:

  • If I enable ME, I can use the last two preamble bytes as the upper syncword, with Sverre's trick. Assuming the CC11xx uses the GE Thomas format, I should set SYNC1 to 0x00, and SYNC0 to 0xC3? (If not, I just need to logical invert all my bytes -- that should be ok.) In short, what does the CC11xx use for ME? (10 = One), or (01 = One)?
  • If I use part of the preamble for the SYNC word, how will this affect the AGC for having enough time to lock onto what's now a 16-bit preamble?
  • How does this affect the preamble quality threshold (PQT)? Since the CC11xx encodes the entire packet on transmission, [10101010...] turns into [100110011001...]. However, my legacy system sends [01010101...], which decodes to [00000...]. Will the score be zero because of the back-to-back bits? Or does PQT not take ME into account -- in which case it seems that would break CC to CC comms using PQT?
  • How does the CC11xx handle searching for a sync word? If the modem gets hung up one bit off, there will be lots of invalid manchester codes (11 and 00). Will it miss the sync word giving an amortized 50% packet loss, or does it handle "manchester framing issues" nicely?
  • If I set the debug to output RX_HARD_DATA on a pin, should I use HARD_DATA[0] or HARD_DATA[1]? I presume the bits that come out will not be manchester decoded...
  • It's my understanding that the radio core is shared between the CC1100E, CC1101, CC1110, and CC1111 -- but there are some registers that are different. Is the Manchester behavior consistent between chips?

I think that's all for now. I have a great many other questions about this mysterious chip... but I'll save them for another time.

Thanks in advance for your replies!

- Tim

  • - By CC11xx I assume you mean CC1101 and not CC1120?
    - Coding: e2e.ti.com/.../1033903 and also in Sverres post you linked to...
    - The manchester coding is equal for the various chips.
    Not sure I understand the PQT/ sync search question. If you use Sverres suggestion you set the chip to NRZ and therefore the received preamble is 0xAA. You will risk a bit shift in the received dataflow since the sync word quality will be poor but you should be able to adjust for this in software since, as you say, a bit shift will cause manchester violations.
  • I was using the CC1111 to prototype, but I've built up a board with the CC1101 now. I suppose my question was more along the lines of how compatible the two radios were, as far as register settings go.

    I think I'll be able to find out more answers with a little fiddling. Thanks for your help!