Abhilfe bei Fehlfunktionen

In diesem Kapitel wird auf die Kommunikation zwischen dem Interface und der Mac-Software eingegangen. Das Verständnis hierfür erleichtert die Suche bei Fehlfunktionen.

Der Treiber besteht im großen und ganzen aus zwei Teilen. Einem Programm zum Laden der Firmware in das Interface und einem FrameWork (Programmierschnittstelle) zum eigentlichen Betrieb des Interface.

 

Der Bootprozess, laden der Firmware

Beim Verbinden des Interface mit dem Mac ist zunächst die ab Werk eingebaute, rudimentäre Firmware tätig. Diese ist nur in der Lage, sich als USB-Gerät zu melden. Die Funktionen für die Ein- und Ausgabe sind in einer umfangreicheren Firmware enthalten, die automatisch in das Interface geladen wird.

Ohne installierten Treiber, bzw. ohne die nachgeladene Umfangreiche Firmware meldet sich das Interface am USB als herstellerspezifisch von „BBnig und Kallenbach oHG".

Sobald sich das Interface beim Betriebssystem meldet, wird ein Programm im Hintergrund (Daemon) aktiv, lädt die neue Firmware in das Interface und schaltet die vorherige Firmware ab. Ist das Interface für kurze Zeit ohne Strom, verliert es die neue Firmware, schaltet wieder auf die eingebaute Firmware zurück und der Ladeprozess kann von neuem Beginnen.

Eine grüne Leuchtdiode zeigt an, dass die Firmware erfolgreich geladen ist. Den Ladevorgang kann man sehr schön beobachten. Zwischen dem Anschließen des Interface und dem aufleuchten der grünen LED vergeht eine Sekunde. In dieser Zeit lädt die neue Firmware.

 

Die grüne LED leuchtet nicht

Das kann verschiedene Gründe haben. Zunächst muss das Interface komplett stromlos geschaltet werden. Also vom USB trennen, sämtliche Verbindungsleitungen entfernen, Netzkabel entfernen. Es ist extrem wichtig, das Interface ausnahmslos von sämtlichen Verbindungen zu trennen, weil nur so gewährleistet ist, daß das Interface stromlos ist. Auch über die serielle Schnittstelle kann ein kleiner Strom in das Interface fließen und somit die nachfolgenden Tests verfälschen.

Nachdem das Interface für 1-2 Sekunden ohne Strom verbracht hat, wird es jetzt nur an den USB angeschlossen.

Danach den System-Profiler aufrufen. Dies geschieht über das Apfel-Menü->Über diesen Mac->Weitere Informationen.

Software

Das Interface sollte sich nun am Betriebssystem mit Hersteller-ID 0x0743 und je nach Modell mit einer der folgenden Product-IDs melden.
0x0004,0x0006 0x000A, 0x000B

Ist dies nicht der Fall, ist entweder das Interface, der USB oder das Kabel defekt. Es kommt ausgesprochen selten vor, daß sich das Interface hier nicht meldet. Sie sollten daher die Verbindung zum Mac nochmal überprüfen und auch im System-Profiler die Darstellung aktualisieren (Apfel-R).

Wenn sich das Gerät mit Hersteller-ID 0x0547 oder 0x04B4 meldet ist die ab Werk eingebaute Firmware beschädigt und das Gerät muß an Bönig und Kallenbach oHG zur Reparatur eingeschickt werden.

Meldet sich das Gerät gar nicht, ist entweder das Interface, das USB-Kabel oder die USB-Schnittstelle defekt.

Wenn sich das Interface hier gemeldet hat, wird die Firmware nicht geladen. Dies ist meistens der Fall, wenn der Hintergrund-Prozess (FirmwareLoaderDaemon) nicht läuft. Die einfachste Art ist, das Installationsprogramm noch einmal laufen zu lassen. Sie können aber auch von Hand nachsehen, ob der Prozess geladen ist.

Tippen Sie im Terminal:
ps -axwww | grep Daemon

Der Daemon ist geladen, wenn die Antwort ungefähr so aussieht:
100 ?? 0:00.01 /Library/Frameworks/Service USB Driver.framework/Versions/A/Support/Firmware Loader Daemon

An Stelle des Terminals kann auch die Aktivitätsanzeige aus dem Dienstprogramme-Ordner verwendet werden:

Software

Der Prozess „Firmware Loader" muss aktiv sein

Achten Sie darauf, alle Prozesse anzeigen zu lassen. Mit einer Sortierung nach Namen ist der „Firmware Loader" schnell gefunden. Wenn der Firmware Loader läuft und das Interface sich am USB mit Product-ID 0x0004, 0x0006, 0x00A, 0x000B und Hersteller-ID 0x0743 gemeldet hat, wird auch die Firmware geladen. Das vollständig funktionstüchtige Interface mit leuchtender LED meldet sich immer mit Product-ID 0x0005.

 

