25.7.8.4 Polynomial Registers

The DMA provides two polynomial registers, CRCPO-LYA and CRCPOLYB, which are shared between the channels. These registers allow users to program 2 unique CRC polynomials which any number of channels can use.

For example, the user can program POLYA with a 32-bit polynomial such as CRC-32 Castagnoli (0x1EDC6F41) and configure channel 1 and 3 to use CRCPOLYA in 32-bit CRC mode (CHCTRLCRC1.CRCMD=5 and CHCTRLCRC3.CRCMD=5). At the same time, the user can program POLYB with a unique 16-bit polynomial to be used by channel 2 (CHCTRLCRC2.CRCMD=3).

CRC Polynomial Configuration Examples

Example of 32-Bit Polynomial CRC Setup shows and example CRC configuration with a polynomial size of 32. For each term (xn) of the polynomial, a corresponding bit in CRCPOLYA/POLYB is set to ‘1’. Example of 16-Bit Polynomial CRC Setup shows an example of a 16-bit polynomial, CRC-16-DNP.