Digitalpotentiometer in einer Transimpedanzverstärkerschaltung (TIA)

Hallo,

ich habe folgende Transimpedanzverstärkerschaltung aufgebaut. (siehe Bild)
Ich habe am - Eingang des OP491 einen Strom von 1mA anliegen, bzw. -1mA. Bei einem festen Feedbackwiderstand von 1,2kOhm erhalte ich korrekterweise etwa 1,2V am Ausgang des OP. Nun möchte ich über einen Digitalpotentiometer (AD8400) die Ausgangsspannung steuern. Habe an meinem Digitalpot bspw. 650 Ohm eingestellt (im Rheostatmode - siehe Bildchen oben rechts, auch nachgemessen, der Widerstand ist da). Wenn ich diesen nun als Feedbackwiderstand verwenden will, ist das nicht möglich. Die erwartete Spannung liegt am OP Ausgang nicht an und der Digitalpot ist sogar evtl. defekt danach. Wie kann ich so einen Digitalpot als Feedbackwiderstand in einer Transimpedanzverstärkerschaltung nutzen?

In einer Nicht-invertierenden Verstärkerschaltung funktioniert der Digitalpot einwandfrei…
Ich steuere den Digitalpot über einen Arduino UNO über die SPI Schnittstelle an.

Dankeschön!

DaBla AD840x
b97c2bcfacb2614896c16ab9f6a2233ea763b3f5.jpg

Hast Du das Digital-Poti in dieser Schaltung auch mit Spannung versorgt?

MfG

Funktioniert das Poti denn mit 1,2k?

Ja, Vdd und GND ist angeschlossen. B1 und W sind gebrückt. Zwischen A1 und B1 kann ich auch meinen ohmschen Widerstand mit dem Multimeter messen. Sobald ich A1 und B1 aber als Feedbackwiderstand verwende, komme ich nicht auf den Ausgangsspannungswert am OP.

Der Potentiometer hat einen realen Widerstandsbereich von etwa 0,06 kOhm bis 1,17kOhm.

Unbenannt.JPG

Ein digitale Widerstand verhält sich nicht genau gleich wie ein Hardware-Potentiometer.
Erstens kann der der Widerstand nicht mit Spannungen außerhalb der Versorgungsspannung (zB Masse bis 5V) betrieben werden und zweitens haben Anschlüsse des digitalen Widerstandes Schuzdoden. Außerdem ist der "Schleifer" nicht sehr niederohmig gegenüber der "Widerstandsbahn". Praktische Werte zwischen 50 und 100 Ohm.

Bitte gib uns den genauen Schaltplan mit Pinbelegung und Versorgungsspannungen.

Grüße Uwe

Hallo,
im folgenden die Schaltung. Wenn ich zwischen A1 und B1 einen Festwiderstand einsetze, funktioniert die Schaltung.

Dann ist Dein digitales Poti entweder falsch beschaltet, defekt oder für diesen Zweck nicht brauchbar.

Möglicherweise hast Du irgendwelche Stromschleifen in Deiner Schaltung, da hängt ja auch noch die Steuerung des Potis dran.

Hast du evtl. einen Lösungsvorschlag?
Ich habe die Schaltung im vorherigen Post angehängt.

Die Steuerung des Potis geschieht über die SPI Schnittstelle des Arduino UNO.

Defekt kann nicht sein, ich habe hier einige von den Potis da und auch ausprobiert.
Falsch beschaltet kann sein, aber ich messe doch zwischen A1 und B1 meinen Widerstand wenn nicht in der Schaltung integriert...

Dein Prinzipschaltbild sagt nichts darüber aus, welche Spannungsquellen wo angeschlossen sind, und wie der Arduino dranhängt. Vielleicht fehlt ja da eine Masseverbindung, so daß sich das Poti garnicht einstellen läßt?

Ich habe doch alles eindeutig gekennzeichnet. Das ist nicht nur ein Prinzipschaltbild, sondern wirklich so verdrahtet. +- 5V ist eine externe Spannungsquelle. 5V vom Arduino wird nicht verwendet.

Dein "alles" beinhaltet aber nicht alles, was am Poti noch dranhängt usw. :frowning:

Doch, das ist wirklich "alles" was am Poti noch dranhängt.

Die interne Verschaltung des AD8400 ist natürlich nicht mit dabei. Dafür evtl. das Datenblatt.

Die Analoge Masse (der +5/-5V) ist mit GND des Arduino verbunden?

Grüße Uwe

Ja, analoge Masse ist mit GND des Arduino verbunden.
Der AD8400 lässt sich auf folgendermaßen betreiben: A1 auf +5V, B1 auf GND. Nun kann ich die Spannung zwischen “Wischer” und A1 bzw. B1 messen. Das ist dann bspw. W1-B1: 1,7V oder W1-A1: -3,3V.
Der Wiper ist dann quasi wie ein Spannungsteiler (hab damit bspw. mal eine LED auf und ab dimmen lassen). Aber das bringt ja meinem Problem keine Abhilfe bzw. ist nicht für meine Anwendung gedacht?!

Wenn Du kein vollständiges Schaltbild liefern möchtest, kann ich Dir auch nicht helfen :frowning:

Der Wiper ist dann quasi wie ein Spannungsteiler

Im Datenblatt sehe ich:

RESISTOR TERMINALS
Voltage Range 0 bis VDD
Mit deinen -3,3V ist da also nicht gut bestellt.

Hallo,
die TIA Schaltung funktioniert nun. Auch mit dem Digitalpot als Feedback. Nun geht es weiter. Ich habe ein Programm, welches mir mit einer Zweipunktregelung die Ausgangsspannung am OP hält. Hier ein Ausschnitt.

loop {
if (opampout > setpoint_opampout)
{level++;}
else if (opampout < setpoint_opampout)
{level–;};

digitalPotWrite(channel, level); // gibt einen 8 Bit Wert (Level) an Poti
value_a0 = analogRead(analogin_opampout);
opampout = (value_a0/1023)*5;
}

Ich würde gerne meinen exakt eingestellten Widerstandswert des Digitalpot erfahren (messen). Ich könnte es zwar einfach per Umrechnung von Bits in SI-Einheiten machen, aber hätte jemand einen Vorschlag dieses on the fly zu messen?

Warum willst Du zusätzlich messen, wenn Du den Wert errechnen kannst?

Dir ist bekannt, dass die Betriebsspannung nie genau 5.00V ist, wie in Deiner Rechnung angesetzt?

Gruß Tommy

Hi

Du könntest den Wiper an einem A-IN anklemmen und die dortige Spannung messen - daraus kannst Du über das Verhältnis zu Vdd den prozentualen Wert bestimmen, Den Du mit dem Gesamt-Widerstand in eine reelle Zahl umrechnen kannst.
Dazu musst Du noch Vdd messen (wieder ein A-IN weg, interne Referenz 1,1V würde sich anbieten - Diese müsste man zuvor aber ebenfalls einmessen, mit einer präzisen und bekannten Spannung - ein Rattenschwanz - aber machbar).

Interessant - auch gerade für Nachbauer - an was hat's zuvor beim Feedback gelegen?
Auch blöde Fehler dürfen genannt werden :o

MfG

Hallo,

@TO:
man rechnet beim OPV nicht mit Strömen sondern mit Spannungen. Und man benötigt bei einer (nicht) invertierenden OPV Beschaltung immer 2 Widerstände aus denen sich die Spannungsverstärkung berechnet.
Wenn du kein Buch hast, bist hier gut aufgehoben für den Anfang.
https://www.elektronik-kompendium.de/public/schaerer/opa1.htm