Forum: Analoge Elektronik und Schaltungstechnik INA125 und ADS1110


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von florian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebe Community,

im Anhang befinded sich eine Schaltung, die ich gerne bauen möchte. Alle 
Komponenten sind vorhanden.

Hintergrund: Eine Wägezelle soll mit einem Arduino ausgewertet werden. 
Da der Arduino lediglich einen 13 Bit AD Wandler besitzt, greife ich auf 
den ADS1110 zurück der via I2C gesteuert wird.

Der vorgeschaltete INA125 besitzt eine interne Referenzspannung (in 
meinem Fall von 2.5V, da Vbb = 5V) die an der Messbrücke der Wägezelle 
anliegt. Das Ausgangssignal der Wägezelle (liegt im mV- Bereich) soll 
auf 2V bei Nennlast verstärkt werden. Dies wird durch den externen 
Widerstand von 150 ohm erreicht.

Frage: Bin ich auf dem richtigen Weg, oder gibt es einen Fehler in der 
Schaltung?

Ich bin für jegliche Hilfestellung dankbar,

mfg Florian

von Pete K. (pete77)


Lesenswert?

florian schrieb:
> da Vbb = 5V

Meinst Du mit Vbb = Vcc = Spannung an Pin1?

Das sieht eher nach 4,3V aus, da Du einen Spannungsabfall an der Diode 
hast.

von florian (Gast)


Lesenswert?

Pete K. schrieb:
> florian schrieb:
>> da Vbb = 5V
>
> Meinst Du mit Vbb = Vcc = Spannung an Pin1?
>
> Das sieht eher nach 4,3V aus, da Du einen Spannungsabfall an der Diode
> hast.


Du hast natürlich Recht. Kristisch ist beim INA125 die Vcc, die um ca. 
1,3V höher als die Referenzspannung sein muss, da er ansonsten nicht 
funktioniert.

von Achim S. (Gast)


Lesenswert?

du musst den Sense-Pin (Pin 11) an den Ausgang anschließen (Pin 10), 
nicht an GND. Über den Sense läuft die Rückkopplung des Verstärkers.

Ansonsten muss dir klar sein, dass die Ausgangsspannung des Verstärkers 
bei dieser Versorgung nicht beliebig weit gegen 0V gehen kann. Im 
letzten Diagramm auf S. 5 des Datenblatts ist ein minimaler Ausgangswert 
von 0,8V zu sehen. Wenn also dein maximales Ausgangssignal 2V sein wird 
(d.h. nominell 5mV am Eingang), dann wird die Schaltung ab einem 
Eingangssignal von nominell 2mV (und kleiner) evtl. mehr funktionieren.

von florian (Gast)


Lesenswert?

Hallo Achim,

Achim S. schrieb:
> du musst den Sense-Pin (Pin 11) an den Ausgang anschließen (Pin
> 10),
> nicht an GND. Über den Sense läuft die Rückkopplung des Verstärkers.

vielen Dank, der Fehler mit Pin 11 ist mir nicht aufgefallen.

> Ansonsten muss dir klar sein, dass die Ausgangsspannung des Verstärkers
> bei dieser Versorgung nicht beliebig weit gegen 0V gehen kann. Im
> letzten Diagramm auf S. 5 des Datenblatts ist ein minimaler Ausgangswert
> von 0,8V zu sehen. Wenn also dein maximales Ausgangssignal 2V sein wird
> (d.h. nominell 5mV am Eingang), dann wird die Schaltung ab einem
> Eingangssignal von nominell 2mV (und kleiner) evtl. mehr funktionieren.

Die Schaltung macht keinen Sinn wenn sie unterhalb von 0,8V nicht 
funktioniert. Dies bedeutet also, dass ich den INA125 mit +-5V betreiben 
muss, dass auch unterhalb Werte ausgegeben werden. Ich denke ein DC/DC 
Wandler wie der MAX764 betrieben wie in Abbildung 2 auf Seite 9 sollte 
das Problem doch lösen.

Mfg

von gk (Gast)


Lesenswert?

