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.

ADS1258-EP: Differential Measurement Only

Part Number: ADS1258-EP
Other Parts Discussed in Thread: ADS1258,

Hello,

I am trying to use the ADS1258 for a differential measurement application. I have the device configured to be in autoscan mode and have the config0 register to be 0x12 so that the BYPAS and STAT options are enable. The rest of the Config is set to the default value while the MUXDIFF register is set to 0xFF and MUXSG0 and MUXSG1 are both set to 0x00.

While inspecting the  MUXOUTP I see the mux switch in the  positive inputs. However, when i inspect the MUXOUTN, It's constantly at zero. I would have assumed when the differential mode measurement is being taken, both the MUXOUTP and MUXOUTN follow their respective inputs during the conversion cycle.

Can you please tell me how to put this device into only a differential measurement mode?

Thanks in Advance,

Ashik A

  • Hi Ashik A,

    Some questions for you:

    • Does the ADC operate normally otherwise? Are you able to pull the START pin high and see DRDY toggling?
    • Have you confirmed that the WREG command has taken effect by also performing a RREG command immediately after?
    • What are the input voltages on each differential input pair (with respect to each other and with respect to AVSS)?
    • What output codes are you getting from the ADC when you take these measurements? And what is your reference voltage?

    -Bryan

  • Hi Bryan, 

    Thanks for the quick reply. Please see my answers to your question below.

    • Does the ADC operate normally otherwise? Are you able to pull the START pin high and see DRDY toggling?
      • Yes the ADC is operating normally otherwise. I have multiples of this adc on the board and all of the ones set up for a single ended (16channel) conversion is converting correctly.
    • Have you confirmed that the WREG command has taken effect by also performing a RREG command immediately after?
      • Yes we were able to verify this.
    • What are the input voltages on each differential input pair (with respect to each other and with respect to AVSS)?
      • This ADC is being powered via a 5V Power Supply. We want this to be in a unipolar mode so the negative supply is ground. Each of the inputs of the adc (ie. all 16 PINS) are very close to 2.5V. Differentially (ie. AIN0-AIN1, AIN2-AIN3,etc) there is about 0V-60mV differential voltage. This differential voltage is what I am trying to measure.
    • What output codes are you getting from the ADC when you take these measurements? And what is your reference voltage?
      • I am currently using the BYPAS=1 mode (ie. not the internal connection from the MUX to the ADC). I am routing the MUX Out pairs to a amplifier configuration shown ADS1258-EP datasheet figure69. This amplifier applies a gain to only the differential portion of the signal and leaves the common mode unmodified (ie.does not have any Common Mode Rejection). Because of this it is crutial that when doing the differential measurement, the high/low pair both gets switch in by the mux at the same time so that you get the right differential voltage output. From what I see, only MUXOUT_H is being switched in during the conversion cycle. MUXOUT_L is at 0V constantly. SO the differential  voltage into the amplifier is ~2.5V so my gain stage saturates to the power rail and thus the ADC reads Positive Full Scale. 

    Ideally, I want to set the Device configuration to just autoscan and be only in differential mode. So that the mux channel pairs are closed at the same time.

  • Hi Ashik A,

    Can you get this ADC to work in any other configuration? For example, can you set BYPAS = 0 and then apply some known, precision voltage e.g. 1 V, to the ADC inputs and see if the device can measure this voltage correctly? You could perform this test in either single-ended or differential mode.

    Can you use a logic analyzer to look at the ADC output data and make sure the ADC is actually looping through the selected channels? It seems like you already have the STATUS byte enabled, so you can look at CHID bits to see which channel the ADC is converting. I would also try turning on random sets of channels to make sure your register writes are taking effect and the ADC can correctly loop through different channel scanning sequences.

    In other words, try different configurations to see what works and what does not. Please report back the results of your tests.

    -Bryan

  • Hi Bryan, 

    Yes, I have the same ADC placed else where on the board. Those all convert correctly, But these single ended measurements. 

    I can't get a hold of a logic analyzer today but  I can try monday. That being said, I did verify that during times of conversion, the DRDY gets pulled low 8 times (as i would expect since I am converting 8 diff channels). When this happens, I also see the MUXOUTH Passing out the Data on the ODD Channels. But MUXOUTL is not passing out the EVEN channels, its constantly at 0V. This is the issue I am seeing. Can you please provide any documentation or guidance to set the Device in just a differential mode of measurement in autoscan? From the datasheet, Only see one way of doing this, its by setting the device in autoscan mode then setting MUXDIFF register to 0xFF and then the MUXSG0 and MUXGS1 to 0x00. Is this the correct way of setting the differential measurement mode? (I also have the BYPAS set to 1 since I want to route the mux output pairs to a gain stage prior feeding it into the ADC)

  • Hi Ashik A,

    We need to better understand what is happening with this specific ADC. It doesn't really matter that there other ADCs on the board, this is the one giving you an issue. Thus far the general process you have described for enabling differential measurements is correct, which means something else is going on and we need to isolate what that issue is.

    First, please share your schematic so we can review.

    Second, please try the following tests with this specific ADC and report the results:

    1. Set BYPAS = 0, apply some known, precision voltage e.g. 1 V, to the ADC inputs, and measure the output in differential mode (Autoscan mode)
    2. Set BYPAS = 0, apply some known, precision voltage e.g. 1 V, to the ADC inputs, and measure the output in single-ended mode (Autoscan mode)
    3. Set BYPAS = 0, apply some known, precision voltage e.g. 1 V, to the ADC inputs, set AINCOM to some nonzero voltage e.g. 2.5 V and measure the output in single-ended mode (Autoscan mode)
    4. Repeat tests 1-3 with BYPAS =1. Be sure to scale your voltage appropriately to meet the VCM and output voltage limitations of your amplifier.
    5. Run your code as-is and confirm that the correct channel ID is given for each of your selected channels
      1. I would also try turning on random sets of channels to make sure your register writes are taking effect and the ADC can correctly loop through different channel scanning sequences

    Third, you can also try enabling differential measurements on the other ADCs and see if that works, since you know these other ADCs can measure input voltages correctly. If they cannot measure a differential input voltage correctly then there is probably an issue with the code.

    As stated previously, you should be trying different configurations to see what works and what does not. This will help us isolate the issue for this specific ADC.

    -Bryan

  • Okay Bryan, 

    I will try to do some of these test and get back to you once it complete.

    Thanks,

    Ashik

  • Ok Ashik A, let us know