Forum: Mikrocontroller und Digitale Elektronik Datenübertragung µC <--> PC


von Stefan (Gast)


Lesenswert?

Hallo,

"früher irgendwann war alles einfach"(TM)...

Naja, stimmt nicht für alles aber zumindest für die Datenkommunikation 
zw. PC und µC drängt sich der Verdacht inzwischen ganz streng auf...

Frage: Welche Möglichkeiten habe ich, um mit einem µC "bastelfreundlich" 
(leitungsgebunden) Daten auszutauschen?

Die folgenden Möglichkeiten kenne ich schon -- teilweise, mit Außnahme 
V-USB, alle schon selbst benutzt:

1. doch RS-232, leider auf PCs immer seltener anzutreffen. Auf 
Tablets/Smartphones gar nicht mehr (bzw. noch nie)...

2. RS-232 via FTDI oder ähnlichen Chips auf USB (scheint die von vielen 
favorisierte Methode zu sein). Ich muss zugeben, dass ich mit der 
Methode inzwischen so meine Probleme habe (s.u.)

3. V-USB, einige (hier im Forum) behaupten, dass sei nicht stabil genug, 
nicht schnell genug oder nicht standardkonform genug (insbes. CDC 
low-speed)

4. "echtes" USB via Hardware oder µC, der das direkt kann.

Zu Punkt 1: das ist die Ursache des Problems... ;-)

Zu Punkt 2: das ist die Methode, die ich nahm/nähme, "wenn" sie keine(!)
            extra Treiber und keine INF-Spielereien erfordern würde
            (also nur mit USB-Standardtreibern wie HID, CDC, UMS,
            welche im BS ohnehin vorhanden sind, liefe). Die Bedingung,
            dass diese Chips (zumindest unter Windows) alle extra
            Treiber benötigen, ist -- insbesondere, weil ich damit
            schon ein paar Mal auf die Nase gefallen bin (Stichwort
            beispielsweise End-Of-Life eines gewissen Chips... damit
            dann kein neuer Treiber mehr und mit dem nächsten Windows
            ist dann Feierabend gewesen. Wer sagt eigentlich, dass
            der FTDI nicht auch irgendwann keine Treiber mehr bekommt?).
            Für mich ist das inzwischen inakzeptabel, da mich das
            fertige Bastelprojekt dann auf quasi ewige Zeiten an den
            Goodwill eines einzigen Herstellers bindet...

Zu Punkt 3: Was stimmt nun? Stabil oder nicht? Läuft CDC nach wie vor
            mit allen verbreiteten Systemen (Win/Linux/Mac) oder nicht?
            Ich fand unterschiedliche Quellen: Die eine sagt, es gehe
            ganz wunderbar; Die andere sagt, es sei der letzte Krampf...

Zu Punkt 4: Einen für das Projekt an sich völlig überdimensionierten
            µC nehmen? Nur weil der zufällig USB an Bord hat? Und was
            ist eigentlich mit der VUID:PUID? Einfach "kapern"?
            Vermutlich keine coole Idee... Eine eigene ID "erwerben"?
            Ernsthaft? Öööhhm... für's Basteln? ...
            (das Problem trifft auf auf V-USB zu, AFAIR)

Man könnte fast glauben, dass Hardwarebasteleien heute nicht mehr mit 
PCs verbunden werden sollen, so viele Steine unterschiedlichster 
Formate (Kiesel bis Findling) liegen da im Weg...

Welche Lösung(en) habe ich übersehen? Oder sollte ich mir einfach so wie 
bisher auch immer einen der vier sauren Äpfel aussuchen und gedankenlos 
reinbeißen?

tnx,
Stefan

von Felix A. (madifaxle)


Lesenswert?

Gedankenlos reinbeißen sicher nicht. Aber dass die Zeit schnell läuft 
und damit auch die Produkte derart schnell wechseln, ist heutzutage 
leider eher normal.

