24. GPCRC - General Purpose Cyclic Redundancy Check
0 1 2 3
4
Quick Facts
What?
The GPCRC is an error-detecting module commonly
used in digital networks and storage systems to de-
tect accidental changes to data.
Why?
The GPCRC module can detect errors in data, giv-
ing a higher system reliability and robustness.
How?
Blocks of data entering GPCRC module can have a
short checksum, based on the remainder of a poly-
nomial division of their contents; on retrieval the cal-
culation is repeated, and corrective action can be
taken against presumed data corruption if the check
values do not match.
24.1 Introduction
The GPCRC module is a slave peripheral that implements a Cyclic Redundancy Check (CRC) function. It supports both 32-bit and 16-
bit polynomials. The supported 32-bit polynomial is 0x04C11DB7(IEEE 802.3), while the 16-bit polynomial can be programmed to any
value, depending on the needs of the application. Common 16-bit polynomials are 0x1021 (CCITT-16), 0x3D65 (IEC16-MBus), and
0x8005 (ZigBee, 802.15.4, and USB).
24.2 Features
• Programmable 16-bit polynomial, fixed 32-bit polynomial
• Byte-level bit reversal for the CRC input
• Byte-order reorientation for the CRC input
• Word or half-word bit reversal of the CRC result
• Ability to configure and seed an operation in a single register write
• Single-cycle CRC computation for 32-, 16-, or 8-bit blocks
• DMA operation
EFM32JG1 Reference Manual
GPCRC - General Purpose Cyclic Redundancy Check
silabs.com
| Smart. Connected. Energy-friendly.
Preliminary Rev. 0.6 | 804