Wofür ist die Obergrenze in der Arduino-Rücksetzschaltung?

7

Meine Arduino AtMega328P-Karte verfügt über diese Schaltung zum Zurücksetzen. Ich verstehe, dass der Schalter (LTSpice hatte kein Schaltersymbol) die Leitung nach unten zieht, das ist offensichtlich, aber was macht die Kappe, wenn das Zurücksetzen über DTR erfolgt? Invertiert es das Signal oder lässt es nur einen Impuls zu?

Geben Sie hier die Bildbeschreibung ein

BSEE
quelle

Antworten:

8

Ja.

Es wandelt das pegelgetriggerte Signal DTR in ein flankengetriggertes Signal um und bewirkt eine Pegelverschiebung innerhalb des Betriebsspannungsbereichs der MCU (+/- ein Vorwärtsdiodenabfall).

DTR (Data Terminal Ready) ist eine Signalleitung, die zur Steuerung des Hardwareflusses in verschiedenen seriellen EIA-Protokollen (z. B. EIA-232) verwendet wird. In Ihrem Fall wird es "gehackt", um als vom Host initiierter Reset Ihres Mikrocontrollers zu dienen.

Benutzerfreundlichkeit

Der Host hat eine Softwaresteuerung über den Status der DTR-Leitung, aber die Implementierung eines kurzen Impulses ist möglicherweise aufgrund der Planung oder anderer Aufgaben nicht möglich.

Geschwindigkeit

Vielleicht möchten Sie einen wirklich schnellen Reset (Sie möchten nicht, dass ein Benutzer bemerkt, dass das Mikro einen Reset durchlaufen hat). Dies wäre mit der Softwaresteuerung der Reset-Leitung direkt über DTR nicht möglich. Sie müssten über Ihre Host-Software ein Low-Level und dann ein High-Level senden.

Level-Übersetzung

Die DTR-Leitung kann auf EIA-232-Pegeln liegen, viele Volt höher (und niedriger), als der Mikrocontroller sicher tolerieren kann. Die Wechselstromkopplung der Rücksetzkante begrenzt den Strom (Wellenform-Energie) stark, so dass er durch die am Rücksetzstift im Mikrochip angebrachten ESD-Schutzdioden sicher geklemmt werden kann.

DrFriedParts
quelle
1
+1 für: Es wird "gehackt", um als vom Host initiierter Reset Ihres Mikrocontrollers zu dienen.
Garrett Fogerlie
2
Ich bin nicht der Meinung, dass die Wechselstromkopplung den Strom stark einschränkt. Tatsächlich bin ich schockiert über das schlechte Design. Grund: Wenn DTR hoch ist, gibt es kein Problem ... Dann geht es niedrig und zieht die Rücksetzleitung "fast augenblicklich" nach unten. Bisher kein Problem, und die Kappe lädt sich durch den Widerstand auf und erreicht Vcc auf der Seite der Rücksetzleitung und niedrig auf der DTR-Seite. Einige Zeit später kehrt DTR hoch zurück ... was passiert ist, dass ein Impuls von Vcc x2 in die Rücksetzleitung eingespeist wird. Daher sieht die Schaltung schlecht aus und kann Silizium beschädigen, sofern keine Komponenten gezeigt werden.
Andy aka
Viele AVRs unterstützen die Verwendung des Reset-Pins als GPIO. In diesem Fall müssen Sie einen 12-V-Impuls auf der Reset-Leitung verwenden, um ihn neu programmieren zu können. Sie sind sich nicht sicher, ob dies bei dem betreffenden AVR der Fall ist, aber ein 2x Vcc Puls könnte sehr gut in spec sein
Gorloth
@Andy - Der Großteil der Energie in einem Signal mit schneller Flankenrate und niedriger Wiederholungsrate ist das untere Ende des Spektrums (gegen 0, wenn die Wiederholungsrate abnimmt). Der Kondensator bildet hier ein Hochpassfilter, das das untere Ende ausschneidet. In Bezug auf die Kante selbst verfügt der Reset-Pin über TVS-Dioden, die eine solche gelegentliche Kante verarbeiten können. Sie sind für mindestens 5 kV HBM ausgelegt.
DrFriedParts
OK - Ich habe es gerade überprüft und der Pin kann +/- 40 mA (absolute maximale Nennleistung) aufnehmen und auf 13 V angehoben werden. Ich denke, es ist in Ordnung, aber dies hängt davon ab, ob der DTR von Natur aus auf unter 40 mA begrenzt oder begrenzt ist bis unter etwa 10V.
Andy aka