Post Go back to editing

Troubleshooting AD7771

Category: Hardware
Product Number: AD7771

I am trying to optimize the quality of the output from the AD7771 and have encountered a result (figure below) that I was wondering if may provide a clue to errors and optimization.

The AD7771 is interfaced with an ESP32 via SPI reading 15kHz single ended conversions from four channels simultaneously. Both the AD7771 analog and digital is powered by 3.3V, and the internal (2.5V) reference is used (connected to Ref+ and Ref- to GND) and the chip is configured to run in low power mode (high resolution mode gives more noise all over the voltage range). The plot below shows a dependency between input signal voltage level and noise, using a ~100Hz triangle wave test signal of ~200mV to 1400mV from a function generator. The plot shows 1000 conversions for one channel as an example, and the error registers (GEN_ERR_REG1,2, STATUS_REG_1,2,3) except for the Channel status register (e.g. 0x4C) which gives seems to alternate between 1001101 and 1001000, although the signal is well within the reference voltage range. 

Do you have any hint on what the error could be?

  • Hi  ,

    Can you share the schematic and register settings?

    What is the value of the error and status registers? AIN- is grounded and AIN+ is connected to the test signal with amplitude of 200mV to 1400 mV, is that correct?

    Thanks,
    Janine

  • Hi Janine,

    Thank you for the quick response.

    Here is a quick drawing of the schematic, hope it is clear enough:

    Here is the registers configuration for this example (everything else unchanged from default):

    DEC_RATE_MSB 0b00000000
    DEC_RATE_LSB 0b11111111
    DEC_RATE_IF_MSB 0b11111111
    DEC_RATE_IF_LSB 0b11111111
    GENUSERCFG1 0b00110100
    GENUSERCFG2 0b00001001
    DOUT_FORMAT 0b11001110
    ADC_MUX_CFG 0b00000000
    GENUSERCFG3 0b10010000
    The error registers checked after the 1000 conversions (GEN_ERR_REG1,2, STATUS_REG_1,2,3) are zero except for the Channel status register (e.g. 0x4C) which gives seems to alternate between 1001101 and 1001000. 
    It is correct as you say, AIN- is grounded and AIN+ is connected to the test signal with amplitude of 200mV to 1400 mV. 
    Thank you!
  • Hi  ,

    Thank you for sharing this information.

    Just a few notes below. Please try these and let me know how it goes.

    • Connect XTAL1 to GND and CMOS output to XTAL2 pin
    • Configure FOMAT0 and FORMAT1 pins - connect to IOVDD for SPI control
    • Connect AVSS2B to GND

    If the above doesn't work

    • Try to set the ADC reference to internal reference

    Thanks,
    Janine

  • Hi Janine,

    Thank you for the suggestion.

    I am sorry, the schematic was drawn in a hurry. XTAL1 is actually connected to GND and XTAL2 to the CMOS output (was an error in the drawing but not in the actual PCB), and AVSS2B is connected to GND. 

    I tried connecting FORMAT0 and 1 to IOVDD, but it had no effect on the result.

    Setting ADC reference to internal (0b01000000 to ADC_MUX_CFG) provides the same result, however with a slightly skewed(?) waveform. 

    The error registers are clear most of the time in this case, except for the occasional GEN_ERR_REG1 = 11111111, CH0CH1_DSP_err = 11111111 and ERR_STAT_REG2:11111111). 

    Thank you again.

  • Hi Janine,

    Thank you for the suggestion.

    I am sorry, the schematic was drawn in a hurry. XTAL1 is actually connected to GND and XTAL2 to the CMOS output (was an error in the drawing but not in the actual PCB), and AVSS2B is connected to GND. 

    I tried connecting FORMAT0 and 1 to IOVDD, but it had no effect on the result.

    Setting ADC reference to internal (0b01000000 to ADC_MUX_CFG) provides the same result, however with a slightly skewed(?) waveform. 

    The error registers are clear most of the time in this case, except for the occasional GEN_ERR_REG1 = 11111111, CH0CH1_DSP_err = 11111111 and ERR_STAT_REG2:11111111). 

    I also tried to sample a sine was produced by the microcontroller DAC to rule out any problems related to the function generator as a signal source, reproducing the noise dependency on voltage level:

    Another clue perhaps is that I measure the DC current consumption of the supply to the AD7771 to be about 49 mA in low power mode and about 83 mA in high power mode which seems high compared to the datasheet. In high power mode, the noise seems to be independent on voltage level, but there is a high noise level overall.

    Do you have any further suggestions for the troubleshooting?

    Thanks