Forum: Mikrocontroller und Digitale Elektronik Virtual COM, FTDI, Silabs oder?


von Helmut S. (helmuts)


Lesenswert?

Hallo,
ich möchte ein USB-Interface realisieren das auf PC-Seite als 
Virtual-COM-Schnittstelle erscheint damit der Softwwareaufwand auf 
beiden Seiten der Schnittstellen möglichst klein bleibt.

Aufgabe:
USB --> UART-uP --> (20 Port-Pins) zum Steuern von Hardware

Dafür habe ich FT232R, FT232H, CP2103 und PL-2303(D) mal angeschaut.

http://www.ftdichip.com/FTProducts.htm
http://www.silabs.com/products/interface/usbtouart/Pages/usb-to-uart-bridge.aspx
http://www.prolific.com.tw/eng/Products.asp?ID=21

Der Preis spielt für die Auswahl keine Rolle (sehr kleine Stückzahl.
Gibt es da Argumente die einen der 4 Chips bezüglich Kompatibilität und 
SW-Unterstützung besonders empfehlenswert machen?


Als weitere Alternative findet man Beispiele und Diskussionen über 
USB-uPs die virtual-COM simulieren. Allerdings wirken die Diskussionen 
wie "bei mir geht das oder jenes nicht" nicht gerade 
vertrauenserweckend. Vor allem scheinen die Leute die das dann endlich 
"bug-free" hatten ziemlich viel Zeit investiert zu haben. Bin Hardwerker 
und da will und kann ich nicht soviel Zeit in Software investieren. 
Außerem sind diese Projekte dann oft nicht wirklich frei von Rechten der 
Programmierer. Diese Beispiel fallen dann schon mal gleich weg.

Vielen Dank schon mal für ein paar Empfehlungen und Tipps.

Gruß
Helmut

von Michael H. (morph1)


Lesenswert?

MCP2200 und alle PICs mit USB Schnittstelle und dem Stack von Microchip 
(ist aber schon höhere Schule).

Viel Erfolg!

von Horst (Gast)


Lesenswert?

Der MCP2200 erzeugt durch seinen externen Quarz für mehr Störungen als 
ein FTDI... Wir hatten Probleme mit Funkmodulen bei einsatz des MCP die 
beim FTDI nicht auftraten

von TestX .. (xaos)


Lesenswert?

ich kann dir sehr den FTDI empfehlen, es gibt direkt native treiber, die 
man einfach in C++, C#, Java, Python einbinden kann und es funktioniert 
einfach  so spart man sich das mit dem virtuellen com port komplett

von Helmut S. (helmuts)


Lesenswert?

@Michael
Solche Lösungen fallen wohl weg da bestimmt zu softwarelastig.

@Horst
Danke für den Tipp. Das könnte durchaus relevant sein, wenn das Teil 
zuviel abstrahlt.

von Anja (Gast)


Lesenswert?

Helmut S. schrieb:
> Vielen Dank schon mal für ein paar Empfehlungen und Tipps.

Hallo,

ich habe mir mal vor Jahren folgende 3 Bausteine für ein Design 
angeschaut:
CP2101
PL-2303
FT232BM

Sieger war damals FT232BM der Nachfolger ist der FT232R

+ Treiber für alle damals gängigen Windows-Systeme + Linux
  (die anderen hatten damals nur 1-2 Windows-Versionen unterstützt)
+ Viele Beispielprogramme + Application Notes
+ Support auch für "krumme Baudraten" z.B. 7680 Baud
+ FTDI reserviert auf Anfrage USB-PIDs aus ihrem Nummernkreis für Dein 
Projekt.
- Systempreis (war leider nicht der billigste Chip)

Gruß Anja

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

FTDI und SiLabs haben erheblich bessere Treiberunterstützung als 
Prolific. FTDI unterstützt mit allen Varianten die direkte Ansteuerung* 
von RS485-Treibern, SiLabs tut das nur bei ausgesuchten Exemplaren, 
Prolific AFAIK gar nicht.

*) gemeint ist die automatische Umschaltung zwischen Sende- und 
Empfangsbetrieb, so daß das für den die USB-Seriell-Bridge ansteuernden 
PC transparent geschieht.

von Helmut S. (helmuts)


Lesenswert?

Hallo,

schon mal danke an alle die über ihre Erfahrungen und Tipps geschrieben 
haben. Bis jetzt schneidet ja der FT232R am besten ab.

Was ist mit dem neuesten FT232H im Vergleich zum FT232R?
(Hinweis: Ich brauche keine hohe Übertragungsrate.)
http://www.ftdichip.com/FTProducts.htm

von Uwe Bonnes (Gast)


Lesenswert?

@Helmut S.:
"Hinweis: Ich brauche keine hohe Übertragungsrate"
Dann brauchst D auch nicht den FT232H. Erstens gibt es den noch nicht in 
der freien Wildbahn, zweitens hat er kein internes EEPROM und braucht 
drittens einen Quarz...

von Potter (Gast)


Lesenswert?

Wenn Du keine sonderlich hohen Übertragungsraten brauchst - ich sag mal 
bis 20/30 kByte/s - dann schau Dir mal HID an.

