Forum: Mikrocontroller und Digitale Elektronik Problem mit Aref am Atmega168p


von hacker-tobi (Gast)


Lesenswert?

Hi,

unter Beitrag "Röhrenuhr IV-18" stelle ich 
eine Röhrenuhr auf Basis der IV-18 vor. Diese kann u.a. auch die 
Temperatur messen.

Die Temperatur wird analog über einen LM35 mittels des internen 
A/D-Wandlers des Mega168 erfasst. Referenz ist Aref mit 1.1V, Kapazität 
für Aref ist vorhanden.
Schaltpläne und Software sind komplett im anderen Thread zu finden.

Jetzt zum Thema:

Die Uhr kennt einen Nachtmodus, in dem das Display inkl. Heizung und die 
LEDs abgeschaltet werden.
Weckt man die Uhr aus dem Nachtmodus und liest direkt danach die 
Temperatur ab, zeigt sich Abweichung von etwa +1,5 Grad gegenüber dem 
normalen Betrieb.
Messungen haben recht schnell gezeigt, das der "Schuldige" die 
Referenzspannung Aref ist, diese sinkt(!) im Nachtmodus um etwa 15 mV 
(also z.B. von 1,06V auf 1,045V).
Gemessen direkt an aREF und aGND sowie aREF und GND des yC.
Infolge dessen steigt der vom ADC ausgegebene Wert natürlich an.

Ursache scheint nach derzeitigem Kenntnisstand folgendes zu sein:
In Folge des Abschaltens der Röhrenheizung und der LEDs sinkt die 
gesamte Stromaufnahme von ca 100mA auf 10mA. Dadurch steigt VCC leicht 
(ca +0.1V) an, da ich den Spannungsregler LM7805 wegen des 
Batteriebackups mit einer Diode entkoppeln musste.
Auf den Anstieg von VCC und damit auch aVCC reagiert die Referenz 
wiederum mit besagtem Spannungsabfall.
Nun ist das nur ein Schönheitsfehler, aber es stört mich.
Temporär habe ich mir beholfen, in dem ich einfach während der 
Temperaturmessung im Nachtmodus die Röhrenheizung kurz einschalte.
Schön ist diese Lösung allerdings nicht.

Was ich bis jetzt getestet habe:

-Den mega168 von außen auf ca 60 Grad erhitzt, um Temperaturbedingte 
Effekte zu prüfen. Die Referenz driftet, aber nur minimal (5 mV 
gegenüber 20 Grad). Zudem wird der Mega168 im Betrieb auch kaum warm, 
etwa 5 Grad über Umgebungstemperatur.

-Sukzessive alle Abschaltungen im Nachtmodus deaktiviert. Der größte 
Sprung war bei der Röhrenheizung zu sehen, was auch einer der größten 
Verbraucher ist.

-Testweise den MAX6921 entfernt, um mögliche Rückwirkungen 
auszuschließen. Keine Änderung.

-Die Referenz testweise direkt mit dem Output des 7805 verbunden.
Ja jetzt bleibt sie stabil, auch im Nachtmodus.
Aber so fehlt jede Filterung von aVCC und außerdem liegt aVCC so 
0.1-0.2V über VCC.

Eigentlich sollte die Referenz doch grad dafür da sein, leichte 
Schwankungen von VCC/aVCC zu kompensieren und stabile Messungen zu 
ermöglichen. Ist sie wirklich so "schlecht" oder übersehe ich etwas?

Mir ist klar, das ich das Problem mit einer externen Referenz oder einer 
separaten Anbindung von aVCC/aGND lösen kann, aber ich frage mich, ob es 
nicht auch irgendwie anders lösbar ist, da die Hardware komplett fertig 
gebaut ist.
Vielleicht übersehe ich ja nur etwas.

Wenn hier mal jemand drüber schauen kann, wäre ich dankbar.
Wenn es keine andere Lösung gibt, werde ich wohl eine externe präzise 
Referenz einsetzen.

gruß und danke

tobi

von hacker-tobi (Gast)


Lesenswert?

