Datasheet

2005-2012 Microchip Technology Inc. DS39747F-page 175
PIC24FJ128GA010 FAMILY
20.0 PROGRAMMABLE CYCLIC
REDUNDANCY CHECK (CRC)
GENERATOR
The programmable CRC generator offers the following
features:
User-programmable polynomial CRC equation
Interrupt output
Data FIFO
20.1 Registers
There are four registers used to control programmable
CRC operation:
CRCCON
CRCXOR
CRCDAT
CRCWDAT
20.2 Overview
The module implements a software configurable CRC
generator. The terms of the polynomial and its length
can be programmed using the CRCXOR (X<15:1>) bits
and the CRCCON (PLEN<3:0>) bits, respectively.
Consider the following equation:
EQUATION 20-1: CRC POLYNOMIAL
To program this polynomial into the CRC generator,
the CRC register bits should be set, as shown in
Table 20-1.
TABLE 20-1: EXAMPLE CRC SETUP
Note that for the value of X<15:1>, the 12th bit and the
5th bit are set to ‘1’, as required by the equation. The
0 bit, required by the equation, is always XORed. For a
16-bit polynomial, the 16th bit is also always assumed to
be XORed; therefore, the X<15:1> bits do not have the
0 bit or the 16th bit.
The topology of a standard CRC generator is shown in
Figure 20-2.
FIGURE 20-1: CRC SHIFTER DETAILS
Note: This data sheet summarizes the features of
this group of PIC24F devices. It is not
intended to be a comprehensive reference
source. Refer to Section 30. “Program-
mable Cyclic Redundancy Check
(CRC)” (DS39714) in the “PIC24F Family
Reference Manual” for more information.
Bit Name Bit Value
PLEN<3:0> 1111
X<15:1> 000100000010000
x
16
+ x
12
+ x
5
+ 1
IN
OUT
BIT 0
0
1
p_clk
X1
IN
OUT
BIT 1
0
1
p_clk
X2
IN
OUT
BIT 2
0
1
p_clk
X3
IN
OUT
BIT 15
0
1
p_clk
X15
XOR
D
OUT
01 2 15
PLEN<3:0>
Hold
Hold
Hold
Hold
CRC Read Bus
CRC Write Bus
CRC Shift Register