Forum: Mikrocontroller und Digitale Elektronik eeprom schreiben bei Brown Out Detection


von Dennis (Gast)


Lesenswert?

Hallo,
ist es möglich bei einem ATMega128 bei Erkennung der Brown-Out Detection 
Werte ins eeprom zu schreiben und damit zu speichern?
Habe einen Mega128 mit Zeitfunktion laufen, allerdings scheint es 
manchmal Resets des Controllers zu geben und damit einen Verlust der 
Zeit... :-(
Dies würde ich mit dem Speichern der Zeit gerne umgehen bzw. beheben.

Gruß
Dennis

von spess53 (Gast)


Lesenswert?

Hi

>ist es möglich bei einem ATMega128 bei Erkennung der Brown-Out Detection
>Werte ins eeprom zu schreiben und damit zu speichern?

Nein. Das musst du früher erkennen.

MfG Spess

von Billy der Bastler (Gast)


Lesenswert?

Wenn die (Uhr-)Zeit so wichtig ist und auch bei Resets und 
Programmfehlern unbedingt erhalten werden muss, warum nimmst du dann 
nicht eine externe RTC mit Li-Batterie?

von Falk B. (falk)


Lesenswert?

@  Dennis (Gast)

>Habe einen Mega128 mit Zeitfunktion laufen, allerdings scheint es
>manchmal Resets des Controllers zu geben und damit einen Verlust der
>Zeit... :-(
>Dies würde ich mit dem Speichern der Zeit gerne umgehen bzw. beheben.

Wie soll das denn gehen? Wenn dein AVR einen Reset macht und unbestimmte 
Zeit nicht arbeitet, nützt dir eine gespeicherte Zeit rein gar nix.
Es klingt eher danach, dass du einen Hard- oder SOftwarefehler hast, der 
dir sporadische Resets beschert. Diese Fehler musst du finden und 
beheben, nicht durch rumpfuschen scheinbar verdecken.

MfG
Falk

von Dennis (Gast)


Lesenswert?

Danke für den Tip Falk!

Der Fehler ist bereits lokalisiert. Und zwar betreibe ich über ULN 
Bausteine Relais mit denen Motoren ein/ausgeschaltet werden. Dadurch 
bekomme ich ganz kurz einen Reset und meine Zeit is wech...!
Insofern wäre die Zeit zu vernachlässigen die dadurch verloren geht. Ein 
solcher Reset kommt circa alle 2 Wochen mal vor...

Da ich die Motoren nur mit großem Aufwand mit RC-Gliedern entkoppeln 
kann werde ich wohl auf die Variante mit einem RTC zurückgreifen müssen. 
Oder aber an den Controller noch ne Netzwerkanbindung schaffen und mir 
die Zeit über NTP holen. DCF77 fällt wegen schlachtem Empfang flach...

von MWS (Gast)


Lesenswert?

Reset mit Widerstand auf VCC gezogen ? Ansonsten die µC Versorgung 
entkoppeln, VCC auftrennen, Diode rein und Kondensator nach GND, dann 
erst auf µC-VCC.

von Dennis (Gast)


Lesenswert?

MWS schrieb:
> Reset mit Widerstand auf VCC gezogen ? Ansonsten die µC Versorgung
> entkoppeln, VCC auftrennen, Diode rein und Kondensator nach GND, dann
> erst auf µC-VCC

Dies habe ich alles beachtet...
Habe nen 7805 mit der im Datenblatt beschriebenen Beschaltung und einer 
Diode davor. Habe auch schon zusätzlich einen größeren Kondensator nahe 
dem µC installiert, leider ohne Erfolg. :-(

Trotzdem Danke für den Tip.

von MWS (Gast)


Lesenswert?

> und einer Diode davor.

Nicht mit einer Diode davor. VCC vom Regler auf Diode, von Diode auf 
Kondensator, dann auf µC-VCC und sonst nirgendwohin. Also ein extra 
Kondensator nur für den µC, mit dem Ziel Spannungseinbrüche ausgelöst 
durch andere Verbraucher fernzuhalten.

Wo hängen die Relais jetzt dran ? Welche Verbraucher sind auf der 5V 
Leitung des Reglers ? Vielleicht die Relaisspulen ?

Schaltplan ?

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Schaltplan ist hier im Anhang...

von Andreas K. (derandi)


Lesenswert?

Skalieren will gelernt sein!
Ich sehe da keine Relais. Aber, wo wir grade dabei sind, die 
Freilaufdioden der ULN sind ja unbeschaltet, bzw. haste denn 
Freilaufdioden an den Relais?

von Alexander S. (esko) Benutzerseite


Lesenswert?

Freilaufdioden über den Relais?
Notfalls einen zweiten 7805 für die Relais spendieren.
Die Motoren hängen hoffentlich an einem anderen Trafo?!

Der Schaltplan sagt nicht aus wo die Relais hängen und ist außerdem zu 
klein.

von MWS (Gast)


Lesenswert?

Bisserl grob aufgelöst, kann man wenig erkennen...

Die ULN's kann man ein wenig erkennen, wohin sind die Relais 
angeschlossen ? An die geregelten 5V oder an ungeregelt Plus ?

von Dennis (Gast)


Lesenswert?

Die Relais sind auf Hutschienensockel mit Freilaufdioden montiert.
Die ULN 2803 schalten Masse auf die Relais, welche an der gemeinsamen 
24V-Versorgung hängen...
Relais schalten 230V Motoren.

von MWS (Gast)


Lesenswert?

Hmm, poste mal 'nen besser aufgelösten Plan. Oder probier' einfach aus, 
was ich vorgeschlagen habe.

Seh' keinen Grund, warum der µC einen Reset machen sollte. Software ok ?

von Dennis (Gast)


Lesenswert?

Kann ich hier auch nen pdf als Plan anhängen?

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Hab nun nen Export aus Eagle gemacht...

von Dennis (Gast)


Lesenswert?

MWS schrieb:
> Software ok ?

Wie gesagt... Passiert unregelmäßig nach 2 Wochen, oder aber auch schon 
nach 2 Tagen...
Denke nicht das es nen Software Bug ist.

von Jo O. (brause1)


Lesenswert?

Sehe ich das richtig, dass der Pin 10 von den ULN2003 auf VCC, also 5V 
liegt, Du die Relais aber mit 24V versorgst?

von Dennis (Gast)


Lesenswert?

Jo O. schrieb:
> Sehe ich das richtig, dass der Pin 10 von den ULN2003 auf VCC, also 5V
>
> liegt, Du die Relais aber mit 24V versorgst?

Diese Änderung hatte ich eben testweise in die Schematic eingfügt um zu 
schauen ob es auf dem Board zu realisieren wäre. PIN 10 ist derzeit NC.

Die Relais hängen an +24V und werden von den ULN mit GND beschaltet...

von Jo O. (brause1)


Lesenswert?

Wenn du das so machst, dann hast du 24 V auf deiner VCC Leitung liegen, 
wenn ich deine Beiträge oben richtig verstanden habe.

Dabei dürfte einiges auf der Platine kaputt gehen.

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Jo O. schrieb:
> Dabei dürfte einiges auf der Platine kaputt gehen

In dem Fall so ziemlich alles wichtige... ;-)
Dann bin ich also mit meiner ursprünglichen Version (ULN Pin10 = N.C.) 
gar nicht so schlecht dran?

von MWS (Gast)


Lesenswert?

> Wie gesagt... Passiert unregelmäßig nach 2 Wochen, oder aber auch schon
> nach 2 Tagen...

Das schreit förmlich nach 'ner externen RTC.

von helfer27.12 (Gast)


Lesenswert?

Kann durchaus sein, dass es ein Softwarebug ist.

von Jo O. (brause1)


Lesenswert?

Mach doch mal ne Handskizze auf der ein ULN's drauf ist, ein Relais, 
alles was mit den 24V zu tun hat, die Freilaufdiode und Die 
Spannungsversorgung vom Prozessor .

Versorgst du mit den 24V auch das Board?

Wenn möglich wäre auch ein Bild mit dem Board nicht schlecht.

Was passiert eigentlich, wenn die Sicherung F2 auslöst. Bist du sicher, 
dass dann keine 24V am Prozessor liegen könne (auch ohne Anschluss von 
Pin 10 der ULN's) ?

von Jo O. (brause1)


Lesenswert?

helfer27.12 schrieb:
> Kann durchaus sein, dass es ein Softwarebug ist.

Im Moment tipp ich eher auf die Hardware.

von Dennis (Gast)


Lesenswert?

Jo O. schrieb:
> Was passiert eigentlich, wenn die Sicherung F2 auslöst. Bist du sicher,
>
> dass dann keine 24V am Prozessor liegen könne (auch ohne Anschluss von
>
> Pin 10 der ULN's) ?

Da bin ich ziemlich sicher,
denn diese kann ich auch entfernen ohne das irgendetwas kaputt geht.
Im Falle eines durchschlagen des Transistor Arrays, könnte es ventuell 
zu 24V auf der Platine kommen, aber das ist mir durchaus bewußt und auch 
nicht umgänglich...

von Dennis (Gast)


Lesenswert?

Jo O. schrieb:
> Im Moment tipp ich eher auf die Hardware

Es ist auch Hardware. Habe im nachhinein schon mehrfach von Problemen 
bei Relaisbetriebenen Motoren gehört... :-(

von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Jo O. schrieb:
> Mach doch mal ne Handskizze auf der ein ULN's drauf ist, ein Relais,
>
> alles was mit den 24V zu tun hat, die Freilaufdiode und Die
>
> Spannungsversorgung vom Prozessor .

von Andreas K. (derandi)


Lesenswert?

Schon mal mit dem Oszi nach Spitzen in der Versorgungsspannung gesucht?
Möglicherweise hebt sich GND an wenn viele Relais schalten.

Und wäre es nicht sinnvoller die 24V-Zuleitung zu den Relaisspulen 
abzusichern?

von Jo O. (brause1)


Lesenswert?

Wie haste denn die Brown-Out Detection eingestellt?

Warum sind die Kondensatoren am 7805 nich 100nf? Welche Typen haste denn 
da verbaut? Keramische?

Wieviel Stom ziehen die Relais? Können die gleichzeitig angesteuert 
werden?

Welche Dioden hast du als Freilaufdioden benutzt?

von Falk B. (falk)


Lesenswert?

@  Dennis (Gast)

>Wie gesagt... Passiert unregelmäßig nach 2 Wochen, oder aber auch schon
>nach 2 Tagen...
>Denke nicht das es nen Software Bug ist.

Denke nie gedacht zu haben, denn das Denken der Gedanken ist 
gedanklenloses Denken.

PRÜFE!

Schalte testweise dein Motoren so oft wie möglich. Die Anlaufströme sind 
meist deftig. Wieviel Leistung ziehen die? Welche Typen sind das?
Einen Snubber solltest du UNBEDINGT vorsehen, auch wenn es nicht 
ganz einfach machbar ist. Die Leitungen von deiner Platine zu den Relais 
sollten verdrillt sein, noh besser geschirmt und der Schirm seitens 
deines uC auf PE gelegt.

Stürzt dein uC beim Anschalten oder Abschalten der Relais ab?

MFG
Falk

von Peter D. (peda)


Lesenswert?

MWS schrieb:
> Das schreit förmlich nach 'ner externen RTC.

Das ist Quatsch mit Soße.
Nicht die Wirkung bekämpfen, sondern die Ursache finden!

Du bist wohl ein Politiker, denn die müssen mit maximalen Aufwand die 
geringsten Resultate erzielen.


Peter

von Peter D. (peda)


Lesenswert?

@Dennis

Dem Resetpin mußt Du noch nen 100nF gegen GND spendieren, sonst ist der 
sauempfindlich.

Und an den Spannungsregler jede Seite noch ein 100µF gegen 
Spannungseinbrüche.

Der AREF-Pin kriegt auch einen 100nF, die Brücke nach VCC muß weg.


Peter

von (prx) A. K. (prx)


Lesenswert?

Peter Dannegger schrieb:

> Der AREF-Pin kriegt auch einen 100nF.

Da der ADC hier nicht verwendet wird dürfte das egal sein.

von (prx) A. K. (prx)


Lesenswert?

Wie sieht denn das Layout aus? Bei solchem Problem ist das nicht 
unerheblich.

von MWS (Gast)


Lesenswert?

Peter,
Hirn benutzen und versuchen logisch zu denken.
Wenn man sich anstrengt, dann klappt das auch :D

Bei einer Schaltung, die von der aktuellen Zeit abhängt, und in 
elektrisch rauher Umgebung arbeitet, wär's sicher nicht verkehrt dafür 
zu sorgen, daß im Fehlerfall, auch Stromausfall, die ganze Sache 
vernünftig weiterarbeitet.

Das hat nix mit Politik zu tun ;-)

von (prx) A. K. (prx)


Lesenswert?

MWS schrieb:

> Bei einer Schaltung, die von der aktuellen Zeit abhängt, und in
> elektrisch rauher Umgebung arbeitet, wär's sicher nicht verkehrt dafür
> zu sorgen, daß im Fehlerfall, auch Stromausfall, die ganze Sache
> vernünftig weiterarbeitet.

Sicher. Aber unabhängig davon ist eine autonome Uhrzeit zur Lösung des 
beschriebenen Problems der verkehrte Ansatz.

So könnte sich man dem Problem auch dadurch nähern, dass man die Ursache 
des Resets so angezeigt kriegt, wie sich die dem Controller darstellt. 
Also ob per Reset-Pin, Powerup, Brownout oder weil das Programm nach 
Adresse 0 gehüpft ist. Irgendein MCUC(S)R sagt das.

von MWS (Gast)


Lesenswert?

A.K.,
richtig, aber wenn Du meine Posts vorher anschaust, ich gehe von einem 
elektrischen Problem aus, dazu auch mein Vorschlag die MC Versorgung von 
Spannungseinbrüchen zu entkoppeln.

Unabhängig davon, frag mal en TE, wieviel Aufwand er betreiben will, um 
diese sporadischen Ausfälle in den Griff zu bekommen.

Da wäre ein Fail-Safe Sytem kein schlechter Kompromiss.

Eine per SPI oder TWI angebundene RTC als maximalen Aufwand zu 
bezeichnen und mit der allseits bekannten Ineffiktivität von Politik zu 
vergleichen schien mir da ein wenig daneben.

von Karl H. (kbuchegg)


Lesenswert?

Nichts gegen ein Fail-Safe System.
Aber wenn bei deinem Autoreifen alle 2-3 Wochen die Luft draussen ist, 
besteht die Lösung nicht darin, sich einen Kompressor in den Kofferraum 
zu legen.

von MWS (Gast)


Lesenswert?

Der Vergleich hinkt ein wenig :D

Vorschläge zur Reifenreparatur gab's ja bereits...

von Peter D. (peda)


Lesenswert?

MWS schrieb:

> Eine per SPI oder TWI angebundene RTC als maximalen Aufwand zu
> bezeichnen und mit der allseits bekannten Ineffiktivität von Politik zu
> vergleichen schien mir da ein wenig daneben.

Es ist zumindest ein recht hoher Aufwand, Du brauchst ja noch ne extra 
Batterie und jeder hat bestimmt schonmal schlechte Erfahrungen mit 
ausgelaufenen Batterien gemacht.

Einmal hat mir die CMOS-Batterie sogar Leiterzüge auf dem Motherboard 
weggeätzt (= Totalschaden).

Ich hab auch schonmal nen DS1994 mit interner Batterie benutzt.
Außer, daß er sehr ungenau war, hat er gerade mal 5 Jahre gehalten, also 
nur 50% der garantierten 10 Jahre, obwohl die Schaltung ununterbrochen 
am Netz war. Das positivste war, daß er wenigstens nicht ausgelaufen 
ist.

Wenn die Netzversorgung stabil ist, besteht daher kein Grund, die 
Nachteile eines RTC in Kauf zu nehmen. Da ist Fehlerbeseitigung der 
einzig richtige Ansatz.


Peter

von Dennis (Gast)


Lesenswert?

Falk Brunner schrieb:
> Stürzt dein uC beim Anschalten oder Abschalten der Relais ab?

Beim Anziehen der Relais kommt es zum Reset.

Werde den Vorschlag von Peter Dannegger zunächst versuchen umzusetzen.

Habe am 7805 zur Zeit keramische Kondensatoren verbaut.

Könnte ich einen Schnubber (RC-Glied) denn einfach über meinen Schalter, 
sprich ULN2803 schalten um Störungen durch das Relais zu vermeiden? Dies 
könnte ich wohl noch gut realisieren...

von Falk B. (falk)


Lesenswert?

@  Dennis (Gast)

>> Stürzt dein uC beim Anschalten oder Abschalten der Relais ab?

>Beim Anziehen der Relais kommt es zum Reset.

Dann wird wohl der sehr hoche Anlaufstrom + der Funke am Kontakt dem uC 
das Licht ausblasen.

>Könnte ich einen Schnubber (RC-Glied) denn einfach über meinen Schalter,
>sprich ULN2803 schalten um Störungen durch das Relais zu vermeiden?

Nein, das Problem liegt woanders, an den Kontakten. Gegen einen 
Einschaltstromstoß hilft ein Snubber praktisch nicht.

MfG
Falk

von MWS (Gast)


Lesenswert?

Peter,

ich verwende gern Epson RTC's mit integriertem Quarz in Verbindung mit 
einem kleinem Goldcap.

Einmal abgesehen davon, daß damit das eigentliche Problem nur kaschiert 
(in diesem Fall im Endergebnis gelöst) würde, so halte ich unabhängig 
davon bei so einer Uhrzeit gesteuerten Geschichte ein Backup der Zeit 
per RTC für ein Muss.

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.