florian schrieb:
> Frage: Bin ich auf dem richtigen Weg,

Nein. Du solltest Das Konzept nochmal überdenken. Was nutzt Dir ein 
16-Bit Wandler, wenn die letzten 3-Bit rum zappeln ? Bei 2,5V 
Brückenspeisung ergeben sich 5mV maximale Brückenspannung. Das 13. Bit 
entspricht 610 nV(unipolar). Das  16. Bit ca. 80nV. Ich glaube nicht, 
dass Du das Analog sauber in den Griff bekommst.

gk

von Achim S. (Gast)


Lesenswert?

florian schrieb:
> Dies bedeutet also, dass ich den INA125 mit +-5V betreiben
> muss, dass auch unterhalb Werte ausgegeben werden.

ein bipolare Versorgung würde das Schaltungsdesign auf jeden Fall 
vereinfachen. Du musst dann aber z.B. daran denken, dass der INA125 auch 
negative Spannungen ausgeben kann, die der Eingang deines Arduino nicht 
mögen wird.

florian schrieb:
> Ich denke ein DC/DC
> Wandler wie der MAX764 betrieben wie in Abbildung 2 auf Seite 9 sollte
> das Problem doch lösen.

er erzeugt eine negative Spannung, aber er schafft auch neue Probleme 
;-)

Zunächst mal ist der MAX764 für wesentlich größere Lasten gedacht. Mit 
nur einem INA125 als Last wird er im diskontinuierlichen Mode arbeiten. 
Dass seine Effizienz dabei schlecht wird wäre noch zu verkraften, aber 
gleichzeitig wird auch die Welligkeit der Ausgangsspannung sehr groß. 
Evtl. wäre eine Ladungspumpe (z.B. MAX868) einfacher und besser für 
diese Anwendung.

In jedem Fall musst du auch beachten, was gk dir schrieb: du versuchst 
sehr kleine Spannungen zu messen. Da kann es schnell passieren, dass 
dein Nutzsignal im Rauschen und in Fehlern untergeht.

Die Stabilität der analogen Versorgungsspannungen ist ein Einflussfaktor 
für die Stabilität deines Nutzsignals. Daher ist weder die Versorgung 
aus dem Arduino-Supply noch die negative Versorgung mit einem 
Schaltwandler ideal. Wenn du es trotzdem so machen willst, dann achte 
unbedingt auf eine sorgfältige Filterung der Versorgungsspannungen 
(fehlt in deinem bisherigen Entwurf noch ganz).

von florian (Gast)


Lesenswert?

Vielen Dank erstmal an alle die die mir weiter geholfen haben.

gk schrieb:
> Nein. Du solltest Das Konzept nochmal überdenken. Was nutzt Dir ein
> 16-Bit Wandler, wenn die letzten 3-Bit rum zappeln ? Bei 2,5V
> Brückenspeisung ergeben sich 5mV maximale Brückenspannung. Das 13. Bit
> entspricht 610 nV(unipolar). Das  16. Bit ca. 80nV. Ich glaube nicht,
> dass Du das Analog sauber in den Griff bekommst.
>
> gk

Hallo gk,

deine Argumente erscheinen mir einleuchtend. Ich muss zugeben dass ich 
mich bei der Angabe der Auflösung beim im Arduino integrierten 
AD-Wandler vertan habe. Dieser hat nicht 13 Bit sondern nur 10 Bit.

Bei einer Nennlast der Wägezelle von 100kg ergibt sich bei 10Bit eine 
Auflösung von 0,390625kg = 400g, bei 13 Bit 0,012kg = 120g und bei 16 
Bit sogar 0,0015kg = 15g.

Wenn ich auf eine Genauigkeit von 120g komme reicht es mir für meine 
Anwendung. Zu gering ist jedoch die Auflösung von 400g.

Achim S. schrieb:
> ein bipolare Versorgung würde das Schaltungsdesign auf jeden Fall
> vereinfachen. Du musst dann aber z.B. daran denken, dass der INA125 auch
> negative Spannungen ausgeben kann, die der Eingang deines Arduino nicht
> mögen wird.

