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.

Proprietary mode CRC on CC1310 (and CC2650)

Other Parts Discussed in Thread: CC2650, CC1310

The T.R.manual for these parts states for proprietary modes "Other polynomials, lengths, and initializations can be obtained by
parameter overrides."
I want to use a 32-bit CRC instead of the usual 16-bit in association with High Speed Mode (8-FSK).

  • Is this possible?
  • Where can I find examples/documentation?
  • Are specific polynomials implemented or is there a generic method?
  • Will the same overrides work on the CC2650?

Philip

  • Hello Philip,

    High speed mode (8FSK) has 32 bit CRC implemented by default with polynomial corresponding to 0x04C11DB7.

    It is possible to change the CRC polynomial with overrides and if you have a specific requirement, we can provide the required overrides.

    Regards,

  • Thanks SVS, this CRC should be fine.

    I am having trouble matching the generated CRC externally which I need to do for some testing. What fields are added to the basic data packet passed in the rfc_CMD_HS_TX_t command (does it follow the standard CMD_PROP_TX format?) and which of these fields is the CRC calculated over?
  • Hello Philip, 

    I forgot to mention that the initialization for CRC calculation is all 1s (0xFFFFFFFF). By default, it is calculated for payload only. 

    There are few differences in packet format between proprietary mode and HS mode. HS mode packet consists of a Preamble/Syncword, optional length field(16 bits), optional address field (16 bits), payload and CRC. The payload data is 16-bit oriented, transmitted LSB first and no whitening is applied. 

    Hope this helps. 

    Regards,

  • Hello SVS.

    I am implementing CRC recalculation routine for the received data transmitted from CC1310 using high speed mode.
    You mentioned some parameters regarding the implementation but I think those are not enough to do exact implementation.
    Which CRC standard is used in the high speed mode of CC1310? CRC32 MPEG2 ? or just CRC32?
    (i.e. I want to know the exact settings of input reflected, result reflected, Final Xor value)
    Please let me know the exact type of CRC for HSM.

    Thanks.

    S. Bae
  • Is there anyone who knows the exact CRC implementation of the CC1310 HSM?
  • For HSM a standard 32 bit CRC is used.

    - polynomial : 0x04C11DB7 (normal form -- this is commonly used in many other applications, see en.wikipedia.org/.../Cyclic_redundancy_check)
    => i.e. x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1.
    - crc init: 0xFFFFFFFF
  • Thanks TER,

    I already know what you mentioned.

    What I am wondering is more specific information about CRC implementation.

    As the first question that I posted, which CRC standard is used in the HSM.

    Depending on the standard, the input bit is reflected or not , or the result bit is reflected or not.

    Thus, the CRC32 results of MPEG2 and other standard are different.

    Anyway, I am waiting your answer again.
  • Sorry, I for some reason didn't see the pre history on this thread when I answered.

    The CRC data is not XORed.

    From what I could find out the order of bits to the CRC calculations are the same way as used over the air.
  • Thank you, TER. It helped me.