Zunächst mal Dank an Thorsten und Xander für die Realisierung der neuen CC-Schnitte, die das CAN-Protokoll direkt auf die USB-Schnittstelle überträgt und dabei sich an die Konventionen der CS2 hält.
Hier ein erster kurzer Erfahgrungsbericht über den Anschluß der CC-Schnitte 2.0 an den Macintosh. Da die CC-Schnitte 2.0 mit 500000 bps, 8 Databits, no parity und 1 Stoppbit arbeitet, ist sie mit einem VCP-Treiber erst ab MacOS-X 10.4 verwendbar (kurz zur Erinnerung: 10.4 war ab Werk auf den ersten Intel-Macs installiert, aktuell ist nun 10.7.2 (Stand Herbst 2011)). Der VCP-Treiber für MacOS-X findet sich hier: http://www.ftdichip.com/Drivers/VCP.htm
Die Installation ist einfach, da im DMG-Paket ein Installer sich befindet. Ich konnte nur die Installation dieser einen Datei feststellen:
/System/Library/Extensions/FTDIUSBSerialDriver.kext
Eine Deinstallation ist per Drag&Drop in den Papierkorb (Trash) möglich. Evtl. werden bei anderen Treiber-Versionen mehr Dateien installiert (oder ich habe welche übersehen), daher ist dieses ReadMe von FTDI bei manueller Deinstallation zu beachten: PDF von FTDI
Aktuell ist Version 2.2.16, verfügbar für Intel-Macs und PPC-Macs. Ich habe den Treiber sowohl auf einem PPC-G5 gestestet als auch auf einem Intel-Mac unter 10.6.8: die Verbindung zur CC-Schnitte-2 ist erfolgreich möglich. Auch mit dieser Baudrate von 500000 bps. Denn: seit MacOS-X 10.4 sind auch beliebige Baudraten auf dem Mac möglich, da der Kernel die Baudraten nicht mehr prüft (MacOS-X verhält sich somit wie Windows). Die Einstellung der Baudrate bleibt dem Treiber überlassen. Und der schafft das.
// Starting with Tiger, the IOSSIOSPEED ioctl can be used to set arbitrary baud rates
// other than those specified by POSIX. The driver for the underlying serial hardware
// ultimately determines which baud rates can be used. This ioctl sets both the input
// and output speed.
Mit "non-standard-baudrates" haben auch andere auf dem Mac (hier: 2010) so ihre Probleme: http://forums.ni.com/t5/Instrument-.../1145194
Die verwendete Software darf solche Baudraten nicht verhindern. Sonst nützt auch der beste Treiber nichts. Denn: bei der Verwendung des FTDI-VCP-Treibers unter MacOS-X ist, dass er nicht die tatsächlich maximal mögliche Baudrate berichten wird. Ggf. wird die Entwicklungsumgebung "raten" (best guess), dass die Grenze aus Tagen des MacOS-9 noch gilt: 230400 baud: http://www.mail-archive.com/realbas...684.html
Was dann die Einstellung von 500000 baud softwareseitig verhindert. So z.B. bei meiner bisherigen SimpleDigitalLocomotiveX v0.58. Ist nun geändert seit heute bei v0.59(2).
Nun haben sich aber bei einigen Anwendungen doch Probleme mit dem VCP-Treiber unter MacOS-X gezeigt (hier: 2010), und es wird die Verwendung des D2XX-Treibers von FTDI empfohlen: http://e2e.ti.com/support/microcont...979.aspx
Xander hat iTrain 2.0 so konzipiert, dass es (momentan ?) nur mit diesem D2XX-Treiber zusammenarbeitet (Intel-Mac und PPC-Mac). Die Anwesenheit dieses Treibers erkennt man in der iTrain-Schnittstellen-Auswahl: "Schnittstellen-Editor" --> "S CAN-Control-Schnitte" --> "Seriell" --> "D <portname> FT232R USB UART". Das "D" im Porteintrag von iTrain 2 zeigt an, dass der D2XX-Treiber ausgewählt ist.
Was aber nun tun, wenn der unbedarfte Anwender einfach schon mal den VCP-Treiber installiert hat? Dann wird in iTrain 2 unter Port "S <portname>" angezeigt. Und mit dem VCP-Treiber geht es (momentan ?) nicht. Also muß der VCP-Treiber deinstalliert werden (siehe oben). Die Installation des D2XX-Treibers ist aber tricky. Download via: http://www.ftdichip.com/Drivers/D2XX.htm
Aktuell ist die Version 1.0.4, die MacOS-X 10.4 oder neuer erfordert. Installation muß manuell ausgeführt werden mittels Terminal-Befehlen, siehe das beiliegende ReadMe. Die Installation gelingt nur als SuperUser, und in "Terminal" nur, wenn ein SuperUser-Passwort definiert ist. Der unbedarfte Anwender hat kein Passwort gesetzt. Was tun? Die Verschiebungen der D2XX-Treiber-Dateien muß in den unsichtbaren Ordner "/usr" und seine Unterordner erfolgen. Sichtbar machen (und die Schreibrechte ändern) kann man diesen mittels FileBuddy9: http://www.admilon.com/skytag/fileb...ads.html
Es ist dann noch ein SymbolicLink zu erzeugen: kann auch FileBuddy9, allerdings nicht in den unsichtbaren Ordner. Also den SymbolicLink auf dem Desktop erzeugen und dann per Drag&Drop in den unsichtbaren Ordner schieben. So hab ich es zumindest durchgeführt.
Nun ist der D2XX-Treiber installiert. iTrain 2 arbeitet dann sofort anstandslos mit der CC-Schnitte 2.0 (wenn man den VCP-Treiber vorher deinstalliert hat). Andere Programme, die den VCP-Treiber benötigen, dann aber evtl. nicht mehr. Man kann dann den VCP-Treiber gefahrlos wieder installieren, er ändert nicht den D2XX-Treiber. Nur ist danach der D2XX-Treiber nicht mehr logisch für iTrain 2 erreichbar. Ist er erst wieder, wenn man den VCP-Treiber wieder deinstalliert. Was ja nicht schwer ist (siehe oben).
Die Nutzung des VCP-Treibers in den letzten Tagen brachte folgende Besonderheiten zu Tage:
- die gelbe LED an der RJ45-Buchse der CC-Schnitte leuchtet auf, solange die (USB-) serielle Schnittstelle noch nicht initialisiert ist via Software. Dies ist normal.
- Leuchtet diese gelbe LED dauerhaft auf während des Betriebs, dann ist irgendwo ein Byte zuviel durch das Kabel gelaufen. Hier hilft totaler Reset: Gleisbox stromlos, CC-Schnitte stromlos, Softwareneustart. Man muß darauf achten, immer Pakete zu 13 Bytes zu senden!
- Das Senden auf die serielle Schnittstelle kann ins Stocken kommen, wenn man für jedes Byte auf CTS wartet. Dann kannes es passeieren, dass die LED gelb leuchtet und nichts mehr geht. Ich habe daher meiner Software angewöhnt, alle 13 Bytes auf einen Rutsch zu senden, sobald CTS an ist. Momentan teste ich das ganze ohne Warteverzögerung. Funzt.
Die Nutzung des D2XX-Treibers zeigt folgende Besonderheiten:
- ein einfaches "Open und Reset" reicht nicht, es muß die Baudrate mit 500000 zwingend eingestellt werden.
- VID/PID muß ich noch herausfinden.
- Programmierbeispiele für den D2XX-Treiber finden sich bei FTDI selbst, z.B. für VisualBasic
Fazit: iTrain 2 arbeitet anstandslos mit der CC-Schnitte 2.0 zusammen. Bei SimpleDigitalLocomotiveX müssen wir noch auf ein Update warten. Für die CC-Schnitte 2.0 kann man als generelle Mindestanforderung am Mac formulieren: MacOS-X 10.4 oder neuer.
Es steht noch einiges an Arbeit an, bis von mir eine neue Version kommt.
Viele Grüße
Mafi
EDIT 2011-11-28: wenn mich nicht alles täuscht, ist VID=0403h der Standardwert für FTDI-Chips - siehe dieses FTDI PDF
Quote
"FTDI uses its USB-IF assigned Vendor ID in conjunction with a Product ID as a “default” supplied with our FTDI ICs, …"
Ich vermute als PID=6001h, welcher der FTDI-Standardwert ist u.a. für FT232R-Chip.
Zu empfehlen ist allerdings wie von Xander bereits in iTrain verwirklicht die Verwendung des D2XX-Treibers. Auch wenn SDL auch den VCP-Treiber unterstützt. Beim VCP-Betrieb kommen einfach zu viele Fehler in den Empfangspuffer mit rein. Der D2XX-Treiber ist so stabil, dass auch alle Abfragekanäle der GleisBox-2 ermittelt werden können (aber bitte nicht häufiger als einmal in der Minute).
es gibt was neues zum Thema Mac und CC-Schnitte. Sowohl für iTrain als auch für SDL gibt es mit der Einführung von MacOS-X 10.9 "Mavericks" das Problem, dass Apple einen eigenen FTDI-VCP-Treiber in MacOS-X integriert hat. Der arbeitet zwar besser als der VCP-Treiber des Herstellers, überlagert aber wie dieser den D2XX-Treiber. Siehe folgende Links:
Will man dennoch den D2XX-Treiber nutzen, besteht die Lösung darin, den MacOS-X eigenen FTDI-USB-Treiber bis zum Neustart des Macs zu deaktivieren durch das Eingeben des folgenden Befehls über das Dienstprogramm "Terminal" (alles in einer Zeile):
sudo kextunload -b com.apple.driver.AppleUSBFTDI
Apple selber hat dazu am 20. Nov. 2013 in der folgenden TechNote 2315
mitgeteilt, dass es ab 10.9 "Mavericks" einen eigenen FTDI-USB-Treiber mit dem Betriebssystem ausliefert und pflegen wird. Dieser Treiber legt sich als VCP-Treiber über den D2XX-Treiber von FTDI, wie es auch der VCP-Treiber von FTDI selbst tut (siehe oben). Apple empfiehlt, langfristig auf die Nutzung der Treiber von FTDI zu verzichten, und nur den Treiber von Apple zu verwenden, was die Handhabung für den Endverbraucher deutlich vereinfacht. Zitat aus obiger TechNote:
Quote
"The recommended long term solution is to modify the application
to open the BSD layer serial port for communication with the FTDI hardware."
Aus meiner Sicht reicht momentan der Mavericks-eigene VCP-Treiber aus. Sollte es aber damit zu Problemen kommen (d.h. die gelbe Kontrolle-LED an der CC-Schnitte-2 bleibt dauerhaft an), dann ist der mühsame Weg der D2XX-Treiber-Installation einzuschlagen und "com.apple.driver.AppleUSBFTDI" temporär aus dem RAM zu löschen.