So installieren Sie einen Arduino-Bootloader

So installieren Sie einen Arduino-Bootloader

Die Installation eines Bootloaders ist der erste Schritt, um Ihre Arduino-Projekte zum Leben zu erwecken. Dies ist eine Software, mit der Sie häufig Arduino-Skizzen problemlos auf das Board hochladen können, ohne dass spezielle Programmiergeräte erforderlich sind.

Auch wenn dies wie Raketenwissenschaft klingen mag, ist es tatsächlich einfacher als Sie vielleicht denken – sogar für Anfänger. Wir zeigen Ihnen, wie Sie in wenigen einfachen Schritten einen Bootloader auf Ihrem Arduino-Board installieren (oder neu installieren) können.

Aber zuerst, was genau ist ein Bootloader auf dem Arduino-Board?

Was ist ein Bootloader?

Ein Arduino-Bootloader ist ein kleines Programm, das im nichtflüchtigen Speicher des Boards gespeichert ist und jedes Mal ausgeführt wird, wenn das Board eingeschaltet, mit neuem Code hochgeladen oder zurückgesetzt wird. Immer wenn das Bootloader-Programm ausgeführt wird, initialisiert es die Hardware des Boards und lädt dann die Hauptskizze oder das Hauptprogramm, das im Flash-Speicher des Boards gespeichert ist.

Es ist erwähnenswert, dass alle Arduino-Boards mit einem vorinstallierten Bootloader von ihren Herstellern ausgeliefert werden. Manchmal finden Sie Boards mit fehlerhaften Bootloadern direkt nach dem Auspacken. Dies kommt jedoch selten vor.

Warum einen Bootloader verwenden?

Es gibt mehrere Situationen, in denen die Verwendung eines Arduino-Bootloaders nützlich sein kann. Wenn Sie beispielsweise ein Anfänger der Arduino-Plattform sind, kann die Verwendung eines Bootloaders das Hochladen neuer Programme auf Ihr Board einfacher und schneller machen. Dies liegt daran, dass Sie keine externen Programmiergeräte wie einen Programmierer oder einen USB-zu-seriell-Konverter verwenden müssen, um Ihren Code hochzuladen.

Wenn Sie an einem Projekt arbeiten, das häufige Aktualisierungen des Codes erfordert, werden Sie es sehr nützlich finden. In diesem Fall kann Ihnen die Verwendung eines Bootloaders Zeit und Mühe sparen, da Sie den neuen Code einfach auf das Board laden können, ohne externe Programmiergeräte verwenden zu müssen.

Wenn Sie außerdem an einem Projekt arbeiten, bei dem sich das Arduino beim Einschalten in einem bestimmten Zustand befinden muss, z. B. beim Ausführen eines bestimmten Programms, kann die Verwendung eines Bootloaders nützlich sein. Mit dem Bootloader können Sie den Anfangszustand des Boards so einstellen, dass es beim Einschalten automatisch das gewünschte Programm ausführt.

Schließlich bietet es eine Möglichkeit, das Arduino wiederherzustellen, wenn die Hauptskizze beschädigt wird oder anderweitig nicht ausgeführt werden kann.

Warum fehlt mein Bootloader?

Fehlerbild mit grünen 1s und 0s.

Es kann vier mögliche Gründe geben, warum Ihr Board einen neuen Bootloader benötigt:

  1. Kein vorinstallierter Bootloader : Es ist ziemlich üblich, viele eigenständige ATMEGA328P-Projekte zu haben, bei denen Sie Ihren Chip auf eine Leiterplatte löten und den Chip zufällig braten. Es ist also möglich, dass Sie die Platine ohne vorherige Bootloader-Installation durch einen Chip ersetzt haben.
  2. Ersetzter Bootloader : Sie könnten Ihren Bootloader durch einen modifizierten Bootloader eines Drittanbieters ersetzt haben, der beschädigt sein könnte.
  3. Beschädigter Bootloader : Dies ist das unwahrscheinlichste Szenario. In einigen Fällen kann der Arduino-Flash-Speicher jedoch beschädigt werden.
  4. Erweiterter Speicher : Wenn Sie den gesamten Bootloader durch Ihre Anwendung ersetzt (geflasht) haben, um die verbleibenden 2 KB Programmspeicher zu nutzen, fehlt Ihr Bootloader definitiv.

Hier ist, was Sie tun müssen.

Installieren/Neuinstallieren des Arduino-Bootloaders

Mikrocontroller werden typischerweise programmiert, bevor sie auf eine Leiterplatte gelötet werden. Dies erfolgt in der Regel mithilfe von In-System Programming (ISP), wie z. B. In-Circuit Serial Programming (ICSP), mit dem der Mikrocontroller mit einem externen Programmiergerät programmiert werden kann. Viele Hersteller von Mikrocontrollern, wie Atmel und Microchip, bieten zu diesem Zweck einen ISP-Header auf ihren Platinen an.

