XMC4500 Tip of the day: Flexible CRC Engine

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
The FCE is a standard peripheral slave module which is controlled over a set of memory mapped registers. The FCE is fully synchronous with the CPU clock and runs with a 1:1 clock ratio.

Depending on the hardware configuration the FCE may implement more CRC kernels with different CRC polynomials. There are 4 CRC kernels for 3 different types of CRC.

CRC Kernel 0 and 1: IEEE 802.3 CRC32 ethernet polynomia
CRC Kernel 2: CCITT CRC16 polynomial
CRC kernel 3: SAE J1850 CRC8 polynomial:
0 Likes
6 Replies
Not applicable
Hello Travis,

My name is Federico and I work for Mercedes-Benz. I am interested in using the FCE feature for the TriCore Aurix, I would like to ask you if there are any Applications notes on hoe to use the registers, so far I haven't been able to make it work.

In previous generations we used DMA and the MCRCHK to calculate CRC. Are there any constraints for using FCE?

I would appreciate your feedback.

Thanks and Regards,

Federico
0 Likes
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
Hi freyes,

This is XMC forum, so I had to revert your posting to TriCore for further support.

Best regards
Travis
0 Likes
User13960
Level 3
Level 3
First like received
Hi,

Is it possible to use the FCE for SAE J1850 CRC8 polynomial with the following parameters ?

Polynomial: 0x2F (x8 + x5 + x3 + x2 + x + 1)
Start value: 0xFF
Final XOR-value: 0xFF

Thank you very much

PHAB
0 Likes
jferreira
Employee
Employee
10 sign-ins 5 sign-ins First like received
Hi,

We support SAE J1850 CRC8 polynomial: 0x1D - x8 +x4 +x3 +x2 +1.

Regards,
Jesus
0 Likes
User13960
Level 3
Level 3
First like received
Thanks for your very rapid reply Jesus.

Do you know of a library function for 0x2F (x8 + x5 + x3 + x2 + x + 1) ?
0 Likes
jferreira
Employee
Employee
10 sign-ins 5 sign-ins First like received
Hi,

The Linux source code provides an implementation, https://elixir.bootlin.com/linux/latest/source/lib/crc8.c

Regards,
Jesus
0 Likes