Home › Jahrgang › 2008 › Mai › DigiButler (2)

DigiButler (2)

Aufbau, Test und Software-Installation

Erschienen in Ausgabe 449, Mai 2008

DigiButler (2)

Hier ist die Fortsetzung des ersten Teils aus Elektor April 2008: Es geht um den Zusammenbau und das Aufspielen der Software. Außerdem zeigen wir, wie man den DigiButler ins Internet bringt, um damit elektrische Geräte von überall her fernsteuern zu können. Alle in diesem Projekt benötigten Bauelemente sind in einem Kit enthalten, das man komplett über Elektor beziehen kann. Die im Kit enthaltene Platine ist schon mit den meisten SMD-Bauteilen vorbestückt. Der ColdFire-Controller ist überdies mit der DigiButler-Firmware vorprogrammiert. Zusammenbau heißt hier also im Wesentlichen ein Einlöten von drei Dutzend „normalen“ Bauteilen sowie sechs relativ großen SMDs.

Infos & Updates

Hinweis: Der Link [1] im Artikel stimmt nicht mehr. Die Coldfire-Software lässt sich nun bei uns downloaden, siehe rechts unten! 

 

5. Mai 2008
Der Mikrocontroller-Typ MC68HC908JB16 im ursprünglichen TBLCF Dokument ist nicht mehr in Produktion. Die MC908JB16JDWE ist der Ersatztyp und als kostenloses Muster über die Freescale-Website erhältlich.

 

19. August 2008 
Mit dem Kit 071102-71 wird eine upgedatete Stückliste und ein neuer Schaltplan ausgeliefert.
Die neue Stückliste steht auch auf der Site. 
Die ersten 300 Kits werden ab 22. August versandt. Unprogrammierte Boards werden ab Kalenderwoche 36 erwartet. 
Mehr programmierte Boards gibt es in Kürze, demnächst teilen wir Näheres mit! 

 

2. September 2008

Der Controller auf dem Board (U1) wird leicht mehr als handwarm (ca. 40...50°C). Das ist normal und unterhalb der Grenzwerte — siehe auch die Datenblätter zum MCF52231.

 

3. September 2008

Aufgrund mehrfacher Nachfrage wurde eine Leerplatine für das TBLCF-Tool in den Elektor-Shop aufgenommen. Die Platinen-Nummer ist 071102-2. Die Platinen sind ab der Kalenderwoche 38 lieferbar. TBLCF-Betrieb und -Bau wird sehr detailliert im TBLCF-Handbuch „manual_v14.pdf“ von Daniel Malik erklärt.

 

3. September 2008

Alle programmierten DigiButler-Platinen enthalten eine frühe Version der Firmware, welche die Hardware auf die statische IP-Addresse 192.168.0.151 ansprechen lässt und welche die komplette in den Artikeln beschriebene Funktionalität inklusive WAP-Access und Webseiten bietet. Eine statische IP-Addresse ist nicht nur nützlich, sondern fast unabdingbar für eine sichere Fernsteuerung, wo der autorisierte Nutzer die Vergabe neuer IP-Adressen via DHCP nach einem Router-Reset bzw. einem Stromausfall nicht ausschließen kann.

Um sich erfolgreich mit dem DigiButler zu verbinden, sollte der Router den IP-Adressbereich 192.168.0.XXX für angeschlossene Geräte einsetzen. Falls erforderlich kann man dies der Dokumentation des Routers entnehmen. Die meisten (aber nicht alle) Router erlauben die Änderung des IP-Adressbereichs, der für Clients verwendet wird. Der Router oder ein direkt mit dem Digibutler verbundener PC sollte 100-Mbit-Ethernet unterstützen. Bei direktem Anschluss an einen PC kann u.U. auch ein so genanntes „gekreuztes“ Ethernet-Kabel erforderlich sein.

 

Im Falle dass:

