Linearitätsproblem ADS1232

Aug 16, 2019 27 Replies
Jump to replies (27)

Hallo,



wir haben hier eine Waage mit DMS Kraftaufnehmer gebaut. Ausgewertet wird das Signal mit einem ADS1232 von TI.



formatting link



Die Beschaltung entspricht im wesentlichen der in Fig. 42. Als Mikroprozessor setzen wir einen STM32 ein.



Abtastrate ist 80SPS.



Wir haben mehrere Platinen aufgebaut und diese an ein und demselben DMS angeschlossen.


Der Wiegebereich liegt bei 0-10kg.


Bei 0 kg: 00 80 D5 Bei 1 kg: 03 9F BA Bei 5 kg: 10 C0 A0


Wenn ich die Waage jetzt tariere und dann mit einem 1kg Gewicht kalibriere schwanken meine Werte nach Mittelwertbildung um +- 1g.



Wenn ich dann ein 2kg Gewicht auflege, habe ich noch immer eine Schwankungen um +- 1g und eine Abweichung von ca. 2g.



Lege ich nun ein 5kg Gewicht auf, habe ich 12g Abweichungen bei +-1 g Schwankungen.


habe ich Schwankungen um +-15g und Abweichungen bei 5kg von 50g.


Kondensatoren an der Betriebsspannung und am DMS, Masseleitung am Biegestab.


Stefan


Hi Stefan,

Am 16.08.2019 um 09:47 schrieb Stefan:

Wild guess: Der A/D Wandler hat in Deiner Konfiuration (Gain=128, 80 SPS, AVDD=5V) eine effektive Auflösung (ENOB) von nur 19.7 bits, nicht 24. Siehe Seite 5 im von Dir verlinkten Datenblatt. Du musst mit Samplerate und Verstärkung soweit wie möglich runter. Bei so kleinen Spannungen können auch winzige Thermospannungen sowie das PCB-Layout eine Rolle spielen.

Dass bei PGA=64 oder 128 der Eingangsspannungsbereich auf AGND+1,5V bis AVDD-1,5V limitiert ist, hast Du beachtet (DB Seite 14)?

HTH, Wolfgang

Am 16.08.2019 um 09:47 schrieb Stefan:

Am 16.08.19 um 12:17 schrieb Wolfgang Mahringer:

Zu Zeiten des ADS1210, also, als diese Abteilung noch Burr-Brown war, gab es mal eine App-Note mit dem Titel "How to get 20 Bits of resolution from your 24 bit A/D converter" oder so ähnlich. War als Verbesserungs- vorschlag gedacht, aber sie versprühte nicht viel Optimismus.

Da wird wohl Kalibration über alles angesagt sein.

Gruß, Gerhard

Am 16.08.2019 um 12:17 schrieb Wolfgang Mahringer:

Das wäre noch nicht das Problem. Die Auflösung der Waage liegt bei 1g. Das entspricht 200 Digits, d.h. fast 8 Bits.

Wir haben aber Schwankungen nach Mittelwertbildung über 128 Einzelabtastungen von mehr als 4g. Die Linearitätsabweichungen liegen bei 50g bei halber Maximallast.

Wir haben eine Auflösung von ca. 200 Digits je Gramm, d.h. wenn nur die untersten 8 Bits schwanken, wir hätten dann noch 16 Bits, wäre alles in Ordnung.

Das ist das Projekt eines Kollegen. Die Infos die ich habe beziehen sich aktuell auf das angezeigte Endergebnis nach Mittelwertbildung über 128 Einzelmessungen.

Das sollte bei dem DMS kein Problem sein. Der liefert an beiden Ausgängen ca. 2,5 V mit einer Differenzspannung im mV-Bereich.

Erstaunlich ist, dass einige Platinen aus derselben Charge sehr viel bessere Ergebnisse liefern sind als andere, am selben DMS.

Am 16.08.2019 um 12:39 schrieb Gerhard Hoffmann:

Die 20 Bit brauche ich gar nicht. Ich brauche ein Auflösung von 1g bei

10kg. Das wären 14 Bit.

Wobei wir noch über 128 Abtastungen mitteln, was eine Verbesserung von rund 3 Bits bringen sollte.

Die Anforderungen an die absolute Genauigkeit/Linearität sind noch niedriger. Da liege ich bei 10g bei halber Maximalbelastung, also bei

5kg. Das wären dann 10 : 5000 = 1:500 entsprechend 9 Bit.

Viel besser ist unser DMS dann auch nicht, aber wie geschrieben: Es liegt offenbar nicht am DMS sondern am ADU.

Ich vermute ein Problem mit der Versorgungsspannung. Wir haben einen Step-Up Wandler um aus 3,3V die 5V für den ADU zu machen. Aber auch ein zusätzlicher Elko hat da nichts gebracht.

Am 16.08.2019 um 09:47 schrieb Stefan:

DoDi

Am 16.08.2019 um 09:47 schrieb Stefan:

kleiner Nachtrag:

Wir haben den DMS durch 4 Widerstände á 1k ersetzt. Die Schwankungen bleiben gleich. Kurzschluss an den ADU Eingängen macht auch keine Änderung.

Am 16.08.2019 um 12:59 schrieb Stefan:

Zur Diagnose eine der schlechten Platinen umbauen auf Versorgung mit Batterien, kurzen Drähten und rauscharmen Linearreglern.

mfG W.Martens

Am 16.08.2019 um 12:54 schrieb Stefan:

So darfst Du das nicht rechnen. Wieviele mV kommen denn pro kg am ADC an?

vg, Wolfgang

Am 16.08.2019 um 23:53 schrieb Wolfgang Martens:

Wandler.

Ich hab momentan einen anderen Verdacht. Mein Verdacht ist, dass

Mist, der hat Montag Urlaub und ist Dienstag beim Kunden. Wobei, ich

Am 17.08.2019 um 10:29 schrieb Wolfgang Mahringer:

nachmessen.

liegt irgendwo in meiner Schaltung oder in der Software. Wie weiter oben geschrieben vermute ich momentan, dass der SPI Takt zu

Am 16.08.19 um 18:49 schrieb Stefan:

Die 4 Rs sind also leicht verstimmt und wenn du da deine (wieviele) Platinen dran hängst, schwanken die Werte zeitlich (da bildest du einen Mittelwert und die Standardabweichung?) und/oder von ADC-Platine zu ADC-Platine ?

Das ist für die Fehlersuche natürlich super, nur wäre die Frage, was für einen Kurzschluss du machst?

Hast du dann effektiv 0 Ohm zwischen AINP1 und AINN1 und jeweils 500R gegen REFP und REFN?

In einem anderen Posting lese ich, dass du die 5V durch einen Step-Up erzeugst, was IMHO eine ganz schlechte Idee ist. Ich würde dringend empfehlen testweise den StepUp lahmzulegen und die AVDD nur über eine Batterie anzulegen, gerne DVDD auch aus getrennter Batterie.

Das sollte dir helfen das Problem einzugrenzen.

Gruß Andy

Am 17.08.2019 um 11:58 schrieb Andreas Weber:

Es gibt gute Platinen, da schwanken die Werte nicht und es gibt schlechte Platinen bei denen die Ergebnisse stark schwanken und zwar so stark, dass diese auch nach Mittelwertbildung über 128 Abtastungen zu hoch sind. Die Schaltung mit den 4 Rs diente nur dazu, sicherzustellen, dass es nicht am DMS und auch nicht am Kabel zum DMS liegt.

Der Kollege hat die Differenzeingänge des ADU kurzgeschlossen. Das hat er allerdings als erstes gemacht, also bevor der die Brücke aus 4 Rs aufgebaut hat.

Ersteres ja, letzteres nicht, es wäre natürlich leicht gewesen, das bei eingebautem DMS bez. R-Brücke zu machen. Ist das Projekt eines Kollegen. Ich hab da nur versucht zu helfen und konnte nicht die ganze Zeit daneben stehen.

Ja, das ist sicherlich ein guter Tipp, wobei wir den Step-Up dann doch benötigen. Aber um das Problem einzugrenzen ist das natürlich sinnvoll.

Man könnte so zumindest ausschließen, dass der Step-Up die Ursache des Problems ist.

[snip]

Das ist natuerlich Glaskugellesen, aber ich wuerde mir mal die Referenzspannungen ansehen. Wenn die wie in Fig. 42 gleich AVDD ist und AVDD - wie du an anderer Stelle schreibst - aus einem Step-up Umsetzer kommt, dann kann das eigentlich nicht funktionieren. Selbst bei 13 Bit effektiver Aufloesung muesste das Rauschen des Step-up Umsetzers kleiner als 600 uV sein. Nun weiss ich nicht auf welcher Frequenz der Step-up laeuft, aber da der ADS 1232 selbst eine interne Modulationsfrequenz von