HID hat nur Vorteile:
- keine zusätzlichen Treiber notwendig.
- die nervige .inf-Datei unter Windows entfällt.
- bei 64 Bit Systemen braucht man für COM-Port sogar eine 
Zertifizierung.
- HID stöpselst Du an (egal ob Windows, Linux usw.) und 10 Sekunden 
später ist der Betriebssystem eigene Treiber installiert.

Fertige Applikationen zur Ansteuerung unter Windows gibt es z.B. bei 
http://lvr.com und bei mir auf
http://embedded24.net.

Gruß Potter

von Christian R. (supachris)


Lesenswert?

Auch für die FTDI Chips muss man sich unter aktuellen Windows 
Bertiebssystemen mit keinem extra Treiber herum plagen. Anstecken, 
Treiber wird über Windows Update geladen. Fertig. Die Dinger 
funktionieren extrem zuverlässig. Silabs geht auch noch, macht aber 
schon mehr Probleme. Prolific geht gar nicht, so ein Stress, wie die 
Dinger verursachen. Schrecklich.

von crazy horse (Gast)


Lesenswert?

Na gut - dann noch eine positive Rückmeldung für FTDI.
Funktioniert wirklich problemlos.

von Frank K. (fchk)


Lesenswert?

Helmut S. schrieb:
> Hallo,
> ich möchte ein USB-Interface realisieren das auf PC-Seite als
> Virtual-COM-Schnittstelle erscheint damit der Softwwareaufwand auf
> beiden Seiten der Schnittstellen möglichst klein bleibt.
>
> Aufgabe:
> USB --> UART-uP --> (20 Port-Pins) zum Steuern von Hardware

Ich kann Dir den LPC1343 empfehlen. Dieser Controller hat 32-Bit 
Leistung zu 8 Bit Preis, einen integrierten USB-Device-Port, und er hat 
seine USB-Treiber im ROM gleich drin - für Mass Storage und HID. Für 
Dich ist HID das Protokoll der Wahl, da Du eben KEINE zusätzlichen 
Kerneltreiber brauchst und damit niemals Probleme mit 64 Bit, Windows 8 
oder sonstwas haben wirst. Anstecken - und wird erkannt.

Software-Update im Feld: Jumper setzen, anstecken, Gerät sich als Mass 
Storage anmelden lassen und neue Firmware per Zerr&Plumps draufkopieren. 
Anschließend Gerät auswerfen, Jumper wieder ziehen und wieder anstecken.

fchk

von Sitting Bull (Gast)


Lesenswert?

@crazy horse: Wer hätte das gedacht?

von tester (Gast)


Lesenswert?

wie wäre es mit dem tusb3410 von ti?

von Helmut S. (helmuts)


Lesenswert?

@Frank,
Der Vorteil von virtual COM ist doch, dass ich praktisch aus jeder 
Programmiersprache heraus ohne zusätzliche DLL meine Daten an den uP 
senden kann.
Geht das bei HID genauso oder muss da für jede Software (C#, C++, VB, 
Labview , VEE, ....) eine DLL zur Verfügung gestellt werden?
Wenn das der Fall ist, dann geht das auf keinen Fall.

Zum ersten Testen plane ich ein x-beliebiges Terminalprogramm zu nehmen.
Ich dinde das ist ein echter Vorteil der für Virtual COM spricht.
Hab hier einen Digitus Serial->USB Converter mit FT2?? chip. Werde heute 
Abend mal testen ob wie gewünscht Daten durchgereicht werden.
Später brauche ich den FT232 natürlich auf meinem Board.

von Hans (Gast)


Lesenswert?

Ich verwende den PL-2303 für 4€ als "Siemens S45/S55 USB Kabel" (eBay), 
läuft mit 1MBs und stabil. Vorher habe ich FTDI 2322 gehabt, steurung 
direkt über DLL und lief langsammer (beide auf Win7 x64) ...

von Frank K. (fchk)


Lesenswert?

Helmut S. schrieb:
> @Frank,
> Der Vorteil von virtual COM ist doch, dass ich praktisch aus jeder
> Programmiersprache heraus ohne zusätzliche DLL meine Daten an den uP
> senden kann.
> Geht das bei HID genauso oder muss da für jede Software (C#, C++, VB,
> Labview , VEE, ....) eine DLL zur Verfügung gestellt werden?
> Wenn das der Fall ist, dann geht das auf keinen Fall.

Die erforderlichen DLLs (HID.DLL, SETUPAPI.DLL) sind ja bei jedem 
Windows dabei. Wie würde Windows sonst USB Mäuse und Tastaturen 
ansteuern? Solange wie Du Funktionen aus DLLs aufrufen kannst, kannst Du 
auch ein HID ansteuern. Und es wird automatisch gefunden, ohne dass der 
User etwas einstellen muss und kann. Idiotensicher sozusagen, und Du 
kannst einzelne Instanzen dabei sicher auseinanderhalten. Der 
zusätzliche Programmieraufwand auf Hostseite hält sich dabei in Grenzen. 
Nachher hast Du ohnehin nur noch ein Handle, mit dem Du HID Reports 
lesen und schreiben kannst.

> Zum ersten Testen plane ich ein x-beliebiges Terminalprogramm zu nehmen.
> Ich dinde das ist ein echter Vorteil der für Virtual COM spricht.

Kommt drauf an, wie groß der Aufwand des ersten Tests im Vergleich zum 
Rest wirklich ist.

fchk

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.