Forum: Mikrocontroller und Digitale Elektronik OS X <-> µcontroller; per USB ;> 250.000 baud und stabil?


von Michel (Gast)


Lesenswert?

Also ich bin auf der Suche nach einer möglichst einfachen Verbindung von 
Mac und µController per USB mit Übertragungsraten >250.000baud.

Ich habs mit FT232RL probiert, allerdings scheinen die D2XX Treiber 
unter OS X sehr buggy zu sein.  Nach eine Anzahl von write operationen 
deadlocked der Treiber regelmässig im Treiber. VCP Treiber sind wegen 
der Übertragungsraten/µC-Takt keine wirkliche Alternative. Es scheint 
einen stabilen OpenSource Treiber zu geben (libftdi), allerdings heisst 
es überall dass der nur in Zeitlupe funtioniert?

Unter Win scheints stabil zu sein, allerdings sieht mein Projekt einen 
Mac vor, den kann man auch nicht wegdiskutieren.

Nun meine Frage: Gibt es eine stablile Alternative, welche mit 
überschaubarem Aufwand realisierbar ist (ich bin kein low level USB 
Experte, jedenfalls noch nicht...)

Für Hilfe, Info wäre ich sehr dankbar.

-gruss Michel

von Ekschperde (Gast)


Lesenswert?

> Nun meine Frage: Gibt es eine stablile Alternative, welche mit
> überschaubarem Aufwand realisierbar ist

USB und zuverlässig schliesst sich gegenseitig aus :-)
Da reicht schon ein zusätzlich eingestecktes Gerät und der Bus wird neu 
enumeriert.

Ich nehm lieber Lantronix X-Port und Ethernet.

von Michel (Gast)


Lesenswert?

Hab ich auch schon drüber nachgedacht. In USA sind die Dinger auch 
einigermassen bezahlbar, allerdings besteht immer noch ein 
Preis-Unterschied von x10. Hab mir neulich einen Wiport mitgebracht.


-michel

von Ekschperde (Gast)


Lesenswert?

Naja, ich hab was von 38 Eu (netto) in Einzelstückzahlen im Hinterkopf.
Das bringt die ersparte Entwicklungszeit leicht wieder rein.

von Michel (Gast)


Lesenswert?

Yep In USA bekomm ich die für knapp 30€. Wenn allerdings die FTDI Dinger 
funktionieren würden (so wie unter Win), dann sind das halt ca. 7€ 
inclusive Buchse.

Das andere Problem sind die Ethernet Kabel. Ich hab noch keine dünnen 
und flexiblen Kabel gefunden und die üblichen CAT-5 sind so wahnsinnig 
störrisch.

von Ekschperde (Gast)


Lesenswert?

Für 10BaseT reichen 4 Adern :-)
Das fällt dann dünner aus.

von Michel (Gast)


Lesenswert?

Ok, aber bei diesem Projekt ist leider USB angesagt...

Keiner weis was? Ich meine das muss doch gehn, meine Maus funktioniert 
doch auch :)

-michel

von ... .. (docean) Benutzerseite


Lesenswert?

PICs haben teilweis eingebaute USB Interfaces...

Vlt. gibts ja passende Treiber auf OSx Seite
1
USB-Hardware der PIX18Fxx5x
2
3
Die PIC18Fxx5x enthalten ein USB2.0-Interface mit folgenden Eigenschaften:
4
5
Device
6
Mit diesem Interface läßt sich ein USB-Device aufbauen, aber kein Controller.
7
8
Modes
9
Es werden die Modes Low-Speed (1.5 MBit/s) und Full-Speed (12 MBit/s) unterstützt, nicht jedoch der High-Speed-Mode (500 MBit/s).

von Christian R. (supachris)


Lesenswert?

Wo genau liegt das Problem, per VCP-Treiber meinetwegen 921kBaud zu 
fahren? Der µC wird doch wohl einen UART Buffer haben, so dass der 
zwischendurch was anderes machen kann.
Ansonsten kannst du ja die ganz große Keule schwingen, und den Cypress 
FX2 benutzen, mit der LibUSB für Mac zusammen. Nur wirst du dann leider 
einen WinPC für die Anpassung der Firmware benötigen.

von Michel (Gast)


Lesenswert?

Das Problem liegt am µC Takt (Quarz) und der daraus resultierenden 
Fehler-Rate bei Standard-Baudraten. Ich müsste so einiges 
umschmeissen... und alles nur weil der USB Treiber Schrott ist...

-mj

von DerDan (Gast)


Lesenswert?

Hallo,

also ich würd schon versuchen den FTDI zum laufen zu bekommen.

Der Virtual Comport lässt sich auf fast jede beliebige Baudrate setzen. 
ich geh davon aus, dass du den Comport in einem selbst geschrieben 
Programm verwendest!

Ich benutze oft Baudraten 500.000, 921.600 und 1.000.000 (allerdings 
unter Windof)


