Vaporlight:Firmware flashen: Unterschied zwischen den Versionen
Andi (Diskussion | Beiträge) (mehr doku) |
Fxkr (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 45: | Zeile 45: | ||
Dort folgende Befehle absetzen und prüfen, dass sie ohne Fehler ausgeführt werden: | Dort folgende Befehle absetzen und prüfen, dass sie ohne Fehler ausgeführt werden: | ||
halt | |||
flash write_image erase unlock /absoluter/pfad/nach/led-board.hex | flash write_image erase unlock /absoluter/pfad/nach/led-board.hex | ||
reset | |||
Der Controller sollte nun mit der neuen Firmware neustarten und nach einiger Zeit meckern, dass er nicht konfiguriert ist (die Debug-LED blinkt "NC" im Morsecode, also "–· –·–·"). Wenn die Debug-LED stattdessen regelmäßig, aber langsamer blinkt, ist etwas schiefgelaufen. | Der Controller sollte nun mit der neuen Firmware neustarten und nach einiger Zeit meckern, dass er nicht konfiguriert ist (die Debug-LED blinkt "NC" im Morsecode, also "–· –·–·"). Wenn die Debug-LED stattdessen regelmäßig, aber langsamer blinkt, ist etwas schiefgelaufen. | ||
Fertig? RETURN | Fertig? RETURN |
Version vom 5. Juni 2013, 20:54 Uhr
Zutaten
Software
- OpenOCD
- Einen GCC-ARM-Crosscompiler
- Das Vaporlight-Repo ([1])
Hardware
- Den Inhalt der Lötkellerkiste namens "andi/vaporlight-development"
- Ein Vaporlight-Controllerboard (wahlweise schon ins Modul eingebaut)
- falls das Board noch nicht im Modul ist: ein Labornetzteil mit Krokoklemmenkabeln
Vorbereitungen
Im Repo liegt die Datei config/openocd/vaporlight.cfg. Diese Datei nach /usr(/local)?/share/openocd/scripts/board/vaporlight.cfg kopieren.
Jetzt die Firmware compilieren. Dazu im Repo nach vaporware/led-boards/ gehen, das Makefile an den installierten Crosscompiler anpassen und make aufrufen. Verifizieren, dass die Datei led-board.hex erzeugt wurde.
Alles anschließen
Erleuchtungsgefahr: Bei den folgenden Schritten können sich wegen fehlender Initialisierung des Controllers die LEDs anschalten. Nicht direkt hineinschauen.
Falls das Controllerboard in einem Modul verbaut ist, das Modul mit Strom versorgen. Ansonsten das Board selbst per Labornetzteil mit 5 V Gleichspannung versorgen. Der Anschluss für Versorgungsspannung ist das alleinstehende Lötpad auf der langen Seite des Moduls, die Anschlüsse für Ground sind die beiden Paare von Lötpads links und rechts davon (es reicht, einen Ground-Anschluss zu verbinden).
Am Programmer sollte ein Adapter auf einen sechspoligen Pfostenstecker angeschlossen sein, der auf einer der breiten Seiten mit einem weißen Streifen markiert ist. Diesen auf den gleich markierten Anschluss des Boards aufsetzen, sodass die Markierungen übereinanderliegen. Das andere Ende des Programmers per USB an den Rechner anschließen.
Flashen
OpenOCD starten
OpenOCD starten (könnte root-Rechte brauchen):
openocd -f interface/olimex-arm-usb-tiny-h.cfg -f board/vaporlight.cfg -d 2
Es erscheinen eine Menge Debug-Meldungen, die mit einem "Initializing PLDs..." abschließen sollten. Wenn OpenOCD das Board nicht finden kann ("Target not responding, polling again in $Zeit"), die Verkabelung überprüfen und wenn dort kein Fehler vorliegt, alles in allen möglichen Permutationen neustarten (irgendwann finden sie sich meistens).
Firmware flashen
Mit dem OpenOCD-Server verbinden:
telnet localhost 4444
Dort folgende Befehle absetzen und prüfen, dass sie ohne Fehler ausgeführt werden:
halt flash write_image erase unlock /absoluter/pfad/nach/led-board.hex reset
Der Controller sollte nun mit der neuen Firmware neustarten und nach einiger Zeit meckern, dass er nicht konfiguriert ist (die Debug-LED blinkt "NC" im Morsecode, also "–· –·–·"). Wenn die Debug-LED stattdessen regelmäßig, aber langsamer blinkt, ist etwas schiefgelaufen.
Fertig? RETURN