Forum: Mikrocontroller und Digitale Elektronik mega16 startet ständig neu?!


von Christoph Söllner (Gast)


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

von TravelRec. (Gast)


Lesenswert?

Stell´ das Programm rein! Vermutung: Watchdog läuft über.

von hans dieter (Gast)


Lesenswert?

hast du dir das msusr mal ausgegeben (direkt nach reset)? evtl. kann man
da schon sehen, was die ursache ist (wdt, bod, pullup am reset pin zu
schwach)

von hans dieter (Gast)


Lesenswert?

das muss MCUCSR heissen

von Volker (Gast)


Lesenswert?

CKOPT programmiert?

von Olaf Kerner (Gast)


Lesenswert?

Du musst auch auch mal antworten, wenn du ein Thema anfängst!

von Christoph Söllner (Gast)


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

von TravelRec. (Gast)


Lesenswert?

Hättest Du jetzt PortC.2 gesagt, hätte ich JTAG vermutet, aber so - Du
scheinst aber der einzige mit dem Problem zu sein. Und die Controller
waren neu, ja?

von Christoph Söllner (Gast)


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

von TravelRec. (Gast)


Lesenswert?

Naja, wir wollten ja auch keine Namen wissen ;-) - wundert man sich nur
ein wenig, wo neue und trotzdem defekte Controller ´rumfliegen.

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.