Forum: Mikrocontroller und Digitale Elektronik Spannungsversorgung und Puffer für uC


von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

nach geduldigem Durchackern diverser Foren und Ausfragen von Freunden 
meine ich, daß ich zwischenzeitlich eine Vorstellung davon habe, wie ein 
Spannungsregler beschaltet werden sollte. Ich möchte aber nicht 
ausschließen, daß ich mich täusche, da ich nicht vom Fach bin. Daher 
würde ich mich über die Meinung von fachkundigeren Forenschreiben 
freuen.

Einige Schaltungen (und Beiträge) zur kurzzeitingen Pufferung der 
Versorgung zum Schreiben einiger Bytes ins EEPROM sind ja auch hier zu 
finden. Dabei wird aber i.d.R. davon ausgegangen, daß die 
Spannungsversorgung separat geregelt wird (siehe 
http://www.mikrocontroller.net/articles/Speicher#EEPROM).

Mein Ziel ist, Spannungsversorgung, Puffer, und eine Leitung zum 
Detektieren des Spannungsverlustes zu integrieren. Die eigentlich 
funktionierende Schaltung findet sich im Anhang (ATtiny beispielhaft, 
normalerweise wird ein ATmega168 benutzt). Eigentlich deshalb, weil 
ich etwas sonderbares beobachte, sobald ich ein LCD-Display mit dran 
hänge 
(http://www.sparkfun.com/commerce/product_info.php?products_id=461).

Das Display wird seriell mit Daten aus dem uC gefüttert. Wenn ich nun 
das Netzteil vor dem Spannungsregler einstecke, sehe ich 2 verschiedene 
Verhaltensweisen, je nachdem, ob die serielle Leitung zwischen uC und 
Display permanent ist oder erst ein paar Sekunden nach dem Einschalten 
hergestellt wird:
Permanent: Display stellt sich nach Aufblinken des Splashscreens tot
Nachträgliches Einstecken COM: Datenübertragung funktioniert wie 
gewünscht.

Ich habe den Verdacht, daß es mit extremen Spannungsschwankungen beim 
Einschalten meiner Versorgungsschaltung zusammenhängt. Da es mit einer 
einfachen Beschaltung 
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment) 
tadellos funktioniert, würde das nahe liegen. Möglicherweise ist der 100 
uF-Elko einfach zu groß.

Leider habe ich keine Möglichkeit zum Messen am Oszi. Vielleicht kann 
mir trotzdem jemand sagen, ob hier irgendetwas katastrophal falsch ist 
und falls ja, was man besser machen kann.

Danke schonmal im Voraus,
Markus

von Alexander S. (esko) Benutzerseite


Lesenswert?

Markus schrieb:
> Die eigentlich funktionierende Schaltung findet sich im Anhang (ATtiny
> beispielhaft, normalerweise wird ein ATmega168 benutzt). /Eigentlich/
> deshalb, weil ich etwas sonderbares beobachte, sobald ich ein
> LCD-Display mit dran hänge
Wieviel Strom zieht das LCD denn?
Und ist das Backlight an?

> Permanent: Display stellt sich nach Aufblinken des Splashscreens tot
> Nachträgliches Einstecken COM: Datenübertragung funktioniert wie
> gewünscht.
Probier doch mal aus, den nachdem der µC gestartet ist ein delay von 3s 
einzubauen.

von Markus (Gast)


Lesenswert?

Hi Alexander,

das Backlight ist an, damit zieht das Display 25 mA, der uC und der 
übrige Kleinkram wird auch nochmal Strom um die 50 mA verbraten.

Wenn ich die Initiierung der Kommunikation mit dem Display (Custom 
characters einspielen etc.) ein wenig (500 ms) verzögere, scheint es zu 
funktionieren.

Sicher bin ich mir deshalb nicht, weil sich das Ganze auch in der 
Vergangenheit recht nichtdeterministisch verhalten hatte, also mit 
identischen Komponenten auf einmal ging. Daher wäre es nützlich zu 
wissen, ob die Versorgungsschaltung wenigsten OK ist. Sprich die 
Schaltung bis einige 100 mA stabil und glatt Strom liefern kann.

Damit könnte ich die zumindest mal ausschließen.

Danke schonmal,
Markus

von Rik Langobar (Gast)


Lesenswert?

Ich denke der Mikrocontroller laeuft, wenn du die Spannungsquelle 
ansteckerst, erstmal ein paar An-Reset-Zyklen durch, bis die Spannung 
tatsaechlich brauchbar ist. In der Zeit sendet er etwas Muell zum 
Display, was dann nicht richtig initialisiert ist. Also entweder eine 
Warteschleife nach dem Starten einplanen oder ein IC verbauen, welches 
den Mikro solange im Reset haelt, bis die Spannung tatsaechlich 
brauchbar ist.

von Unknown (Gast)


Lesenswert?

Hi.
Warum nimmst du für C2 nicht einfach nen kleineren von z.B. um die 270uF 
oder noch kleiner? Bei dem Strombedarf wird der für deine Schaltung 
locker reichen. Ein Vorteil bei der sache, das er nicht so lange braucht 
um geladen zu werden wie deiner von 1000uF. Die beiden Kondensatoren 
sind ja OK. Nur meiner Meinung nach kannst du den Elko hinterm 
Spannungsregler auch weglassen, weil du mit den Kon. ja nur evt. 
auftrettende Schwingungen unterdrücken sollst und der C2 soll ja nur die 
Netzspannung ggf. etwas glätten. Wenn ich einen SP nutze kamm ich damit 
immer bestens klar und hatte nie irgendwelche Probleme und meine 
verbauten LCD´s haben auch immer sofort das Angezeigt was sie sollten.

von Markus (Gast)


Lesenswert?

Moin zusammen und erstmal Danke für die Antworten.

Ob der Controller stabil startet, ist natürlich schwer zu sagen, ohne 
per Oszi zu messen. Aber für Deine Theorie spricht der Umstand, daß 
schon eine geringe Wartezeit im Code das Problem behebt. Also die 
Zeitspannen An-Reset kürzer sein müssen als diese Zeit, und das Display 
erst dann gestartet wird, wenn sich eine stabile Spannung einstellt.

Die Idee hinter dem großen C2 ist, bei Trennung vom Netz die Versorgung 
noch so lange sicherzustellen, daß etwaige Variablen ins EEPROM des uC 
gesichert werden können. Detektiert wird der Abfall per Signalleitung 
vor der Diode.

Kann es eigentlich auch an diesem Elko liegen, daß die Spannung beim 
Einschalten instabil ist, weil er sich als erster lädt und dabei der 
folgende Spannungsregler erstmal zu kurz kommt?

C4 habe ich übrigens tatsächlich etwas unreflektiert auf Anraten eines 
befreundeten Technikers noch mit reingenommen. Er meinte, daß der da 
nicht viel schaden kann, bei Engpässen aber noch ausreichend viel 
abfängt, damit der Jitter nicht zu groß wird. Sollte ich den rausnehmen, 
oder sind die negativen Auswirkungen zu marginal?

Danke,
Markus

von Falk B. (falk)


Lesenswert?

@  Markus (Gast)

>schon eine geringe Wartezeit im Code das Problem behebt. Also die

Das kann man einfach dadurch absichern, indem man a) den Brown Out 
Detektor per AVR Fuses einschaltet oder b) in den Taktoptionen der 
Fuses eine lange Wartezeit, meist 64ms.

>Die Idee hinter dem großen C2 ist, bei Trennung vom Netz die Versorgung
>noch so lange sicherzustellen, daß etwaige Variablen ins EEPROM des uC
>gesichert werden können. Detektiert wird der Abfall per Signalleitung
>vor der Diode.

C2 ist OK und unkritisch. C4 ist auch OK, wenn gleich in der Grösse 
nicht notwending. 10uF tuns hier auch.

>Kann es eigentlich auch an diesem Elko liegen, daß die Spannung beim
>Einschalten instabil ist, weil er sich als erster lädt und dabei der
>folgende Spannungsregler erstmal zu kurz kommt?

Nein.

>abfängt, damit der Jitter nicht zu groß wird. Sollte ich den rausnehmen,

Jitter ist was ganz anderes.

>oder sind die negativen Auswirkungen zu marginal?

Ist mehr oder weniger egal. Der hat nur dann einen Sinn, wenn sehr 
schnell grosse Lasten mit 100mA++ geschaltet werden.

MFG
Falk

von Alexander S. (esko) Benutzerseite


Lesenswert?

Es kann sein das die Schaltung über die Schutzdioden an PIN5 versorgt 
wird.
Während C2 noch geladen wird und die Spannung an VCC noch <4,7V beträgt, 
fließt ein Strom von U/R1 = U/1kohm >= 3mA in den µC. Dieser startet 
dann eventuell mehrmals wie von Rik beschrieben und verursacht das 
Problem.

Mach mal R1 größer auf 100kohm und lass R2 und D2 weg.
Die interne Schutzbeschaltung reicht fast immer aus.
Wie sieht die Stromversorgung vor X1 aus?

Und bau vor D1 einen Widerstand 5kohm, damit der Eingang schnell auf 0V 
gezogen wird.

von Peter D. (peda)


Lesenswert?

Markus schrieb:
> Permanent: Display stellt sich nach Aufblinken des Splashscreens tot

Auf dem LCD ist ja noch ein extra PIC-MC drauf, der braucht wohl erstmal 
einige Zeit zum Starten (sollte im Datenblatt stehen).
Du mußt also etwas warten, dann sollte es gehen.

So einen UART zu LCD Wandler kann man aber auch selber programmieren:
Beitrag "LCD über nur einen IO-Pin ansteuern"

Kostet dort ja immerhin 16.95$


Peter

von Markus (Gast)


Lesenswert?

Hallo zusammen,

danke für Eure Bemühungen.

@Falk: Optimal, diese Informationen waren, was ich gesucht habe um die 
Unsicherheit hinsichtlich der generellen Funktion der Schaltung zu 
zerstreuen. 100 uF wurden es vor allen Dingen deshalb, weil kein 10 uF 
Elko zur Hand war.
Und Jitter != Ripple, Freud'scher Doppelkonsonantenverschreiber.

@Alexander: Die Spannungsversorgung vor X1 sind 9V aus einem 
Steckernetzteil. Die Zenerdiode ist daher zum Runterschrauben der 
Spannung gedacht, R1 um den Strom zu beschränken und R2 als Pulldown. 
Was mir aber neu ist (möglicherweise aber auch Uninformiertheit) ist der 
Umstand, daß der uC startet, wenn Spannung am I/O Pin anliegt.

@Peter: Könnte was dran sein, ein wenig Zeit benötigt der PIC sicher. 
Vor allem interessant ist Dein Code. Allerdings beschränken sich meine 
Lötaktionen meist auf Einzelstücke auf Streifenraster, da stellt sich 
dann die Frage Zeit vs. Zusatzkosten. Werde ich beim nächsten Mal 
trotzdem mal testen.

Beste Grüße,
Markus

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.