Ich würde gerne einige Erklärungen darüber hören, wie der Arduino Duemilanove den ATMega328P über USB über den FTDI FT232R-Transceiver zurücksetzt.
Ich weiß, dass die IDE einige Spiele mit dem seriellen DTR-Handshaking-Signal spielt. Nachdem ich mir die Schaltpläne angesehen habe, bin ich wirklich daran interessiert, besser in den Griff zu bekommen, wie die Schaltung funktioniert:
100nF 10kOhm
DTR -----||------+------^v^v^----- VCC
|
+--/RESET
Der 10k-Widerstand ist der übliche Pull-up auf der Reset-Leitung. Was leistet der Kondensator in dieser Schaltung?
Als Nebenbemerkung habe ich dies als Ausrede verwendet, um zu versuchen, LTSPICE zu lernen/zu verwenden, also bin ich kein Profi in diesem Tool. Ich habe es in LTSPICE wie folgt modelliert, aber es sieht für mich so aus, als ob das / RESET-Signal genau mit dem DTR-Signal übereinstimmt, was für mich keinen Sinn ergibt. Ich habe das DTR-Signal als Impulsspannungsquelle modelliert, vielleicht ist das das falsche Modell. Ist es die Natur des DTR-Treibers des FTDI (z. B. ist es ein offener Kollektor) oder die Interna des / RESET-Pins auf der MCU, die in der von mir gezeichneten Schaltung nicht vorhanden sind, die dazu führen, dass dies alles elektrisch zusammenhängt?
Außerdem finden Sie hier einige der relevanten Links zu Datenblättern und Schaltplänen als Referenz.
IIRC die Kappe ist mit /RTS verdrahtet, nicht mit DTR.
Wenn /RTS hoch ist, liegen 0 V an der Kappe an. Wenn /RTS auf Low geht, kann die Kappe die Spannung nicht sofort ändern, sodass die Reset-Leitung auf Low geht. Die Kappe wird durch den 10K-Widerstand aufgeladen. Sobald die Reset-Linie über der Reset-Schwelle liegt, startet das uC-Programm.
@LouisDavis hat auf diese Seite verwiesen , die besagt
Der ATmega168 wird zurückgesetzt, indem sein Reset-Pin auf GND gepulst wird. ... durch Setzen der DTR-Leitung auf LOW ... wird der Reset-Pin auf LOW gesaugt, bis der Kondensator über den internen Pull-Up-Widerstand und R1 aufgeladen ist - was den Chip zurücksetzt.
Simuliert:
Auto-Reset
VDTR 1 0 PWL(0 5 0.5m 5 0.000500004 0 1m 0)
Vcc 3 0 5
C1 1 2 100n
R1 3 2 10k
.control
delete all
tran 10n 5m
plot v(1) v(2)
.endc
.END
V(1) ist DTR
oder /RTS
und V(2) ist/RESET
Vicatcu
Vicatcu
tyblu
Vicatcu
jluciani
jluciani
jluciani
Vicatcu