14.4 CRC Data Sources
Data can be input to the CRC module in two ways:
- User data using the CRCDAT14.12.3 CRCDAT registers
- From Flash memory using the program memory scanner
Up to 16 bits of data per word are specified with the DLEN bits. Only the number of data bits in the CRCDATA registers specified by DLEN will be used, other data bits in CRCDATA registers will be ignored.
Data is moved into the CRCSHIFT14.12.5 CRCSHIFT as an intermediate to calculate the check value located in the CRCACC14.12.4 CRCACC registers.
The SHIFTM bit is used to determine the bit order of the data being shifted into the accumulator. If SHIFTM is not set, the data will be shifted in MSb first (Big Endian). The value of DLEN will determine the MSb. If SHIFTM bit is set, the data will be shifted into the accumulator in reversed order, LSb first (Little Endian).
The CRC module can be seeded with an initial value by setting the CRCACC registers to the appropriate value before beginning the CRC.