ADIS16495 CRC-32 is coming back wrong for me

I have an ADIS 16495 connected to an ESP32 microcontroller by SPI.

The CRC coming back during a burst read never matches what I calculate.  I have run the test data from the data sheet (Table 55) through the algorithm I am using as well as an online CRC-32 calculator and it comes back correct.

However if I run the data coming back from the 16495 through the same code or online calculator it is wrong.

The only exception to the default setup is that FNCTIO_CTRL has been initialized as 0x00fd to turn on sync clock mode.

Here is an example of my buffer filled with the 30 bytes of test data from Table 55 in the datasheet.  (the 00000000 is where the CRC would be)


The CRC of the first 30 bytes calculates as B6C815B4

Here is some actual data from the ADIS16495 (including the 4 bytes of CRC at the end)


The CRC from the chip is b212dbb1

The CRC calculates as E9A23901

The CRC always comes back wrong so it is not a transmit error.  I have also looked at the data with a logic analyzer and it matches the dumps from my software.

So what is happening?  Is there something I have missed setting up? 

I want to be able to validate the data is correct using CRC-32 just in case there are transmit issues.