76.8 kHz waere meine Hypothese das kein Step-Up Umsetzer bei dieser Frequenz so rauschfrei ist. Die Variabilitaet zwischen den Boards koennte dann von Variationen des Verhaeltnisses zwischen Switcher und ADC Modulationsfrequenz verursacht sein.

Das ist zumindest der Vorschlag meiner Glaskugel :-)

Gruss Klaus

Am 17.08.19 um 12:56 schrieb Stefan:

Meine Frage war, ob die "Schwankungen" zeitlich gemeint sind, oder Streuung zwischen den Platinen.

Das war mir klar.

Das ist blöd weil dann der Mittelwert (=CM), der ja normalerweise 2,5V ist, nicht definiert ist und floatet.

Deshalb solltest besser +/- kurzschließen und dann 180R nach REFP und

180R nach REFN. Ich gehe von einer 350R DMS aus.

Klar, ich werdet nicht aus Jux und Tollerei nen StepUp in einem Messaufbau haben.

Habt ihr schon ne Immisionsmessung gemacht? Habt ihr ein angeschlossenes EMV Labor?

Gruß Andy

noch zu einem Offset-Fehler. Das geht aber mit den ganzen modernen Chips nicht mehr.

Falls das wirklich die Ursache ist, sollte man sich mal anschauen, in

Manchmal liefern IIR-Filter bessere Ergebnisse als Mittelwertfilter.

Michael

Am 18.08.2019 um 08:09 schrieb Andreas Weber:

Es sind zeitliche Schwankungen. Die Eingangsfrage im Thread war zwar nach der Linearität, aber das Problem sind die Schwankungen.

Wir haben inzwischen einen Kurzschluss zwischen die Ausgänge der Brücke geschaltet. Keine Änderung.

nein

Ich habe mir aber mal die Signale auf der SPI Schnittstelle angesehen. Meine Vermutung war ja, dass da zu schnell ausgelesen wird. Das ist nicht der Fall. Die unteren 10 Bits springen wild hin und her, so wie aufgrund der ausgelesenen Werte zu erwarten.

Aber es gibt Spikes auf den Taktsignalen, also wenn das Signal auf H geht, gibt es einen Überschwinger ca. 0,5V über VCC und ca.

0.5V unter VSS wenn es auf L geht.

Die Länge des Spikes habe ich jetzt nicht gemessen, auf dem Oszilloskop waren es Nadeln auf dem Taktsignal.

Wir haben die CLK Leitung mit 10k nach GND belastet, keine Änderung. Ich hab dem Kollegen jetzt empfohlen, da einen 10pF parallel zum Takt-Eingang des ADU zu schalten. Mal sehen, ob die Spikes dann weg sind, als nächstes kommt dann ein RC Tiefpass.

Am 19.08.2019 um 13:19 schrieb Stefan:

Solche Überschwinger bedämpft man mit Serienwiderständen in der Taktleitung. Würde mich aber nicht wundern, wenn die Nadeln gar nicht da wären sondern nur schlecht gemessen wurde.

Oszi-Tastkopf bitte nicht mit Masseschwanz anbinden, sondern so:

formatting link
Im Übrigen liegt die Tastkopkapazität üblicherweise höher als die die Clock-Eingangs.

Würde mich aber wundern, wenn das was mit den eigentlichen Problemen zu tun hätte.

Am 19.08.2019 um 13:48 schrieb Michael S.:

Stimmt schon, muss mal prüfen, ob der Tastkopf auf 1:10 oder auf 1:1 stand.

Die Spikes sieht man übrigens nur auf dem Clk Signal, nicht auf den Daten.

Mich eigentlich auch, aber so langsam gehen mir die Ideen aus.

Der ADC liegt friedlich alleine auf der Platine, Abstand zu allem anderen mehrere cm. Beschaltet nach Datenblatt. Durchgängige Massefläche auf der Platinenunterseite und alles analoge über kurze Leitungen angeschlossen. Kondensatoren direkt am IC.

>

Am 19.08.2019 um 14:04 schrieb Stefan:

Mal ohne DCDC versorgt?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required