Was die fertigen USB-Seriell-Wandler angeht (insbes. die von FTDI), so 
kann man die einfach verwendet. Für Jahre werden die nicht einfach 
verschwinden. Dass Windows hier für jeden Wandler und jeden Port, an den 
der neu gesteckt wird, Treiber braucht, ist dem System geschuldet. Damit 
muss man leben :-(.
Dafür ist die Nutzung einfach.

Für Android und iOs (zumindest glaube ich das) gibt es von FTDI 
Wandlerchips, die eine serielle Brücke aufbauen. Frag mich nicht, wie 
die heißen. Das weiß bestimmt jemand anderes hier im Forum. Auch wie gut 
die funktionieren.

Zu VUSB und Controller-Direkt-USB kann ich nichts sagen. Mir fiele aber 
noch LAN als Schnittstelle ein, z. B dieses Produkt:
http://www.watterott.com/de/WIZ107SR

von Frank (Gast)


Lesenswert?

Stefan schrieb:
> Welche Lösung(en) habe ich übersehen?

Ethernet

von Andreas D (Gast)


Lesenswert?

Einen USB uC zu verwenden ist keine so schwierige Sache,
wir verwenden die Cypress PSoCs und libusb auf dem Host,
da hat man schnell etwas Funktionierendes.

Andreas

von Pandur S. (jetztnicht)


Lesenswert?

Ich verwende imm USB-UARTs. Ein guenstiger Adapter fuer einen PC. 
Alternativ gibt es sowas auf einem Chip, sie die Firma FTDI 
(ftdichip.com), die mach ich auf die Leiterplatte. Bietet eine UART 
Schnittstelle zum Controller und eine USB Schnittstelle zum PC. Das 
Kabel, und Buchse ist dann eine USB.

Fuer eine Drahtlosschnittstelle wuerd ich Bluetooth verwenden. Da gibt's 
Bluetooth-Serial Chips/Module/Adapter. Die haben zum controller hin ein 
UART.

: Bearbeitet durch User
von Pandur S. (jetztnicht)


Lesenswert?

Einen eigenen USB Treiber zu schreiben kannst du vergessen. Denn jede 
Win dows Version verlangt Anpassungen.
Entweder was Fertiges oder Nichts. FTDI Treiber sind mittlerweise Teil 
der Windowsinstallation.
Ethernet ist einen ganz andere Schiene im sinne von Bandbreite und von 
Stromverbrauch. Vergiss die Ethernet-SPI Bruecken wie ENC28J60 oder so. 
Die sind Quatsch. Wie verbrat ich meine CPU Zeit. Eine Ethernet 
Schnittstelle benoetigt ralistischerweise einen 32bit controller.

von Michael U. (amiga)


Lesenswert?

Hallo,

Tabletts und Smartfones erstmal mal weggelassen.

zu 1: Steckkarten für RS232 gibt es und wird vermutlich noch ziemlich 
lange geben. Gibt es ein neues Bussystem wird es vermutlich immernoch 
welche geben.

zu 2: USB wird es wohl auch noch ein paar Jahre geben, ob es dann USB7 
ist, weiß ich auch nicht. Vermutlich ist dann ein neuer "FTDI" fällig.
Wenn der seriell-USB-Wandler als Einzelmodul such in einem Bastelprojekt 
ist, muß er eben ausgetauscht werden.

zu 3: V-USB kann schon mit dem nächsten Treiber für Windows/Linux/Mac 
Probleme bereiten, wer weiß das schon und wer behebt das dann und kann 
man es beheben?

zu 4: auch da können Anpassungen fällig werden, muß man dann vermutlich 
irgendwann auch selber machen.

Bastelfreundlich heißt für mich, ich muß damit umgehen können und es 
wird nicht mehr als ein paar Exemplare geben.

Im Moment könnte ich noch WLAN hinzufügen. Hat wohl jeder der 
betroffenen und ein ESP8266 ist billig und ich habe die 
RS232-WLAN-Bridge.
Solangr WLAN so bleibt, wie es ist, wird es auch weiter spielen.
In 5 Jahren kommt dann Version xyz und mein ESP connected nicht mehr.

Ich habe die ganzen Generationen PC usw. miterlebt. Scanner, Drucker, 
Tastaturen, Mäuse, Videokarten usw. usw., die weggeworfen wurden weil es 
am neuen PC nicht mehr zuverlässig in Gang zu bekommen war.

Meine Bastelprokjekte werde ich theoretisch ewig in Gang halten können, 
ich werde eben ab und an etwas anpassen müssen.

Gruß aus Berlin
Michael

von Axel S. (a-za-z0-9)


Lesenswert?

Stefan schrieb:

> 2. RS-232 via FTDI oder ähnlichen Chips auf USB (scheint die von vielen
> favorisierte Methode zu sein). Ich muss zugeben, dass ich mit der
> Methode inzwischen so meine Probleme habe (s.u.)
...
> Zu Punkt 2: das ist die Methode, die ich nahm/nähme, "wenn" sie keine(!)
>             extra Treiber und keine INF-Spielereien erfordern würde
>             (also nur mit USB-Standardtreibern wie HID, CDC, UMS,
>             welche im BS ohnehin vorhanden sind, liefe). Die Bedingung,
>             dass diese Chips (zumindest unter Windows) alle extra
>             Treiber benötigen, ist -- insbesondere, weil ich damit
>             schon ein paar Mal auf die Nase gefallen bin (Stichwort
>             beispielsweise End-Of-Life eines gewissen Chips... damit
>             dann kein neuer Treiber mehr und mit dem nächsten Windows
>             ist dann Feierabend gewesen.

Also ein reines Windows-Problem. Schön daß wir das geklärt haben.

>             Für mich ist das inzwischen inakzeptabel, da mich das
>             fertige Bastelprojekt dann auf quasi ewige Zeiten an den
>             Goodwill eines einzigen Herstellers bindet...

Da du dich ja ohnehin schon freiwillig auf den guten Willen von 
Microsoft verläßt, kann das wohl kaum ein Problem (für dich) sein.

> Welche Lösung(en) habe ich übersehen?

Nun, das Treiberproblem hast du mit Windows ja immer. Abgesehen davon 
fallen mir noch Bluetooth & Verwandte (Zigbee, ANT+) ein. Oder WLAN.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Stefan schrieb:
> Wer sagt eigentlich, dass der FTDI nicht auch irgendwann keine Treiber
> mehr bekommt?.

Egal ob "selbst programmiert" oder gekauft: Ein OS-Update erfordert 
manchmal ein Treiber-Update. Und bei "TTL-RS-232 via USB-VCOM" braucht 
man den Treiber nicht selbst anpassen, das macht der Hersteller. Die 
Chips sollten gesockelt sein oder gar im Adapter-Stecker integriert 
sein.

Ich führe daher nur RS-232 via TTL oder 3,3V raus und es wird einfach 
der USB-VCOM-Adapter verwendet, der gerade funktioniert.

: Bearbeitet durch User
von Stefan (Gast)


Lesenswert?

Axel S. schrieb:

> Also ein reines Windows-Problem. Schön daß wir das geklärt haben.

Nein, ist es nicht. Ich störe mich auch gar nicht daran, dass ein 
Treiber notwendig ist. Das ist unter Linux auch notwendig. Mich stört, 
dass dieser im Falle des FTDI ein propriäterer Treiber ist und kein 
generischer.

Beispiel USB-Soundkarten: Diese laufen heutzutage über "Generic USB 
Audio" auf allen Plattformen mit USB-Support. Ein spezifischer Treiber 
ist nicht zwingend notwendig. Ggf. zusätzlich erhältliche proprietäre 
Treiber des Herstellers ermöglichen u.U. (manchmal auch nicht) 
zusätzliche Funktionen zu nutzen (mehr Audiokanäle, höhere Sampleraten 
etc...)

Andere Beispiele sind USB-Mäuse und USB-Tastaturen...

Auch wenn ich das so explizit nicht gefragt hatte: Gibt es 
USB-Serial-Chips, die über einen solchen generischen Treiber laufen? 
Dabei interessiert es mich genau /dev/null, ob Windows in der Version 
XYZ oder Linux in der Version YZX schon in der Standardinstallation 
einen passenden proprietären Herstellertreiber mitliefern oder nicht.

AFAIK ist CDC das Stichwort für "treiberloses"/generisches RS-232 über 
USB. Trotz dieses "Wissens" hat Google nicht viel ausgespuckt, 
diesbezüglich.

von Pete K. (pete77)


Lesenswert?

Stefan schrieb:
> Frage: Welche Möglichkeiten habe ich, um mit einem µC "bastelfreundlich"
> (leitungsgebunden) Daten auszutauschen?

Schau Dir die Schnittstellen der beiden Geräte an und verwende den 
kleinsten gemeinsamen Nenner.

von Stefan (Gast)


Lesenswert?

Pete K. schrieb:
> Stefan schrieb:
>> Frage: Welche Möglichkeiten habe ich, um mit einem µC "bastelfreundlich"
>> (leitungsgebunden) Daten auszutauschen?
>
> Schau Dir die Schnittstellen der beiden Geräte an und verwende den
> kleinsten gemeinsamen Nenner.

UART auf der einen, USB auf der anderen Seite. Es wird also in 
irgendeiner Form dazwischen umgewandelt werden müssen.

von eagle user (Gast)


Lesenswert?

Stefan schrieb:

> Ich störe mich auch gar nicht daran, dass ein Treiber notwendig
> ist. Das ist unter Linux auch notwendig. Mich stört, dass
> dieser im Falle des FTDI ein propriäterer Treiber ist und
> kein generischer.

Muss man da nicht zwei Arten von "proprietär" unterscheiden? Für mich 
ist es durchaus ein Unterschied, ob ich den Treiber (nur) von ftdi.com 
oder von kernel.org bekomme. Eine Standard-Schnittstelle wie CDC ist 
natürlich noch besser.

> Auch wenn ich das so explizit nicht gefragt hatte: Gibt es
> USB-Serial-Chips, die über einen solchen generischen Treiber laufen?

Die Exar XR21B1420, 22, 24 (mit 1, 2 bzw. 4 Kanälen) laufen angeblich 
mit dem CDC-Treiber. Ansonsten sind die Chips "durchwachsen". Einerseits 
können sie max. 12MBaud mit allen(!) Datenformaten, haben einen internen 
Oszillator und 512 Byte FIFOs, andererseits gibt's die 1- und 
2-kanaligen nur im QFN-Gehäuse. Ich hab' mir mal ein Evaluation Board 
bestellt, mal sehen...

von Stefan (Gast)


Lesenswert?

eagle user schrieb:

> ... andererseits gibt's die 1- und 2-kanaligen nur im QFN-Gehäuse.

QFN-28 ... das könnte echt spaßig werden. Davon abgesehen klingt das 
recht genau nach der Art von Chip, die ich mir vorgestellt hatte. 
Vielleicht weiß ja jemand noch einen mit weniger hakeligem Package... 
;-)

von Kirsch (Gast)


Lesenswert?

Stefan schrieb:
> Die Bedingung,
>             dass diese Chips (zumindest unter Windows) alle extra
>             Treiber benötigen, ist -- insbesondere, weil ich damit
>             schon ein paar Mal auf die Nase gefallen bin (Stichwort
>             beispielsweise End-Of-Life eines gewissen Chips... damit
>             dann kein neuer Treiber mehr und mit dem nächsten Windows
>             ist dann Feierabend gewesen.

Damit sprichst du wohl die Prolific Chips an, die nach Win7 nicht mehr 
gehen. Prolific hat zwar Pin-kompatibel Nachfolger ausgebracht, das 
hilft aber nicht wenn man noch Adapter mit den alten Chips hat, wo ein 
austauschen des Chips nicht möglich.


Mit FTDI-Chips hatte ich bisher noch nie Probleme. Die Treiber werden 
auch über Windows-Update automatisch bezogen.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Kirsch schrieb:
> … Prolific Chips an, die nach Win7 nicht mehr gehen.

Doch, auch wenn es auf der Prolific-Homepage anders steht, siehe
Beitrag "Re: WS2812B über USB-UART ansteuern"

von Stefan (Gast)


Lesenswert?

Torsten C. schrieb:
> Kirsch schrieb:
>> … Prolific Chips an, die nach Win7 nicht mehr gehen.
>
> Doch, auch wenn es auf der Prolific-Homepage anders steht, siehe
> Beitrag "Re: WS2812B über USB-UART ansteuern"

ja, es geht... Allerdings ist es nicht gerade schön, nach jedem 
Windows-Upgrade ein Treiber-Downgrade machen zu müssen, weil der 
Windows-Updater der Meinung ist, dass ein neuer Treiber (trotz Flag dies 
zu lassen... sigh) geupdated werden "muss"...

Also, ja, es geht. Auch unter Windows. Frage ist: wie lange noch... und 
hübsch ist anders...

von Klaus (Gast)


Lesenswert?

Stefan schrieb:
> Auch wenn ich das so explizit nicht gefragt hatte: Gibt es
> USB-Serial-Chips, die über einen solchen generischen Treiber laufen?

Naja, USB HID. Benötigt keine zusätzlichen Treiber; etwas langsamer als 
CDC, aber für Steuerungsaufgaben und wenig Daten (bis ca. 20 kBytes/s) 
sehr gut geeignet.
Nachteil: Du must die Firmware selber schreiben oder etwas fertiges vom 
Hersteller nehmen und evtl. etwas anpassen; Microchip hat da einen 
netten Stack.
Für die PC Seite gibt es hier was:
http://www.mikrocontroller.net/articles/USB_HID_Host_Treiber

Gruß Klaus

von neuer PIC Freund (Gast)


Lesenswert?

Schau dir mal
https://hackaday.io/project/6258-two-component-usb-temperature-data-logger
an. So knuffig geht das mit Atmel nicht.

von Volker S. (vloki)


Lesenswert?

Ich würde auch nie mehr einen extra USB-RS232 Wandler Chip benutzen.
Es gibt inzwischen viele kleine uC mit USB. Die Firmware für HID oder 
CDC wird wohl meistens auch irgendwie zu Verfügung gestellt werden.

Ich benutze PIC16F145x und einige (USB)-PIC18.
Sogar eine VID/PID bekommst du umsonst

-> http://microchip.wikidot.com/usb:sublicence

Einfach ausfüllen und innerhalb von Minuten hast du eine ;-)

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Soweit ich weiss, laufen alle USB_UART Chips mit einem generischen 
Treiber.

Es genügt tatsächlich eine INF Datei, welche die Hardware-ID des Chips 
enthält und einen Verweis auf die Standard-DLL vomn Windows (deren name 
ich vergessen habe).

Aber, jeder Chip hat die eine oder andere Erweiterung, die über den 
Standard hinaus geht. Und damit diese Erweiterung unter Windows nutzbar 
wird, liefert der Chiphersteller einen eigenen Treiber.

von Stefan F. (Gast)


Lesenswert?

> Doch, auch wenn es auf der Prolific-Homepage anders steht, siehe

Kann ich bestätigen. Mein uraltes Adapterkabel mit PL2303 Chip (aus 
Windows 98 Zeiten) funktioniert immer noch.

von Clemens L. (c_l)


Lesenswert?

Stefan U. schrieb:
> Soweit ich weiss, laufen alle USB_UART Chips mit einem generischen
> Treiber.

Nur, wenn sie das Standard-Protokoll (CDC) sprechen. Viele verbreitete 
Chips von FTDI/Prolific/QinHeng tun das eben nicht.

> Es genügt tatsächlich eine INF Datei

Seit Windows 10 ist das nicht mehr notwendig:
https://msdn.microsoft.com/en-us/library/windows/hardware/dn707976.aspx

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Axel S. schrieb:
> Nun, das Treiberproblem hast du mit Windows ja immer.

ach

ich habe hier gerade ein neues Asus Zenbook

Knoppix 7.6

keine USB3 Treiber HUB wird nicht erkannt und deswegen auch nicht 
Ehthernetschnitte
Ich bekomme nicht mal WiFi Treiber, habe die Treiber erst mal per Stick 
aud den Desk gelegt und nun? Linux Kernel neu kompilieren?
apt-get install klappt ja nicht ohne Netz.

Jetzt versuche ich Fedora soll ja mit besseren Treibern kommen.....

mal sehen, also NICHT win ist auch keine (optimale) Lösung.

von Joachim B. (jar)


Lesenswert?

so Fedora oder Feodora steht nun seit  über 2h auf 57% und geht keinen 
Schritt weiter, mich wundert das kaum sollte doch mit besseren Treibern 
und aktuell daherkommen, nur warum hat das Fedora Image nur 1,2GB 
gegenüber von Knoppix mit 3,2GB?

von Joachim B. (jar)


Lesenswert?

sorry für OT

es gibt doch eine Alternative zu win wenn man fedora nimmt und kaputte 
Speicher rauswirft!

Fedora läuft, Netzwerk läuft, Wine läuft ........

wird ja immer besser nur das apt-get install nun YUM heisst?

egal ich lerne es

von Max (Gast)


Lesenswert?

Joachim B. schrieb:
> wird ja immer besser nur das apt-get install nun YUM heisst?


Wenn du einen aktuelles Fedora verwendest, dann heisst das jetzt `dnf`

von Joachim B. (jar)


Lesenswert?

aktuelles? gibts was neueres als 23? egal yum funzt nur der VI bringt 
mich in den Wahnsinn oder liegts an meiner Tastatur oder an doofen 
Erklärungen, ohne den VI abzuschiessen komme ich nie mit speichern raus! 
und nach Kill ist eh nix gespeichert

von Sebastian S. (amateur)


Lesenswert?

Außer der 08/14-USB-Anbindung - oft die mit den 4 Buchstaben - kommt mir 
die ganze Geschichte wie ein Rückschritt in die graue Vorzeit der 
Computerei vor.

Die Älteren werden sich noch daran erinnern: "Jedem Drucker seinen 
eigenen Treiber".

Angeblich kann man mit USB vieles machen – aber nur wenn man sein 
eigenes Zwischengesicht bastelt und installiert.

Hier wurde an irgendeiner Stelle die Einfachheit der seriellen 
Kommunikation unter den Tisch verfrachtet.

Also dann schon lieber ab ins Eternit®, oder gleich Funken schlagen.

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.