mega16 startet ständig neu?!

Gast #266155
Lesenswert?
• ▲
▼
Hi *,

ich habe hier ein Phänomen, aus dem ich partout nicht
schlau werd. Hab nen mega16; da laufen drei Timer-IRs,
der serielle und das Hauptprogramm.

An der seriellen hängt ein 75176 RS485 Treiber. Wenn
der Daten empfängt und diese an den Mega weiterschickt,
startet die Kiste neu, bei 250kBit sehr oft, wobei ich
vermute, dass das nur beim Framing-Error der Fall ist.

Ziehe ich das UART-Kabel ab, laufen die Timer-ISRs und
das Hauptprogramm einwandfrei.

- Habe mit dem Oszi die Spannungspegel (Vcc, etc) geprüft,
passen, platt wie ne Flunder.
- Habe mit dem Logic-Analyser die Daten geprüft,
passen (btw, eine andere MCU mit einer ähnlichen UART
ISR, wo nur zwei Variablen mehr drinnen sind, läuft ein-
wandfrei).
- Hab die Quarzfrequenz angeschaut, 16.000MHz;
- Hab die Fuses kontrolliert, BOD aus, Quarz auf maximaler
Einschwingzeit. Funktioniert an zwei anderen zumindest ein-
wandfrei.
- Habe die MCU getauscht, nix genützt.

Ich hatte das gleiche Problem schonmal mit der 0421J
Revision, da lief keines meiner Programme fehlerfrei,
habe durch Zufall die 0539J bekommen und da lief die
gleiche Hex-Datei sofort.

Aber jetzt geht dieses eine Programm eben auch nicht
mehr auf der MCU, auf der es schon mal lief. Ich habe
auch nichts geändert, es ist die gleiche Platine.
Auch passiert das, wenn ich alles auf dem STK-500 auf-
baue; es scheint, als wäre das kein elektrisches Pro-
blem.

Hat das Problem schon mal jemand gelöst oder kann es
zumindest bestätigen?
Danke, Christoph
Gast #266161
Lesenswert?
• ▲
▼
Hi zusammen, bitte meine späte Antwort zu entschuldigen, ein Bagger hat
eine Leitung durchgebissen und wir hatten danach bis Feierabend (grade
eben ^^) kein Internet mehr.

- WDT: ist aus, Register auf 0x00, zur Sicherheit
  aber auch mit und ohne #asm("wdr"); probiert.

- Meine Vermutung: FrameError? Falsch. Auch ohne
  Auslesen des STATUS-Registers in der USART ISR
  diese Neustarts.

- CK-Opt ist leer, habe externe Cs dran. Passiert
  reproduzierbar auch im STK-500.

- MCUCSR ausgegeben: Passt einwandfrei.

- Statische Entladungen irgendwo in der Schaltung:
  konnte ich sehr gut ausschliessen, mein Osci auf
  Trigger-Level 6V Impuls und 5ns (!) Sample-Dauer
  hat nie irgendwas aufgezeichnet an Vcc, und allen
  Port-Pins. Habe alle gemessen.

Habe mittlerweile den Fehler gefunden. Und zwar war wohl
bei den MCUs, die ich bekommen habe, aus irgendeinem
Grund der Ausgang PORTB.2 defekt; immer wenn ich den ge-
setzt habe, hat das einen Reset ausgelöst. Vllt. innen
drin einen Kurzen. Weil Vcc konstant 5V geblieben ist,
kann es kein BrownOut gewesen sein, der ist ja auch aus.
Ich weiß es nicht, nur hatte mir ein Arbeitskollege den
Tip gegeben, er hätte das angeblich auch mal gehabt.

Vielen Dank an euch.
Christoph
Gast #266163
Lesenswert?
• ▲
▼
Also wo sie der Händler her hat, weiss ich natürlich nicht,
vielleicht waren die auch unsachgemäß gelagert. Will keinen
Rufmord betreiben, darum habt bitte Verständnis dafür, dass
ich den Namen des Händlers nicht nennen kann; es war zumin-
dest nicht beim Reichelt, soviel sei gesagt.
Christoph

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.