Hi, bisher hab ich mich nicht sonderlich um die Beschaltung des Resets gekümmert... hatte nie Probelme damit. Ich habe gerade mit 6x Siebensegmentanzeigen eine Schaltung aufgebaut bei der mittels des Timers die sekunden durchzählt und die einzelnen Segmente nacheinander angesteuert werden - tut auch prima - am STK500. ^^ Wenn ich auf Batterie (4x Mignon) gehe, will der Prozessor gar nicht erst starten - mache ich einen 1K Pull-Up an den Reset - jetzt startet der Prozessor und nach ca. 5 Sek. 7-Segment-Anzeigen hängt er sich auf. ;( Mit einem Pull Up von 100 Ohm läufft es schon 2h... So Jungs, jetzt zur Frage´: a) wie würde eine wirkich saubere Beschaltung vom Reset aussehen? b) währe das auch noch STK500 programmierverträglich lösbar? (derzeit ziehe ich den Pull-Up zum Programmieren) c) oder soll ich 100 Ohm lassen? ^^ Freue mich auf AW, [int]
normalerweise beschaltet man den reset mit ca 10-100k gegen VCC, schaltet eventuell noch nen 100nF parallel und gut ist. poste mal deinen Schaltplan und Layout, vermutlich ist da irgendwo der Wurm drin !
> 10-100k gegen VCC, schaltet eventuell noch nen 100nF parallel
Der 100nF-Kondensator hat am Reset-Pin nichts verloren. Er verhindert
sogar das Programmieren über ISP. Der Kondensator stammt noch aus alter
Zeit, da der Reset eines Controllers mittels externem R/C-Glied solange
auf LOW gehalten wurde, bis der Controller sich ordnungsgemäß
initialisieren konnte. Hier genügt es, einen 4k7-Widerstand nach Vcc zu
legen. Die Reset-Leitung selbst sollte allerdings kurz sein, damit sie
keine Störungen von der Platine oder aus der Umgebung auffangen kann.
Warum überhaupt ein Widerstand? Spricht etwas dagegen !Reset direkt auf Vcc zu legen? (natürlich nur, wenn die Platine ohnehin kein ISP Anschluß besitzt)
@ Travel Rec. (travelrec) Benutzerseite >> 10-100k gegen VCC, schaltet eventuell noch nen 100nF parallel >Der 100nF-Kondensator hat am Reset-Pin nichts verloren. Nöö, der ist voll OK. > Er verhindert >sogar das Programmieren über ISP. Nöö, das geht wunderbar. > Der Kondensator stammt noch aus alter >Zeit, da der Reset eines Controllers mittels externem R/C-Glied solange >auf LOW gehalten wurde, bis der Controller sich ordnungsgemäß >initialisieren konnte. Stimmt auch nicht. Er soll/muss Störungen filtern, die das besonders empfindliche Resetpins sonst beeinflussen können. Und dann gibts nen Reset. Die Schwellspannung ist bei typ 0,85Vcc! Die alten AVRs der AT90S Serie waren hier besonders empfindlich. > Hier genügt es, einen 4k7-Widerstand nach Vcc zu >legen. Falsch. Atmel empiehlt, 10K oder mehr, gerade um schwachen ISP Adaptern das LOW-ziehen von Reset noch zu ermöglichen. > Die Reset-Leitung selbst sollte allerdings kurz sein, damit sie >keine Störungen von der Platine oder aus der Umgebung auffangen kann. Eben darum die 100nF. MfG Falk
Den Kondensator aber von Reset nach Gnd, parallel zum Widerstand macht keinen Sinn. MW
@Falk: Jeder hat so seine eigenen Erfahrungen. Bei mir ist noch kein Controller aufgrund Störungen auf der Reset-Leitung abgeschmiert, auch ohne den Angstkondensator nicht. 4k7 haben sich als optimaler Wert bei Erhaltung der ISP-Programmierbarkeit erwiesen, ich nutze alle erhältlichen, originalen AVR-Programmer, zuhause und auf Arbeit.
Michael Wilhelm wrote: > Den Kondensator aber von Reset nach Gnd, parallel zum Widerstand macht > keinen Sinn. Ein Widerstand von Reset nach GND macht sehr wenig Sinn... Der Kondensator von Reset nach GND ist OK, solange nicht zu groß (wesentlich mehr als 100 nF sollten es nicht sein).
@ Johannes, witer oben wurden folgende Möglichkeiten aufgeführt: Reset unbeschaltet Reset an Vcc Reset über Widerstand an Vcc Reset über Widerstand an Vcc und Kondensator an Gnd - meine Standardschaltung Reset über Widerstand parallel zu einen Kondensator an Vcc Die letzte Schaltungsvariante macht keinen Sinn. MW
Also bei meinem MSP beschalte ich den Reset wie folgt, vielleicht hilfts ja weiter 47k gegen VCC parallel dazu eine Diode (Kathode bei VCC) ein 2.2uF Kondensator nach Masse Das funzt prima, keine Probleme bis dato Greets
>47k gegen VCC >parallel dazu eine Diode (Kathode bei VCC) >ein 2.2uF Kondensator nach Masse Diese Schaltung löst einen Power-Up Reset aus, was bei einem ATMEGA/ATTiny nicht notwendig ist. Der intergierte Brownout-Detektor sorgt (wenn aktiviert) auch für definierte Start-Up Bedingungen, wenn die Betriebsspannung die Mindestwerte vorübergehend unterschreitet.
Was soll denn dagegen sprechen, Reset direkt an VCC zu legen, wenn man nicht programmieren will? Oder rät Atmel explizit davon ab?
@ Winfried (Gast) >Was soll denn dagegen sprechen, Reset direkt an VCC zu legen, wenn man >nicht programmieren will? Was ja auch in Bastlerkreisen sehr sinnvoll ist. > Oder rät Atmel explizit davon ab? AFAIK nein. MFG Falk
Frank Wolf wrote: > a) wie würde eine wirkich saubere Beschaltung vom Reset aussehen? siehe angehängtes Bildchen! (PE0/1 wg. Mega64, sonst MISO/MOSI) > b) währe das auch noch STK500 programmierverträglich lösbar? Ja, ist es. > c) oder soll ich 100 Ohm lassen? ^^ Nö! Anmerkung an die Fans von in Prozessoren eingebauten Brown-out Schaltungen: Es ist nun mal leider so, dass die Halbleiter-Herstellungsprozesse für Digitaltechnik nicht besonders gut für Analogschaltungen sind und umgekehrt. Daher haben in den Prozessoren realisierte Resetschaltungen immer irgendwo versteckte Kompromisse mit denen ich schon öfters leidvolle Erfahrungen machen musste (Stichwort EN-50155, ein Artikel, der ein paar der wichtigsten Aspekte dieser Norm beleuchtet ist z.B. hier: http://imperia.mi-verlag.de/imperia/md/content/ai/ae/fachartikel/ei/2006/09/ei06_09_032.pdf). Besonders Ärgerlich sind in diesem Zusammenhang kurze Spannungseinbrüche(10-100ms), die von den Prozessoren selber nicht immer erkannt werden, der Core aber trotzdem ausrastet. Auf Boards mit LM809-ern hatte ich noch nie Resetprobleme!
MAX80** http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1194/t/al Allerdings ists mit ISP dann schwierig, dann braucht man noch etwas Vogelfutter.
Pumpkin: Die Max80x sind das selbe wie die LM80x, nur teurer und (in Stückzahlen) schlechter zu bekommen. :) Und das "Vogelfutter" beschränkt sich auf 1 St. Widerstand 1K (also gerade noch so erträglich :-))
Ich leg Reset immer an VCC oder nehm ihn als IO. Dann noch Brownout-Reset setzen, fertisch. Reprogrammiert wird per Bootloader, damit sind versehentliche Verfusungen Schnee von gestern. Peter
Ein externer Resetbaustein mag in bestimmten Konstellationen Sinn machen, in vielen Fällen halte ich das aber für völlig übertrieben. Ich habe schon eine Menge professionell gefertigter Schaltungen gesehen, die seit Jahren im Einsatz sind und problemlos mit den internen Reset-Funktionalitäten des AVR auskommen. Ich glaube, bei den neueren AVR-Bausteinen ist die Resetlogik auch nochmal verbessert worden. Reset an VCC in Bastlerkreisen: Ja, Programmiermöglichkeit braucht es auf einem Board z.B. dann nicht, wenn man gesockelte DIL-Chips verwendet, die man woanders programmiert.
@ Winfried (Gast) >Reset an VCC in Bastlerkreisen: Ja, Programmiermöglichkeit braucht es >auf einem Board z.B. dann nicht, wenn man gesockelte DIL-Chips >verwendet, die man woanders programmiert. Bei den sieben Zwergen hinter den sieben Bergen vielleicht . . . ;-) SCNR Falk
Winfried wrote: > Reset an VCC in Bastlerkreisen: Ja, Programmiermöglichkeit braucht es > auf einem Board z.B. dann nicht, wenn man gesockelte DIL-Chips > verwendet, die man woanders programmiert. Nö, muß nicht gesockelt sein. Daß bestimmte Programmiermöglichkeiten den Resetpin benötigen, heißt doch nicht, daß alle ihn benötigen. Es geht sehr wohl ohne. Peter
Bei einer direkten Vcc/Reset-Verbindung schliesst der ISP-Programmer die Vcc gegen GND kurz, ob das sinnvoll ist ....? Ein Kondensator von Reset gegen GND machr durchaus Sinn, jedoch bekommt man dann Probleme beim Debuggen mit bspw. dem Dragon oder dem JTAG-ICE MK2. LG EC
@ Peter Dannegger (peda) >Daß bestimmte Programmiermöglichkeiten den Resetpin benötigen, heißt >doch nicht, daß alle ihn benötigen. >Es geht sehr wohl ohne. Meinst du einen B*******r ? ;-) MfG Falk
man kann den Reset ja auch per Jumper auf VCC legen, gefällt mir aber auch nicht, dann schon lieber über einen R. Gegen den LM809 spricht eigentlich nur das es den nicht bei Reichelt und CSD gibt und man evtl. 5V/3,3V Varianten braucht.
@Falk:
> Bei den sieben Zwergen hinter den sieben Bergen vielleicht . . . ;-)
Wie, du glaubst nicht, das DIL-Schaltkreise in Bastlerkreisen noch
genutzt werden? Du musst bedenken, nicht alle Anwendungen sind hoch
komplex. Eine einfache Blinkschaltung oder eine simple Zeitschaltuhr
braucht mit Sicherheit kein SMD. Platz genug ist da und ich arbeite z.B.
viel lieber mit steckbaren DIL-IC's.
Und Leute, die SMD benutzen, sind nicht unbedingt die besseren
Elektroniker ;-)
@ Winfried (Gast) >Wie, du glaubst nicht, das DIL-Schaltkreise in Bastlerkreisen noch >genutzt werden? Doch. > Du musst bedenken, nicht alle Anwendungen sind hoch >komplex. Eine einfache Blinkschaltung oder eine simple Zeitschaltuhr >braucht mit Sicherheit kein SMD. Platz genug ist da und ich arbeite z.B. >viel lieber mit steckbaren DIL-IC's. Gar kein Problem. Aber wer einen IC sockelt und zum programmieren rausnimmt, obwohl er per ISP programmiert werden kann, der hat ein paar grundlegende Dinge noch nicht verstanden. MfG Falk
Falk Brunner wrote: > Gar kein Problem. Aber wer einen IC sockelt und zum programmieren > rausnimmt, obwohl er per ISP programmiert werden kann, der hat ein paar > grundlegende Dinge noch nicht verstanden. Kommt drauf an. Wenn ich z.B. nen ATtiny85 einsetze, braucht ja das ISP schon 4 der 6 IOs. Da ist die Gefahr groß, daß es zu Konflikten mit der Applikation kommt. Die kleinen AVRs würde ich daher besser nicht per ISP reprogrammieren, sondern per Bootloader. Ich sockele sie aber auch, da der Bootloader vorher im STK500 reingebrannt werden muß. Peter
Wenn man mal ins aktuelle Mega8 Datenblatt auf Seite 38 guckt sieht man dass da intern bereits ein Pullup an RST ist. Um von Seite 242 zu zitieren: Rrst Reset Pull-up Resistor Min: 30k / Max: 80k Damit ist der interne gemeint. -> Brownout Detector an, RST unbeschaltet, alles gut
@ Hunz > Wenn man mal ins aktuelle Mega8 Datenblatt auf Seite 38 guckt sieht man > dass da intern bereits ein Pullup an RST ist. Das ist schön. Aber ein 100nF an RESET ist doch bestimmt trotzdem sinnvoll.
Ok, da meine Aussage oben nicht ganz eindeutig war (und anschließend Diskutiert wurde ^^), ich meinte Folgende Beschaltung: Einen Widerstand mit 10-100k gegen VCC (und nicht gegen GND), meist nehme ich auch den 10k, ich kenne keinen Programmer der den bisher noch nicht sauber gegen Masse ziehen konnte (und ich hab schon eine serielle, eine parallele Bastellösung sowie eine professionelle Parrallellösung und eine USB-Lösung ausprobiert) sowie ein Kondensator vom Reset-Pin zu GND, zumindest wenn man Angst hat, das irgendwelche Störungen einen Reset auslösen können. Da soein kleiner Kondensator nix kostet und eine eventuelle Fehlerquelle ausschließt verwende ich ihn halt. Ob das mit JTAG o.Ä. geht weis ich nicht. Fürs einfache Programmieren mit einem AVRISP MK II reicht es aber mehr als locker und ungewollte bzw. nicht nachvollziehbare Resets hatte ich noch nie ;) Auch nicht wenn auf dem Board PWMs einige Ampere schalten o.Ä. und der ISP-anschluss mit nem guten Meter lose in der Gegend fliegender Drähte realisiert wurde. Gruß, Marc
Der Kondensator ist direkt schädlich, wenn man über den ISP-Anschluss auch DebugWire fahren will.
@Mike J.: Warum? * Um eine Delay beim Power-on Reset zu erzeugen ist das nicht nötig - siehe Datenblatt S. 39 * Irgendwelche kurzen Glitches (woher auch immer die kommen sollen) sind auch kein Problem da die minimum pulse length tRST 1.5µs beträgt (S. 38)
@Falk: > Gar kein Problem. Aber wer einen IC sockelt und zum programmieren > rausnimmt, obwohl er per ISP programmiert werden kann, der hat ein paar > grundlegende Dinge noch nicht verstanden. Oh, da kannst auch du was dazulernen: Stell dir vor, du baust eine Schaltung 50 mal auf. Und überall muss ein programmierter AVR-Chip rein. Auf dieser Platine braucht man dann keine ISP-Pins vorzusehen, sich keine Gedanken um Doppelbelegung von Pins usw. Man programmiert die Chips extern und setzt sie später auf die Platine. Pullup und Reset: Dran denken, einige AVR's haben keinen internen Pullup, da darf man den Pin nicht offen lassen. Kondensator am Resetpin: Nur mal so als Alternative: Es müssen keine 100nF sein, um evtl. EM-Einkopplungen abzufangen, ich denke mit 1nF wird man in den meisten Fällen schon auf der sicheren Seite sein.
Interessant übrigens auch, wie sich die Reset-Logik bei den AVR's verändert hat. Ein Tiny 12 löste bereits bei 50ns Puls einen Reset aus. Die hab ich in Schaltungen auch als sehr Reset-empfindlich erlebt. Die Tastspitze des Oszis an den Resetpin gehalten reichte schon aus, einen Reset auszulösen (Reset hatte einen externen Pullup). Beim Tiny 45 sind es hingegen 2.5us minimal Pulslänge, damit ein Reset auslöst. Beim Mega 8, wie oben schon geschrieben wurde, 1.5 us.
@ Winfried (Gast) >Oh, da kannst auch du was dazulernen: Das tue ich gern. >Stell dir vor, du baust eine >Schaltung 50 mal auf. Und überall muss ein programmierter AVR-Chip rein. >Auf dieser Platine braucht man dann keine ISP-Pins vorzusehen, sich >keine Gedanken um Doppelbelegung von Pins usw. Man programmiert die >Chips extern und setzt sie später auf die Platine. Schon klar, ist aber hier weniger der Fokus der Diskussion. >Pullup und Reset: Dran denken, einige AVR's haben keinen internen >Pullup, da darf man den Pin nicht offen lassen. Eben. >Kondensator am Resetpin: Nur mal so als Alternative: Es müssen keine >100nF sein, um evtl. EM-Einkopplungen abzufangen, ich denke mit 1nF wird >man in den meisten Fällen schon auf der sicheren Seite sein. Ja, aber 100nF ist der Wald und Wiesentyp, der immer vorhanden ist. Passt, wackelt und hat Luft. >verändert hat. Ein Tiny 12 löste bereits bei 50ns Puls einen Reset aus. >Die hab ich in Schaltungen auch als sehr Reset-empfindlich erlebt. Die Eben! Darum der Kondensator! MFg Falk
@ ALL Erstmal Danke für die intressanten Vorschläge und Einsichten in euer Arbeiten mit dem AVR und Reset. Mein Problem hat sich gelöst, ich hatte zwischen Bat und AVR keine Kondensatoren (jetzt sind es die üblichen 2). Der Timer hat die 5x 7-Segmente nacheinander AN/AUS geschaltet und damit ohne Kondensatoren für ein wenig Stress bei VCC gesorgt. Deshalb hats auch mit der Versorgung vom STK500 geklappt, da wird VCC schon ein bissi stabilisiert sein. Ok, nochmal danke für die Tipps, Grüße, [int]
Mal ne dumme Frage: Wenn man einen zu kleinen Pull-up Widerstand von Reset auf Vcc hat, kann es doch beim ISP HV-Programming zu Problemen kommen. Falls keine Verbraucher außer der µC an der Spannungsversorgung sitzen, kann das Programmiergerät nicht nur den Resetpin auf 12V hochziehen. Die Versorgungsleitung könnnte doch dabei auch angehoben werden und den µC zerschießen. Sehe ich hier was falsch?
>kann das >Programmiergerät nicht nur den Resetpin auf 12V hochziehen. Die >Versorgungsleitung könnnte doch dabei auch angehoben werden und den µC >zerschießen. Auch beim HV-Programming bekommt der Controller am VCC-Pin seine "normale" Versorgungsspannung von z. B. 5 V. Dafür hat das Programmiergerät SOrge zu tragen. Die speziellen 12 V am Reset-Pin sind nur zusätzlich.
>Wenn man einen zu kleinen Pull-up Widerstand von Reset auf Vcc hat, kann >es doch beim ISP HV-Programming zu Problemen kommen. Ah, jetzt verstehe ich Deine Frage richtig, glaube ich... ;-) Ich denke, es ist eher umgekehrt: Bei zu kleinem Reset-zu-VCC-Pullupwiderstand wird es der Programmer eher nicht schaffen, den Resetpin auf 12 V zu bringen. Diese 12 V sind ja nur mit einem sehr kleinen Strom belastet. Vor dem Ausgang der 12 V-Resetleitung des Programmers wird deshalb sinnvollerweise ein Schutzwiderstand passender Größe sitzen.
AVRFan wrote: > einem sehr kleinen Strom belastet. Vor dem Ausgang der 12 > V-Resetleitung des Programmers wird deshalb sinnvollerweise ein > Schutzwiderstand passender Größe sitzen. Wenn dem so ist. (z.B. diverse Eigenbau-Programmer) ;-) Aber du hast schon recht. Der Programmer gibt ja auch seine 5V aus. Hier würden wohl nur die 12V für Reset stärker belastet werden. PS: Bei den ICSP (In Circuit Serial Programming) Schnittstellen von Microchip wird zum Pull-up Widerstand am Reset-PIN zusätzlich noch eine Schottky-Diode empfohlen! Deshalb kam ich ja auf die Idee.
Hallo zusammen, in diesem Zusammenhang habe ich mal ein Bild aus der Atmel AVR ApplicationNote 040 eingefügt. Hier wird die Beschaltung des Reset-Pins vorgeschlagen. Kurze Zusammenfassung: Allgemein gilt: R gegen VCC - 10k C gegen GND - 4n7 Diode gegen VCC
Die AVR-Appnote 040 stammt aus der Zeit der Classic-AVRs (AT90S1200 & co) und hatte damals durchaus ihre Berechtigung. Vieles gilt heute noch (z.B. Anordnung der Versorgungsleitungen und Stützkondensatoren), Einiges aber nicht mehr (Reset-Beschaltung in Verbindung mit BOD und DW). ...
Kann man auch den internen Pullup-Widerstand am Resetpin verwenden? Also zwar nicht den Resetpin per Fuse abschalten, aber trotzdem als Ausgang definieren und Pullup einschalten. Man hat zwar keinen Ausgang gewonnen, aber spart den externen Pullup. Mit Kondensatoren an Programier-Pins habe ich schlechte Erfahrungen gemacht. Ein Kondensator am Reset bei gleichzeitigem interner Resetschaltung sehe ich als überflüssig an, den dann lieber ganz nah an die Spannungspins am IC setzen.
Jens schrieb: > Kann man auch den internen Pullup-Widerstand am Resetpin verwenden? > Also zwar nicht den Resetpin per Fuse abschalten, aber trotzdem als > Ausgang definieren und Pullup einschalten. Der ist beim Resetpin sowieso eingeschaltet, es sei denn, du setzst diesen Pin als normales I/O. Nur ist 30-60K manchmal etwas viel, deswegen nochmal 10-33K parallel. Und nein, ein Kondensator ist nur selten nützlich und nötig - wenn es überhaupt so starke Störungen geben soll (und mir ist das noch nie passiert, nicht mit EM, Neonlicht, RFID, BT...), dann sicher nicht größer als 4,7nF. EDIT Atombombe natürlich ausgeschlossen.
:
Bearbeitet durch User
Und dafür musstest du diesen uralten Thread ausbuddeln? Jens schrieb: > Kann man auch den internen Pullup-Widerstand am Resetpin > verwenden? Also zwar nicht den Resetpin per Fuse abschalten, aber > trotzdem > als Ausgang definieren und Pullup einschalten. Mal abgesehen davon, dass das nicht geht. Also nur zum Spass einmal angenommen es ginge, dann bestimmt nicht als Ausgang. Sollen sich der Programmer und der Controller duellieren. Wer zuerst qualmt, hat verloren? > Man hat zwar keinen Ausgang gewonnen, aber spart den externen Pullup. Ein Reset-Pullup ist immer eingebaut. > Mit Kondensatoren an Programier-Pins habe ich schlechte Erfahrungen > gemacht. Ein Kondensator kann drin sein, muss aber nicht. Reset ist kein Programmierpin. Wenn der Programmer nicht damit klarkommt, dass da eine kleine Kapazität dranhängt, ist der Programmer Scheisse. Etwas anderes ist allerdings Debugwire. Das läuft komplett über den Reset-Pin. Dann darf kein Kondensator drin sein. Aber davon kann der Atmega8 nur träumen. > Ein Kondensator am Reset bei gleichzeitigem interner Resetschaltung sehe > ich als überflüssig an, den dann lieber ganz nah an die Spannungspins am > IC setzen. Nicht den dann lieber. Der Stützkondensator ist ohnehin absolute Pflicht. Hier steht alles genau drin: http://www.atmel.com/images/atmel-2521-avr-hardware-design-considerations_application-note_avr042.pdf mfg.
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.