a) es nicht möglich sein sollte, die Adresse 192.168.0.151 als gültige Client-IP-Addresse mit dem Router zu verwenden,

b) es nicht möglich sein sollte, den Adressbereich 192.168.0.XXX für Clients am Router einzustellen (damit der DigiButler 192.168.0.151 verwenden kann)

c) oder der Anwender unbedingt den DHCP-Server des Router zusammen mit dem DigiButler einsetzen will,

 

sollte man sich nach den nachfolgenden Vorschlägen von John Stuart aus dem englischen Elektor-Forum richten.

Übrigens wurde die DigiButler-Firmware mit CodeWarrior for ColdFire in der Version 6.3 entwickelt (gibt es immer noch als kostenlosen Download von der DigiButler-Projekt-Seite). Freescale empfiehlt allerdings die Verwendung der Version 7.0 in Hinsicht auf den Chip MCF52231. Mittlerweile gibt es schon CodeWarrior 7.2.

 

Detaillierte Vorgehensweise:

Nachfolgend eine Anleitung zur Modifikation und zur Kompilierung des DigiButler-Source-Codes, damit Digibutler sich eine IP-Adresse via DHCP zuweisen lassen kann. Auf die Verwendung des TBLCF-Programmers zur Übertragung der neuen Firmware in den Digibutler wird ebenfalls eingegangen. Hierzu wird natürlich ein funktionierendes TBLCF-Modul oder ein äquivalenter Coldfire-Programmer vorausgesetzt.

 

Diese Dateien werden benötigt:

1. CodeWarrior for Coldfire Architectures 7.1. Der Download findet sich hier: www.freescale.com/webapp/sps/site/overview.jsp?nodeId=01272600610BF1

2. Das Archiv „071102-11.zip“. Man findet es via jahrgang/2008/mai/digibutler-(2).432280.lynkx?tab=3 unter „Gratis-Downloads“ als „Software“. Das Archiv ist auch auf der CD enthalten, die beim DigiButler-Bausatz 071102-71 mitgeliefert wird.

3. Die Datei „setup.xml“. Auch diese kann man von der Projekt-Webseite als „DHCP Update“ laden.

4. Die Datei „mcf5223_sysinit.txt“, welche ebenfalls im vorigen Download (DHCP Update) enthalten ist.

 

Dann sollte zunächst einmal der CodeWarrior 7.1 installiert werden. Nachdem dies erledigt ist, sollten die Dateien im Archiv „071102-11.zip“ entpackt werden. Anschließend öffnet man den so generierten Ordner „Versions CW 7.0“. In diesem Ordner sollte nun ein weiteres Archiv mit der Bezeichnung „SW_Main_Board_31_03_08.zip“ enthalten sein. Beim Entpacken dieses Archiv wird der Ordner „SW_Main_Board“ erstellt, der die Projekt-Dateien und den Source-Code enthält.

 

Der Ordner mit den CodeWarrior-Projekt-Dateien hat den Pfad „..\SW_Main_Board\build\m5223evb“. Im Ordner „m5223evb“ ist die Datei „elektor.mcp“ enthalten. Nun zieht man das Symbol von „elektor.mcp“ auf CodeWarrior oder aber öffnet diese Datei mit dem Menü innerhalb von CodeWarrior. Nun sollten sich auf der linken Seite von CodeWarrior ein Ordner mit allen Source-Dateien zeigen.

 

Um den DHCP-Client zu aktivieren, müssen zwei Änderungen gemacht werden. Eine Änderung steckt in „main.c“. Man öffnet „main.c“ per Doppelklick auf den Namen innerhalb des Ordners (project files). In „main.c“ steht folgender Code:

 

#if 1

     IP_ADDRESS(192,168,0,151);

     DEF_GATEWAY(192,168,0,1);

     SUBN_MASK(255,255,255,0);

