AnsweredAssumed Answered

CRC calculation problem

Question asked by obid.matic on Dec 16, 2015
Latest reply on Mar 14, 2016 by Clive One
Hi.

I'm trying to calculate CRC on STM32F303 using CRC peripheral. I check the correctness of calculation with this on-line application: https://ghsi.de/CRC/ But I have problems, when I want to calculate CRC above more than 32 bits.

If I write to CRC->DR register 32 bits it returns the same as on-line app.

For example:
- Init value: 0x00000000
- Polynomial: 0x97
- Input data: 0xA5A5A5A5
Here I get CRC value of 0x5A. And the same result I get with on-line app.

But if I want to calculate CRC above 40 bits, I don't get the same value anymore.

For example:
- Init value: 0x00000000
- Polynomial: 0x97
- Input data: 0xA5A5A5A5CC

Write CRC->DR = 0xA5A5A5A5  returns 0x5A.  Above that I write CRC->DR = 0xCC. And I get 0xFF.

Then I use on-line app. And I write input data as: 0xA5A5A5A5CC. It returns 0x44, which is not the same as uC returns. Obviously, I'm doing something wrong.

I have set REV_OUT and REV_IN in CR register to 0.

Do you have any advice? Thanks

Outcomes