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.

ADS131M04EVM: Unexpected ADC outputs

Part Number: ADS131M04EVM

Hello, I am trying to setup my ads131m04evm board and I have noticed some very weird behavior when reading its output values.

I am inputting the same fixed 1v dc signal to all 4 channels. I measured the voltage being seen at each adc input, and as expected the positive input sees 1v and the negative 0v. However, the output doesn't match up with this at all. Channels 0 and 2 read about the same wrong value, while 1 and 3 do the same but are reading significantly higher.

Channel 0: 1.3756v
Channel 1: 1.9219v
Channel 2: 1.3753v
Channel 3: 1.9228v

Using the gain calibration registers i was able to correct channels 0 and 2 to get the correct input value of 1v, as I saw that the gain was consistently off by a factor of .72 across multiple input values. I used the same method to calculate the gain correction register value for channels 1 and 3 and set it to .52, but this actually caused the output values to be increased. I am now seeing 2.58v on those channels. There isn't any zero error so I haven't tried changing the offset registers. 

Another oddity that I noticed is that with a gain of 1, I shouldn't be able to read any higher than +/-1.2v but channels 0 and 2 seem to read up to 1.48v.  Here are my register values, nothing seems out of line other than ID. The only registers I am currently writing to are the gain correction registers.

Value of Register 0: 2401
Value of Register 1: 050f
Value of Register 2: 0510
Value of Register 3: 0f0e
Value of Register 4: 0000
Value of Register 5: 0000
Value of Register 6: 0600
Value of Register 7: 0000
Value of Register 8: 0000
Value of Register 9: 0000
Value of Register a: 0000
Value of Register b: 0000
Value of Register c: 5ccc
Value of Register d: cc00
Value of Register e: 0000
Value of Register f: 0000
Value of Register 10: 0000
Value of Register 11: 42aa
Value of Register 12: ab00
Value of Register 13: 0000
Value of Register 14: 0000
Value of Register 15: 0000
Value of Register 16: 5ccc
Value of Register 17: cc00
Value of Register 18: 0000
Value of Register 19: 0000
Value of Register 1a: 0000
Value of Register 1b: 42aa
Value of Register 1c: ab00
Value of Register 3e: 0000

The last thing I should mention is that I have an early engineering prototype of this board. Is this a known issue with early boards that has since been fixed in the newer revisions that have been released? Any insight into this problem would be greatly appreciated, thanks in advance!

  • Dylan,



    I think I know what is wrong, but you'll need to test it out to check.

    First, the channel 1 and channel 3 inputs are swapped. For channel 0 and channel 2, the three input terminals are such that pin 1 is AINP and pin 3 is AINN. For channel 1 and channel 3, pin 1 is AINN and pin 3 is AINP. Every other channel has the AINP and AINN swapped. The new EVM (that uses a different motherboard and GUI software) sets the inputs up so that pin 1 is always AINP and pin 3 is always AINN.

    For those values on channel 1 and channel 3, I think the problem is that the measurement is negative and the output code from the ADC is written in twos complement notation. There is a writeup in the datasheet about the notation in the ADC Conversion Data section on page 27. To be sure, I'd need to see the conversion value in the raw ADC code.

    If you're modifying the gain calibration registers, then you would be able to modify the size of the input that you are able to measure. That would explain the measurement of a max greater than 1.2V. However, I wouldn't modify this value very much. There are limitations as to how far the modulator can be run, and generally you use this value to do fine calibration settings (a couple of percent or less). For now, start with using the default value and check the results.

    If this doesn't explain the problem, then post back and we'll work on this some more.



    Joseph Wu

  • Joseph,

    Thank you for clearing that issue up. I was able to the same reading on all 4 channels. I also found my error in converting the data, I was using 3.3/2^24 instead of 2.4/2^24.