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.
ADS1262: ADS1262 Load Cell Schematic Review
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?
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 HallApplications 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
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
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:
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!
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
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.
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):
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):
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).
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).
>>>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 -2001209Connecting AIN6-AIN7-2.5v gives -1093269144Connecting 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 -1152454888Excitation+ @2.5v, RDATA1 reads around -1661601861Excitation+ @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.
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.
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?
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.