Ich will hier mal zu meinen ersten Erfahrungen mit der neuen Generation der C-Control I Plattform berichten, was für diejenigen interessant sein könnte, die sich überlegen von der bisherigen Generation 1.0 her umzusteigen oder mit der neuen Generation einzusteigen. Kurz gesagt: Die 2. Generation (M-Unit 2.0) präsentiert sich mir sehr enttäuschend soweit. Der Hintergrund ist vorwiegend ideologischer Art: Conrad Electronic hat sich offensichtlich entschlossen von dem bisher beispielhaften Kurs der offenen Plattform abzuweichen und zum protektionistischen Stil a la Bill Gates überzugehen. Die 2. Generation ist eine „geschlossene Platform“ auf der es nur „authorisierte“ Treiber geben wird. Außerdem sieht die angepriesene Leistungssteigerung in meinen ersten Experimenten eher dürftig aus.
Bisher gibt es nur die M-Unit in der neuen Generation 2.0. Diese ist mit einem neuen Board-Layout neuem Programmer-Interface und neuen Peripherie-Einheiten ausgestattet. Allerdings ist der Beschreibung zu entnehmen, dass in 2005 eine M-Unit 1.2 folgen soll, die pin-kompatibel mit der alten M-Unit 1.0 sein soll. Schaut man sich die Prozessor-Unit und die Beschreibung dazu an, fällt sofort auf, dass es keinen Hinweis auf den verwendeten Prozessor mehr gibt. Allerdings ist die CC-Basic Software CCEW32D mit nur minimalem Aufwand abgeändert worden und erscheint sogar mit gleichem Versionshinweis (Version 1.33, programmiert von M.Hieke und M.Förster, Copyright von 1997). Die ersten CCBasic-Programme der Generation 1.0, die ich getestet habe, liefen problemlos auf der Generation 2.0. Was aber sofort auffällt ist, dass der SYSCODE Include-Befehl nicht mehr in der Befehls-Beschreibung auftaucht, der SYS-Befehl jedoch existiert noch. Wenn man dann die Dokumentation genau liest, so findet man bei der Beschreibung der Unterschiede zur M-Unit 1.2 die Bemerkung: „bei der M 1.2 können nur "autorisierte" Maschinenprogramme als Treiber geladen werden“. Das gilt offensichtlich auch für die bereits erhältliche M-Unit 2.0. Probiert nämlich dennoch den SYSCODE Befehl zu verwenden, hat man den Eindruck, dass die Compilierung und Übertragung in die C-Control Unit wie gehabt funktioniert (lediglich eine andere Start-Adresse ist anzugeben). Startet man jedoch die M-Unit 2.0 wird das geladene Assembler Programm nicht ausgeführt. Das heisst unterm Strich, es gibt keine Möglichkeit mehr Assemblerroutinen in CC-Basic einzubinden. Damit geht der etscheidente Geschwindigkeitsvorteil für Maschinenprogramme verloren. Vermutlich will sich Conrad damit das Geschäft mit Systemtreibern sichern. Ausserdem wird die Verwendung der C-Control-I Platform für Ausbildungszwecke damit völlig uninteressant, da man keinen Bezug zur Hardware mehr herstellen kann (was bei der ersten Generation der wesentliche Vorteil war). Conrad schneidet sich damit selbst ins Fleisch, da die Ausbildung in Schulen usw. bisher eine Schlüsselfunktion für die Verbreitung hatte.
Dies ist eine absolut enttäuschende Kehrtwende von der bisher sehr offenen Plattform-Politik der Conrad Electronic. Ich bin überzeugt, dass wenn es so bleibt, dass dies auch den Tod der Plattform bedeutet. Denn wenn keine Community entsteht, die eine neutrale Bewertung und Entwicklung freier Software vorantreibt, ist der Nutzen für die meisten Anwender zu gering und das Risiko für eine Investition in eine Sackgasse zu hoch. Die Akzeptanz insbesondere bei der Linux/GNU/open source und sonstigen ideologisch denkenden Freak-Gemeinde wird ebenfalls von Null ins negative übergehen und aller Wahrscheinlichkeit nach mit Hinweis auf Bill Gates verhöhnt werden.
Zum Prozessor fällt auch sofort auf, dass der Aufdruck abgefräßt wurde und durch eine Aufkleber mit bisher 3-stelliger Zahl ersetzt wurde. Die Code-Kompatibilität zusammen mit wenigen neuen Befehlen und erweiterten Variablenzahl, sowie die Integration des seriellen EEPROMs auf den Chip deutet auf einen 68xx Prozessor hin. Schaut man sich dann noch die Pinbezeichnungen an, wird allerdings ziemlich klar, dass es sich mit aller Wahrscheinlichkeit um einen MC68HC908 Prozessor handelt (68HC08 Familie). Der Quarz wurde durch einen 32MHz Oszillator-Baustein ersetzt und damit müsste der Bustakt 8MHz sein. Das Gehäuse ist ein QFP44, das man bei Freescale (früher Motorola) für 8MHz Typen findet. Es wird daher auch nicht lange dauern, bis die Freak-Gemeinde das Produkt durchschaut hat. Eine derartige Verschleierungspolitik ist erfahrungsgemäss völliger Unsinn.
Die ersten Messungen bei Abarbeitung des TOG Befehls in einer Schleife ergaben bei mir eine Periodendauer von 80usec im Gegensatz zur M-Unit 1.0 mit 2.6msec. Lässt man die alte M-Unit mit eine Assembler Routine toggeln, kommt man dagegen auf 7usec , also mehr als 10mal schneller, so dass man für geschwindigkeitskritische Anwendungen, die man bisher mit Assemblerroutinen erledigt hat nun mit einem Rückschritt in der Generation 2.0 rechnen muss, weil man zu CC-Basic Routinen gezwungen wird. Ein absolut trauriges Ergebnis!
Man kann nur hoffen, das diese Taktik nur solange beibehalten wird, bis das Produkt vollends fertig entwickelt ist (neue Software etc.) und dann die Öfffnung der Plattform erfolgt. Andernfalls bedeutet das das Ende der C-Control I Plattform.
Lesezeichen