![Texas Instruments SimpleLink Ethernet MSP432E401Y Technical Reference Manual Download Page 843](http://html1.mh-extra.com/html/texas-instruments/simplelink-ethernet-msp432e401y/simplelink-ethernet-msp432e401y_technical-reference-manual_1095578843.webp)
Introduction
843
SLAU723A – October 2017 – Revised October 2018
Copyright © 2017–2018, Texas Instruments Incorporated
Cyclical Redundancy Check (CRC)
13.1 Introduction
The following features are supported:
•
Support four major CRC forms:
–
CRC16-CCITT as used by ITU-T X.25
–
CRC16-IBM as used by USB and ANSI
–
CRC32-IEEE as used by IEEE 802.3 and MPEG 2
–
CRC32C as used by G.Hn
•
Allows word and byte feed
•
Supports automatic initialization and manual initialization
•
Supports MSb and LSb
•
Supports CCITT post-processing
•
Can be fed by µDMA, flash memory, and code
13.2 Functional Description
The following sections describe the features of CRC.
13.2.1 CRC Support
The purpose of the CRC engine is to accelerate CRC and TCP checksum operation. The result of the
CRC operation is a 32- and 16-bit signature which can be used to check the sanity of data. The required
mode of operation is selected through the TYPE bit in the CRC Control (CRCCTRL) register, offset 0x400.
A µDMA software channel can be used to burst data into the CRC module. CRCs are computed
combinatorially in one clock.
The CRC module contains all of the control registers to which the input context interfaces. Because CRC
calculations are a single cycle, as soon as data is written to CRC Data Input (CRCDIN) register, the result
of CRC/CSUM is updated in the CRC SEED/Context (CRCSEED) register, offset 0x410. The input data is
computed by the selected CRC polynomial or CSUM.
13.2.1.1 CRC Checksum Engine
Software can offload the CRC and checksum task to the CRC checksum engine accelerator. The
accelerator has registers that need to be programmed to initiate processing. These registers should be fed
with data to calculate CRC/CSUM. Software should configure the µDMA channel for data movement
through the DMA Channel Map Select n (DMACHMAPn) register in the µDMA module. Further µDMA
configuration guidelines are available in
The starting seed for the CRC and checksum operation is programmed in the CRC SEED/Context
(CRCSEED) register at offset 0x410. Depending on the encoding of the INIT field in the CRCCTRL
register, the value of the SEED field can initialized to any one of the following:
•
A unique context value written to the CRCSEED register (INIT = 0x0)
•
All 0s (INIT = 0x2)
•
All 1s (INIT = 0x3)
When the operation is complete, software should read the result from the CRC Post Processing Result
(CRCRSLTPP) register, offset 0x418, and a software channel µDMA interrupt should be used to identify
completion.
13.2.1.2 Data Size
The CRC module supports data being fed 32-bit words and 8 bits at a time and can dynamically switch
back and forth. The data size is configured by programming the SIZE bit in the CRCCTRL register, offset
0x400.