Post Go back to editing

AD7771 MEMMAP_CRC_ERR problem


I use an AD7771 in SPI control mode and read the output data over DOUT0-DOUT3 pins.

ADC data seem to make sense, however, in the header ALERT bit is always set to 1.

The MEMMAP_CRC_ERR bit in GEN_ERR_REG_1 register seems to be set to 1 after I do the initialisation.

Here is my Memory Map after reset on the left side and after initialisation on the right.

The MEMMAP_CRC_ERR disappears if I set bit AD7779_MEMMAP_CRC_TEST_EN in AD7779_REG_GEN_ERR_REG_1_EN register to 0 during the initialisation.

I tried the same with a brand new AD7771FMCZ board to no avail.

What am I doing wrong? Could you please help me?

Thanks in advance,


Hardware in use: EVAL-AD7771FMCZ (Evaluation board for AD7771) and NUCLEO F429IZ

  • Hi Lluis

    I recently took over this project from Dusan. Thanks to your final idea, I could find out, what our problem is. We didn't serve a correct "Channel Select" signal to the ADC board. In fact, the level of this signal was always low. So the ADC board was selected, but didn't received any edges and this has triggered the MEMMAP_CRC_ERR flag. Beside this flag, all registers were written correctly.

    With a correct "Channel Select" signal, the error flag disappeared.

    Thanks a lot for your persistent help!


  • Hi Samuel,
    I am also working on the same ADC and think I have a similar problem. On the other hand I do not understand what you mean by a correct "Channel Setect". Can you explain to me more precisely please? 


Reply Children
  • Hi Sylvain

    In our structure, we have a microcontroller, which is the master of the SPI communication. The AD7771 is a slave and therefore, because SPI can have multiple slaves, must be selected by the "Channel Select" pin. This signal must be written low for the duration of the transfer, as you can see in this figure from page 10 of the AD7771 datasheet. 

    We didn't do that correctly so we got the CRC error.