Arduino automatischer Reset mit Softwarelösung

Automatischen Upload durch auto Reset, ohne einen Button betätigen zu müssen.

Arduino Tutorial

Bei bestimmten Varianten des original Arduino wird ein automatischer Reset über das DTR (Data Terminal Ready) Signal ausgelöst. Diese Funktion lässt sich natürlich auch leicht bei selbst gebauten Boards übernehmen. Da es aber teilweise nicht erwünscht ist den Controller mit jedem Aufbau einer seriellen Verbindung zu resetten, habe ich eine andere Möglichkeit gefunden.

Bei jedem Upload mit der Arduino IDE sendet diese vor der Übertragung ein paar fest definierte Bytes . Diese lassen sich per Software auswerten und zum Auslösen eines Reset nutzen. Gesendet wird mehrfach die Zeichenfolge „0 “ (Null gefolgt von einem Leerzeichen). Für die eigentliche Durchführung des Resets gibt es dann verschiedene Möglichkeiten. Eine Variante wäre einen freien Pin mit dem Reset Pin zu verbinden und dann als Ausgang zu definieren, um den Reset auszulösen. Ein zweiter Ansatz besteht darin einen Watchdog Timer zu definieren und in eine Endlosschleife laufen zu lassen, bis dieser den Reset auslöst. Als dritte Möglichkeit könnte man einen Adresssprung auf den Reset-Vektor durchführen. Da hier aber die Registerinhalte erhalten bleiben, würde ich diese als unsicher einstufen.

Auto Reset Beispiel

Hier als Beispiel die Pin Variante:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert