Frage:
So verhindern Sie, dass Arduino zurückgesetzt wird, nachdem die serielle Verbindung unterbrochen wurde
Cerin
2016-02-08 11:36:13 UTC
view on stackexchange narkive permalink

Wenn ich über eine serielle Konsole eine Verbindung zu einem Arduino Uno herstelle, um Debugging-Anweisungen zu lesen und dann die Verbindung zu trennen, scheint das Arduino zurückgesetzt zu werden. Wie kann ich dies verhindern?

Ich versuche, ein Arduino so zu programmieren, dass es ein "Shutdown" -Signal von einem Raspberry Pi über die serielle Schnittstelle empfängt, wodurch das Arduino die Leistung des RPi abschaltet. Dadurch wird jedoch auch die serielle Verbindung unterbrochen. Wenn der Arduino zurückgesetzt wird, wird die Stromversorgung wieder aktiviert.

Zwei antworten:
Nick Gammon
2016-02-08 12:18:29 UTC
view on stackexchange narkive permalink

Auf dem Uno befindet sich ein Link mit der Bezeichnung RESET-EN, der den Atmega16U2 (oder 8U2), der eingehende serielle Daten verarbeitet, mit dem Hauptchip, dem Atmega328P, verbindet. Wenn Sie diesen Link abschneiden (z. B. mit einem Messer), wird er nicht zurückgesetzt. Das Hochladen neuer Skizzen ist jedoch schwieriger, da Sie die Reset-Taste manuell drücken müssen, wenn die IDE mit dem Hochladen einer neuen Skizze beginnt.


Board:

RESET_EN link


Chemie:

Schematic


Eine Sache, die Menschen tun wird ein 10 µF Kondensator zwischen RESET und GND gelegt. Das hält genug Strom, um den Rücksetzimpuls zu "überstehen", und das stoppt das Zurücksetzen der Karte. Sie können den Kondensator jederzeit entfernen, um die Karte neu zu programmieren.

Ich habe dies im Schaltplan gesehen und nie verstanden, wofür es war. Ich nehme an, das Diagramm soll ein Pad mit einem schneidbaren Glied anzeigen.
Sie sagen also, die serielle Verbindung ist fest verdrahtet, um nach dem Trennen einen Reset durchzuführen? Ich kann verstehen, dass es nach einem Skizzen-Upload zurückgesetzt wird, aber warum auch nach einer nicht programmierten seriellen Verbindung zurückgesetzt?
Nein, ist es nicht. Wenn Ihr Betriebssystem jedoch beim Trennen die DTR auf niedrig setzt, wird der Rücksetzimpuls generiert. Trennen Sie die Verbindung physisch oder trennen Sie sie?
Versucht, 10uF ecap in mein Uno zu setzen, scheint überhaupt nicht zu funktionieren. Tatsächlich werden alle in serielle Daten geschriebenen Daten überhaupt nicht durchlaufen.
Cerin
2016-02-09 11:35:56 UTC
view on stackexchange narkive permalink

Ich fand die Lösung für mein Problem diese Antwort, die sowohl auf einem normalen Laptop als auch auf Raspberry Pi funktioniert, ohne dass Arduino-Hardware geändert werden muss.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...