Startseite · Forum · CAN Module · Shops · Katalog · Pressearchiv · Downloads · Videos · WebLinksFreitag, 20. September 2024
Thema ansehen
 Das CAN digital Bahn Projekt > M(ärklin)-CAN Module
 CC-Schnitte
Vorheriges Thema Nächstes Thema

 
Autor Grundlagen: CC-Schnitte 2.0 und MacOS-X   1 # 4 top
Mafi
Spezialist


User Avatar



Beiträge: 42

Eingetreten: 22.10.11
Status: Offline
Eingetragen am 27.11.2011 13:17  

Hallo zusammen,

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.

Literatur zu diesem Thema? Dann hier:
Von 2004 ist diese Liste mit der Beschreibung der MacOS-X-Kernel-Limits:
http://support.realsoftware.com/lis...161.html
Von Juli 2005 ist der Beispielcode von Apple mit "arbitrary baud rates":
http://developer.apple.com/library/...e_c.html
Code
// 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.


Unter Windows ist das wohl überhaupt kein Thema (mehr): http://forums.realsoftware.com/view...p=231060

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.


Bearbeitet von Mafi am 28.11.2011 22:09
 
Autor RE: Grundlagen: CC-Schnitte 2.0 und MacOS-X   2 # 4 top
Thorsten
Site Admin


User Avatar



Beiträge: 2229

Ort: in der Lampe
Eingetreten: 03.06.10
Status: Offline
Eingetragen am 28.11.2011 13:48  

Hallo Mafi,


Danke für den Bericht.
Liest sich sehr gut, auch wenn ich nicht alles verstehe. Mit dem Programmieren auf dem PC habe ich es nicht so.


Schöne Grüße

BR96 Thorsten

 
Autor RE: CC-Schnitte 2.0 und SimpleDigitalLocomotive   3 # 4 top
Mafi
Spezialist


User Avatar


Threadstarter

Beiträge: 42

Eingetreten: 22.10.11
Status: Offline
Eingetragen am 27.12.2011 12:26  

Hallo zusammen,

anders als oben vermutet sendet meine CC-Schnitte-2 folgendes
PID = 24599 = 6017hex
VID = 1027 = 0403hex

Ist aber für die Software egal, man sieht ja auch so, was man bei USB reingestöpselt hat.

Die nun neue Version von SimpleDigitalLocomotive v0.6 unterstützt nun auch die CC-Schnitte 2.0, experimentell sogar mit dem GleisReporterCS1.

Eine Kurzfassung des Anschlusses findet sich auf deutsch in PDF-Form hier.

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).

Cheers
Mafi


Bearbeitet von Mafi am 01.02.2014 16:51
 
Autor RE: CC-Schnitte 2.0 un MacOS-X Mavericks   4 # 4 top
Mafi
Spezialist


User Avatar


Threadstarter

Beiträge: 42

Eingetreten: 22.10.11
Status: Offline
Eingetragen am 01.02.2014 16:59  

Hallo zusammen,

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:

http://www.enttec.com/support-cente...MPORTANT
http://support.synthe-fx.com/custom...cks-info
http://www.xcore.com/questions/2099...-osx-109
http://stackoverflow.com/questions/...y-on-osx

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

https://developer.apple.com/library...dex.html

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.

Viele Grüße
Mafi


Bearbeitet von Mafi am 01.02.2014 17:00
 
 
Springe zu Forum:
Copyright 2010 - 2023 by Sven Schapmann