Hallo Achim,

deine Ausführung ist nachvollziehbar, jedoch wird das Ausgangssignal des 
INA125 nicht direkt vom Arduino weiterverarbeit sondern zunächst vom 
ADS1110 aufbereitet und via I2C weiter gegeben. Dieser kann zwischen 
GND-0.2V und VDD+0.2V Signale verarbeiten. Ist dieser Spannungsbereich 
nicht ausreichend?

Achim S. schrieb:
> er erzeugt eine negative Spannung, aber er schafft auch neue Probleme
> ;-)
>
> Zunächst mal ist der MAX764 für wesentlich größere Lasten gedacht. Mit
> nur einem INA125 als Last wird er im diskontinuierlichen Mode arbeiten.
> Dass seine Effizienz dabei schlecht wird wäre noch zu verkraften, aber
> gleichzeitig wird auch die Welligkeit der Ausgangsspannung sehr groß.
> Evtl. wäre eine Ladungspumpe (z.B. MAX868) einfacher und besser für
> diese Anwendung.
>
> In jedem Fall musst du auch beachten, was gk dir schrieb: du versuchst
> sehr kleine Spannungen zu messen. Da kann es schnell passieren, dass
> dein Nutzsignal im Rauschen und in Fehlern untergeht.
>
> Die Stabilität der analogen Versorgungsspannungen ist ein Einflussfaktor
> für die Stabilität deines Nutzsignals. Daher ist weder die Versorgung
> aus dem Arduino-Supply noch die negative Versorgung mit einem
> Schaltwandler ideal. Wenn du es trotzdem so machen willst, dann achte
> unbedingt auf eine sorgfältige Filterung der Versorgungsspannungen
> (fehlt in deinem bisherigen Entwurf noch ganz).

Der oben von mir gepostete Schaltplan zeigt den Versuchsaufbau. Später 
sollte sowohl der Arduino als auch der INA125 und der ADS1110 extern 
versorgt werden.  Hierbei steht mir ein 12V Akku zur Verfügung. Es wäre 
demnach kein Fehler gleich eine adequate Schaltung für die 
Spannungsversorgung zu entwerfen. Wäre denn ein DC/DC Konverter wie der 
TMH1205D für meine Anwendung besser einsetzbar?

von gk (Gast)


Lesenswert?

florian schrieb:
> Bei einer Nennlast der Wägezelle von 100kg ergibt sich bei 10Bit eine
> Auflösung von 0,390625kg = 400g


Wie kommst Du den auf diesen Wert ? Das entspräche eher 8bit.

100kg / 2^10 = 0,09765 kg und damit ausreichend. Mit etwas Mittelung 
kannst Du die Auflösung noch etwas erhöhen.

gk

von florian (Gast)


Lesenswert?

gk schrieb:
> florian schrieb:
>> Bei einer Nennlast der Wägezelle von 100kg ergibt sich bei 10Bit eine
>> Auflösung von 0,390625kg = 400g
>
> Wie kommst Du den auf diesen Wert ? Das entspräche eher 8bit.
>
> 100kg / 2^10 = 0,09765 kg und damit ausreichend. Mit etwas Mittelung
> kannst Du die Auflösung noch etwas erhöhen.
>
> gk

Stimmt. Demnach könnte ich mir den ADS1110 sparen und direkt den ADC im 
Arduino verwenden. Dennoch habe ich noch gewisse Schwierigkeiten dem 
INA125 eine passende Versorgung zu bieten. Hast du hierzu ein passendes 
Rezept? vielen Dank

von jibi (Gast)


Lesenswert?

>Stimmt. Demnach könnte ich mir den ADS1110 sparen und direkt den ADC im
>Arduino verwenden. Dennoch habe ich noch gewisse Schwierigkeiten dem
>INA125 eine passende Versorgung zu bieten. Hast du hierzu ein passendes
>Rezept? vielen Dank

