Post Go back to editing

wrong conversion with AD7691

Dears,

we have a frustrating issue with the ADC AD7691:

we use an FPGA that reads the ADC at 200 kHz (but we tested also at 100 kHz and it's the same) in "CS MODE" (3-WIRE WITHOUT BUSY INDICATOR).

The ADC seem to works fine for almost all the input analog range (we are using it as full differential range with the ADA4941), but in the region where the input value is converted as 100000 (decimal representation comp-2) the ADC is returning "always" the same value 100384. It seem that for a "wide" (some mV) input voltage range the ADC gives the same code: 100384. That cannot be due to the noise.

I attach some screen shots pick-up with an Oscilloscope with SPI decoder: as you can see the 100384 occurs very very often even if the input voltage (CH4, AC-mode) is varying a lot.

We make different test relaxing the reading timing, changing the AD7691 chip, but we still get that damned code:100384.

Please someone can help us?

Regards

Denis

attachments.zip
  • Hi Denis,

    Thanks for your question. It's nice to hear that the ADC works fine most of the input ranges. Was the ADC working well on Neg Full-Scale Range and Pos Full-Scale Range?

    The AD7691 Input voltage range swings from -Vref  to +Vref and the Reference voltage must be within the VDD value. Please also ensure that the ADC is properly grounded.

    May I know the condition of the REF pin and the Supply pin. It can be helpful also if you can share  the schematic.

    Regards,

    Jonathan

  • Jonathan,

    thanks for the replay.

    The behavior of the ADC is simmetrical:  the system is reading a biplar current (from -60A to 60A scaled from -2.4 V to 2.4 V ) and we have these strange conversion for +48A and -48A (i.e. -1.92 V and 1.92 V). The Vref is 2.5V

    Al the digital signal are clean and the ADC thanks to a well done layout have good ground potential.

    Find attach schematic.

    Denis

  • Hi Denis,

    Thanks a lot for sharing the schematic. On page 16 of the AD7691 datasheet, the typical circuit diagram for single-to-differential driver uses 2.7nF capacitor, from your schematic the 100nF capacitor is large to drive the ADC. Please apply the component values recommended from the datasheet.

    I can see that the REF pin is directly connected to the source, please note that the REF pin has a dynamic input impedance and should be driven by a low impedance source. It should be decoupled with minimal parasitic inductance by placing a reference decoupling capacitor close to REF and GND pins. On the datasheet there are recommended reference circuit and reference drivers to have an optimum performance.

    Regards,

    Jonathan

  • Jonathan,

    I add also the reference circuit. All the capacitor are very close (less than 3mm) to the ADC.

    Anyway I think that the problem is not the reference because in that case we would have more noise and not what we are experiencing that is the opposite: a fix code conversion.  It seem that ADC is not lienar in that region.

  • Hi Denis,

    From the schematic the capacitor C129 and C131 is at 100nF and this is very large, please replace it with a smaller capacitor at 2.7nF as recommended on the datasheet.

    Regards,

    Jonathan

  • Hi Jonathan,

    we replace the C129 and C131 with the 2.7nF and the problem is still present.

    We also try to use 100 pF but nothing change

    Denis

  • Hi Denis,

    Thanks for the feedback. On the Ref pin of the AD7691, datasheet recommends to use the AD8031/32 buffer as it is proven as ref inputs for the AD7691 and it is recommended to put a 10uF capacitor on the Ref pin to make the Reference stable. It may also be worth trying to connect the output of the ADR431 directly to drive Ref input and see if things will improved.

     

     

    Regards,

    Jonathan

  • Hi Jonathan,

    we try to connect the ADR431 directly to Ref pin but nothing change...

    Could be that the AD7691 doesn't receive the start of convertion and when the fpga ask for reading it gives the same code of the last conversion? But this is strange becouse the signal 0-3.3V on pin CNV is pretty fine: no noise no offset at all.

  •  

    Hi Denis,

     

    From what I understand, the AD7691 is converting fine on some voltage range but above a certain analog input voltage level the output code repeats. It works fine on some voltage level. Can you measure the voltage at the analog input specially on the voltage when the output code repeats. Does voltage change when increasing the voltage from the source? Does the problem exhibit only a certain voltage level? When from a repeated code output, then returning the voltage level where the ADC works fine, does the problem exist? Please also share your timing diagram.

     

    Regards,

    Jonathan

  • Hi Jonathan,

    the AD7691 is converting fine on some voltage range but for certain analog input voltage level the output code repeats, this behaviour is expecialli visible for an input voltage of 1.92V, but this is not the only one. For example I attach a screen-shot for input level 0 V, 1.92 V (i.e. 48A) and 2.4V (i.e. 60A).

    In the last screen shot, the CH4 is the input voltage (as you can see it is vary a lot but the exit code repeats)

    Last screen-shot is the timing we are using.

    Regards

    Denis