#else  // IP: 0.0.0.0 Gateway: 0.0.0.0 Mask: 255.255.255.0  -  Now DHCP client works properly

     IP_ADDRESS(10,171,88,10);

     DEF_GATEWAY(10,171,88,254);

     SUBN_MASK(255,255,255,0);

#endif

 

Dieser Code wird gelöscht und ersetzt durch:

 

#if 0

     IP_ADDRESS(192,168,0,151);

     DEF_GATEWAY(192,168,0,1);

     SUBN_MASK(255,255,255,0);

#else  // IP: 0.0.0.0 Gateway: 0.0.0.0 Mask: 255.255.255.0  -  Now DHCP client works properly

     IP_ADDRESS(0,0,0,0);

     DEF_GATEWAY(0,0,0,0);

     SUBN_MASK(255,255,255,0);

#endif

 

Die nächste Änderung wird in „ipport.h“ vorgenommen. Diese Datei findet sich unter „\common\ColdfireLite\headers“.

Man suche den Code:

 

// EMG - To enable DHCP, uncomment the line below

//#define DHCP_CLIENT     1  /* include DHCP client code */

 

Nun löscht man die Kommentarzeichen der zweiten Zeile und erhält:

 

// EMG - To enable DHCP, uncomment the line below

#define DHCP_CLIENT     1  /* include DHCP client code */

 

Jetzt kann der Code neu kompiliert werden. Man kann das mit über das Projekt-Menü mit „make“ erledigen oder F7 drücken. Der Code sollte nun ohne Fehlermeldungen kompiliert werden. Wenn dem so ist, kann der DigiButler mit der resultierenden neuen Firmware geflasht werden.

 

Zum Flaschen öffnet man den Ordner „TBLCF“ (in „071102-11.zip“ enthalten). Innerhalb dieses Ordners expandiert man das Archiv „tblcf_v10.zip“. Nun ganz genau der Anleitung in „manual_v14.pdf“ folgen um die TBLCF-Treiber zu installieren und den TBLCF zu flashen. Wenn der TBLCF funktioniert, geht man in das Tools-Menü und wählt „Flash Programmer“ in CodeWarrior. Dann ein Klick auf den Knopf „Load Settings“ und „setup.xml“ auswählen. Jetzt ist CodeWarrior bereit für das Flashen des Controllers von DigiButler.

 

Vor dem Programmieren sollte man sich vergewissern, dass die Jumper auf der DigiButler-Platine richtig gesteckt sind. Jumper JP2 stecken (= JTAG einschalten) und bei Jumper JP1 sollten die beiden Pins 1 und 2 verbunden sein.

 

Das TBLCF-Modul mit dem Programmier-Port (J1) von DigiButler verbinden und via USB mit dem PC verbinden, dann erst den DigiButler einschalten. Nun mit „Erase / Blank Check“ in CodeWarrior den Flash-Speicher löschen. Nach dem Klick auf „Erase“ auf die Erfolgsmeldung warten. Wenn das Löschen fehlschlägt, einfach nochmals wiederholen und wenn es dann immer noch nicht klappt, den CodeWarrior schließen und neu starten.

 

Jetzt kommt der Knopf „Program / Verify“ und dann ein Klick auf „Browse“. Nun wird der Ordner „SW_Main_Board\obj“ und darin die Datei „web_coordinator.S19“ ausgewählt. Ein Klick auf „Program“ und warten, bis ein erfolgreicher Vollzug gemeldet wird.

 

Da DigiButler jetzt vollständig programmiert ist, kann man nun die Software starten, indem man auf „Project“ geht und dann auf „Debug“ klickt oder einfach F5 drücken. Wenn eine Dialog-Box aufpoppt, einfach auf „Yes“ klicken. Jetzt sollte das Debug-Fenster geöffnet sein. Nun ein Klick auf den „Run“-Knopf oben links im Fenster (Der Knopf mit einem Pfeil und einem „Bug“). Eventuell muss „Run“ ein zweites Mal betätigt werden. Wenn man überhaupt nicht debuggen möchte, drückt man einfach den Reset-Taster auf der DigiButler-Platine und startet so das Programm. Die Firmware startet unabhängig von der Belegung von JP2.

 