Spätestens jetzt sollte Dir auffallen, was du Dir selber für Arbeit 
gemacht hast weil 2 Fehlinformationen in deinem Hirn rumspuckten. Daher 
empfiehlt sich immer ein Schmierzettel (von mir aus auch in digitaler 
Form "README")
in dem du alle wichtigen Informationen zusammenträgst und der als 
Grundlage für weitere Atkivitäten dient. Und beim Erstellen dieses 
Schmierzettels kann man auch mal die ein oder andere Exkursion machen um 
z.B. die Quantisierung von ADC's und daraus resultierende Auflösungen 
sich wieder ins Gedächnis zu holen :)

Gruß Jonas

von gk (Gast)


Lesenswert?

florian schrieb:
> Dennoch habe ich noch gewisse Schwierigkeiten dem INA125 eine passende >
> Versorgung zu bieten.

Ich verstehe das Problem nicht. Ich dachte Du hast 5V. Die knüppelst Du 
an den INA, die Brücke läuft mit 2,5V, und die Brückenspannung 
verbindest Du mit dem Aref Eingang deines Arduinos.

gk

von florian (Gast)


Lesenswert?

gk schrieb:
> florian schrieb:
>> Dennoch habe ich noch gewisse Schwierigkeiten dem INA125 eine passende >
>> Versorgung zu bieten.
>
> Ich verstehe das Problem nicht. Ich dachte Du hast 5V. Die knüppelst Du
> an den INA, die Brücke läuft mit 2,5V, und die Brückenspannung
> verbindest Du mit dem Aref Eingang deines Arduinos.
>
> gk


Achim S. schrieb:
> Ansonsten muss dir klar sein, dass die Ausgangsspannung des Verstärkers
> bei dieser Versorgung nicht beliebig weit gegen 0V gehen kann. Im
> letzten Diagramm auf S. 5 des Datenblatts ist ein minimaler Ausgangswert
> von 0,8V zu sehen. Wenn also dein maximales Ausgangssignal 2V sein wird
> (d.h. nominell 5mV am Eingang), dann wird die Schaltung ab einem
> Eingangssignal von nominell 2mV (und kleiner) evtl. mehr funktionieren.

Das Problem bleibt mir. Wäre denn ein DC/DC Konverter wie der
TMH1205D für meine Anwendung besser einsetzbar? Dieser würde dann eine 
symmetrische Spannung von +-5V erzeugen. Damit wäre der INA125 doch gut 
versorgt.

von Walt (Gast)


Lesenswert?

Ich würde auf die -5V verzichten, gibt wohl mehr Probleme als dass es 
dir helfen würde. Stattdessen würde ich ein rail to rail opamp mit einem 
kleinen gain hinten dran schalten, der dir dann ein Signal zwischen 0 
und 5 Volt macht.

von gk (Gast)


Lesenswert?

OK, Du kannst natürlich die Eingangsspannung in den Bereich von z.B 1V 
bis 4,5 V legen, verschenkst aber Auflösung. Auch der Common-Mode 
Eingangsbereich  könnte zu knapp sein. Irgendwie ist das Ding nichts für 
Single Supply.
Nimm einen 7660 um eine negative Spannung von -5V zu erzeugen.

Eine Alternative wäre ein geeigneter INA für Single Supply. Die 
Brückenspannung muss nur während der AD-Wandlung konstant sein, wenn 
diese an Vref anliegt, d.h man bräuchte auch keine hochgenaue Vref.

gk

von jetzt (Gast)


Lesenswert?

was spricht denn gegen einen In-Amp der 5V only und RR-IO kann? den 
ausgang dann auf 2.5V referenzieren und gut ist. Als In-Amp etwas wie 
den LTC2054 oder aehnlich.

von florian (Gast)


Lesenswert?

Walt schrieb:
> Ich würde auf die -5V verzichten, gibt wohl mehr Probleme als dass es
> dir helfen würde.
Hallo Walt,

ja, das käme der Schaltung sicherlich zu Gute.

gk schrieb:
> OK, Du kannst natürlich die Eingangsspannung in den Bereich von z.B 1V
> bis 4,5 V legen, verschenkst aber Auflösung. Auch der Common-Mode
> Eingangsbereich  könnte zu knapp sein. Irgendwie ist das Ding nichts für
> Single Supply.
> Nimm einen 7660 um eine negative Spannung von -5V zu erzeugen.
>
> Eine Alternative wäre ein geeigneter INA für Single Supply. Die
> Brückenspannung muss nur während der AD-Wandlung konstant sein, wenn
> diese an Vref anliegt, d.h man bräuchte auch keine hochgenaue Vref.
>
> gk
Hallo gk

ich denke, der erste Lösungsvorschlag fällt flach, da ich bei einem 
10Bit AD Wandler mit 1024 Werten etwa 20% davon verliere und meine 
Auflösung dann in einen Bereich geht der nicht mehr akzeptabel ist. Wenn 
ich den ADS1110 noch hinzunehmen würde wäre es denkbar.

Eine Alternative ist für mich der INA122. Wenn ich nicht irre, hat 
dieser nicht die Charakteristik des INA125 bei GND = 0V und Vcc = 5V. 
Dieser kann Signale auch unterhalb von 0.8V ausgeben. Die Frage die 
bleibt ist die Referenz, mit der ich die Messbrücke beaufschlage. Wenn 
an einer Wägezelle bei Nennlast von 100kg 10mV (Speisespannung = 5V) an 
der Brücke anliegen würde sich bereits eine Änderung der Speisespannung 
um +-1% eine Unsicherheit von 100g bewirken (ohne Unsicherheiten der 
nachfolgenden Verarbeitung). Zu viel?
Wie genau bekommt man mit einem LM7805 die Spannung hin? Liegt man da 
unterhalbt von +-1% Welligkeit?

Vielen Dank allen!

von gk (Gast)


Lesenswert?

Lies Dir mal durch, was es mit dem Ref-Eingang am AD-Wandler auf sich 
hat.

Und:

gk schrieb:
> Die Brückenspannung muss nur während der AD-Wandlung konstant sein

gk

von florian (Gast)


Lesenswert?

gk schrieb:
> Lies Dir mal durch, was es mit dem Ref-Eingang am AD-Wandler auf
> sich
> hat.
>
Ich verstehe dass der AD-Wandler zwischen 0V und der am Ref- Eingang 
anliegenden Spannung arbeitet. Trotzdem verliere ich aller Werte 
unterhalb von 0.8V wenn ich keine negative Spannungsversorgung am INA125 
verwende. Ich werde den Entwurf überdenken.

Mfg

von gk (Gast)


Lesenswert?

florian schrieb:
> Ich verstehe dass der AD-Wandler zwischen 0V und der am Ref- Eingang
> anliegenden Spannung arbeitet.

OK, und der AD-Wandler digitalisiert die Eingangsspannung relativ zur 
Referenzspannung. Ändert sich die Referenzspannung, ändert sich auch der 
digitalisierte Wert der Eingangsspannung.

Wenn man nun die Brückenspeisespannung an den Ref-Eingang des 
AD-Wandlers anschliesst wird der digitalisierte Wert des Brückenausgangs 
unabhängig von der Brückenspeisespannung. Die Speisespannung darf sich 
nur während der Wandlungszeit nicht ändern.

Übrigens, das wurde hier im Forun schon zur Genüge diskutiert.

florian schrieb:
> Trotzdem verliere ich aller Werte
> unterhalb von 0.8V wenn ich keine negative Spannungsversorgung am INA125
> verwende. Ich werde den Entwurf überdenken.

Ich dachte der INA125 wäre schon längst im (virtuellen) Mülleimer.


gk

von florian (Gast)


Angehängte Dateien:

Lesenswert?

gk schrieb:
> Ich dachte der INA125 wäre schon längst im (virtuellen) Mülleimer.
>
> gk


Nun habe ich alles in den virtuellen Mülleimer gegeben und komme zum 
zweiten und hoffentlich besseren Versuch :)

