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
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)
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
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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.