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.

  • TI Thinks Resolved

ADS1262: ADS1262: ADS1262 Load Cell Schematic Review (continued)

Expert 2615 points

Replies: 11

Views: 446

Part Number: ADS1262

This is a continuation of this post:

I am having a rough time with the wiring side. I am able to communicate with the module and read conversion data, but the status bit is throwing out a bunch of errors. Page 70 of the datasheet has the error codes and I am getting the following:

    ADC1 PGA Differential Output Alarm
    ADC1 PGA Output High Alarm
    ADC1 PGA Output Low Alarm (more on this below)
    ADC1 Low Reference Alarm

The data (from the conversion) is 0x80000000 (which is input signal <= -Vref/Gain... I guess I'm having trouble figuring out what Vref is with regards to the chip pins...).

AIN0 and AIN1 are unconnected.

If I connect the 5v to AIN0, the data goes to -982023569 or thereabouts.

Ultimately I am trying to connect a loadcell to the ADS 1262.

Is there a configuration I'm missing or is my schematic wiring incorrect?

  • Hi spanky,

    How are you programming the ADS1262 registers?

    From your description it seems like the ADC is not getting a valid reference voltage. For initial testing you can use the internal reference, but ultimately I think you want the ADC to get its reference voltage from the AIN0/1 pins. If you're selecting these pins as the reference voltage source but not connecting the reference voltage to them you will get invalid results.

    I'd try probing the AIN0/1 and AIN6/7 pins to see if AIN0 ~= 5V, AIN1 ~= 0V, AIN6 ~= 2.5V, and AIN7 ~= 2.5V.

    Best regards,
    Chris Hall
    Applications Engineer | Precision ADCs


    Check out these helpful resources...
    TI Precision Data Converters | TI Precision Labs - ADCs | Analog Engineer's Calculator | Data Converters Learning Center | Selection Guide

     

  • In reply to Christopher Hall:

    I found the REFMUX register and that cleared some things up. I'm still not getting "good" measurements, but I think I'm on the right track. The measurements drift substantially over time, but I suspect that is a factor of the battery drain and less than optimal setup.

    I seem to have hit the limit of my knowledge of circuit design. In my travels I found that noise appears to be a substantial issue and even though this chip is 32bit, it appears that is nowhere near what I should expect in my application (please correct me if I'm wrong).

    I think I might switch the design to an ADS1235, which appears to be more suitable for loadcell. Any suggestions on that would be appreciated. I'm looking to measure ~0-50,000lbs at 0.5lb resolution, which should be easily doable at 24bit, if that is a usable 24bit on the ads1235.

    I'm out of the office for the rest of the week, but I'll check those pins when I get back.

  • In reply to spanky:

    Hi spanky,

    Without seeing the data you've collected, the programmed register settings, or seeing how you've connected the load cell to your circuit, it's hard for me to comment on the ADC performance that you're observing...

    If you have a good ratiometric connection, then the majority of the drift in your results will be from the load cell itself. This kind of drift could be related to ambient temperature changes, but you'd have to be observing data over a longer period of time to see these kinds of drift effects.

    The ADS1235 is also a good device for performing load cell measurements without all of the extra features provided by the ADS1262. Performance-wise you probably won't notice too much of a difference; however, as both of these devices are very high resolution, capable of measuring nV's, they do require a good PCB layout and high-quality surrounding circuit components (low-noise and low-drift reference source, power supply, and decoupling capacitors); Therefore, if you have a noise issue with the ADS1262, it is likely that you'll have a similar noise issue after switching to the ADS1235. So I would recommend to try and resolve as much of the noise and drift issues with the ADS1262 as you can.

    When it is convenient for you, please do share some data and I'll be glad to look at it to see if I can help you troubleshoot the noise and drift issues. For starting out, do try shorting the ADC inputs and evaluating the noise performance without the load connected to determine how much of the noise and drift is coming from the sensor itself and how much is ADC/system related!

     

    Best regards,
    Chris Hall
    Applications Engineer | Precision ADCs


    Check out these helpful resources...
    TI Precision Data Converters | TI Precision Labs - ADCs | Analog Engineer's Calculator | Data Converters Learning Center | Selection Guide

     

  • In reply to Christopher Hall:

    Humm, it appears I am more confused now...

    I have an external reference voltage of 5v (Am I supposed to be using AIN0/AIN1 as the reference voltage? if so, AIN is a very confusing label)

    The REFMUX register is defaulted to internal 2.5v, but when I set the REFMUX to the "internal analog supply" (which is confusing because isnt that the external analog supply?) I managed to read "something" from my loadcell, which was connected to the external 5v source and across AIN0/AIN1. That "something changes with load, but the value is way negative. -1150000000ish

    For now, I am only trying to sort through the 4-wire loadcell configuration.

    Do I need to set the IDAC registers to output on the AIN lines?

    These readings are with no external connections:

    AIN0 to AIN1 ---> 0.03v

    AIN6 to AIN7 ---> 0.002v

    AIN0 to GND ---> 0.13v

    AIN0 to 5v ---> -0.11v

    AIN1 to GND ---> 0.08v

    AIN1 to 5v  ---> -0.1v

    AIN6 to GND ---> 0.009v

    AIN6 to 5v ---> -0.03v

    AIN7 to GND ---> 0.06v

    AIN7 to 5v ---> -0.07v

  • In reply to spanky:

    Hi spanky,

    The ADS1262 input pins (AINx) are multi-purpose. All of the AINx pins can be configured as an analog inputs, all of them can be used as IDAC outputs, some can be programmed to be reference inputs, some can be used as GPIOs, and AIN6/7 can even be used for the internal test DAC output. The Pin Functions table shows which functions are available on each pin:

    Correct, the reference MUX's "internal analog supply" is the IC's analog supply (AVDD - AVSS), as shown in Figure 77 of the datasheet. Even though you using the same 5V source for the analog supply and the load cell excitation voltage,  I would still recommend using AIN0/AIN1 as the reference source, as this is likely closer to the excitation voltage across the bridge, and in the case of a 6-wire bridge will give you the best ratiometric matching.

    Do you happen to have a diagram you could share that shows how you are connecting the load cell to your schematic? Also could yo share a list of values for how you are programming each of the ADS1262 registers?

    As a sanity check, you may want to try shorting the ADC inputs to AINCOM, and enabling the VBIAS level-shifter (to set the common-mode voltage), and checking to see if the output codes are near zero.

    Best regards,
    Chris Hall
    Applications Engineer | Precision ADCs


    Check out these helpful resources...
    TI Precision Data Converters | TI Precision Labs - ADCs | Analog Engineer's Calculator | Data Converters Learning Center | Selection Guide

     

  • In reply to Christopher Hall:

    I'm sort of loosely following this (pg33):

    I am only using the 4 wire configuration, but eventually I'd like to do the 6-wire.

    My excitation wires are tied to GND and 5v/AVDD. The signal wires are then tied to AIN6 & AIN7, which is where I am reading RDATA1. In this configuration AIN0&1 are floating/unconnected.

    Here's the general programing process:

    First try (somewhat successful):

    • Clear the POWER register (clear the reset and disable the internal reference)
    • Set  REFMUX to "internal" analog supply VADD & VASS (isn't this more appropriately an "external" analog supply? Since I am applying external 5v to the VADD pin 6 on the ADS?)
      • If I were to do a 6-wire loadcell from the link above, would I set REFMUX to External AIN0 & AIN1, and then wire the excitation lines back to these pins?
    • Then in my loop, I'm setting INPMUX to AIN6 & AIN7 in their respective bits
    • And finally I'm reading RDATA1

    RDATA1 readouts are in the -1152180000 range when connected to AIN6&7 and fluctuate somewhat with applied load... but definitely not significantly for my testing 1kg loadcell. If I disconnect the signal wires from AIN6&7, the readout drops to -1888280000 and flutters around there. I've tried jumping AIN6&7 between the 5v and GND, but nothing seems to drive it to full scale in either direction

    Second try (which is basically the default register configuration, and no useful reading from RDATA1):

    • Set POWER register to 1 (enable the internal reference)
    • Set REFMUX to the defaults (Internal +-2.5v)
    • Then in my loop, I'm setting INPMUX to AIN6 & AIN7 in their respective bits
    • And finally I'm reading RDATA1

    I believe I have to change the excitation line on the loadcell to REFOUT (pin 8 on the ADS).

    In this configuration, RDATA1 reads out 0x80000000 when the loadcell signal is connected to AIN6&7, and excitation to REFOUT and GND. I also tried the excitation at 5v, but am getting the same constant reading.

    My AINCOM pin is unattached, and unfortunately inaccessible while running (covered by my processor board).

  • In reply to spanky:

    Hi spanky,

    Have you double checked that you're wiring up the load cell to your PCB correctly?
    If you accidentally swap one of the excitation wires and signal wires, it may explain why you read an output code around "-1152180000".

    As a sanity check, please try shorting AIN6 and AIN7 together and biasing them to a mid-supply voltage.
    Since AINCOM is not accessible, you can use REFOUT instead (as long as the internal reference is enabled). In this configuration you should get output codes very close to 0 (keeping in mind that 0xFFFFFFFF = -1).

    Best regards,
    Chris Hall
    Applications Engineer | Precision ADCs


    Check out these helpful resources...
    TI Precision Data Converters | TI Precision Labs - ADCs | Analog Engineer's Calculator | Data Converters Learning Center | Selection Guide

     

  • In reply to Christopher Hall:

    >>>Have you double checked that you're wiring up the load cell to your PCB correctly?

    I am only sure the 2 signal lines are going to AIN6&7 and my excitation negative is going to ground. Based on getting "a" response based on pushing on the loadcell, I believe I am in the ballpark.

    That's a good idea on the 2nd point.

    Connecting AIN6-AIN7-5v gives -2001209
    Connecting AIN6-AIN7-2.5v gives  -1093269144
    Connecting AIN6-AIN7-GND gives -2140459578

    I'm also pretty sure I am printing out the correctly formatted signed 32 bit integer. Although, I haven't seen those values go positive, so that is a bit of a mystery. If it were 31 bits, the above would make sense.

    I also tried moving my excitation positive wire from the 5v reference to the REFOUT 2.5v (loadcell signal lines to AIN6&7, but no load), In that configuration am reading:

    Excitation+ @5v, RDATA1 reads around  -1152454888
    Excitation+ @2.5v, RDATA1 reads around  -1661601861
    Excitation+ @GND (or unattached), RDATA1 reads around  -2140452220

    -1661601861 is roughly in the middle of [-1152454888, -2140452220]... as are the numbers above with AIN6&7 jumpered, so I believe I am at least doing something right.

    The bytes I am reading from RDATA1 are backwards. I didn't consider that the bits could be backwards as well. I think I might need to read the datasheed to doublecheck that.

  • In reply to spanky:

    Hi spanky,

    The data coming out should be MSB first...

    You might want to compare your code to what I wrote in the following blog post: https://e2e.ti.com/blogs_/archives/b/precisionhub/archive/2016/04/01/it-s-in-the-math-how-to-convert-adc-code-to-a-voltage-part-1

    NOTE: The code example I showed was for a 24-bit ADC, so I had to perform sign-extension when saving this data into a signed 32-bit datatype; however with the ADS1263's signed 32-bit data, you wouldn't need to do this. Instead the MSB would be shifted 24 bits to the left and then concatenated with the rest of the data.

    Would it be possible for you to share an oscilloscope screenshot of the SPI communication while reading the data? The large negative numbers don't make sense, so perhaps seeing the raw data on the SPI bus might help us understand if those values are being interpreted correctly in software.

    Best regards,
    Chris Hall
    Applications Engineer | Precision ADCs


    Check out these helpful resources...
    TI Precision Data Converters | TI Precision Labs - ADCs | Analog Engineer's Calculator | Data Converters Learning Center | Selection Guide

     

  • In reply to Christopher Hall:

    I assembled a 2nd prototype with a new ADS1262, and this one seems to be behaving better. Now with the loadcell on 5v and wired to AIN6/7, I am reading 250000 (yay positive) and pressing on the loadcell moved the reading up or down. Still not anywhere near the range of 32bit, but I suspect that is probably just a calibration/gain setting.

    My "theory" on the other one is that in writing the code, I must have inadvertently set some persistent configuration. Which settings get stored on the device (I guess I need to dig through the datasheet)?

    Or maybe I just damaged that chip when soldering it?

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.