www.mikrocontroller.net

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


Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ekschperde (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ekschperde (Gast)
Datum:

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

Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ekschperde (Gast)
Datum:

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

Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PICs haben teilweis eingebaute USB Interfaces...

Vlt. gibts ja passende Treiber auf OSx Seite
USB-Hardware der PIX18Fxx5x

Die PIC18Fxx5x enthalten ein USB2.0-Interface mit folgenden Eigenschaften:

Device
Mit diesem Interface läßt sich ein USB-Device aufbauen, aber kein Controller.

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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: DerDan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.