Dear all,
I've been working on figuring out the CRC read calculation for the AD7383-4 ADC. Based on the ADC datasheet, I wrote a MATLAB script for the 32-bit CRC calculation, and it correctly matches the remainder shown in the example (see the attached snapshot).
Since I'm using four 4-channel ADCs, I extended the same logic to handle 64-bit data + 8-bit CRC = 72-bit total. However, when I test this on hardware, the ADC result does not match expectations. Adding the CRC to the 64-bit data should result in a final remainder of zero, but unfortunately, that's not happening.
I'm attaching an ILA scope snapshot that shows all four channels, including the CRC read result. (Note: the output matches the input as I’m applying a 4 mV sine wave.)
I've spent a significant amount of time on this, but things still aren't lining up. I would greatly appreciate any help, suggestions, or leads you might have.
Thank you in advance.
Hardware result:
MATLAB CALCULATION FOR 32bit example of datasheet:

CRC RESULT CALCULATION HW RESULT:

MATLAB EXTENDED CODE: