16. Cyclic Redundancy Check (CRC0)
16.1 Introduction
The cyclic redundancy check (CRC) module performs a CRC using a 16-bit or 32-bit polynomial. CRC0 accepts a stream of 8-bit data
and posts the result to an internal register. In addition to using the CRC block for data manipulation, hardware can automatically CRC
the flash contents of the device.
CRC
CRC0DAT
CRC0IN
byte-level bit
reversal
Hardware CRC
Calculation Unit
Seed
(0x0000 or 0xFFFF)
(0x00000000 or
0xFFFFFFFF)
Automatic
flash read
control
8
8
8
Flash
Memory
CRC0FLIP
8
8
8
8
8
Figure 16.1. CRC Functional Block Diagram
16.2 Features
The CRC module is designed to provide hardware calculations for flash memory verification and communications protocols. The CRC
module includes the following features:
• Support for CCITT-16 polynomial (0x1021).
• Support for CRC-32 polynomial (0x04C11DB7).
• Byte-level bit reversal.
• Automatic CRC of flash contents on one or more 1024-byte blocks.
• Initial seed selection of 0x0000/0x00000000 or 0xFFFF/0xFFFFFFFF.
EFM8SB2 Reference Manual
Cyclic Redundancy Check (CRC0)
silabs.com
| Smart. Connected. Energy-friendly.
Rev. 0.1 | 158