DigiButler (2)
Aufbau, Test und Software-Installation
Material
Gerber-Datei
Die zu diesem Projekt gehörende Platine steht als Gerber-Datei exklusiv allen GOLD- und GREEN-Mitgliedern zum sofortigen Download zur Verfügung. Mit Gerber-Daten können Sie Platinen selber herstellen oder sie bei einem Platinenhersteller in Auftrag geben.
Elektor empfiehlt den zuverlässigen PCB-Service von Eurocircuits oder von AISLER.
Gerber-Dateien unterliegen der Creative Commons-Lizenz. Creative Commons bietet Urhebern die Möglichkeit, dass ihre Werke frei genutzt und verbreitet werden.
Extra-Info / Update
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.
Stückliste
Stückliste
Neu - für Platine Version 00286_2, June-10-2008
1. Vorbestückte Bauteile:
Widerstände:
R3 = 12 k, SMD 0805
R4 = 390 ?, SMD 0805
R5 = 10 M, SMD 0805
R6,R7,R8,R9 = 51 ?, SMD 1206
Kondensatoren:
C2,C3,C4,C12,C13,C14 = 220 n, Keramik, SMD 0805
C9,C10,C11 = 100 n, Keramik, SMD 0805
C17 = 220 n, Keramik, SMD 1206
C5,C6 = 22 p, Keramik, SMD 0805
C7 = 1 n, Keramik, SMD 0805
C8 = 100 n, Keramik, SMD 1206
C16 = 10 n, Keramik, SMD 1206
Spulen:
FB1,FB2 = BLM31PG601SN1, Ferrit-Kern, SMD 1206
Halbleiter:
U1 = MCF52231CAF6 (Freescale)*
2. Manuell zu bestückende Bauteile:
Widerstände:
R1 = 22 ?, SFR16S
R2,R17,R18 = 10 k?, SFR16s
R15 = 470 ?
R10...R13 = 75 ?, SFR16S
R14 = 270 ?
R16 = 1 k, SFR16S
RN1 = 7 x 4k7, SIL-Array
RN2 = 5 x 10 k, SIL-Array
RN3 = 7 x 10 k, SIL-Array
Kondensatoren:
C1,C23,C24, C26,C19,C27…C30 = 100 n, Keramik, RM 5 mm
C15,C20,C21 = 4?7, Keramik, SMD1206
C18 = 2n2 / 1000 V, Keramik (TDK)
C22 = 330 ? / 16 V, Elko, radial
C25 = 220 ? / 6,3 V, Elko, radial
Halbleiter:
D1 = 1N4004
D2 = LED, 3 mm, grün
D3 = 1N4148
D4 = LED, 3mm, gelb
Q1 = BC546B
U2 = LD29080DT33R (STMicro)
U3 = MAX3232ECPE
Außerdem:
F1 = 0,5 A, träge, 5 x 20 mm
J1 = 26-pol. zweireihiger Pfostenstecker
J2 = RJ45-Buchse für Platinenmontage
J3 = Hohlstecker-Buchse für Platinenmontage
J7 = 10-pol. zweireihiger Pfostenstecker
J6 = 8-pol. zweireihiger Pfostenstecker
J5 = 9-pol. Sub-D-Buchse, abgewinkelt für Platinenmontage
J14 = 2-pol. Schraubklemme, RM 5 mm
JP1 = 3-pol. Pfostenstecker mit Jumper
JP2 = 2-pol. Pfostenstecker mit Jumper
RE1 = G6D-1A-ASI-DC5 (Omron)
S1,S2 = Taster, EVQ-PAE05R Panasonic)
T1 = H1102 Ethernet-Trafo (Pulse)
Y1 = Quarz 25 MHz
Sicherungshalter für Platinenmontage
Das komplette Kit ist unter der Nummer EPS 071102-71 erhältlich. Es enthält alle Bauteile und die vorbestückte Platine sowie die CD 071102-81 (siehe Text).
Die vorbestückte Platine 071102 ist auch separat ohne beigelegte Bauteile aber mit unprogrammiertem Controller erhältlich.
Platine für TBLCF: EPS 071102-2 **
* Fertig mit aufgespielter Firmware im Kit sowie unprogrammiert bei der separaten Platine.
** optional, siehe Text.
Diskussion (0 Kommentare)