Welche Werte von Widerstand und Kondensator sind für die AVR-Reset-Pin-Isolation zu verwenden?

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:

  1. 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.

  2. 4,7K-Widerstand von VCCbis hinzugefügtRESET

  3. 0,1 uF Keramikkondensator von GNDbis 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?

AVR-Reset-Pin-Isolierungsschema

Antworten (2)

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.

20.000 zu 80.000 oder 20.000 geteilt durch 80.000? :)
Vielen Dank für den Link zum Hardwaredesign. Dieses Dokument war mir nicht bekannt!
Haha, ich habe dieses Zeichen verwendet, weil jeder das Minuszeichen verwendet. Negativer Widerstand würde auch keinen Sinn machen :)
Ich sehe normalerweise, dass die Tilde (~) früher "durch" bedeutet, aber auch "ungefähr". Ich denke, es kommt auf den Kontext an. Vielen Dank für den Hinweis, dass das Datenblatt den Reset-Pullup-Widerstand auflistet. Ich hatte nicht bemerkt, dass es diese Informationen enthalten würde. Das Datenblatt, das ich habe, zeigt, dass der Pull-up-Widerstand für den Reset-Pin zwischen 30k und 80k liegt. Jetzt weiß ich wenigstens wo ich suchen muss. Vielen Dank!
Ein weiterer guter Indikator für den Wertebereich des Widerstands, den ich häufig sehe, ist: 20 k Ω 80 k Ω
Vielleicht passt die mathematische Notation für ein Intervall [20kΩ, 80kΩ] gut.
@BrunoFerreira: Es ist auch verlockend, die Matlab-Notation 20k:80k zu verwenden ... aber das wird immer alberner und alberner. Ich schätze, das nächste Mal füge ich einfach die Tabelle aus dem Datenblatt ein :)
@JonnyBGood die Wahrscheinlichkeit, dass Sie einen funktionellen Unterschied zwischen einem 10k-Pullup, einem 20k-Pullup oder einem 80k-Pullup nachweisen können, liegt irgendwo im Intervall [schmal, keine) ... Ich bin dafür, den Anleitungen der App-Notizen zu folgen, aber im Ernst?
@vicatcu Es liegt nicht an mir, den Unterschied zu demonstrieren. Atmel hat seine Chips unter wirklich harten Bedingungen getestet und die Werte ermittelt. Ich denke, sie haben die Zuverlässigkeit des Reset-Pullups grafisch dargestellt und entschieden, dass mindestens 20k erforderlich sind, um eine Ausfallrate von 0,0001% zu erreichen. Sicher, Sie können sogar eine LED als Pullup oder als Bleistiftpapierspur verwenden, sie hat auch einen Widerstand. Persönlich mache ich mir nie die Mühe, diese Pullup-Werte zu überprüfen, aber da JYelton es richtig machen will, wer bin ich, um ihn aufzuhalten?
AFAIR, das Datenblatt gibt an, dass es einen internen Pull-up des Bereichs gibt, nicht dass der Wert des Bereichs für einen externen verwendet werden sollte; Der Wert für externes (stärkeres) Pull-up sollte noch niedriger sein, 4K7-10K AFAIK von Kanda- und AVR-Anwendungen.

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.

Können Sie erklären (oder auf ein gutes Anfänger-Tutorial verweisen), wie diese winzigen Kondensatoren zusätzlich zu oder anstelle eines größeren Elkos helfen, der parallel zur Stromversorgung liegt?
Es befasst sich mit "Welligkeitsfrequenzen" und kann ein komplizierteres Thema sein, als man auf den ersten Blick sieht, aber mindestens 100 nF sind eine akzeptierte Faustregel für Bypass-Kondensatoren. Hier ist einer (von vielen) Referenzartikeln, die von Interesse sein könnten: seattlerobotics.org/encoder/jun97/basics.html . Sie können auch verwandte Beiträge auf dieser Website finden, indem Sie nach „Bypass“ oder „Entkopplung“ suchen.
Große Elektrolytkondensatoren verarbeiten die niedrigen Frequenzen, sind jedoch bei hohen Frequenzen unwirksam. Kleine Keramikkondensatoren (0,1 uF) verarbeiten die hohen Frequenzen, sind jedoch bei niedrigen Frequenzen unwirksam.
Verwenden Sie also beide, der Vorrat sollte sowieso einen großen haben, und den kleinen vor Ort. Induktion und HF können ein Problem sein, aber im Extremfall. Interessant, dass HSVP-Überlegungen auch keine Diode in Reihe mit diesem Reset-Pin-Widerstand haben.