Korrektur:

statt:

-Die Referenz testweise direkt mit dem Output des 7805 verbunden.
Ja jetzt bleibt sie stabil, auch im Nachtmodus.
Aber so fehlt jede Filterung von aVCC und außerdem liegt aVCC so
0.1-0.2V über VCC.

muss es heißen:

-aVCC testweise direkt mit dem Output des 7805 verbunden.
Ja jetzt bleibt sie stabil, auch im Nachtmodus.
Aber so fehlt jede Filterung von aVCC und außerdem liegt aVCC so
0.1-0.2V über VCC.

von Oliver S. (oliverso)


Lesenswert?

hacker-tobi schrieb:
> Ja jetzt bleibt sie stabil, auch im Nachtmodus.
> Aber so fehlt jede Filterung von aVCC und außerdem liegt aVCC so
> 0.1-0.2V über VCC.

Ja nun, na und?

Aber fürs Verständnis: du legst eine externe Referenzspannung an, und 
benutzzt nicht die interne mit 1.1V?

Oliver

von hacker-tobi (Gast)


Lesenswert?

Nein, siehe korrektur. Hier war aVCC gemeint, nicht aREF

Was mich wundert ist schlicht, das aREF so stark auf Schwankungen von 
aVCC im Bereich 0.1V reagiert.

gruß

tobi

von S. Landolt (Gast)


Lesenswert?

> Was mich wundert ...

Mich auch. Wenn ich hier bei einem ATmega328P Vcc==AVcc von 4.50 V auf 
5.25 V erhöhe, bleibt Aref trotzdem wie festgenagelt auf 1.0949 V.
  (mein einziger ATmega168PA ist leider verbaut)

von S. Landolt (Gast)


Lesenswert?

Ein ATmega48PA ist nicht ganz so stabil:
1
4.50 V  1.0976 V
2
4.75 V  1.0979 V
3
5.00 V  1.0982 V
4
5.25 V  1.0984 V
aber noch immer weit entfernt von den genannten 15 mV und auch nicht 
gegenläufig.

von Stefan F. (Gast)


Lesenswert?

Mich würde mal die Leitungsführung auf der Platine interessieren.

von H.Joachim S. (crazyhorse)


Lesenswert?

-MC tauschen? Vielleicht ein Ausreisser, wer weiss.
-eigenen Regler für AVcc
-besser aber eigenen Regler fürs filament. Wenn du nicht auf 78xx 
festgelegt bist: Regler gibts auch mit enable, so dass der Schalter für 
die Heizung entfallen kann
-rechnerisch korrieren? Ja, ist nicht schön.

von hacker-tobi (Gast)


Lesenswert?

HI,

Danke für die antworten.

Ich kann grad nicht auf alle eingehen.

Das board ist im verlinkten thread im eagle Format und als PDF 
hinterlegt.

Gruss tobi

von MaWin (Gast)


Lesenswert?

hacker-tobi schrieb:
> Die Referenz testweise direkt mit dem Output des 7805 verbunden.
> Ja jetzt bleibt sie stabil, auch im Nachtmodus.
> Aber so fehlt jede Filterung von aVCC und außerdem liegt aVCC so
> 0.1-0.2V über VCC

Hallo, du hast auf dem Weg vom (stabil bleibenden) 7805 zu VCC des uC 
einen Verlust von 0.2V ? Und das nur, wenn die ca. 100mA Heizung 
eingeschaltet wird ? Dann hätte deine VCC Zuleitung 2 Ohm, vermutlich 
verteilt auf VCC und GND Leitung, und du zapfst deine Heizung direkt am 
uC am.


Nutze eine sternförmige Verdrahtung, vom Ausgang (und Massepin) des 7805 
je eine Leistung: zur Heizung, zu VCC des uC, und (durchaus über die 
üblichen 100uH) zu AVCC, ebenso nutze 3 (oder mehr) Leitungen für GND 
und AGND, wobei dein LM35 an AGND gehört.

Noch mehr kräftige Verbraucher ? Dann bekommen die auch eine eigene 
Leitung ab 7805.

Ich denke übrigens nicht, dass die eingebaute Referenzspannung des uC zu 
mit der Betriebsspannung schwankt, sondern dass der Spannungsabfall auf 
GND zwischen LM35 und uC auf Grund schlechter Leitungsführung so hoch 
ist.

icecubev1.2.pdf hat auch wirklich verdammt dünne Leitungen (deren GND 
Verlauf ich mit nicht hetausgefummelt habe).

von hacker-tobi (Gast)


Lesenswert?

Hi,

der Spannungsabfall entsteht fast nur durch die diode hinter dem 7805.

Ich war gestern Nacht noch ein wenig in der Werkstatt und habe das 
Problem wahrscheinlich gefunden.

Mit dem oszi sah ich insbesondere zwischen vcc und gnd (pin 7 / 8) 
direkt am yC gemessen Rauschen mit ca 50mV VSS.

Ich hab dann gestern mal direkt an pin 7/8 100n angelötet und sowohl das 
Rauschen als auch das Problem mit der Referenzspannung war weg.

Ich werd nachher noch meine provisorische Umgehung des Problems in 
Software wieder entfernen und das Problem an einer zweiten Uhr 
verifizieren. Aber es sieht so aus wie als ob der abblock Kondensator 
für den yC zu weit weg oder defekt ist.

Vielen dank erstmal für alle antworten ich meld mich später nochmals.

Gruss tobi

von Stefan F. (Gast)


Lesenswert?

hacker-tobi schrieb:
> der Spannungsabfall entsteht fast nur durch die diode hinter dem 7805.

Ich habe gerade so ein Bild im Kopf, wo aus einer schön mühsam 
stabilisierten 5V Versorgungsspannung instabile 4,3V werden, weil das 
durch eine Diode geht. Ist das wirklich so gestaltet worden?

> Mit dem oszi sah ich insbesondere zwischen vcc und gnd (pin 7 / 8)
> direkt am yC gemessen Rauschen mit ca 50mV VSS.

Das ist nicht ungewöhnlich viel.

> Ich hab dann gestern mal direkt an pin 7/8 100n angelötet und sowohl das
> Rauschen als auch das Problem mit der Referenzspannung war weg.

Erstaunlich, dass das trotzdem geholfen hat. Noch erstaunlicher, dass da 
kein Abblock-Kondensator vorgesehen war. Der ist doch an jedem VCC/GND 
Pärchen Pflicht!

Ziege bitte nochmal den Schaltplan und das Layout als Bild-Datei. Ich 
habe kein Eagle und will es auch nicht extra dafür installieren.

von hacker-tobi (Gast)


Lesenswert?

Hi,

der Abblock-Kondensator war zu weit weg und war das Problem.

Ich habe jetzt an PIN7/PIN8 bei jeder Uhr direkt einen 100n angelötet 
und das Problem ist beseitigt.
Da ich es ganz genau haben wollte, habe ich zusätzlich noch den 
Leiterzug zwischen GND, GND des LM35 und GND (yC)/aGND mit einem Draht 
verstärkt, um dort den Spannungsabfall zu minimieren.

@MaWin: 100mA ist die gesamte Stromaufnahme, die Heizung nimmt ca 
40-50mA (streut etwas je nach Röhre).
Der Spannungsabfall GND (Eingang) zu GND (yC) sind < 5 mV , ebenso von 
Vcc (Ausgang hinter der Diode am 7805) zu VCC (yC).


@Stefan: Der Schaltplan hängt im verlinkten Thread (siehe erster Post) 
als PDF an.
Ja, hinter dem 7805 hängt eine Schottky-Diode, welche die Spannung um 
etwa 0.2V (Nachtmodues) bzw. 0.3V (Betrieb) absenkt. Das ist für die 
Schaltung aber ansich unerheblich.

von hacker-tobi (Gast)


Lesenswert?

Und danke an alle, die sich beteiligt haben (Stefan, S.Landolt, 
Hans-Joachim und MaWin)!

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.