Forum: Mikrocontroller und Digitale Elektronik ATMega48 resettet sich ständig


von Manuel (Gast)


Lesenswert?

Hallo,

ich habe ein Batterielader mit einem Atmega48 realisiert. Dabei kommt 
eine PWM zum Einsatz. Nun habe ich allerdings das Problem, dass sich der 
Controller immer resettet, sobald etwas Strom fließt.
Die Spannungsversorgung ist aber eigentlich stabil, ebenso der Resetpin 
- habe ich alles mit dem Oszi überwacht.

Was kann noch der Grund für ein Reset sein?

Am Controller ist ein 4Mhz Quarz angeschlossen.

MFG

Manuel

von Kai G. (runtimeterror)


Lesenswert?

Definiere "etwas Strom".
"Spannungsversorgung ist aber eigentlich stabil" klingt nicht sehr 
überzeugend.

Ich denke ohne Schaltung können wir nur wild rumraten...

von Niels H. (monarch35)


Lesenswert?

Mit deiner Beschreibung kann niemand etwas anfangen. Wenn eigentlich 
alles in Ordung ist, müsste doch eigentlich alles funktionieren, oder?

von Manuel (Gast)


Lesenswert?

Wieviel Strom ist doch egal - solange die Spannung dabei nicht einbricht 
- und das tut sie definitiv nicht.
Der Controller wird per Linearwandler versorgt (aber vom gleichen 
Netzteil).

Mich interessiert nur, aus welchen Gründen ein Reset auftreten kann.
Z.B. bei instabilem Quarz etc...

Gruß

Manuel

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Schaltplan posten, dann kann evt. jemand was dazu sagen.

von Niels H. (monarch35)


Lesenswert?

Manuel wrote:

> Mich interessiert nur, aus welchen Gründen ein Reset auftreten kann.
> Z.B. bei instabilem Quarz etc...

Die Gründe hierfür können vielzahlig sein. Möglich wäre z.B. eine 
Einstreuung von Störungen durch Induktionen oder ein Spannungsabfall 
durch Kurzschlüsse, oder unzureichende Stromversorgung. Ein instabiles 
Quarz aber kann es nicht sein.

Wie gesagt, ohne schaltpläne oder Programmcode kann man nichts genaueres 
sagen..

von Jörg B. (manos)


Lesenswert?

Manuel wrote:
> Was kann noch der Grund für ein Reset sein?
Für sowas hat der Herr das MCU Status Register erfunden...

von Kai G. (runtimeterror)


Lesenswert?

>Für sowas hat der Herr das MCU Status Register erfunden...
... am 256. Tag schuf er das MCU Status Register...

Ich frage mich gerade, wie man einen kurzen (nichtperiodischen) 
Spannungseinbruch am Oszi feststellen kann - oder hast du ein DSO zur 
Hand?

>Was kann noch der Grund für ein Reset sein?
Programmfehler?

von Herrmann (Gast)


Lesenswert?

Hallo

Ich hatte ein Problem mit einen Mega8.

Alle 20minuten hängt sich das ding auf.

Fuse Brown out detection auf enable,Ruhe ist jetzt. Läuft jetzt seit 2 
tagen durch.

Wenn er resetet hatte ich mal bei einen 128iger war bei mir ein stack 
überlauf Sram voll dann reset.

Schalt mal den watchdog ab glaub mit WDTCR=x0xx;

von Niels H. (monarch35)


Lesenswert?

Herrmann wrote:
> Fuse Brown out detection auf enable,Ruhe ist jetzt. Läuft jetzt seit 2
> tagen durch.
[...]
> Schalt mal den watchdog ab glaub mit WDTCR=x0xx;

Also ich finde, wenn man so einen Fehler behebt, dann sollte man auch 
Systematisch vorgehen und nicht per trial and error irgendwelche Fuses 
oder sonstige Controlregister nach gut dünken schalten. Damit kommt man 
in den wenigsten Fällen weiter.

Der Watchdog ist in den meisten Controllern defaultmässig abgeschaltet. 
Es gibt keinen Grund, ihn abzuschalten, wenn man ihn nirgens 
eingeschaltet hat.

Wenn beispielsweise dieser Watchdog durch einen Speicherüberlauf oder 
sonstige Zugriffsfehler eingeschaltet worden ist, muss man den 
fehlerhaften Programmteil finden; Ihn einfach nur wieder abzuschalten, 
bringt meist, wenn überhaupt, nur äusserst kurzzeitig besserung. Mal 
ganz davon abgesehen, daß wir uns damit ganz weit weg von einer 
professionellen Programmierung bewegen.

Ohne Schaltbild oder Programmcode ist hier keine konstruktive 
Hilfestellung möglich!

von Andreas K. (a-k)


Lesenswert?

Niels Hüsken wrote:

> Der Watchdog ist in den meisten Controllern defaultmässig abgeschaltet.
> Es gibt keinen Grund, ihn abzuschalten, wenn man ihn nirgens
> eingeschaltet hat.

Wenn du die Datasheets neuerer AVRs aufmerksam liest, dann weisst du 
dass dies sehr wohl sinnvoll sein kann. Insbesondere wenn man den BOD 
nicht verwendet.

von Jörg B. (manos)


Lesenswert?

Also ich würde erstmal über das Register schauen welche Einheit den 
Reset ausgelöst hat und das dann entweder über die serielle, Display 
oder blinkend anzeigen lassen. Dann hat man die Fehlermöglichkeiten 
wenigstens schon mal was eingeschränkt.

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.