Software

Bei Product-ID 0x0005 ist die Firmware geladen

 

Die grüne LED leuchtet

In diesem Fall ist eine Ansteuerung über das zu Grunde liegende Framework möglich. Auf dieses Framework bauen die verschiedenen Plug-Ins, Xtras, OSAX u.s.w. auf. Zunächst sollte das Programm „SERVICE Test RB X" aus dem Ordner Testprogramme gestartet werden. Dieses Programm funktioniert immer, sofern die Basis in Ordnung ist. Es zeigt die Device ID in einem extra Fenster, das so oder so ähnlich aussehen sollte:

Software

Das Interface meldet sich korrekt im „ SERVICE Test RB X"

 

Software

Falsche Treiber Version

 

LWenn die Seriennummer, bzw. die Device ID falsch angezeigt wird, so stimmen die Versionen von Firmware und Treiber nicht überein. Dieses Problem kann aber nur bei vor dem 1.9.2003 erworbenen Service USB auftreten.

Lässt sich das Interface mit „SERVICE Test RB X" ansteuern, so liegen Fehlfunktionen i.d.R an der Programmierumgebung oder an der Programmierung. Es sollte daher geprüft werden, ob das mitgelieferte Plug-In, Xtra, OSAX oder Framework korrekt eingebunden ist.

 

Fehlernummern und ihre Bedeutung

Fehlernummern, die von den Service USB stammen liegen im Bereich 13000 bis 13009. Andere Fehlernummern stammen nicht aus den Service USB Treibern.

13000 errServiceUSB_OutOfParamBlocks
No USB control blocks available. There are too many request executing.

13001 errServiceUSB_Timeout
A call did not finish for some reasons: Timeout was reached.

13002 errServiceUSB_BadSync
A call was issued from the wrong interrupt level.

13003 errServiceUSB_USBDriverNotFound
Couldn't find the USB SERVICE driver. Probably it is not loaded.

13004 errServiceUSB_WrongPipeIndex
A wrong index for the read/write pipe was specified (valid values are 0, 1 and 2 )

13005 errServiceUSB_MaxDevicesReached
The maximum of USB SERVICE devices that can be connected has been reached.

13006 errServiceUSB_DeviceNotFound
The device couldnot be found in the device table

13007 errServiceUSB_CFNil
A call to CoreFoundation returned nil

13008 errServiceUSB_NoConfigurationsError
No configuration where found

13009 errServiceUSB_API_NotSupported
The API call is not supported

In der Praxis treten eigentlich nur die Fehler 13001 und 13003 auf. 13001 meistens in Verbindung mit der RS232 Schnittstelle, wenn die Gegenstelle keine Zeichen mehr annimmt. 13003 Kommt immer dann vor, wenn der Treiber noch nicht installiert ist. Sie sollten das Installationsprogramm SERVICE USB.pkg ausführen.

 

Service USB liefert immer 88 zurück

In diesem Fall ist der Treiber nicht installiert. Die meisten Xtras, Externals und Plugins schalten in den Demo Mode, wenn der zu Grunde liegende Treiber fehlt. In diesem Fall liefert das Interface je nach Befehl 0 oder 88 zurück, weil Egal ist 88.
Dieser Demo Mode dient dazu, eine Programmierumgebung zu testen ohne im Besitz des Interfaces zu sein und ohne das Installer Package, welches das Admin-Passwort benötigt, ausgeführt zu haben.

Sobald der das Installer Package ausgeführt wurde, verhalten sich die Plugins normal und liefern bei nicht angeschlossenem Interface entsprechende Fehlernummern zurück.

 

Herstellerkonformitätserklärung

Für den Koppelbaustein Service USB classic erklärt als Hersteller in alleiniger Verantwortung die Bönig und Kallenbach oHG, Lindemannstraße 25, 44137 Dortmund, dass dieser Baustein mit den Anforderungen 2004/ 108/EG übereinstimmt, sofern der Baustein ohne externes Netzteil oder mit dem von uns gelieferten Netztteil Service USB Power (9V= /12W) betrieben wird.

Für die Geräte Service USB plus, Service USB RS232, Service USB drawer, Service USB opener und Service USB core erklärt als Hersteller in alleiniger Verantwortung die Bönig und Kallenbach oHG, Lindemannstraße 25, 44137 Dortmund, dass diese Geräte mit den Anforderungen 2004/108/EG übereinstimmen.

Dortmund, den 28. Februar 2009