AnsweredAssumed Answered

How to configure the STM32F429 CRC module to compute the CRC-CCITT standard

Question asked by Mootaz Amr on Jun 27, 2017

Hi St community


We have a custom board based on STM32F429 that runs a gateway application between a wireless transciever and an ethernet link.

To check for frames integrity we use a CRC16-CCITT algorithm, each bytes requires several process operations of XOR, shifting ... and the whole operation takes around 330µs to process a 1018 bytes frame.
The STM32F429 includes a CRC peripheral, documented in the AN4187 paper
http://www.st.com/content/ccc/resource/technical/document/application_note/39/89/da/89/9e/d7/49/b1/DM00068118.pdf/files/… 
According to the Table2, the peripheral usage significantly reduced (60 times) the computation time in comparison to an algorithmic implementation.

The example used in the paper used the CRC-32 standard and not the CRC-CCITT one.
See "Polynomial functions for common CRC's Table" or attached PNG for differences.

 

We are looking now to optimize the CRC computation using the peripheral.

Does anyone tried to implement the CRC-CCITT standard using the hardware ??

Thanks for any idea, code example ...

Outcomes