Wenn man nach der Programmierung die Meldung „@@@@ LINK IS DOWN @@@@“ via serieller Schnittstelle erhält, sollte man den Software-Workaround im neuesten TCP/IP-Stack verwenden. Hierzu DigiButler genau wie zuvor beschrieben neu programmieren. In CodeWarrior wird die Datei „mcf5223_sysinit.c“ im CPU-Ordner öffnen. Jetzt allen Code auswählen und löschen. Stattdessen nun den Code aus der Datei „mcf5223_sysinit.txt“ (Download von der Projekt-Webseite) kopieren und in die Datei „mcf5223_sysinit.c“ einfügen. Nach neuem Compiler-Lauf kann die neue Firmware in DigiButler übertragen werden, und die Probleme sollten sich in Nichts aufgelöst haben.

 

Hinweise:

1. Der Controller sollte vor jeder Programmierung gelöscht werden.

2. Möglicherweise muss CodeWarrior für jede neue Programmierung neu gestartet werden. Dies ist vermutlich auf einen Fehler im Setup zurück zu führen.

3. Nach der Programmierung ist die Baud-Rate der seriellen Schnittstelle auf 115.200 gesetzt. Dieser Wert kann in der Datei „m5223evb.h“ in der Zeile:

#define UART_BAUD    115200   /*  19200*/

geändert werden. Hierzu einfach 115200 durch die gewünschte Baud-Rate ersetzen.

4. Aktive DigiButler-Anwender mit Ahnung von der Sache finden sich auch im Elektor-Forum. In den jeweiligen Threads sind die jeweils neuesten Entwicklungen und Ideen zu finden.

 

5. September 2008

Elektor hat Freescale offiziell gebeten, den Chip MC908JB16JDWE für das TBLCF-Board weiter als kostenloses Muster zur Verfügung zu stellen. Allein im Zeitraum Mai...Juli 2008 wurden fast 350 Muster an Elektor-Leser verschickt.

 

15. September 2008

TBLCF-Platinen können via Elektor bezogen werden. Alle noch ausstehenden Lieferungen von DigiButler-Kits und Leerplatinen wurden mittlerweile erledigt.

 

16. September 2008

Vom Chip MC908JB16JDWE können weiterhin kostenlose Muster von Freescale bezogen werden. Hierzu im Anfrage-Formular „Elektor-DigiButler“ als Name des Projekts angeben. Wir möchten nochmals darauf hinweisen, dass die Lieferung kostenloser Muster in einige Länder eine Entscheidung ist, die sich Freescale vorbehält und auf die Elektor keinerlei Einfluss hat.


 

Nachfolgend können Sie diesen Artikel und/oder Platinenlayout als PDF-Datei herunterladen.

 

Downloads 

Artikel als PDF
10 Elektor-Credits
 

Heft bestellen 

Einzelheft Mai 2008
D-449 (USD 9,80)
 

Produkt bestellen 

SMD-bestückte Platine und Controller (nicht programmiert)
071102-1 (USD 34,80)
Platine ohne Bauteile für TBCLF
071102-2 (USD 12,40)
Bausatz mit allen Bauteilen inkl. SMD-bestückter Platine, prog. Controller + Software/Dokumentation auf CD-ROM
071102-71 (USD 52,50)
 

Extra-Downloads 

Software

Gratis-Download

Codewarrior for ColdFire v. 6.3

Gratis-Download

DHCP Update

Gratis-Download

Hinweis: Aufgrund der raschen Veränderungen auf dem Markt für elektronische Bauteile kann Elektor die Erhältlichkeit der für dieses Projekt verwendeten Komponenten nicht garantieren.

Elektor 02/2012 am Kiosk

Gratis-Newsletter

Folgen Sie Elektor auf...