Hintergrund...
Ich bin ein Neuling in AVR-Anwendungen. Ich habe kürzlich zwei ATTINY13-basierte Schaltungen (verherrlichte LED-Blinker) gebaut, die (unabhängig) auf dem Steckbrett korrekt funktionierten. Als ich sie auf einem Lötperfboard mit einem gemeinsamen Netzteil kombinierte, ging es drunter und drüber. Nach vielen Nachforschungen stellte sich heraus, dass sie ständig zurückgesetzt wurden.
Ich hatte Pin 1 (Reset) jedes Mikros nicht angeschlossen. Ich habe nach geeigneten Wegen zum Umgang mit dem Reset-Pin gesucht und daraus Folgendes implementiert:
Parallel zur Stromversorgung wurde ein 100-uF-Elektrolytkondensator hinzugefügt, um bei einer möglichen Stromaufnahme zu helfen, mit der die Stromversorgung zu "langsam" umgehen könnte.
4,7K-Widerstand von VCC
bis hinzugefügtRESET
0,1 uF Keramikkondensator von GND
bis hinzugefügtRESET
Diese Schritte lösten das Problem vollständig.
Die Frage:
Die Seite, die ich oben verlinkt habe, gibt Ratschläge, wenn ich ISP (In-System-Programmierung) mache, was ich (noch) nicht mache. (Ich programmiere die Mikros separat, ohne dass andere Komponenten daran angeschlossen sind.)
Ich habe verschiedene Werte von Kondensatoren (10 nF, 0,1 uF usw.) und Widerständen (4,7 K, 10 K usw.) gesehen und bin mir nicht sicher, welche Faktoren diese Werte ändern. Kann jemand etwas Licht in die Funktionsweise der Reset-Pin-Isolation bringen und wie die zu verwendenden Komponentenwerte berechnet werden? Können Sie erklären, welche Werte zu verwenden sind, wenn es keinen systeminternen Programmierheader gibt?
Atmel AVR042: Überlegungen zum AVR-Hardwaredesign sagen uns, dass der Kondensator am Reset-Pin nicht erforderlich ist. Ich persönlich finde es übertrieben. Es gibt keinen Grund für Sie, weiterhin Dutzende von AVR-Schaltungen herzustellen, jede einzelne mit diesem redundanten Kondensator.
Was den Reset-Pullup-Widerstand betrifft:
Die Reset-Leitung hat einen internen Pull-up-Widerstand, aber wenn die Umgebung verrauscht ist, kann dieser unzureichend sein und ein Reset kann daher sporadisch erfolgen. Siehe Datenblatt für den Wert des Pull-up-Widerstands bei bestimmten Geräten. Durch Anschließen eines Pull-up-Widerstands an die RESET-Leitung kann der RESET so angeschlossen werden, dass sowohl eine Hochspannungsprogrammierung als auch ein gewöhnlicher Low-Pegel-Reset eingegeben werden können. Dieser Pull-up-Widerstand stellt sicher, dass der Reset nicht unbeabsichtigt auf Low geht. Der Pull-up-Widerstand kann theoretisch beliebig groß sein, aber wenn der Atmel®AVR® von zB STK500/AVRISP programmiert werden soll, sollte der Pull-up nicht so stark sein, dass der Programmierer RESET nicht aktivieren kann, indem er die RESET-Leitung niedrig zieht. Der empfohlene Pull-up-Widerstand beträgt 4,7 kΩoder größer, wenn STK500 für die Programmierung verwendet wird. Damit debugWIRE richtig funktioniert, darf der Pullup nicht kleiner als 10kΩ sein.
Wenn Sie sich professionelle Produkte ansehen, die die AVR-Mikros enthalten, wie z. B. das Arduino, seine zahlreichen Klone und Dutzende von Entwicklungskits, werden Sie feststellen, dass die meisten einen 4,7-kΩ- oder 10-kΩ-Widerstand verwenden.
Und insbesondere für Ihren ATtiny13 gibt das Datenblatt an, dass der Pullup idealerweise im Bereich von [20 kΩ, 80 kΩ] liegen sollte.
Ich verwende immer nur einen 10k-Pullup-Widerstand gegen Vcc am /Reset-Pin und hatte nie Probleme. Es ist im Allgemeinen auch eine gute Idee, einen 100-nF-Kondensator in der Nähe des Vcc-Pins zwischen Vcc und GND für einen stabilen Chipbetrieb einzubauen. Meiner Meinung nach ist der Kondensator am Reset-Pin nicht notwendig, das heißt, ich habe noch nie einen in eine von mir entwickelte AVR-Schaltung eingebaut (und ich habe viele entwickelt) und es hat mir nie Kummer bereitet.
JYelton
JYelton
Christoph B
JYelton
PetPaulsen
Bruno Ferreira
Christoph B
Vicatcu
Christoph B
Benutzer20088