RM0453
17
Cyclic redundancy check calculation unit (CRC)
17.1
Introduction
The CRC (cyclic redundancy check) calculation unit is used to get a CRC code from 8-, 16-
or 32-bit data word and a generator polynomial.
Among other applications, CRC-based techniques are used to verify data transmission or
storage integrity. In the scope of the functional safety standards, they offer a means of
verifying the flash memory integrity. The CRC calculation unit helps compute a signature of
the software during runtime, to be compared with a reference signature generated at link
time and stored at a given memory location.
17.2
CRC main features
•
Uses CRC-32 (Ethernet) polynomial: 0x4C11DB7
•
Alternatively, uses fully programmable polynomial with programmable size (7, 8, 16, 32
bits)
•
Handles 8-,16-, 32-bit data size
•
Programmable CRC initial value
•
Single input/output 32-bit data register
•
Input buffer to avoid bus stall during calculation
•
CRC computation done in 4 AHB clock cycles (HCLK) for the 32-bit data size
•
General-purpose 8-bit register (can be used for temporary storage)
•
Reversibility option on I/O data
•
Accessed through AHB slave peripheral by 32-bit words only, with the exception of
CRC_DR register that can be accessed by words, right-aligned half-words and right-
aligned bytes
32
26
23
22
X
+ X
+ X
+ X
Cyclic redundancy check calculation unit (CRC)
16
12
11
+ X
+ X
+ X
+ X
RM0453 Rev 5
10
8
7
5
4
+X
+ X
+ X
+ X
2
+ X
+ X +1
525/1450
531
Need help?
Do you have a question about the STM32WL5 Series and is the answer not in the manual?
Questions and answers