ansonsten geht auch noch der FT245 (fifo), wenn man genug Pins am uC 
frei hat.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Ich habe leider auch die Erfahrung gemacht dass der FT232 zumindest 
unter Linux mit libftdi und Stock-Kerneltreiber bei grossen Datenraten 
nicht funktioniert. Ich habe allerdings auch keine Urzeiten damit 
verbracht das ans Laufen zu bekommen weil ich die Notwendigkeit nicht 
hatte. "Aufhaengen" tut sich nichts aber es kommt halt auch nur Mist an. 
Die lib hat sowieso ein paar sehr ausgefallene Eigenheiten, die man 
erstmal herausfinden muss.

Michael

von Guido Körber (Gast)


Lesenswert?

USB und stabil sind durchaus nicht unvereinbar, zumindest nicht unter 
MacOS oder Linux, bei Windows wäre das etwas schwieriger...

>250.000 baud soll wohl mehr als 250kbit/s heissen? baud ≠ bit/s

Was genau ist denn die Aufgabe?

von Tilo (Gast)


Lesenswert?

Wie sieht es mit dem Wandler von Prolific aus?

Unter Parallels funktioniert der bei mir bis 500kbaud.
Mit Labview waren nur 115200baud möglich. Mit diversen
Terminalprogrammen lassen sich 230kbaud unter OS X einstellen.
Wie gut das läuft, kann ich dir leider nicht sage.

von Michel (Gast)


Lesenswert?

Ich hab noch mal geforscht und da ist mir aufgefallen, dass es einen 
known issue für multithreaded-apps und dem d2xx Treiber gibt. Auf Mac 
Seite ist das ganze derzeit noch ein Python Prototyp und ich hatte 
Python's memory management thread nicht auf der Rechnung...

Das lässt sich anscheinend durch ein Konfig-File fixen. Allerdings muss 
ich dann jedesmal dieses config-file installieren und kann nicht nur auf 
den standard Installer zurückgreifen.

Die genaue Aufgabe besteht aus der übermittlung von Kommandos und 
Requests. Kommandos können parameter enthalten die vom Controller in 
mehrere kaskadierte Shift register geschoben werden. Die Datenrate die 
ich hierfür brauche ist ca. 150kBaud.

Werden die Profilic-Chips von OS X erkannt? Gibts da einen guten Driver 
Support?

Danke für die Antworten!

-michael

von Guido Körber (Gast)


Lesenswert?

Baud sind Modulationsschritte pro Sekunde, Du meinst wohl bit/s.

Einen Fehler den viele Leute bei USB machen ist zu vermuten, dass das 
Verhalten so wie bei einer seriellen Schnittstelle ist. Ist es nicht. 
Wenn nur einzelne oder wenige Zeichen pro Transaktion übergeben werden 
ist der Durchsatz gruselig niedrig. USB ist paketorientiert, 
entsprechend müssen so viele Daten wie möglich in einer Transaktion 
übertragen werden.

von Tilo (Gast)


Lesenswert?

Baud und bit/sek ist bei rs232 das selbe, da mit jedem Symbol ein Bit 
übertragen wird. Der Prolific Chipsatz läuft bei mir wesentlich besser 
unter OS X und Windows als diese PL23xx? Teile. Mit FTDI habe ich keine 
Erfahrung. Ich weiß gar nicht mehr, ob der Prolific Treiber dabei war 
oder nicht.

Afaik hab ich den einfach eingesteckt und er wurde als /dev/cu.usbserial 
eingebunden. Ich habe heute mit Minicom versucht 460k baud einzustellen, 
in dem ich die Configfile anpasste. Das  ging nicht; Minicom und Labview 
erlauben nur max. 230k. Mehr willst du ja auch nicht.

Ich kann morgen mal 230k versuchen und dir dann bescheid geben.

Generell macht, wie oben schon geschrieben, USB bei bidirektionaler 
Kommunikation und kleinen Datenmengen keinen Spaß. Der Bus verursacht 
eine Latenz von 1ms und die merkt man dann deutlich.

Hast du für OS X ein gescheites Terminalprogramm gefunden? zterm ist mir 
zu "starr". Als Alternative habe ich nur Terminalprogramme aus der 
Unix-Welt gefunden.

von Michel (Gast)


Lesenswert?

Erstmal ich hab schon Baud gemeint.

Interessant wäre der Profilic nur wenn er non-standard Baudraten 
unterstützen würde. (Ansonsten kann ich auch den VCP Treiber von FTDI 
verwenden, der läuft auch recht stabil) Über das standard iocntl 
Kommando gehen meines wissend nur die vordefinierten Konstanten. Falls 
jemand da einen Trick kennt...

Ich benutze zTerm oder die Kombin von iTerm und screen. Allerdings nicht 
allzu oft da ich in der Regel alles in Python-Kommandos einpacke. Das 
ist auch ziemlich "interaktiv" man kann es aber besser skripten und 
reproduzieren.

Danke für das Feedback!

-michel

von Michel (Gast)


Lesenswert?

Also hier ein kleiner Update für's Archiv. Der FT232RL scheint auch mit 
dem config file in deadlocks zu laufen. Nicht mehr so schnell aber 
zuverlässig innerhalb weniger Stunden Tests. Ich hab den FTDI Support 
angeschrieben und warte jetzt auf Antwort.

-michel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.