mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB2 Per-Ctrl. aus Win und von uC aus ansprechen?


Autor: Martin R. (solderwave)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

folgendes Problem beschäftigt mich:

Ein zu entwickelndes Peripheral-Gerät (Kamera) soll über USB2 zum Einen 
an einen Windows-Host, und zum Anderen (alternativ) an ein uC-basiertes 
Bedien/Anzeigegerät (ebenfalls noch zu entwickeln) angeschlossen werden.

Wäre nur der erste Fall zu lösen, würde ich einen FT2232 in der Kamera 
verwenden, und auf dem PC den zugehörigen Windows-Treiber/API. Habe ich 
vor einiger Zeit schon mal mit dem FT245 gemacht, soweit kein Problem.

Im zweiten Fall (mit dem selbstgebauten Host) taucht das Problem auf, 
dass der FT2232 offenbar als Black-Box designt ist, und ohne den 
Hersteller-Treiber keine Funktion möglich ist. Zumindest konnte ich 
keine Doku des Innenlebens (Register etc) finden. Der Anschluss an den 
selbstgebauten Host bzw. die dann selbst zu implementierende 
Kommunikation mit dem FT2232 scheint daher nicht möglich zu sein. (??)

Alternativ zum FT2232 könne man z.B. den ISP 1582 nehmen, zu dem es eine 
Appnote für die Programmierung gibt. Hier besteht also eine gewisse 
Aussicht, das Teil vom selbstgebauten Host her erfolgreich anzusprechen.

Dummerweise scheint es für den ISP1582 aber keinen Windowstreiber zu 
geben! (??)

Hab ich das Dilemma soweit richtig kapiert, oder was übersehen?


Hat jemand eine gute Idee, mit welchem USB Per.Controller sich diese 
Doppel-Kommunikation bewerkstelligen läßt?

( Die Hintertür, für die Kommunikation Kamera / Bediengerät eine eigene 
serielle Verbindung unabhängig vom USB zu stricken, wollte ich vorerst 
mal noch geschlossen lassen :-))


Danke schonmal für eure Ideen!

Gruß
Martin

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den FT232 (oder 2232) kann man durchaus auch mit nicht-PC-USB-Hosts 
ansteuern.
Einerseits kann das von sich aus der USB-Host-Controller VNC1L 
("Vinculum") von FTDI, andererseits gibt es für Linux-Systeme 
Treibersourcen für die FTxxx-Bausteine.
Den Linux-Treibersourcen kann man alle erforderlichen Informationen 
entnehmen, die nötig sind, um mit einem eigenen USB-Host mit den 
FTxxx-Bausteinen zu kommunizieren.

Andererseits, wenn Du Deinen Aufbau (Deine Kamera) mit einem µC 
verbinden willst, könntest Du den FT2232 auch umgehen und direkt mit der 
seriellen Schnittstelle des Aufbaus kommunzieren.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst ja den Cypress FX2 benutzen. Der hat klar definierte Endpoints 
(die du selbst festlegst) und kann von jedem Host problemlos 
angespreochen werden. Geht zum Beispiel unter Windows und Linux spielend 
einfach mit der LibUSB. Ansonsten gäbe es für die FTDI Chips noch die 
Möglichkeit, einen Vinculum Host Controller in das "Bediengerät" 
einzubauen. Der kann mit den FTDI Chips natürlich.

Autor: Martin R. (solderwave)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rufus & Christian,

danke für eure schnelle und gehaltvolle Rückmeldungen!

* Vinculum: scheidet leider aus, da offenbar kein High-Speed möglich

* Linux-Treibersourcen: hab ich gefunden, Danke für den Tip! Da ich mich 
mit Linux überhaupt nicht auskenne, und mit 
Windows-Treiberprogrammierung auch nicht, dürfte das ein harter Kampf 
werden... aber wenigstens ein Ansatz!

* Cypress FX2: muss ich mir mal näher anschauen... danke!

* Direkte serielle Verbindung: Das wäre halt die "Notlösung" im Fall 
einer Kapitulation vor dem USB :-))  Da ich so zwischen 20 und 80 MBit/s 
übertragen muss, wäre hier ein LVDS Link (synchron oder mit 
selbsttaktenden Daten) angesagt. Der HW-Aufwand wäre durchaus 
überschaubar, da sich ohnehin auf beiden Seiten FPGAs befinden werden.


Die Konfiguration des FT2232 scheint allein über das MProg Tool zu 
erfolgen, ergänzt durch ein paar Kommandos während der Initialisierung 
über den Treiber, um vom asynchronen zum schnellen synchronen Interface 
umzuschalten. Leider lese ich dabei was von BULK Mode! Eigentlich 
bräuchte ich den Isochronen Mode für garantierte 
Übertragungsrate/Latenzzeit...


Da werde ich wohl nochmal grundlegend in mich gehen müssen...

Gruß
Martin

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> * Vinculum: scheidet leider aus, da offenbar kein High-Speed möglich

Du schriebst FT2232 - der macht nur in der "H"-Version High-Speed, alle 
anderen Varianten sind Full-Speed-Ausführungen (mit 12 MBit).

> * Linux-Treibersourcen: hab ich gefunden, Danke für den Tip! Da ich mich
> mit Linux überhaupt nicht auskenne, und mit
> Windows-Treiberprogrammierung auch nicht, dürfte das ein harter Kampf
> werden...

Wozu solltest Du Windows-Treiber programmieren müssen? Die liefert FTDI.

> Isochroner Modus ... 20..80 MBit/sec

Bist Du Dir sicher, daß eine USB-UART hier die Hardware der Wahl 
darstellt?

Autor: Martin R. (solderwave)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Du schriebst FT2232 - der macht nur in der "H"-Version High-Speed, alle
anderen Varianten sind Full-Speed-Ausführungen (mit 12 MBit).

ok, ich meine grundsätzlich den "H". Die langsamen Brüder hab ich gar 
nicht wahrgenommen  :-)

> Wozu solltest Du Windows-Treiber programmieren müssen?

Muss ich natürlich nicht. Aber ich vermute mal dass jemand der 
Windows-Treiber programmieren könnte, eher was aus den Linux-Treibern 
rauslesen könnte, als jemand der von beidem k.A. hat...


> > Isochroner Modus ... 20..80 MBit/sec
> Bist Du Dir sicher, daß eine USB-UART hier die Hardware der Wahl
darstellt?

Der FT2232H ist ja eher ein USB/FIFO-Umsetzer, der auch noch ein wenig 
UART dazu spielt. Im Datenblatt wird immerhin mit >25 MByte/s geworben.


Der FX2 sieht mit aber tatsächlich interessant aus. Zumindest kann man 
den in den Isochronen Modus versetzten.

Martin

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.