Hallo, ich habe eine Schaltung aufgebaut, die läuft wochenlang bei Versorgung übers ISP-Kabel vom STK500 durch (I-Aufnahme unter 100mA). Sobald ich das Ganze aber ans externe Netzteil hänge (mit 10.000uF & 78S12 15mV Rauschen vorstabilisiert, auf der Platine selbst nochmal mit 7805, 1.000uF), läuft das Programm nicht mehr durch, irgendwo zwischen gar nicht los und weniger als 10 Stunden. Ich habe mal das Phänomen beobachten können, das auf dem LCD Zeichen aufblitzen, die eigentlich per uart_puts() raus gehen sollten. Wenn ich das Kabel zwischen Rx, Tx, GND mit dem STK500 verbinde, läuft es wieder stabil. Gibt es Besonderheiten, wenn über uart etwas ausgegeben werden soll, aber nix angeschlossen ist? Stichwort Bufferoverflow? Aber es funktioniert ja manchmal ne Weile... Benutzt P.Fleury's uart-Implementierung Handshaking? Ich weiß langsam nicht mehr wo ich im Stroh stochern soll. Danke für eure Hilfe! Grüße, Gregor
Benutzt du einen externen Quarz > 8MHz? Wenn ja, CKOPT setzen. Gruß, Volker
16Mhz. Fuse hab ich soeben gesetzt. Da wäre ich wohl tatsächlich im Leben nicht drauf gekommen, danke! Werde das Verhalten mal bis morgen beobachten.
Der Reset-Pin hat nen 100k Pullup. Sollte es also nicht sein. Bisher läuft die Schaltung seit 3 Stunden durch. Sieht also gar nicht so übel aus. freu
> Der Reset-Pin hat nen 100k Pullup. Sollte es also nicht sein.
NUR einen 100k Pullup? Kein Kondensator? Damit lädst du dir die
nächstbeste kapazitive Einstreuung als Resetpuls ein.
Ich habe die Erfahrung gemacht, dass der interne Pullup meistens nicht ausreicht und selbst der hat 30-60kOhm laut Datenblatt. Daher meine Empfehlung: 3,3k - 10k oder sowas sollte besser funktionieren. Ich hoffe, dass ich jetzt hier nichts falsches gesagt habe ;)
Wird denn wirklich ein Reset ausgelöst, oder verrent sich nur die Software irgendwo? In MCUSR wird gespeichert, wer den letzten Reset ausgelöst hat.
Ich hänge meist 100nF zwischen Reset und GND, dann reicht auch der interen 100k Widerstand. Das bringt mehr als nur 10k ohne Kondensator.
Für Reset ist eine externe RC-Beschaltung immer sinnvoll. Je nach 'Anstiegszeit' der Versorgungsspannung können vereinfachte Varianten schon mal Probleme bereiten.
Also allein durch das Setzen des Full Rail-to-Rail Modus (CKOPT-Fuse) läuft das Programm jetzt seit 27,5h Fehlerfrei durch. Vorher kam es zu abstürzen / resets und die SW begann von vorn, bzw. zu komischen Sachen beim Anlegen der Betriebsspannung (uart_puts(inhalte) kamen aufs LCD). Zumindest mein Problem scheint erfolgreich gelöst worden zu sein! Danke Volker! Im nächsten Design kann ich ja einen Tiefpass berücksichtigen. Grüße, Gregor
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.