Home/Support/Support Forum/Serial port E in HDLC mode: HDLC CRC is not matching with standard Polynomial
Welcome to Digi Forum, where you can ask questions and receive answers from other members of the community.

Serial port E in HDLC mode: HDLC CRC is not matching with standard Polynomial

0 votes
We are using Serial port E in HDLC mode(Rabbit 6000) to send the HDLC data out on port E pins with CRC appended.
As specified in manual rabiit uses CRC CCITT polynomial
x^{16} + x^{12} + x^{5} + 1 with intial conditions FFFF.

but the crc appended by rabbit in transmit mode is coming different from the standard.
for data
in hex: 61,62,63,64,65,66,67,68,69,6a,6b,6c,6d,6e,6f,70,71,72,73,74,75,76,77,78,79,7a

CRC-CCITT (0xFFFF) calculated by rabbit :in hex 0x430d

CRC-CCITT (0xFFFF) calulated by using below links:in hex 0x53e2

(ref.by http://www.zorc.breitbandkatze.de/crc.html)
(ref by http://www.tahapaksu.com/crc/)
(ref by http://www.bobtech.ro/tutoriale/porturi-si-interfete/51-crc-calculator)

The three website links had shown the same value of calulated crc 0x53e2
so why there is difference coming?
asked Nov 30, 2015 in Rabbit by Abhi New to the Community (0 points)

Please log in or register to answer this question.

1 Answer

0 votes
Are you using Dynamic C 10.72? Can you provide some sample code? I haven't used the HDLC libraries, and on a quick look I'm not seeing where it calculates and sends the CRC.

Are you sure it's calculating the CRC over that full range of bytes? You're getting a clear capture of the bytes sent along with their CRC?

Is it possible the buffer you're sending changes between your call to HDLCsendE() and when HDLCsendingE() returns false (see documentation to HDLCsendE).
answered Jan 20, 2016 by TomCollins Veteran of the Digi Community (2,382 points)