Forum: Mikrocontroller und Digitale Elektronik Spannungsabfall am ADC (ATMEGA)


von Igor M. (bastel-wastel)


Lesenswert?

Habe ein Problem:

Ein Temp-Sensor LM335 erzeugt über Vorwiderstand eine temperaturabhänige 
Spannung. Über ein RC-Glied (10k + 100nF) gelangt diese auf einen 
Analogeingang vom ATMEGA32. Zusätzlich ist eine 5V1 Z-Diode als Schutz 
verbaut. Nun zum Problem:
Hänge ich die Spannung vom LM335 an das RC-Glied, dann fällt über dem 
Widerstand eine Spannung ab, so dass das ADC-Ergebnis nicht richtig ist.
Messspannung vor RC: 2,955V
Spannung an AN0: 2,6xxxV
Hänge ich die Messspannung hinter den Widerstand vom RC direkt an den C, 
dann habe ich die richtige Spannung am ADC.

Im spannungslosen Zustand habe ich mal den Widerstand zwischen Zwischen 
RC-Glied bzw. ADC-Eingang gegen Masse gemessen -> ~35MOhm.
Aus diesem Grund gehe ich von einem Effekt im AVR aus. Habe ich was 
übersehen? Theoretisch sollte der Eingangswiderstand laut Datenblatt ca. 
100MOhm betragen.

Als Code für den ADC habe ich den aus dem AVR-GCC Tutorial 1 zu 1 
übernommen.
Wäre nett, wenn mir jemand nen heißen Tipp geben könnte.

von Matthias L. (Gast)


Lesenswert?

Lass mal die Z-Diode direkt am Analogeingang weg.

von Igor M. (bastel-wastel)


Lesenswert?

OK, ich versuchs mal.

edit: Habe den Tutorial-Code doch nicht 1 zu 1 übernommen. Die 
Referenzspannung wurde auf AVCC gesetzt.

von Igor M. (bastel-wastel)


Lesenswert?

OK - die Z-Diode war die Schuldige ;-)
Danke für den Tipp. Mögliche wären zwei Shottky-Dioden gegen Vcc und 
Masse. Aber da könnten durch die Leckströme ja ähnliche Effekte 
auftreten.


Gibts ne andere Möglichkeit den ADC-Eingang für Über- bzw. Unterspannung 
zu schützen?

von Matthias L. (Gast)


Lesenswert?

>Gibts ne andere Möglichkeit den ADC-Eingang für Über- bzw. Unterspannung
>zu schützen?

Ja. Hast du schon:
> RC-Glied (10k...

Der 10k Widerstand begrenzt dir (zusammen mit den internen Schutzdiode) 
den Strom auf unschädliche Werte.

von Igor M. (bastel-wastel)


Lesenswert?

Das is ja mal geschickt ;-)
Wusste nicht, dass man die internen Diodenstrecken hierfür verwenden 
darf.
Ist mir aber gleich recht, wenns so einfach geht.

Dank dir.

von Matthias L. (Gast)


Lesenswert?

>dass man die internen Diodenstrecken hierfür verwenden
>darf.

Naja, die sind zumindest dafür da. Und 1mA (Größenordnung) macht die 
nicht kaputt. (Datenblatt)

von Gast (Gast)


Lesenswert?

Nachdem Matthias schon alle Punkte eingesammelt hat, schieße ich noch 
ein Abstaubertor.

Du brauchst keinen Überspannungsschutz, die LM335 ist Schutz genug. Und 
sofern Du AVCC für die LM335 verwendest erst recht.
Zudem würde ich den 10k Widerstand auf 0 Ohm verringern. Wozu sollte er 
noch nützen? Kosmisches Rauschen? Wohl kaum.
Diese Reihenwiderstände führen unter Umständen sogar zu Meßfehlern, wenn 
zu schnell abgetastet wird und der ADC auf Grund seiner geschalteten 
Eigangskapazität dann doch einen meßbaren Eingangsstrom aufweist.

Ermittel zum Spaß mal die Temperatur mit z.B. zehn Abtastungen pro 
Sekunde und erhöhe dann die Abtastrate auf 1000/s. Genaue Meßmittel 
scheinst Du ja zu haben :-)

von Igor M. (bastel-wastel)


Lesenswert?

AAAlso ;-)

Ich brauche natürlich keine Schutzbeschaltung für den Temp.-sensor. Als 
Hardware setze ich aber ein selbst entworfenes Testboard ein, bei dem 
ich die Eingangskanäle schützen wollte.

RC-Glied ist ein MUSS für einen ADC. Kommt aber auch immer drauf an, wo 
der Sensor verbaut ist. Dieser wird nämlich nicht auf die Leiterplatte 
kommen, sonder über Leitungen an einen anderen Installationsort -> 
Störungen können sich auf der Leitung einkoppeln. Einen schwankenden 
Messwert ohne RC (nur ein C) konnte ich detektieren. Mittelwertbildung 
ist bisher 4-fach. Wird wohl aber noch hoch gesetzt.
Beim Einsatz des RC-Gliedes wurde kein schwankender Wert gemessen (5 
Messwerte pro Sekunde, wobei für jeden Messwert der ADC 5x die Spannung 
einliest).
Was meinst du mit
>Genaue Meßmittel scheinst Du ja zu haben :-)
Weil ich die Spannung mit drei Nachkommastellen angegeben habe? Nunja - 
ich hab die Messwerte an den PC gesendet und die Spannung halt als Wert 
ausgerechnet. Die Auflösung sagt ja noch nichts über die Genauigkeit 
aus.

Input C für PortPINs sind 10pF angegeben. Da dürfte mit 100nF am Eingang 
eigentlich nichts passieren. Eine höhere Abtastrate ist für eine 
Temperaturmessung nicht nötig. Ich bin ja jetzt schon zu hoch ;-)
Zudem hinkt deine Aussage:
Falls mir die Sample&Hold-Schaltung mit der Eingangs-C die Spannung am 
RC runterzieht, dann hat die sich bis zur nächsten Abtastung längst 
wieder aufgeladen. Außerdem: Mein RC-Glied hat eine Grenzfrequenz von 
ca. 160Hz.  Wenn ich die Abtastrate auf 1kHz stelle, ist es ja logisch, 
dass ich Probleme bekommen kann, falls die Eingangskapazität so viel 
ausmachen würde.

von Gast (Gast)


Lesenswert?

>...ist es ja logisch, dass ich Probleme bekommen kann, ...

Schluck! Da frage ich mich nur, warum Du überhaupt welche hattest.

von Igor M. (bastel-wastel)


Lesenswert?

Wurde oben erklärt!!

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.