Forum: Mikrocontroller und Digitale Elektronik USB- Controller MCP2200 oder CH330


von Schorsch (Gast)


Lesenswert?

Hallo,
ich möchte einen kleinen USB-Seriell-Wandler bauen. Die billigen Teile 
beinhalten meist einen PL2303. Der wird aber nicht von WIN10 
unterstützt. Mit alten Treiber geht es, aber wer weiß wie lange noch. 
VUSB schafft glaube nur 4800 Baud. Auf meiner Suche bin ich auf den 
MCP2200 gestoßen. Der ist leicht beschaffbar und die Beschaltung ist 
gering. Desweiteren habe ich den CH330 gefunden. Schön klein und hat nur 
die Anschlüsse RxD und TxD. Genau die, die ich brauche.
Wie sind Eure Meinungen zu den Schaltkreisen? Hab etwas wichtiges 
übersehen? Was muß man beachten?
Viele Grüße
Schorsch

von Gustl B. (-gb-)


Lesenswert?

Eine schöne vergleichende Übersichtstabelle verschiedener USB-UART ICs 
wäre mal was. Die CP2102 und FT232R (kann bis 3 MBaud) fehlen noch.

von Frank K. (fchk)


Lesenswert?

Wenn Du nur Rx/Tx brauchst, wäre da noch der MCP2221A. Der braucht auch 
keinen Quarz, und er kann auch I2C, was oft extrem nützlich ist, wenn 
man irgendwas kleines anschließen will.

fchk

von Harald A. (embedded)


Lesenswert?

Such mal nach FT232XS, das ist ein geschrumpfter FT232, hat wirklich nur 
das nötigste drin.

von Andreas B. (bitverdreher)


Lesenswert?

Hmm, warum kauft Du Dir nicht die Dinger mit dem CH340 aus der Bucht? 
Die kosten ja fast weniger als die einzelnen Chips. Mit ca. 1.5-2€ bist 
Du dabei.

von asd (Gast)


Lesenswert?

CH340 ist auch auf den weit verbreiteten Arduino-Nano Clones drauf. Die 
Treiberunterstützung sollte also so bald nicht eingestellt werden.

von Frank K. (fchk)


Lesenswert?

Der große Vorteil der Microchip MCP2200 und MCP2221A ist, dass man eben 
keine Treiberunterstützung vom Chiphersteller braucht. Diese Chips 
implementieren nämlich nur die USB-Standardklassen HID und CDC-ACM, und 
die sind in den ganzen USB-Stacks schon drin. Ok, Microsoft halt da mal 
wieder etwas länger gebraucht, aber mit Windows 10 braucht man auch kein 
.inf mehr, sondern kann das Teil einfach so ohne Treiberinstallation 
einfach anstecken wie bei Mac, Linux, OpenBSD etc auch.

fchk

von Harald (Gast)


Lesenswert?

Frank K. schrieb:
> USB-Standardklassen HID und CDC-ACM

Interessant! Hatte so einen Vogel noch nicht auf dem Tisch, irgendwelche 
Nachteile bzgl. Datenrate, Latenz, einzelne Bytes verschlucken, 
Kompatibilität in den Programmen?

von Frank K. (fchk)


Lesenswert?

Harald schrieb:
> Frank K. schrieb:
>> USB-Standardklassen HID und CDC-ACM
>
> Interessant! Hatte so einen Vogel noch nicht auf dem Tisch, irgendwelche
> Nachteile bzgl. Datenrate, Latenz, einzelne Bytes verschlucken,
> Kompatibilität in den Programmen?

Unter Windows ist das auch nur ein COMx, unter Linux ein /dev/ttyACMx 
statt /dev/ttyUSBx, die ganzen Modemsteuerleitungen (DSR/DTR/DCD/RI) 
gibts da nicht, aber bis 115k läuft alles ganz normal, und mehr brauche 
ich nicht und habe ich nie probiert.

Einige Arduinos nutzen einen Mega16u2 als USB-UART, und der spricht auch 
CDC-ACM. Wahrscheinlich war der 16u2 billiger als ein FTDI-UART gewesen.

fchk

von Michael (Gast)


Lesenswert?

Frank K. schrieb:
> Wahrscheinlich war der 16u2 billiger als ein FTDI-UART gewesen.

Diese FTDI-Dinger sind aber proprietär, implementieren kein CDC und 
deren Support rückt keine Protokollbeschreibung raus. Außerdem sind die 
teuer. Wenn man einen USB-Host implementieret also unbrauchbar.

Ich empfehle die MCP oder implementiere CDC einfach selbst, 
Microcontroller mit USB sind heute nicht teurer als welche ohne.

von Stefan F. (Gast)


Lesenswert?

Leider haben die CDC Varianten unter Linux gleich zwei Hasenfüße:

a) Der Modemmanager (der zumindest bei Ubuntu und Debian standardmäßig 
installiert ist) hält das Device für ein Modem und versucht es beim 
Einbstecken mit AT Befehlen zu initialisieren.

b) Der Kerne hält das Device für eine Konsole und sendet empfangene 
Zeichen als Echo zurück. Das passiert so lange, bis man das entweder mit 
dem stty Befehl abstellt oder den Port mit einem Anwendungsprogramm 
öffnet.

Wenn man das weiß, kann man sich darauf einstellen.

