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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
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"
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
Schau dir mal https://hackaday.io/project/6258-two-component-usb-temperature-data-logger an. So knuffig geht das mit Atmel nicht.
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
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
:
Bearbeitet durch User
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.