Logarithmierer zur Widerstandsmessung

OP #4718498
Lesenswert?

Das Ziel ist die Messung eines Widerstandes, der mit einem Anschlusss 
auf Masse liegt. Es sollen 32 Werte, die logarthimisch von 1k bis 1000k 
verteilt sind, sicher unterschieden werden. Die Spannung, die über dem 
Widerstand anliegt sollte relativ klein (<0.5V) sein. Die Messung 
erfolgt über einen atmega328pb.

Entscheidend ist, dass die Lösung wenig Platz einnimmt, Bauteile der 
Größenordnung SOT-323, SOD-523 sowie 0402 wären ideal. Wenn möglich 
würde ich gerne auf Spezialbauteile verzichten.


Lösungsansatz Logarithmierer:
Der Strom durch die BE Diode von Q1 wird durch R1 bestimmt. Q2 dient als 
Temperaturkompensation. Die Transistoren wurden gewählt weil ihre 
Kennlinie linearer ist als die von 1N4148 Dioden und sie als 
Doppeltransistor im SOT-323-6 verfügbar sind. Der LM321 ist ebenfalls im 
SOT-323 zu haben. Schön ist auch, das ein ADC pin zur Messung ausreicht.

Problem:
Obwohl Q2 effektiv den Offset beseitigt so bleibt eine 
Temperaturabhängigkeit vorhanden. Selbst im Bereich von 0-40°C beträgt 
der Fehler an den Rändern des Messbereiches 12mV. Um sicher die 32 Werte 
zu unterscheiden darf die Abeichung jedoch maximal 170mV/32 ≈ 5mV 
betragen.


Woher kommt die verbleibende Temperaturabhängigkeit? Gibt es eine 
Möglichkeit diese zu beseitigen?
Falls euch eine bessere Lösung für das Problem einfällt wäre ich sehr 
dankbar.

Dennis
#4718649
Lesenswert?

Schau dir mal das an. Dafür müsstest du dir einen PT1000 Widerstand und 
möglichst 1kOhm Präzionswiderstände(kleiner Temperaturkoeffizient) 
kaufen. Dein Opamp sollte einen kleinen Eingangsstrom haben. Deshalb ist 
dein LM324 keine  gute Wahl. Außerdem sollest du idealerweise einen 
Dualtransistor nehmen damit die beiden Transistoren immer die gleiche 
Temperatur haben.
Angehängte Dateien:
Gast #4718811
Lesenswert?

Dennis  . schrieb:

> Falls euch eine bessere Lösung für das Problem einfällt
> wäre ich sehr dankbar.

Wenn es die Ressourcen hergeben, würde ich eine Messbereichs-
umschaltung vorsehen. Ein Bereich 1kOhm - 30kOhm, der andere
30kOhm bis 1Mohm.
Grundprinzip "Spannungsteiler": Großen Widerstand (300kOhm)
fest gegen U_b, kleinen Widerstand (10kOhm) schaltbar über
Portpin.
Gast #4718832
Lesenswert?

Ich würde den Strom in logarithmischen Schritten erhöhen bis eine 
Spannung Deiner Wahl überschritten wird.

Zum Beispiel:
1
 
2
  1 Ohm   1 A
3
   2 Ohm   0,5 A
4
   4 Ohm   0,25 A
5
   8 Ohm   0,125 A
6
  16 Ohm   0,0625 A
7
  32 Ohm   0,03125 A
8
  64 Ohm   0,015625 A
9
 128 Ohm   0,0078125 A
10
 256 Ohm   0,00390625 A
11
 512 Ohm   0,001953125 A
12
1024 Ohm   0,000976562 A
Gast #4719123
Lesenswert?

Possetitjel schrieb:
> Dennis  . schrieb:
>
>> Falls euch eine bessere Lösung für das Problem einfällt
>> wäre ich sehr dankbar.
>
> Wenn es die Ressourcen hergeben, würde ich eine Messbereichs-
> umschaltung vorsehen. Ein Bereich 1kOhm - 30kOhm, der andere
> 30kOhm bis 1Mohm.
> Grundprinzip "Spannungsteiler": Großen Widerstand (300kOhm)
> fest gegen U_b, kleinen Widerstand (10kOhm) schaltbar über
> Portpinn

Habe soeben den Vorschlag simuliert. Funktioniert bestens.
Angehängte Dateien:
Gast #4719150
Lesenswert?

Harald W. schrieb:
> Jim schrieb:
>
>> Habe soeben den Vorschlag simuliert. Funktioniert bestens.
>
> Mit den idealen Widerständen eines Simulators ist das
> ja auch kein Problem. Ich glaube allerdings nicht, das
> Dennies mit einer reinen Simulation zufrieden ist.

Mit 5% genauen Widerständen gibt es auch im schlimmsten Fall keine 
Probleme. Nur der fixe 150k und der zuschaltbare 5k6 sollten genauer 
sein. Sehe dein Problem nicht...
OP #4719244
Lesenswert?

Helmut S. schrieb:
> Schau dir mal das an.

Das Ergebnis ist perfekt! Leider denke ich nicht, dass ich einen 4x 
opamp im tssop-14 Gehäuse noch unterkriegen würde, und kleiner ist für 
mich privat umständlich zu löten. Hab aber die Schaltung in meine 
Sammlung aufgenommen, falls ich es mal wieder brauche. Danke!


Possetitjel schrieb:
> Wenn es die Ressourcen hergeben, würde ich eine Messbereichs-
> umschaltung vorsehen. Ein Bereich 1kOhm - 30kOhm, der andere
> 30kOhm bis 1Mohm.

Sehr gute Idee, insbesondere sehr handlich klein.

Jim schrieb:
> Habe soeben den Vorschlag simuliert. Funktioniert bestens.

Hab selbst gerade simuliert, ich komme auf sehr gute Ergebnisse, 26bit 
Differenz zwischen zwei Werten im worst case. Bei 1% Widerständen bleibt 
da selbst mit den üblichen 100ppm/°C bei -40-125°C reichlich Abstand.

Vielen Dank euch beiden für so eine simple aber effektive Lösung!
Es funktioniert sogar so gut, dass ich es ohne Umschaltung versuchen 
werde, da I/Os Mangelware im Design sind. Im worst case stehen dann 
immernoch 12 bit Abstand zur Verfügung, 5% Widerstandstoleranz 
eingerechnet.


Nochmal vielen Dank an alle, ihr hab mir sehr gut weitergeholfen!

Dennis


[closed]

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren