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
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
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
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.
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.
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
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.
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.
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.
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.
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.
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...
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...
;-)
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.
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...
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
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 ;-)
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.
> 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.
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
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.
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?
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
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`
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
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.