Besonderes Augenmerk habe ich auf die Betriebsspannung gelegt (nur +5V).
Die vom INA122 verstärkte Brückenspannung wird mithilfe des 
Tiefpassfilters geglättet und anschließend vom MCP3301 (13 Bit) 
aufgenommen. Dieser hat den großen Vorteil dass er die Referenzspannung 
von 5V verarbeiten kann. Anschließend wird der Wert über SPI an den 
Arduino übergeben.

Darunter befindet sich die Schaltung für die Spannungsversorung (bereits 
gebaut).

Ich hoffe, dass diese Schaltung den Anforderungen besser entspricht.

von gk (Gast)


Lesenswert?

Verträgt der Arduino am Ref-Eingang keine 5V ? Der MCP3301 will 
wahrscheinlich +- VRef am Eingang für den vollen Bereich. Du verlierst 
also 1 Bit. Und die differentielle Ankopplung zwischen OP und Wandler 
funktioniert so vermutlich auch nicht.

gk

von florian (Gast)


Lesenswert?

gk schrieb:
> Verträgt der Arduino am Ref-Eingang keine 5V ? Der MCP3301 will
> wahrscheinlich +- VRef am Eingang für den vollen Bereich. Du verlierst
> also 1 Bit.

Hallo gk,

doch der Arduino verträgt 5V. Der MCP arbeitet von VSS-0.3V bis VDD+0.3V 
(laut Datenblatt). Demnach werde ich kein Bit verlieren.


gk schrieb:
> Und die differentielle Ankopplung zwischen OP und Wandler
> funktioniert so vermutlich auch nicht.
>
> gk
Du spielst auf den Widerstand R mit 1k an. Diese Konfiguration habe ich 
dem Datenblatt des INA122 entnommen. Vielleicht wäre es dennoch besser 
einfach einen 10k Widerstand gegen GND einzufügen.

Danke!

von gk (Gast)


Lesenswert?

florian schrieb:
> Der MCP arbeitet von VSS-0.3V bis VDD+0.3V (laut Datenblatt).

So wie ich das Datenblatt interpretiere hast Du bei +-5V die 8192 
Counts. Da Du aber nur 0..5V hast, weil der -Eingang auf Masse liegt, 
gibt das nur 4096 Counts. Schau nochmal im Datenblat nach, ob der sich 
eventuell auf Single End  umprogrammieren lässt.

Meinen letzten Satz mit der differentiellen Ankopplung kannst Du 
vergessen, hatte wohl meine Augen noch nicht richtig offen.

Trotzdem solltest Du überprüfen welchen Einfluss der 1k - Widerstand am 
Wandlereingang hat, siehe auch Parallel-Thread

Beitrag "Re: LTC2400 Messwert unstimmig"

gk

von florian (Gast)


Lesenswert?

gk schrieb:
> So wie ich das Datenblatt interpretiere hast Du bei +-5V die 8192
> Counts. Da Du aber nur 0..5V hast, weil der -Eingang auf Masse liegt,
> gibt das nur 4096 Counts. Schau nochmal im Datenblat nach, ob der sich
> eventuell auf Single End  umprogrammieren lässt.
>
> Meinen letzten Satz mit der differentiellen Ankopplung kannst Du
> vergessen, hatte wohl meine Augen noch nicht richtig offen.
>
> Trotzdem solltest Du überprüfen welchen Einfluss der 1k - Widerstand am
> Wandlereingang hat, siehe auch Parallel-Thread
>
> Beitrag "Re: LTC2400 Messwert unstimmig"
>
> gk

Hallo gk,

das unterscheidet den Experten vom Anfänger :) In der Tat habe ich nur 
4096 Werte. Jedoch reichen die völig, wodurch ich keine Änderungen mehr 
für notwendig erachte.

Wenn ich den von dir empfohlenen Thread richtig verstanden habe, muss 
ich den 1k Widerstand reduzieren (ca. 100 ohm), da der AD-Wandler 
zurzeitig viel Strom braucht um den Kondensator zu laden. Ggf. würde 
doch auf eine Verkleinerung des Kondesators bei gleichbleibendem R 
möglich sein, oder nicht?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.