CUL > Hard- und Firmware

culfw@ARM

(1/209) > >>

Telekatz:
Hallo,

ich möchte euch meine Portierung der culfw für AT91SAM7-Controller vorstellen. Lauffähig ist diese Version auf dem HM-CFG-USB-2 und dem MAX! Cube.
Die beiden Geräte können dann wie ein CUL in FHEM eingebunden werden.

Quellcode:
Der Quellcode ist in der a-culfw enthalten. Zum Erstellen der Firmware wurde diese Toolchain verwendet.

Firmware flashen :
Die kompilierten Bin Dateien findet Ihr unter https://www.mediafire.com/folder/iuf7lue8r578c/a-culfw. Die Firmware besteht aus zwei Teilen. Einem Bootloader (bootloader_CUBE.bin bzw. bootloader_HM_CFG.bin) und der eigentlichen culfw (CUBE_BL.bin bzw. HM_CFG_BL.bin). Zum flashen des Bootloaders wird die SAM-BA Software von Atmel benötigt.
Alternativ kann unter Linux BOSSA verwendet werden:https://forum.fhem.de/index.php/topic,38404.msg378455.html#msg378455

Bootloader (MAX! Cube):

* Die Pins J1 auf dem Cube verbinden und die USB Verbindung kurz ein- und wieder ausstecken um die vorhandene Firmware zu löschen und den Flashspeicher zu entsperren.
Achtung: Die original Firmware ist danach weg und kann auch nicht wiederhergestellt werden, da keine unverschlüsselte Version davon verfügbar ist!   
* Verbindung  J1 lösen und USB Kabel wieder Verbinden. Im Gerätemanager sollte jetzt ein neuer COM Port erscheinen.
* SAM-BA als Administrator ausführen. COM Port auswählen und „at91sam7x256-ek“ als Board auswählen und auf Connect Drücken.
* Auf der Registerkarte Flash bei „Send File Name“ die Datei bootloader_CUBE.bin auswählen und auf Send File drücken. Die folgende Frage, ob das Flash gelockt werden soll, mit nein beantworten.
* Im Feld Scripts „Boot from Flash (GPNVM2)“ auswählen und auf Execute drücken.
* SAM-BA schließen und USB Kabel lösen.
Bootloader (HM-CFG-USB-2):

* Jumper J2 auf dem Stick verbinden und den Stick kurz ein- und wiederausstecken um die vorhandene Firmware zu löschen und den Flashspeicher zu entsperren.
Achtung: Die original Firmware ist danach weg und kann auch nicht wiederhergestellt werden, da keine unverschlüsselte Version davon verfügbar ist!
* Jumper J2 lösen und Jumper J1 verbinden. Den Stick für etwa 10s einstecken um den internen Bootloader zu aktivieren. Stick ausstecken und Jumper J1 lösen.
* Stick wieder einstecken. Falls jetzt kein neuer COM Port im Gerätemanager erscheint muss ein 10kOhm Widerstand zwischen +5V und Data+ am USB Stecker verbunden werden.
* SAM-BA als Administrator ausführen. COM Port auswählen und „at91sam7s128-ek“ als Board auswählen und auf Connect Drücken.
* Auf der Registerkarte Flash bei „Send File Name“ die Datei bootloader_HM_CFG.bin auswählen und auf Send File drücken. Die folgende Frage, ob das Flash gelockt werden soll, mit nein beantworten.
* SAM-BA schließen und Stick entfernen.
Culfw:
Der Bootloader wird beim Cube durch Drücken des Knopfes an der Unterseite während des Einsteckens des USB Kabels aktiviert. Beim HM-CFG-USB2 muss von ST1 Pin 3 mit Pin 4 beim Einstecken verbunden werden. Außerdem startet er automatisch solange noch keine Firmware gelagen wurde und kann bei bereits installierter culfw mit dem Kommando „B01“ aktiviert werden. Bei aktivierten Bootloader blinkt die LED D1 schnell.
Zum Übertragen der culfw wird ein Terminalprogramm benötigt, das Dateien per XModem übertragen kann, z.B. Tera Term . Nachdem man bei Tera Term mit Datei -> Transfer -> XMODEM -> Senden die richtige Firmware Datei ausgewählt hat, starten die Übertragung und der Flashvorgang automatisch. Anschließend erfolgt ein Reboot und die culfw startet.
Anleitung zum flashen unter Linux: https://forum.fhem.de/index.php/topic,38404.msg348429.html#msg348429

chris1284:
Gerade mit dem HM-CFG-USB-2 sehr interessant -> CUL 868 für 25€. Ich werde mir wohl direkt einen 2. bestellen müssen. Danke für das veröffentlichen. Würdest du ggf noch eine Version mit der alternativen culfw http://forum.fhem.de/index.php?topic=35064.0 bereitstellen können?

Wie sehen spätere updates der firmware aus? Hex-file vom cul und los geht denke ich nicht

Telekatz:
Nein, die HEX Files vom CUL passen nicht, die sind für ATMega Controller. Im HM-CHG-USB-2 und im Cube steckt ein ARM drin. Das muss neu compiliert werden.

Und mit der alternativen culfw müsste ich erst mal schauen, wieweit der Code dort von der culfw abweicht. Da in der culfw kein HAL vorhanden ist, muss der gesamte Code durchforstet werden, um das auf einer anderen Plattform zum laufen zu bringen.

Wzut:
Danke für die ausführliche Anleitung, so kann der inzwischen durch einen CUL abgelöste Cube doch noch sinnvoll weiter verwendet werden.
Wenn ich deine Anleitung richtig verstanden habe ist es allerdings dann vorbei mit Netzwerkzugriff, da dann der Datenaustausch noch via USB läuft ?

Telekatz:
Richtig, der Netzwerkzugrif funktioniert momentan noch nicht. Da muss ich mir erstmal den Beispielcode von Atmel ansehen, um den uIP Stack auch zu aktivieren.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln