
RM0008
CRC calculation unit
Doc ID 13902 Rev 12
63/1096
4.3
CRC functional description
The CRC calculation unit mainly consists of a single 32-bit data register, which:
●
is used as an input register to enter new data in the CRC calculator (when writing into
the register)
●
holds the result of the previous CRC calculation (when reading the register)
Each write operation into the data register creates a combination of the previous CRC value
and the new one (CRC computation is done on the whole 32-bit data word, and not byte per
byte).
The write operation is stalled until the end of the CRC computation, thus allowing back-to-
back write accesses or consecutive write and read accesses.
The CRC calculator can be reset to FFFF FFFFh with the RESET control bit in the CRC_CR
register. This operation does not affect the contents of the CRC_IDR register.
4.4 CRC
registers
The CRC calculation unit contains two data registers and a control register.
4.4.1 Data
register
(CRC_DR)
Address offset: 0x00
Reset value: 0xFFFF FFFF
4.4.2 Independent
data
register (CRC_IDR)
Address offset: 0x04
Reset value: 0x0000 0000
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
DR [31:16]
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
DR [15:0]
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
Bits 31:0
Data register bits
Used as an input register when writing new data into the CRC calculator.
Holds the previous CRC calculation result when it is read.
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Reserved
IDR[7:0]
rw
rw
rw
rw
rw
rw
rw
rw
Bits 31:8 Reserved