von Michael (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Leider haben die CDC Varianten unter Linux gleich zwei Hasenfüße:

Macht HID auch Probleme bei Linux?

von Stefan F. (Gast)


Lesenswert?

Michael schrieb:
> Macht HID auch Probleme bei Linux?

Die kannst du nicht für serielle Kommunikation verwenden, jedenfalls 
nicht ohne spezielle Treiber. HID ist eigentlich für Tastaturen und 
Mäuse gedacht.

von Michael (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Die kannst du nicht für serielle Kommunikation verwenden, jedenfalls
> nicht ohne spezielle Treiber. HID ist eigentlich für Tastaturen und
> Mäuse gedacht.

Unter Windows kannst du einfach mit einem File Handle darauf zugreifen 
und beliebige Daten bidirektional senden. Kein spezieller Treiber 
erforderlich.

Was wäre denn aus deiner Sicht die beste Wahl für Linux wenn sowohl CDC 
als auch HID nicht praktikabel sind?

von Schorsch (Gast)


Lesenswert?

Danke für Eure Antworten.
Den MCP2221 kannte ich noch nicht. Den gibt es auch als THT, daß finde 
ich interessant. SMD ist doch manchmal ganz schön klein.

Mein 1.62€ Teil aus der Bucht entpuppte sich dann als PL2303 und lief 
nicht standartmäßig unter Win10. Mit alten Treiber geht das schon, aber 
das will ich nicht.

Gruß Schorsch

von Stefan F. (Gast)


Lesenswert?

Michael schrieb:
> Was wäre denn aus deiner Sicht die beste Wahl für Linux wenn sowohl CDC
> als auch HID nicht praktikabel sind?

Die Frage ist falsch formuliert. Ich würde CDC nehmen, weil es 
praktikabel ist. Man muss sich halt nur auf die Eigenarten einstellen, 
das kann man in Software alles berücksichtigen.

von Purzel H. (hacky)


Lesenswert?

Die FTDI USB to UART, FT232 und verwandte, sind explizit nur Uarts, die 
Treiber sind Bestandteil von Windows. Ich verwende immer diese. Der 
Preis ist mir eigentlich egal, ich fertige keine hohen Stueckzahlen. Wie 
lange kannst du mit software und Konfigurationen rummachen, um bei zB 
100 Stueck die Ersparnis zu verblasen ?

von Frank K. (fchk)


Lesenswert?

Michael schrieb:

> Was wäre denn aus deiner Sicht die beste Wahl für Linux wenn sowohl CDC
> als auch HID nicht praktikabel sind?

Ich verwendet die Microchip-Teile auch unter Linux, sowohl PC als auch 
ARM und MIPS. Ja, den Modemmanager muss man zügeln, entweder 
deinstallieren oder per udev-Regel per USB-Device ID abklemmen:
1
ATTRS{idVendor}=="04d8" ATTRS{idProduct}=="00df", ENV{ID_MM_DEVICE_IGNORE}="1"

Das ist überhaupt kein Problem. Muss man wissen, dann geht das. Läuft 
ansonsten ohne Probleme und ist sehr wohl praktikabel, und zwar unter 
allem Architekturen.

HID wird bei den Bausteinen nur für die GPIOs, I2C und die Konfiguration 
verwendet. UART läuft immer und grundsätzlich über CDC-ACM.

fchk

von Michael (Gast)


Lesenswert?

Frank K. schrieb:
> HID wird bei den Bausteinen nur für die GPIOs, I2C und die Konfiguration
> verwendet. UART läuft immer und grundsätzlich über CDC-ACM.

Ich meinte das mit HID eher allgemein. Ist HID unter Linux 
problematisch? (Dass der MCP das nicht kann für die UART kann, blenden 
wir jetzt Mal aus.)

von Stefan F. (Gast)


Lesenswert?

Michael schrieb:
> Ich meinte das mit HID eher allgemein. Ist HID unter Linux
> problematisch?

Wohl kaum, ich arbeite seit vielen Jahren an einer HID Tastatur und 
Maus. Kann mich nicht daran erinnern, dass die jemals nicht funktioniert 
haben - außer wenn die Batterie (der Funkmaus) leer wurde.

von Frank K. (fchk)


Lesenswert?

Michael schrieb:
> Frank K. schrieb:
>> HID wird bei den Bausteinen nur für die GPIOs, I2C und die Konfiguration
>> verwendet. UART läuft immer und grundsätzlich über CDC-ACM.
>
> Ich meinte das mit HID eher allgemein. Ist HID unter Linux
> problematisch? (Dass der MCP das nicht kann für die UART kann, blenden
> wir jetzt Mal aus.)

Nein. Die ganzen USB-Standardklassen funktionieren eher besser als bei 
Windows. Vor allem sowas wie CDC-EEP oder CDC-ECM, wo Microsoft 
unbedingt sein RNDIS reindrücken musste. Auch USB 2.0 Audio war sehr 
lange ein Trauerspiel, bis sie endlich einen Treiber eingekauft haben 
von jemandem, der das besser konnte.

fchk

von Frank K. (fchk)


Lesenswert?

Schorsch schrieb:
> Danke für Eure Antworten.
> Den MCP2221 kannte ich noch nicht. Den gibt es auch als THT, daß finde
> ich interessant. SMD ist doch manchmal ganz schön klein.

Vorsicht. Du willst den neueren MCP2221A haben, nicht den älteren 
MCP2221 ohne A. Der Unterschied ist die maximale Baudrate.

fchk

von Andreas B. (bitverdreher)


Lesenswert?

Schorsch schrieb:
> Mein 1.62€ Teil aus der Bucht entpuppte sich dann als PL2303 und lief
> nicht standartmäßig unter Win10.
Naja, da kann man ja auch mal näher definieren was man da kauft. Wenn 
man die natürlich bei einem chinesischen Textilhändler bestellt....

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.