Post Go back to editing

AD7770 Data Output on SPI stops after few seconds

Category: Software
Product Number: AD7770, EVAL-AD7770FMCZ

Hi,

I am using EVAL-AD7770FMCZ evaluation board and trying to read data for 3 channels of the ADC using SPI. Following is the initialisation sequence that I am following

1. Enable High Resolution Mode

2. Enable channel 1,2,3 only

3. Changing the output data rate to 1 KSPS

4. Asserting the SCR load update bit in SCR update register for two clock cycles

5. Starting the conversion and enable the SPI mode

When the SPI is enabled, the sigma delta conversion data is available on the SDO pin. This data I am reading as soon as data ready pulse is generated. The data is available at 1 KSPS for some short duration and then the ADC stops working. There is no data ready pulse after some time and the ADC goes into unknown state and I need to force restart the entire system. The duration for which the data is available on the SDO pin also varies every time, but it is available for very short duration. 

Is there any step that I am missing or doing wrong? 

Any help will be highly appreciated. 

Thank you in advance.

  • Hi Mohit,

    First of all I would recommend to make a reset and then I would procedure as you have mentioned.

    The SRC_UPDATE must be set 1 and then manually back to 0.

    Does the ADC stop working if you do NOT change the mode to read the data via SPI? 

    Could you read the following registers before and after the devices has stopped working?

    0x011 ,  0x012 , 0x013, 0x04C, 0c04D, 0x04E , 0x04F, 0x054 , 0x055,  0x059, 0x05B, 0x05D, 0x05E, 0x05F

    Are you using CRC?

    Regards

    Joan

  • HI Joan,

    I give a Low Pulse to the RESET pin for one clock cycle at the start before initialisation, as mentioned in the data sheet, to reset all the internal registers.

    Yes, the SRC_UPDATE is set for two clock cycles and then cleared in the next clock cycle.

    No, the ADC works properly if the output mode is not changed to SPI. Valid signals are present on DRDY, DCLK and DOUT(0 - 3) all time. 

    Before Enabling SPI mode, I am able to read the internal registers correctly. I tried with 0x11 and 0x13, I get their respective RESET value in return from ADC. However, when the conversion is started and SPI is enabled, ADC simply ignores the command given on SDI pin and continues to give ADC conversion result at the output.

    Also I would like to add, I am sending 0x800000 on SDI and reading from SDO parallely to avoid ADC reset.

    I am not using CRC.

    Thank You.

    Regards,

    Mohit

  • Hi Mohit,

    When you are in SPI read mode all the read commands are ignored, as it is indicated in the datasheet. What I am proposing is to read all the mentioned registers before changing the ADC mode to SPI read mode, and once the ADC has stopped working, change the mode to SPI register mode and read again the same registers. I would like to see if there is any error activated during the operation.

    You have also mentioned that the ADC works for a small period of time. Is the read data correct?

    Could you try to use a sending value 0x808080 instead 0x800000 when reading the ADC values?

    Regards

    Joan