This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS7881EVM restricted dynamic range

Other Parts Discussed in Thread: ADS7881, ADS7891

Maybe somebody here can help me solve this problem.

I'm running the evaluation module for the ads7881, but my usable input range is restricted to ~500-600mV of the 2.5V swing. If I input just a DC signal and sweep it from 0-2.5V, the ADC codes roll over (i.e. I reach my max code of 4092, and then it overflows to 0 and beyond, or vice versa) several times. All in all I only get about 600mV of range at any part of the full scale range. At the top (2.5V)  and bottom (0V) I reach codes 4092 and 0, respectively, and there is no further overflow.

What I'm trying to do is put a 0-4V 500kHz signal into the board. I feed it into an inverting input stage which outputs -2.5-0V, which is then fed into the board's signal conditioning stage. I've tried changing the input DC offset, the the input amplifier's offset pot (R25), as well as changing the the input impedance. I experience the same behaviour if I simply feed the board with a DC voltage from a bench supply. 

I'm driving the board in back-to-back mode with a 2MHz clock to CONVST, with CS and RD tied low. Byte is tied low,  PWD/RST and A_PWD are tied high. The reference voltage is produced using the on-chip refout, and is measured to be 2.5V. The +/-12V and +5V rails also measure up correctly. When I measure the input voltage at the output of the signal conditioning stage (U2 pin 6) I seem to be getting the correct 0-2.5V input to the ADC. Otherwise I am using all of the default jumpers and settings. 

Note that I'm using the board standalone, not via a 5-6K+DSP setup. As such I'm not using the address decoder chip, but rather driving the control pins directly from J3. I have noticed, however, that the decoder chip U8 gets a bit warm (not hot) while running. Perhaps this is related somehow?

I've been through the datasheets, but I don't see anything that would be related to this overflow behaviour. Perhaps I'm misunderstanding how the board is supposed to operate, but I'm a bit stumped now.

  • Armand,

    From your description, it sounds like the DB bus is incorrectly connected and that the host is missing the two MSBs. This would explain a perceived 625mV range, the multiple rollovers and the fact that the max voltages is hitting code 4092 rather than 4095.

    The EVM you are using is common to the ADS7881 and the ADS7891. Both devices have their MSBs located at pin16, which is named DB13 in the schematics (see Appendix C in the User’s Guide). You have probably connected the host to DB[11..0] pins on P3 of the EVM. You will get the correct data bits for the ADS7881 on DB[13..2] on P3.

    Regards,

    Sandeep                                                         

  • Hi Sandeep,

    Thanks for the reply. Moving the data bus over as you suggested solved the problem. Thanks for pointing that out, I appreciate it. 

    In hindsight I probably should have caught on to this earlier based the behaviour, however I would like to point out that (unless I'm missing something) the documentation for the ads7881/7891EVM is patently incorrect. Table 5 on page 5 shows the pinout of the data bus, claiming that the *LSBs* are aligned between the two chips, not the MSBs. 

    If one trusts the EVM documentation above, the host processor will read the data incorrectly. It would be pretty obvious how things are actually connected from seeing the wiring on the board, except that the schematic wires the data bus using a bus line, so you don't see the physical connections to P3. You have to cross reference the ads7881 datasheet pinout and note the pin number mismatch in the evm schematic to catch this error. That's debugging time needlessly wasted.

  • Armand,

    Glad to hear that the issue has been resolved.

    I completely agree with your comments on the documentation. Let me get this fixed.

    Regards,

    Sandeep