====== Update einer Baugruppe ====== {{ :baugruppenprogrammieren:bidib_update.jpg?200 |}} ===== Überblick ===== Für das Update der XMEGA-Baugruppen (Bootloader und Firmware), haben wir ein spezielles Updateverfahren entwickelt, dass auch der Bootloader ohne einen Programmer, über die BiDiB-Tools aktualisiert werden kann. **Es wird somit kein PDI-Programmer benötigt.** Für die Baugruppen auf dem ein ATMEGA-Prozessor zum Einsatz kommt, können Sie kein Firmware Update über die Tools durchführen und benötigen dafür einen ISP-Programmer. **XMEGA-Baugruppen:** GBMboost, LightControl, BiDiBone,... **ATMEGA-Baugruppen:** MoBaLiSt, s88-BiDiB-Bridge,... An dem Beispiel LightControl, werde ich Ihnen zeigen, wie Sie einen Knoten bzw. mehrere BiDiB-Baugruppen mit einem neuen Bootloader bzw. nur mit der aktuellen neuen Firmware aktualisieren können. Das Beispiel, kann auf die anderen Baugruppen (GBMboost Node, BiDiBone,...) übertragen werden. Die Vorgehensweise ist immer identisch! Der GBMboost Master kann ebenfalls ohne einem PDI-Programmer aktualisiert werden. Dieser Update-Prozess verläuft zum Vergleich zu den normalen BiDiB-Knoten etwas anders und kann nicht mit Hilfe der BiDiB-Tools erfolgen. Dieses Verfahren wird als letzter Punkt in dieser Beschreibung erklärt. Als **Knoten** werden alle Baugruppen bezeichnet die mit dem BiDiBus verbunden sind und keine Masterfunktion haben. (Man spricht auch von Slave-Devices) Als **Master** wird die Baugruppe bezeichnet, die die Kommunikation zu einer anderen Ebene ermöglicht. (z.B. USB - PC) Von dieser Art von Baugruppe "Master", darf am BiDiBus nur eine einzige Baugruppe vorhanden sein. Eine Übersicht der verfügbaren Firmwareversion finden sie auf der [[:firmwareuebersicht|Übersicht über Firmware und Bootloader]]. ---- ====="Bootloader Update" am Knoten===== {{:baugruppenprogrammieren:bild_export.png?400 |}} Bei dieser Beschreibung wird die "Multi-Update Funktion" des BiDiB-Monitor verwendet, Sie können auch die herkömmliche „Firmware Update Funktion“ von dem BiDiB-Monitor bzw. dem BiDiB-Wizard verwenden. Mit dem Multi-Update kann auch nur ein einzelner Knoten ausgewählt und upgedatet werden. Bei diesem Beispiel sind zwei LightControls mit unterschiedlichen Firmwareständen am BiDiBus angeschlossen. **Bevor Sie ein Update an der Baugruppen durchführen, sollten Sie Ihre Einstellungen bzw. gespeicherten Makros mit dem BiDiB-Wizard exportieren und sichern. Beim Bootloader Update gehen alle Ihre Einstellungen verloren.** {{:baugruppenprogrammieren:lc_update_01.png?500 |}} Im Fenster Multi-Update werden die betroffenen BiDiB-Knoten aus der Liste ausgewählt. Es können nur gleiche Baugruppen markiert werden, bei diesem Beispiel ist das die LightControl. Die Liste zeigt den Baugruppennamen, die Unique-ID der Baugruppe und die aktuelle verwendete Firmware. Falls der Baugruppe ein benutzerdefinierter Name vergeben wurde, dann wird dieser in der Klammer angezeigt. In dem Auswahlpfad „Flash HEX“ wird die Datei „update_update_x.000.hex“ aus dem Download-ZIP Archiv ausgewählt. **Hinweis:** Auf der Firmware–Webseite finden Sie ab jetzt immer zwei Bootloader-Dateien, wenn bei der Baugruppe ein Bootloader vorhanden ist. „Firmware Bootloader“ und „Bootloader Update“. __Firmware Bootloader:__ Diese Datei wird verwendet, wenn der Bootloader mit einem Programmer auf die Baugruppe programmiert wird. Das kann passieren, wenn der Bootloader zerstört wurde und nicht mehr funktioniert oder bei einem jungfräulichen Mikrocontroller bei seiner ersten Verwendung, wenn er noch nicht programmiert wurde. __Bootloader Update:__ Diese Datei kommt zum Einsatz, wenn die funktionierende Baugruppe schon einen Bootloader hat und der Bootloader aktualisiert werden soll. Dieses Update funktioniert nur mit Hilfe der BiDiB-Tools. Diese Datei nicht verwenden, wenn der Bootloader mit Hilfe eines Programmers aktualisiert wird. In diesem dokumentierten Fall, aktualisieren Sie die Baugruppe mit einem BiDiB-Tool und verwenden somit die Datei „Bootloader Update“. Im Anschluss klicken Sie auf die Schaltfläche „**Start Update**“. **Die Baugruppe führt das Update aus, dabei wird geprüft:** Der Updater prüft zuerst, ob ein alter Bootloader vorhanden ist. Diesen alten Bootloader braucht er als Hilfe für das Update. Wenn diese Abfrage scheitert, dann blinkt die PowerLED mit 600ms Abstand. Im Anschluss überprüft die Routine ob überhaupt eine Update nötig ist. Wenn NEIN, springt der Bootloader in den Status „Fertig für das Aufspielen der Applikations-Firmware“. Jetzt kommt das eigentliche Update, dabei wird ein Image des neuen Bootloader häppchenweise mit dem alten Bootloader in den Flash geschoben. Zum Schluss überprüft die Routine nochmals, ob das Update funktioniert hat. Kommt es zu einem Fehler, dann wird ein wildes Blinken auf allen LEDs ausgegeben. Hat das Update funktioniert, kommt für ein paar Sekunden ein Lauflicht auf allen Status-LEDs. Im Anschluss wechselt der Bootloader in den Status „Fertig für das Aufspielen der Applikations-Firmware“. {{:baugruppenprogrammieren:lc_update_02.png?700 |}} Nach dem erfolgreichen Bootloader Update erscheint im BiDiB-Monitor der Eintrag „**Baugruppenname–Bootloader**, **Unique-ID der Baugruppe** und die **aktualisierte Bootloader Version**. Auf der aktualisierten Baugruppe leuchtet die PROG-LED. Wurden mehrere gleiche Baugruppen ausgewählt (Multi-Update), dann wird jetzt der nächste Bootloader auf der nächsten Baugruppe aktualisiert. Im Fenster „Updated Nodes“ können Sie die erfolgreich aktualisierten Baugruppen erkennen.   ---- ===== "Firmware Update" am Knoten ===== Die Baugruppe benötigt Ihre Applikationsfirmware (wenn Sie zuvor den Bootloader aktualisiert haben) oder ein Update der aktuellen Firmware „LightControl_Standard“ oder LightControl_Signal“, in unserem Beispiel. In dem Auswahlpfad „Flash HEX“ wählen Sie die Datei „lightcontrol_x_x.000.hex“ aus dem Download-ZIP Archiv aus. (immer die Endung *.000.hex) In dem Auswahlpfad „EEPROM HEX“ wählen Sie die Datei „lightcontrol_x_x.001.hex“ aus dem Download-ZIP Archiv aus. (immer die Endung *.001.hex) {{:baugruppenprogrammieren:lc_update_03.png?700 |}} Die gewünschten Baugruppen die diese Applikationsfirmware erhalten sollen, müssen natürlich in der Liste markiert sein. Mit einem Klick auf „**Start Update**“, beginnt der Updateprozess der Applikationsfirmware. Nach dem erfolgreichen Firmware Update erscheint im BiDiB-Monitor der Eintrag „**Baugruppenname**, **Unique-ID der Baugruppe** und die **aktualisierte Firmware Version**. Auf der Baugruppe leuchten jetzt wieder die normalen Status-LEDs. **Die Baugruppe ist jetzt einsatzbereit.** {{:baugruppenprogrammieren:lc_update_04.png?700 |}} Wurden mehrere gleiche Baugruppen ausgewählt (Multi-Update), dann wird jetzt die nächste Baugruppe aktualisiert. Im Fenster „Updated Nodes“ können Sie die erfolgreich aktualisierten Baugruppen erkennen. Die Seriennummer (Unique-ID) muss _nicht_ übertragen werden, diese Information bleibt der Baugruppe erhalten. ---- ===== "Bootloader Update" am Master ===== {{:update:bidib_updatemaster.jpg?200 |}} Benötigt der GBMboost im Laufe seiner Betriebszeit ein Bootloader Update, dann kann dies nicht über die BiDiB-Tools erfolgen sondern benötigt ein Terminalprogramm. Dafür bietet sich die kostenlose Version von [[http://der-hammer.info/pages/terminal.html|HTerm]] an. {{:baugruppenprogrammieren:gbm_jumper_boot.jpg |}} Trennen Sie die USB-Verbindung und DC-Verbindung zum GBMboost Master ab. Die Baugruppe muss vollständig stromlos sein. Stecken Sie jetzt den beiliegenden 2,00mm Jumper aus der Bausatzverpackung, auf den Jumper **J3** auf der 2x 4polige Stiftleiste am GBMboost Master. Halten Sie den Taster auf dem GBMboost gedrückt und stecken Sie die USB-Verbindung vom GBMboost an. Auf dem GBMboost Master leuchtet jetzt nur die grüne Power-LED. (PW) {{:baugruppenprogrammieren:gbm_tool_update_01.jpg?300 |}} Öffnen Sie das Terminalprogramm „HTerm“. Für eine Kommunikation mit dem GBMboost muss Ihre **COM-Schnittstelle** gewählt werden und die Systemeinstellungen auf **19200 Baud**, **8N1** und **CR+LF** / **CR-LF** eingestellt sein. (siehe Abbildung) Jetzt bauen Sie eine Verbindung zu dem GBM-Baustein auf, indem Sie auf den Button „**Connect**“ im Terminalprogramm klicken. Im Eingabefeld tippen Sie das Zeichen “**?**“ ein und bestätigen dies mit Eingabe einem Enter. Der GBMboost antwortet mit "**GBMboost_Bootloader V xxx**". Jetzt senden Sie ein „**f**“ und bestätigen dies mit „Enter“. Der GBMboost antwortet mit einem Punkt. Im Anschluss klicken Sie auf den Button "**Send File**" und wählen die Datei „gbmboost_bootupdate_xxx.000.hex“ aus dem Download-ZIP-Ordner der Firmware und bestätigen die Auswahl mit **Start**. {{:baugruppenprogrammieren:gbm_tool_update_02.jpg?300 |}} Der neue Bootloader wird übertragen auf den GBMboost, dies ist sichtbar durch die zahlreichen Punkte im Terminalprogramm. Während der Übertragung blinkt die DCC-LED am GBMboost. **Das "Bootloader Update" des GBMboost Master ist erfolgreich ausgeführt!** Nach dem Bootloader Update folgt das Aufspielen der Firmware, folgen Sie dazu dem nächsten Kapitel, nach dem Verbindungsaufbau zu hterm, weil Sie schon mit dem Terminalprogramm verbunden sind. ---- ===== "Firmware Update" am Master ===== Benötigt der GBMboost im Laufe seiner Betriebszeit ein Firmware Update, dann kann dies nicht über die BiDiB-Tools erfolgen sondern benötigt ein Terminalprogramm. Dafür bietet sich die kostenlose Version [[http://der-hammer.info/pages/terminal.html|HTerm]] oder das Debug Interface des BiDiB-Wizard an. {{:baugruppenprogrammieren:gbm_jumper_boot.jpg |}} Trennen Sie die USB-Verbindung und DC-Verbindung zum GBMboost Master ab. Die Baugruppe muss vollständig stromlos sein. Stecken Sie jetzt den beiliegenden 2,00mm Jumper aus der Bausatzverpackung, auf den Jumper **J3** auf der 2x 4polige Stiftleiste am GBMboost Master. Halten Sie den Taster auf dem GBMboost gedrückt und stecken Sie die USB-Verbindung vom GBMboost an. Auf dem GBMboost Master leuchtet jetzt nur die grüne Power-LED. (PW) {{:baugruppenprogrammieren:gbm_tool_update_01.jpg?300 |}} Öffnen Sie das Terminalprogramm „HTerm“. Für eine Kommunikation mit dem GBMboost muss Ihre **COM-Schnittstelle** gewählt werden und die Systemeinstellungen auf **19200 Baud**, **8N1** und **CR+LF** / **CR-LF** eingestellt sein. (siehe Abbildung) Jetzt bauen Sie eine Verbindung zu dem GBM-Baustein auf, indem Sie auf den Button „**Connect**“ im Terminalprogramm klicken. Im Eingabefeld tippen Sie das Zeichen “**?**“ ein und bestätigen dies mit Eingabe einem Enter. Der GBMboost antwortet mit "**GBMboost_Bootloader V xxx**". Senden Sie ein „**f**“ und bestätigen dies mit einem „Enter“. Der GBMboost antwortet mit einem Punkt. Sie klicken auf den Button "**Send File**" und wählen die Datei „gbmboost_master_xxx.000.hex“ (oder die ''hex'' Datei, wenn eine ''hex'' und eine ''eep'' Datei vorhanden sind) aus dem Download-ZIP-Ordner der Firmware und bestätigen die Auswahl mit **Start**. Die neue Firmware (FLASH) wird übertragen auf den GBMboost, dies ist sichtbar durch die zahlreichen Punkte im Terminalprogramm. Während der Übertragung blinkt die DCC-LED am GBMboost. {{:baugruppenprogrammieren:gbm_tool_update_02.jpg?300 |}} Im Anschluss wird der EEPROM Inhalt, der neuen Masterfirmware übertragen, dafür senden Sie ein „**e**“ und bestätigen dies mit einem **Enter**. Der GBMboost antwortet mit einem Punkt. Sie klicken auf den Button "**Send File**" und wählen die Datei „gbmboost_master_xxx.001.hex“ (oder die ''eep'' Datei, wenn eine ''hex'' und eine ''eep'' Datei vorhanden sind) aus dem Download-ZIP-Ordner der Firmware und bestätigen die Auswahl mit **Start**. Die neue Firmware (EEPROM) wird übertragen auf den GBMboost, dies ist sichtbar durch die zahlreichen Punkte im Terminalprogramm. Während der Übertragung blinkt die DCC-LED am GBMboost. Entfernen Sie den Jumper J3 und starten Sie die Baugruppe durch abziehen der USB-Verbindung neu. Die Baugruppe muss für den Neustart stromlos gemacht werden. ---- ===== "Firmware Update" GBM16T ===== Das Firmware Update des GBM16T läuft grundsätzlich genauso ab, wie für den Master, hier wird allerdings ein FTDI-Kabel benötigt. Der GBM16T muß anderweitig mit Spannung versorgt werden, deshalb darf das FTDI-Kabel auch 5V haben. Zur Vorbereitung den Taster neben dem Anschluß für das FTDI-Kabel beim Einschalten der Spannung festhalten. ---- ==== Update mit MacOS ==== Für den Update mit MacOS kann CoolTerm statt hTERM verwendet werden. Die Schritte sind grundsätzlich gleich wie oben bereits beschrieben. Die Einstellung des Port und der Baudrate erfolgt unter //Options > SerialPort//. {{ :update:coolterm1.png |}} Anschliessend den **Connect**-Button drücken. {{ :update:coolterm2.png |}} Die weiteren Kommandos (**f**, **e**, etc.) werden direkt im Fenster eingegeben. Um eine Datei zu senden, muss über das Menü **Connection** der Punkt **Send Text File** ausgewählt werden. Ein Auswahlfenster für Dateien erscheint und die entsprechende HEX-Datei auswählen. {{ :update:coolterm31.png |}} ----