Verwenden eines anderen Arduino-Boards

Um den Bootloader auf einem ATmega328-Mikrocontroller zu flashen, müssen Sie den ICSP-Header auf der Platine verwenden, bevor Sie den Bootloader mit der anderen Platine als ISP-Programmierer installieren können.

Starten Sie die Arduino IDE, navigieren Sie wie unten gezeigt zu ArduinoISP und laden Sie den Beispielcode auf das Board hoch, das Sie als Programmierer verwenden möchten. (Folgen Sie dem Video-Tutorial für den Hardware-Anschluss).

Screenshot der Navigation in der Arduino IDE File>>Examples>>ArduinoISP>>ArduinoISP

Der Code sollte so aussehen, damit Sie wissen, dass Sie auf dem richtigen Weg sind.

Arduino-IDE-Beispielcode für ISP

Gehen Sie auf der Registerkarte Tools zu Programmer und klicken Sie dann auf Arduino als ISP , wie unten gezeigt.

Screenshot der Arduino-IDE-Navigationstools>>Programmierer>>Arduino als ISP

Klicken Sie abschließend erneut auf der Registerkarte Tools auf Bootloader brennen , wie gezeigt.

Screenshot der Arduino-IDE, die durch Tools>>Burn Bootloader navigiert

Sobald der Vorgang abgeschlossen ist, kann die Zieltafel nun programmiert werden.

Verwendung eines dedizierten Programmierers

Für diese Art der Installation stehen viele AVR-Programmiergeräte zur Verfügung. Eine gute Option, die Sie ausprobieren können, ist der AVR Pocket Programmer (nur Windows), der auf USBtiny von Dick Streefland und USBtinyISP von Limor Fried basiert . Es bietet eine einfachere Möglichkeit, AVR-Mikrocontroller zu programmieren, wie sie auf Arduino-Boards zu finden sind. Abgesehen von der Tatsache, dass es über eine USB-Verbindung mit Strom versorgt wird, ist es die beste Option, da es mit einer Vielzahl von Programmiersprachen und Software kompatibel ist, was es zu einem vielseitigen Werkzeug für jeden Arduino-Benutzer macht.

Sie können auch andere Optionen wie den offiziellen Atmel-ICE-Programmierer für ARM-Mikrocontroller ausprobieren – insbesondere, wenn Sie nicht Windows verwenden.

Schließen Sie das Arduino-Board an den Programmierer an und flashen Sie den Bootloader. Sehen Sie sich dieses Video-Tutorial unten an.

Der Vorgang sollte einfach sein und nicht länger als 20 Sekunden dauern.

Hinweis: Die Zielplatine sollte ordnungsgemäß eingeschaltet werden, bevor Sie diese Methode ausprobieren. Andernfalls können Sie die .hex -Datei nicht auf Ihr Ziel flashen.

Für Power-User gibt es eine komplexere Möglichkeit, den Bootloader über die Befehlszeile zu installieren. Es ist nicht notwendig, bis zu diesem Stadium zu gelangen, aber es gibt Ihnen die Möglichkeit, den Code zu ändern oder neu zu kompilieren, um ein individuelleres Erlebnis zu erhalten.

Der erste Schritt in diesem Prozess besteht darin, die Fuse-Bits zu konfigurieren, die Teil des AVR-Chips sind, und Einstellungen wie die Verwendung eines externen Quarzes zu steuern. Verwenden Sie den folgenden Befehl, um Ihre Fuse-Bits zu setzen:

avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

Nachdem die Fuse-Bits konfiguriert wurden, ist der nächste Schritt die Übertragung einer kompilierten. hex-Datei auf die Zielplatine und setzen Sie die Lock-Bits. Dadurch können Sie das Programm auf dem Board ausführen. Stellen Sie sicher, dass Sie sich im selben Verzeichnis wie die Datei optiboot_atmega328.hex befinden , bevor Sie diesen Befehl eingeben:

avrdude -b 19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

Hinweis: Diese Befehle gelten für den Arduino Uno. Sie müssen die Fuse-Bits für Ihr Board, die Sie in der Datei board.txt finden, umgestalten und auch die Parameter der Teilenummer von AVRDUDE anpassen, damit sie funktionieren.

Was werden Sie als nächstes mit Arduino machen?

Der Arduino-Bootloader macht die Programmierung auch für Anfänger so einfach. Sie können jetzt hoffentlich Ihre eigenen benutzerdefinierten Skizzen auf den Arduino hochladen und den Bootloader für zukünftige Arduino-DIY-Projekte wiederherstellen.

Schreibe einen Kommentar

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