Hallo, hat jemand eine zündende Idee, wie man auf kleinem Raum mindestens 10 serielle Schnittstellen an LAN oder USB anschließen könnte? Gibt es da vielleicht einen Chip der das vermitteln könnte? Ein fettes 19"-Gerät mit schönen SubMin-Steckern ist nicht gefragt, eher eine Erweiterung für einen RasPi o. ä. Langsame Baudrate bis 9600 genügt auch. Ich freue mich auf eure Vorschläge Gruß Franziska
:
Verschoben durch Moderator
USB Hub und da dran USB-FTDI zu RS232 Adapter. Die FTDI Adapter haben Seriennummern, daran könnte man sie unterscheiden. FT4232H von FTDI stellt gleich 4 serielle Schnittstellen an einem USB-Port zur Verfügung.
:
Bearbeitet durch User
Ich habe hier zwei 4fach Serial auf 1xUSB, hatte ich am Notebook und konnte 8 Maschinen gleichzeitig in ZOC erfassen. Etwa sowas: https://www.amazon.de/dp/B009H06O7C/ref=psdc_1626220031_t1_B000NJM15A 3 Stück davon an 3 USB Buchsen ist nicht groß.
Vielleicht sowas hier ? serial to usb https://www.ebay.de/itm/PL2303TA-USB-TTL-to-RS232-Konverter-Serial-Adapter-Cable-F-Win-XP-7-8-8-1-D/152701343216?hash=item238db595f0:g:n5kAAOSwAQBZtj1F Gibt es in den verschiedensten Formen und Ausführungen. USB Stecker und kabel sind schon dran. Brauchst du nur noch einen 10fach USB Hub. Oder willst Du alles diskret aufbauen ?
:
Bearbeitet durch User
Du musst schon etwas mehr preisgeben. Was für serielle Schnittstellen? Rs486? Rs323? Can? Lin? Was soll auf der andere Seite passieren? Alles zusammen würfeln in eine einzelne Schnittstelle oder 10 einzelne virtuelle COM Schnittstellen auf dem Rechner? Und wenn LAN dann wie?
Ich würde eine Platine mit 2 Stück FE2.1 USB-Hubs und CH340E (MSOP10, ohne Quarz) machen. Ist relativ einfach machbar, wenige Bauteile, sollte nicht größer werden als die Grundfläche des Raspberry. Durch die feste Verdrahtung kann man vieles weglassen, was in einem richtigen USB-hub notwendig wäre (Filter, Überstromsicherung). Statt der FE2.1 würden auch XR22417 gehen. https://lcsc.com/product-detail/USB-ICs_Terminus-Tech-FE2-1_C39693.html https://lcsc.com/product-detail/USB-ICs_Jiangsu-Qin-Heng-CH340E_C99652.html Und wenn gewünscht noch MAX3232 Treiber https://lcsc.com/product-detail/RS232-ICs_3PEAK-TP3232N-SR_C81661.html
Sowas gibt es in fertig und dauerhaft betriebsbereit als sogennante Terminalserver fuers LAN z.B. von Equinox. Ich benutze hier z.B. die 16 Port Ausfuehrung. Alles andere ist nur "Gebastel".
Larry schrieb: > Terminalserver fuers LAN z.B. von Equinox. > Ich benutze hier z.B. die 16 Port Ausfuehrung. > Alles andere ist nur "Gebastel". Franziska N. schrieb: > Ein fettes 19"-Gerät mit schönen SubMin-Steckern ist nicht gefragt, eher > eine Erweiterung für einen RasPi o. ä.
Die 16 Port Ausgabe ist "dank" RJ-45 Anschluss fuer die RS-232 kein 19"-Geraet sondern erheblich kleiner.
temo schrieb: > Du musst schon etwas mehr preisgeben. Was für serielle Schnittstellen? > Rs486? Rs323? Can? Lin? RS-232 ohne Handshake-Leitungen, TXD, RXD und GND genügen. > Was soll auf der andere Seite passieren? Alles zusammen würfeln in eine > einzelne Schnittstelle oder 10 einzelne virtuelle COM Schnittstellen auf > dem Rechner? Und wenn LAN dann wie? 10 einzelne virtuelle COM Schnittstellen (oder mehr, siehe unten) Zu den anderen Beiträgen zusammenfassend: Erst einmal vielen Dank für die Anregungen! Ich habe das so verstanden: USB scheint wesentlich einfacher zu sein wie LAN, also - erst einen 7-fach XR22417 USB-Hub, - daran 7 FT4232HL 4-fach USB nach TTL-seriell Konverter und - daran 7 MAX238 TTL nach RS-232 Konverter macht maximal 28 Schnittstellen? Das sind doch alles "dumme" Bauteile die man nicht programmieren muss, oder? Linux oder Windows sollten damit per se zurechtkommen oder gibt es ein Limit von weniger als 28 virtuellen Ports? Und noch zum Layout: Wenn das alles auf ein PCB kommt braucht man die Schutzschaltungen zwischen den Chips ja nicht, stimmt diese Annahme? Gruß Franziska
Danke für das Verschieben nach "Mikrocontroller und Digitale Elektronik", ich wusste gestern nicht wo die Frage eigentlich hingehört. Gruß Franziska
Moin, Franziska N. schrieb: > Linux oder Windows sollten damit per se zurechtkommen oder gibt es ein > Limit von weniger als 28 virtuellen Ports? Die Frage ist auch, ob du damit zurechtkommen wirst. Wenn die USB->Serial-Wandler tatsaechlich alle eine einzigartige Seriennummer haben, wirst du dir wahrscheinlich unter Linux irgendwelche udev-rules basteln/anpassen muessen, damit die auch immer unter dem selben Namen auftauchen. Ob Windows mit 28 seriellen Ports zurechtkommt? Hm...ich haette da Zweifel, einfach, weils wohl kaum einer gemacht hat. Zumindest solange bis ich glaubwuerdige, gegenteilige Berichte hoere. Gruss WK
Zwei von denen: https://www.moxa.com/en/products/industrial-edge-connectivity/serial-device-servers/general-device-servers/nport-5600-dt-series#p_lt_ctl03_pageplaceholder_p_lt_ctl00_ProductSeriesViewer_rptProductImages_ctl06_divProdImage Die eignen sich auch für industrielle Anwendungen; sind äusserst zuverlässig.
Dergute W. schrieb: > Ob Windows mit 28 seriellen Ports zurechtkommt? Hm...ich > haette da Zweifel, einfach, weils wohl kaum einer gemacht hat. Diese Aussage ist Unfug; natürlich ist das für Windows kein Problem und es gibt durchaus Anlagen wo das so eingesetzt wird.
Franziska N. schrieb: > hat jemand eine zündende Idee, wie man auf kleinem Raum mindestens 10 > serielle Schnittstellen an LAN oder USB anschließen könnte? Die Frage ist, müssen die UARTs alle gleichzeitig und Bi-Direktional laufen, oder werden z.B. Geräte schön nacheinander abgefragt. Im letzteren Fall würde ein einziger UART und ein paar Multiplexer in beide Richtungen völlig ausreichen. Im ersteren Fall müsste man tatsächlich auf 10 echte UARTs eventuell mit Fifo gehen. Dann machen 10x USB-UART/RS232 Wandler Sinn. Wobei bei 9600 käme auch ein Controller mit 10x Software UARTs in Betracht, sofern er nicht ganz schwachbrüstig und entsprechend gut programmiert ist.
:
Bearbeitet durch User
Cyblord -. schrieb: > Wobei bei 9600 käme auch ein Controller mit 10x Software UARTs in > Betracht, sofern er nicht ganz schwachbrüstig und entsprechend gut > programmiert ist. Das will man nicht wirklich haben :-)
H.Joachim S. schrieb: > Cyblord -. schrieb: >> Wobei bei 9600 käme auch ein Controller mit 10x Software UARTs in >> Betracht, sofern er nicht ganz schwachbrüstig und entsprechend gut >> programmiert ist. > > Das will man nicht wirklich haben :-) Da trennt sich halt die Spreu vom Weizen. Mit einem STM32F2 oder größer sehe ich da keine größeren Probleme.
Marco K. schrieb: > Und was ist damit? > > https://www.exsys.de/index.php?page=product&info=429 > > etwas Teuer aber sehr gut. Franziska N. schrieb: > Ein fettes 19"-Gerät mit schönen SubMin-Steckern ist nicht gefragt, eher > eine Erweiterung für einen RasPi o. ä.
Cyblord -. schrieb: > Die Frage ist, müssen die UARTs alle gleichzeitig und Bi-Direktional > laufen, oder werden z.B. Geräte schön nacheinander abgefragt. > Im letzteren Fall würde ein einziger UART und ein paar Multiplexer in > beide Richtungen völlig ausreichen. Ja, das ist mir (jetzt) bewusst. Leider melden sich die Geräte spontan und damit eventuell gleichzeitig; sie wollen dann Daten übermittelt bekommen. Das wiederum könnte gemultiplext werden. Gruß Franziska
Cyblord -. schrieb: > Da trennt sich halt die Spreu vom Weizen. Mit einem STM32F2 oder größer > sehe ich da keine größeren Probleme. da musst du aber alles programmieren und auch Treiber für das BS bereitstellen. Beim Einsatz von FTDI Wandlern musst du nur die Hardware zusammen stopfen und ggf mit dem FTDI Programmiertool den Schnittstellen Namen zuweisen und die fertigen Treiber von FTDI verwenden
Dergute W. schrieb: > Wenn die > USB->Serial-Wandler tatsaechlich alle eine einzigartige Seriennummer > haben ... Hab mal gegoogelt, an die FT4232HL könnte man wohl ein EEprom anschließen und über USB mit FT_PROG eine eindeutige Seriennummer hinterlegen. Gruß Franziska
Franziska N. schrieb: > Ja, das ist mir (jetzt) bewusst. Leider melden sich die Geräte spontan > und damit eventuell gleichzeitig; sie wollen dann Daten übermittelt > bekommen. Das wiederum könnte gemultiplext werden. > Gruß Franziska Darf ich fragen welche Geräte hier geplant sind?
Moin, Johnny B. schrieb: > Diese Aussage ist Unfug; natürlich ist das für Windows kein Problem und > es gibt durchaus Anlagen wo das so eingesetzt wird. Na, dann bin ich ja beruhigt. Dann war der Windowsnutzer, dessen USB-Seriellwandler bei jedem Einstoepseln eine Nummer hoeher als vorher bekam (also statt COM3 dann halt COM4, COM5, ...), sicher nur ein reines Hirngespinst. Franziska N. schrieb: > Hab mal gegoogelt, an die FT4232HL könnte man wohl ein EEprom > anschließen und über USB mit FT_PROG eine eindeutige Seriennummer > hinterlegen. Ja, dann sollte man doch so ein EEPROM schonmal vorsehen und weiterforschen, ob/wie das dann unter den geplanten Betriebssystemen goutiert wird. Gruss WK
Thomas S. schrieb: > Cyblord -. schrieb: >> Da trennt sich halt die Spreu vom Weizen. Mit einem STM32F2 oder größer >> sehe ich da keine größeren Probleme. > > da musst du aber alles programmieren und auch Treiber für das BS > bereitstellen. Nein. Man stellt Richtung PC einen UART Bereit worüber man dann die einzelnen UARTs steuert und abfragen kann. Man fasst die Funktionlität bereits im Controller zusammen und gibt an den PC nur ein High Level Interface. Man möchte ja kein universelles 10 fach UART bauen sondern hat eine spezielle Anwendung. Wer nachher auf dem PC einfach 10 COM Schnittstellen sehen will, geht natürlich den Weg über fertige Hardware.
:
Bearbeitet durch User
Cyblord -. schrieb: > auf dem PC einfach 10 COM > Schnittstellen sehen will, geht natürlich den Weg über fertige Hardware. Franziska N. schrieb: > wie man auf kleinem Raum mindestens 10 > serielle Schnittstellen Cyblord, du hast grundsätzlich recht, aber damit ergibt sich eben ein räumliches Problem... Gruß Franziska
Ich hab hierbei aus einem fertigen USB hub und 4 billige USB uart Adapter sowas gebaut. Heute würde ich das wohl einfach direkt mit den Chips machen, aber auch so alles einfach verlötet funktioniert wunderbar und ist in einem Gehäuse von 50x50mm
Der Niklas Gürtler hat hier mal eine Firmware für STM32F103C8 veröffentlicht, die einen 3-fach USB-UART Adapter implementiert. Der Chip kostet ca. 1 Euro und ist 1cm² klein. Diese Chips kannst du einzeln oder ab ca. 1,50€ als fertiges Board kaufen. Wenn du davon vier Stück nimmst, hast du deinen 12-Fach Adapter. Download Quelltext und Binary: http://stefanfrings.de/stm32/3-Fach-USB-UART.zip Du wirst einen ST-Link Adapter brauchen, um die Firmware (die *.bin Datei im RELEASE Ordner) in den Chip zu laden. Diese Dinger bekommt man ab 1,50€.
Franziska N. schrieb: > Ein fettes 19"-Gerät mit schönen SubMin-Steckern ist nicht gefragt, eher > eine Erweiterung für einen RasPi o. ä. > Langsame Baudrate bis 9600 genügt auch. 10 x 9600 = 96kbaud, ein FTDI Chip macht bis zu 1Mb Wenn du proggen kannst wird ein Controller mit 10 echten oder Softserial Schnittstellen als Frontend und ein FTDI Chip gen USB wohl reichen. Dann kommt dein Datenstrom via COM emu per USB in die Maschine deiner Wahl. Das Protokoll musst du dann halt selber schreiben. Vor jedes Byte eine Adresse zu hängen ist aber nicht so schwer. Per USB HMI ginge das auch direkt. Da kannst du USB Endpoints aufmachen und die Daten hin und herschieben. Erfordert aber mehr USB progging Kenntnisse, spart aber den FTDI chip.
Dergute W. schrieb: > Dann war der Windowsnutzer, dessen > USB-Seriellwandler bei jedem Einstoepseln eine Nummer hoeher als vorher > bekam (also statt COM3 dann halt COM4, COM5, ...), sicher nur ein reines > Hirngespinst. Nein, war es nicht, habe ich auch erlebt. Ist mir aber schon lange nicht mehr passiert.
Dergute W. schrieb: > Moin, > > Franziska N. schrieb: >> Linux oder Windows sollten damit per se zurechtkommen oder gibt es ein >> Limit von weniger als 28 virtuellen Ports? > > Die Frage ist auch, ob du damit zurechtkommen wirst. Wenn die > USB->Serial-Wandler tatsaechlich alle eine einzigartige Seriennummer > haben, wirst du dir wahrscheinlich unter Linux irgendwelche udev-rules > basteln/anpassen muessen, damit die auch immer unter dem selben Namen > auftauchen. Ob Windows mit 28 seriellen Ports zurechtkommt? Hm...ich > haette da Zweifel, einfach, weils wohl kaum einer gemacht hat. Zumindest > solange bis ich glaubwuerdige, gegenteilige Berichte hoere. > > Gruss > WK Kann ich dir bestätigen .. Bei einem Kunden werden im Labor mehrere Messtände mit je 40 Geräten über 5x8 USB/RS232 Wandler unter Windows 7 problemlos betrieben. Es geht auch ohne EEProm wenn die Geräte immer an der gleichen Stelle im Usb-Baum angeschlossen bleiben. 8-fach USB/Rs232 gibt es von verschiedenen Firmen und funktionieren normalerweise problemlos ohne extra Treiber. Mir ist bisher nur 1 mal ein 4-fach Wandler begegnet, der einen Treiber brauchte.
Stefan F. schrieb: > Der Niklas Gürtler hat hier mal eine Firmware für STM32F103C8 > veröffentlicht, die einen 3-fach USB-UART Adapter implementiert. Der > Chip kostet ca. 1 Euro und ist 1cm² klein. Diese Chips kannst du einzeln > oder ab ca. 1,50€ als fertiges Board kaufen. > > Wenn du davon vier Stück nimmst, hast du deinen 12-Fach Adapter. > > Download Quelltext und Binary: > http://stefanfrings.de/stm32/3-Fach-USB-UART.zip > > Du wirst einen ST-Link Adapter brauchen, um die Firmware (die *.bin > Datei im RELEASE Ordner) in den Chip zu laden. Diese Dinger bekommt man > ab 1,50€. Der STM32F103C8 hat 3 IN und 3 OUT Endpoints. Für ein konformes CDC Device brauchst du 2 IN und 1 OUT Endpoint. Der 2. IN ist der Notification Interrupt IN-Endpoint. Läuft das ohne zusätzlichen Treiber auf dem Host mit 3 virtuellen Ports unter Windows ?
Dirk B. schrieb: > Dergute W. schrieb: >> Dann war der Windowsnutzer, dessen >> USB-Seriellwandler bei jedem Einstoepseln eine Nummer hoeher als vorher >> bekam (also statt COM3 dann halt COM4, COM5, ...), sicher nur ein reines >> Hirngespinst. > > Nein, war es nicht, habe ich auch erlebt. > > Ist mir aber schon lange nicht mehr passiert. Wenn ein Device nicht individuell identifizierbar ist wird es über seinen Platz im USB Baum angesprochen. Wenn du es dann an einem anderen Port anschliesst an dem vorher noch kein Device dieser Art war bekommt es eine neue Nummer. Diese Zuordnung steht in der Registry und lässt sich, wenn gewünscht, löschen.
Ein USB2514 und drei CP2108: Der USB2513 ist ein 3-Port-Hub, jeder CP2108 liefert dir 4 UARTs. In Summe 12. Du kannst vermutlich mit dem Simplicity-Studio zwei UARTs wegconfigurieren, oder du lässt sie einfach. http://www.mouser.com/catalog/specsheets/2513.pdf https://www.silabs.com/documents/public/data-sheets/cp2108-datasheet.pdf Das Beste dabei: Keine Software nötig. Anstecken, Treiber installiert sich über Windows-Update, fertig. Linux-Treiber gibts auch, falls du die brauchst.
Franziska N. schrieb: > Ja, das ist mir (jetzt) bewusst. Leider melden sich die Geräte spontan > und damit eventuell gleichzeitig; sie wollen dann Daten übermittelt > bekommen. Das wiederum könnte gemultiplext werden. Mal ernsthaft drüber nachgedacht ob die Verwendung dieser ominösen Geräte in dieser Konfiguration einen gute Idee ist? Vielleicht auf einen echten Bus wechseln? Mal drüber nachgedacht sich vom Pi-Formfaktor zu lösen? Also mal drüber nachgedacht im Interesse einer Lösung Kompromisse zu machen, statt in Schönheit zu sterben?
Hans-Georg L. schrieb: > Läuft das ohne zusätzlichen Treiber auf dem Host mit 3 virtuellen Ports > unter Windows ? Ja, läuft. Niklas hat das hier dokumentiert: https://www.mikrocontroller.net/articles/USB-Tutorial_mit_STM32
Habe es gerade mal überflogen ... Niklas benutzt keine Geräteklasse, es werden keine Standard Treiber verwendet, die Ansteuerung erfolgt über libusb. Dann dürften aber auch keine virtuellen Ports erscheinen.
Hans-Georg L. schrieb: > Niklas benutzt keine Geräteklasse, es werden keine Standard Treiber > verwendet, die Ansteuerung erfolgt über libusb. Das ist nicht richtig. Seine Firmware wird als CDC Device erkannt, also mit Standard-Treiber unterstützt. Ich zitiere "Als zweites Beispiel erfolgt die Implementierung eines 3-fach-Adapters von USB auf die serielle Schnittstelle (VCP, Virtual COM Port) auf Basis der Standard-Klasse CDC-ACM, was somit ebenfalls ohne Treiber-Installation funktioniert." Und genau so funktioniert es auch tatsächlich.
Larry schrieb: > Sowas gibt es in fertig und dauerhaft betriebsbereit > als sogennante Terminalserver fuers LAN z.B. von Equinox. > > Ich benutze hier z.B. die 16 Port Ausfuehrung. > > Alles andere ist nur "Gebastel". ACK, schließe mich da an!
Hans-Georg L. schrieb: > Habe es gerade mal überflogen ... > Niklas benutzt keine Geräteklasse, es werden keine Standard Treiber > verwendet, die Ansteuerung erfolgt über libusb. > Dann dürften aber auch keine virtuellen Ports erscheinen. Er hat ein WinUSB Deskriptoren dazugebaut damit kann man wenn man will eben WinUSB oder auch libusb benutzen. Zwingend ist das jedoch nicht und es wird als VCP funktionieren. Die Deskriptoren folgen schon dem neueren Stand für Compound Devices der aber m. W. auf dem Mac noch nicht funktioniert. Unter Win und Linux ist das aber kein Problem. Der Vorteil besteht darin dass mit einem Bulkpaar mehrere Schnittstellen bedient werden können. Thomas
Larry schrieb: > Sowas gibt es in fertig und dauerhaft betriebsbereit > als sogennante Terminalserver fuers LAN z.B. von Equinox. > > Ich benutze hier z.B. die 16 Port Ausfuehrung. > > Alles andere ist nur "Gebastel". Das ist korrekt
Franziska N. schrieb: > Ich habe das so verstanden: > USB scheint wesentlich einfacher zu sein wie LAN, also > - erst einen 7-fach XR22417 USB-Hub, > - daran 7 FT4232HL 4-fach USB nach TTL-seriell Konverter und > - daran 7 MAX238 TTL nach RS-232 Konverter > macht maximal 28 Schnittstellen? > > Das sind doch alles "dumme" Bauteile die man nicht programmieren muss, > oder? Wie oben schon gesagt, wenn es wirklich eine super-kompakte Lösung sein soll, kommst du um die Konstruktion einer Platine vermutlich nicht herum. Schon mal vorab an die Bedenkenträger: ja, im Schritt 1 ist es „Bastelei“, nach einer gewissen Reife ist die Platine dann aber auch fertig und braucht den Vergleich mit fertigen Geräten nicht scheuen. Ich würde wirklich 2 Stück XR22417 kaskadieren (=13 Ports, ja 3 übrig), dazu 10 Stück CH340E (sehr kompakt) und 5 Stück MAX3232 (je zwei RX,TX Paare). Kann man schön layouten, kaum Risiken. Unter Win10/Linux keine Treiber erforderlich, im Gegensatz zu Lösungen mit einem uC braucht man auch keinen Spzialtreiber programmieren.
Die CH340 sind keine gute Idee. Durch die fehlende Seriennummer kannste dann raten welcher Port welcher VCP ist.
Dergute W. schrieb: > Johnny B. schrieb: >> Diese Aussage ist Unfug; natürlich ist das für Windows kein Problem und >> es gibt durchaus Anlagen wo das so eingesetzt wird. > > Na, dann bin ich ja beruhigt. Dann war der Windowsnutzer, dessen > USB-Seriellwandler bei jedem Einstoepseln eine Nummer hoeher als vorher > bekam (also statt COM3 dann halt COM4, COM5, ...), sicher nur ein reines > Hirngespinst. Dieses Problem ist mir bekannt, das liegt aber nicht an Windows sondern an schlampigen Treibern oder schlampiger Konfiguration (.inf) der Treiber, insbesondere bei FTDI. Eignet man sich das nötige Know-How an, kann man durchaus auch mit USB und FTDI-Chips etwas hinbekommen, damit es beim einstecken immer wieder denselben Comport zugewiesen bekommt. Daher würde ich für etwas industriell eingesetztes unbedingt etwas Netzwerkbasiertes nehmen und nicht USB, da es in der Regel einfacher aufzusetzen und wartungsarmer ist..
Marten Morten schrieb: > Mal ernsthaft drüber nachgedacht ob die Verwendung dieser ominösen > Geräte in dieser Konfiguration einen gute Idee ist? Vielleicht auf einen > echten Bus wechseln? Mal drüber nachgedacht sich vom Pi-Formfaktor zu > lösen? Ja natürlich, das zuerst. Aber leider sind diese Geräte vorhanden, müssen weiterhin betrieben werden und haben nur RS-232-Schnittstellen. (Drei Worte unterstreichen geht wohl hier nicht?) Welche Möglichkeiten siehst Du jetzt noch? Franziska N. schrieb: > Erweiterung für einen RasPi o. ä. Muss nicht Pi-Formfaktor sein aber recht klein und eben bestimmt nicht 19" x 4 HE. Gruß Franziska PS: Diese USB-Hub - USB nach TTL-seriell - TTL nach RS-232 Konverter - Kette kann man doch bei Ebay, Amazon, Bangood etc. 1x kaufen und zuammenhäkeln. Wenn´s dann funktioniert spricht doch wenig für eine Custom-PCB mit genau diesen Chips?
Franziska N. schrieb: > PS: Diese USB-Hub - USB nach TTL-seriell - TTL nach RS-232 Konverter - > Kette kann man doch bei Ebay, Amazon, Bangood etc. 1x kaufen und > zuammenhäkeln. Wenn´s dann funktioniert spricht doch wenig für eine > Custom-PCB mit genau diesen Chips? Ja die Lösung wird funktionieren. Achte darauf dass die Serial Chips USB Seriennummern unterstützen. Du hast sonst Spass mit der Comport Zuordnung, und das jedesmal wenn du deine Box an einen (neuen) anderen USB Port ansteckst. Ohne SN wird dich dieses Windows Feature sonst bei 10 Ports in den Wahnsinn treiben. Thomas
Thomas Z. schrieb: > Achte darauf dass die Serial Chips USB > Seriennummern unterstützen. Franziska N. schrieb: > Hab mal gegoogelt, an die FT4232HL könnte man wohl ein EEprom > anschließen und über USB mit FT_PROG eine eindeutige Seriennummer > hinterlegen. Danke für den erneuten Hinweis Franziska
Stefan F. schrieb: > Hans-Georg L. schrieb: >> Niklas benutzt keine Geräteklasse, es werden keine Standard Treiber >> verwendet, die Ansteuerung erfolgt über libusb. > > Das ist nicht richtig. Seine Firmware wird als CDC Device erkannt, also > mit Standard-Treiber unterstützt. > > Ich zitiere "Als zweites Beispiel erfolgt die Implementierung eines > 3-fach-Adapters von USB auf die serielle Schnittstelle (VCP, Virtual COM > Port) auf Basis der Standard-Klasse CDC-ACM, was somit ebenfalls ohne > Treiber-Installation funktioniert." > > Und genau so funktioniert es auch tatsächlich. Das ist doch ein umfangreicher Artikel. An dieser Stelle habe ich aufgehört zu lesen:
1 | Geräte-Klasse und -Protokoll werden auf 0xFF gesetzt, d.h. es wird keine Standard-Klasse genutzt und kein Standard-Treiber vom Host geladen. |
Das war wohl zu früh ;-)
Mw E. schrieb: > Die CH340 sind keine gute Idee. > Durch die fehlende Seriennummer kannste dann raten welcher Port welcher > VCP ist. Ah ok, wusste ich nicht. Sicher, dass das wirklich so ist? Falls ja, bliebe noch der FT230XS von FTDI, ähnlich kompakt. Habe es mir im Detail nicht angeschaut, hoffe der hat dann individuelle Seriennummern.
Habe gerade mal selbst recherchiert, scheint ja tatsächlich so zu sein. ABER: In einem Kommentar habe ich gelesen, dass das kein Problem darstellt, solange die USB-Ports immer gleich gesteckt sind und der USB-Baum nicht verändert wird. Genau das ist ja bei einer festen Verdrahtung der Fall. Der Port am Pi wird sich vermutlich auch nicht munter ändern.
Harald schrieb: > Mw E. schrieb: >> Die CH340 sind keine gute Idee. >> Durch die fehlende Seriennummer kannste dann raten welcher Port welcher >> VCP ist. > > Ah ok, wusste ich nicht. Sicher, dass das wirklich so ist? Falls ja, > bliebe noch der FT230XS von FTDI, ähnlich kompakt. Habe es mir im Detail > nicht angeschaut, hoffe der hat dann individuelle Seriennummern. Wenn du die Dinger nacheinander einsteckst, werden die genau in dieser Reihenfolge duchnummeriert. Wenn du alle einsteckst und dann den Rechner einschaltest werden die in der Reihenfolge wie sie bei der Enumerierung gefunden werden numeriert. Wenn dann nichts mehr umgesteckt wird bleiben die Reihenfolge erhalten.
Zumindest haben meine Eigenbau RS485 Adapter und meine Eigenbau UART Adapter mit dem FT232R immer die gleiche COM Nummer unter Win7. Egal in welchen USB Port am Rechner ich die Stecke (auch mit Hub dazwischen). Der CH340 ist nicht so freundlich, aber dafür eben billig. Nachdem was FTDI aber abgezogen hat kann ich die nicht mehr empfehlen. Mich hatte es auch getroffen mit einem bei Reichelt gekauften FTDI, da kommt nurnoch "NON GENUINE DEVICE" in der Konsole. Der neue Rutsch an USB/UART und RS485 Adaptern wird mit CP2102 von Silabs gebaut. Laut DB haben die eine Seriennummer, sollten sich also wie die FTDI verhalten. Aber ich habs noch nicht ausprobieren können.
:
Bearbeitet durch User
Hans-Georg L. schrieb: > Wenn dann nichts mehr umgesteckt wird bleiben die Reihenfolge erhalten. Nein, einmal erkannt ist es egal wo du die FT232R reinsteckst, die COM Numemr bleibt gleich. Ich habs soeben nochmal probiert der eine Adapter hier bleibt immer COM7.
Thomas Z. schrieb: > Hans-Georg L. schrieb: >> Habe es gerade mal überflogen ... >> Niklas benutzt keine Geräteklasse, es werden keine Standard Treiber >> verwendet, die Ansteuerung erfolgt über libusb. >> Dann dürften aber auch keine virtuellen Ports erscheinen. > > Er hat ein WinUSB Deskriptoren dazugebaut damit kann man wenn man will > eben WinUSB oder auch libusb benutzen. Zwingend ist das jedoch nicht und > es wird als VCP funktionieren. Die Deskriptoren folgen schon dem neueren > Stand für Compound Devices der aber m. W. auf dem Mac noch nicht > funktioniert. Unter Win und Linux ist das aber kein Problem. > Der Vorteil besteht darin dass mit einem Bulkpaar mehrere Schnittstellen > bedient werden können. > > Thomas Wenn sich die Software von Niklas skalieren lässt, könnte man ein NUCLEO-F413ZH für ca 20€ verwenden, das hat 4x USART und 6x UART. Müssten nur noch die RS232 Treiber hinzugefügt werden.
Mw E. schrieb: > Hans-Georg L. schrieb: >> Wenn dann nichts mehr umgesteckt wird bleiben die Reihenfolge erhalten. > > Nein, einmal erkannt ist es egal wo du die FT232R reinsteckst, die COM > Numemr bleibt gleich. > > Ich habs soeben nochmal probiert der eine Adapter hier bleibt immer > COM7. Du hast ja auch nur einen ...
Hans-Georg L. schrieb: > NUCLEO-F413ZH Schön und gut, aber wer hat Lust den Treiber selbst zu bauen. Oder wie soll das gehen?
Hans-Georg L. schrieb: > Wenn sich die Software von Niklas skalieren lässt, k Ok, habe es gesehen, aber warum mit Spezial-SW herumeseln wenn es ohne geht?
Hans-Georg L. schrieb: > Wenn sich die Software von Niklas skalieren lässt, könnte man ein > NUCLEO-F413ZH für ca 20€ verwenden, das hat 4x USART und 6x UART. > Müssten nur noch die RS232 Treiber hinzugefügt werden. Sowas wäre ja eigentlich auch mein Vorschlag gewesen, widerspricht aber der Forderung des TO mit einfachen Bausteinen das Ding zusammenzustellen. Eine CPU die entsprechend genügend UARTs bereitstellt und der Rest ist nur noch Firmware. Ich gebe aber zu dass sowas nicht Jedermanns Sache ist. Wo da eventuell noch Fallen sind ist so eindeutig ohne Tests nicht rauszufinden. Zusätzlich muss man auch die Zeit rechnen sich in die CDC Spec. einzulesen. Die kaskatierte Lösung ist da schon übersichtlicher. Thomas
Hans-Georg L. schrieb: > Du hast ja auch nur einen ... Ich habs jetzt nur mit einem nachgetestet, ja. Ansonsten hab ich nen ganzen Haufen davon und die haben alle die COM Nummer behalten. Ich hatte hier schon genaug Testaufbauten mit mehreren Adaptern und die haben die Nummer beibehalten. Also wo ist eigentlich dein Problem?
Harald schrieb: > warum mit Spezial-SW herumeseln wenn es ohne > geht? Weil es billig ist. Wo sonst bekommst du drei USB UARTs für 1,50€?
Mw E. schrieb: > Hans-Georg L. schrieb: >> Du hast ja auch nur einen ... > > Ich habs jetzt nur mit einem nachgetestet, ja. > Ansonsten hab ich nen ganzen Haufen davon und die haben alle die COM > Nummer behalten. > > Ich hatte hier schon genaug Testaufbauten mit mehreren Adaptern und die > haben die Nummer beibehalten. > > Also wo ist eigentlich dein Problem? Nehmen wir mal an du hast an einem Port ein Gerät "Motor 1 = COM3" und an einem anderen Port ein "Motor 2 =COM 4" und jetzt vertauscht dir die Putzfrau die beiden Usb Stecker. Welchen Motor hast du jetzt auf COM3 ?
Immernoch Motor1, das wird nach der Seriennummer des FTDI Chips sortiert. Wenn das Mitwandern würde, dann hätte mein Modbussetup schon ne Weile nicht mehr funktioniert. Wenn die Putzfrau allerdings am RS232 Kabel umsteckt hast du ein Problem ;)
Thomas Z. schrieb: > Die kaskatierte Lösung ist da schon übersichtlicher. Dafür muss du halt noch EEProms dranbasteln oder alles festschrauben, damit nichts vertauscht werden kann. Für RS232 Stecker gibt es Verschraubungen für USB Stecker kenn ich keine. HW vs SW ;-)
Hans-Georg L. schrieb: > Für RS232 Stecker gibt es > Verschraubungen für USB Stecker kenn ich keine. Neutrik USB Stecker/Buchsen haben eine Verriegelung. Aber bei den Preisen bekommste Pipi in den Augen.
Mw E. schrieb: > Immernoch Motor1, das wird nach der Seriennummer des FTDI Chips > sortiert. > Wenn das Mitwandern würde, dann hätte mein Modbussetup schon ne Weile > nicht mehr funktioniert. > > Wenn die Putzfrau allerdings am RS232 Kabel umsteckt hast du ein Problem > ;) Wenn die Chips für das BS identifizierbar ist das ja unbestritten. Aber nicht alle USB-RS232 Wandler haben Seriennummern. Wenn du morgends um 6 von der Frühschicht angerufen wirst ... Fertigung unterbrochen weil ein Prüfplatz steht prägt sich das ein ;-)
Hans-Georg L. schrieb: > Wenn die Chips für das BS identifizierbar ist das ja unbestritten. Aber > nicht alle USB-RS232 Wandler haben Seriennummern. Das ist doch schon längst geklärt! FTDI hats, die Anderen eher nicht. Also aufpassen beim kauf. Das hier wird ein Naubauprojekt, also kann man darauf achten.
Habe gerade einmal nachgesehen, der FT230X kostet so 2,50€. Also käme die ganze Platine dann auf einen Bauteile-Wert von ca. 40€, LCSC-Preise zugrunde gelegt. Vermutlich die vernünftigste Option, wenn man Risiken ausschließen will. Ansonsten eben doch CH340E (0.35€) und auf die feste Portzuordnung vertrauen. Jetzt hast Du die Wahl, Franziska!
> Jetzt hast Du die Wahl, Franziska!
Zwischen Pest und Cholera.
USB läuft doch nicht mehr als 24 Stunden am Stück störungsfrei...
Dann heisst es abstecken und wieder anstecken.
Zuvor natürlich noch jede Applikation einzeln beenden
und wieder neustarten.
Viel Spass!
pumuggl schrieb: > USB läuft doch nicht mehr als 24 Stunden am Stück störungsfrei... Kann ich nicht bestätigen, es funktioniert einwandfrei. Vielleicht ein EMV oder ESD Problem?
Mw E. schrieb: > ... CP2102 von > Silabs gebaut. Laut DB haben die eine Seriennummer, sollten sich also > wie die FTDI verhalten. Default ist deren Seriennummer laut Datenblatt immer 0001, kann aber im interne EEprom geändert werden, wie in einem externen EEprom bei den FTDI-Chips. Man spart also das externe EEprom bei gleichem Aufwand. Gruß Franziska
Harald schrieb: > Hans-Georg L. schrieb: > NUCLEO-F413ZH > > Schön und gut, aber wer hat Lust den Treiber selbst zu bauen. Oder wie > soll das gehen? Hans-Georg L. schrieb: > Ich zitiere "Als zweites Beispiel erfolgt die Implementierung eines > 3-fach-Adapters von USB auf die serielle Schnittstelle (VCP, Virtual COM > Port) auf Basis der Standard-Klasse CDC-ACM, was somit ebenfalls ohne > Treiber-Installation funktioniert." > Und genau so funktioniert es auch tatsächlich. Lese etwas über CDC-ACM und verstehe. Man muss nur 10x instanziieren statt 3x und gut. mfg mf
Ich habe auch das Problem, dass wir bei mehreren USB/RS232 Adaptern mit FTDI Chip nicht wissen welcher was ist. Dazu habe ich mir eine kleine Install-Routine geschrieben (Win) und vergebe dann jedem dieser Sticks den Namen dessen was daran angeschlossen werden soll.. z.B. Motor1, Luefter2 usw. Diese Namen kann ich dann auch in Windows abfragen und weiss genau was wohin muss
pumuggl schrieb: > USB läuft doch nicht mehr als 24 Stunden am Stück störungsfrei... Du solltest dich bei Gelegenheit doch besser von Win98 verabschieden...
minifloat schrieb: > Lese etwas über CDC-ACM und verstehe. Warum sollte ich das tun, Franziska hat eine Aufgabe, nicht ich. Ein Lösungsansatz ohne Programmierung habe ich schon angeboten.
Thomas S. schrieb: > Diese Namen kann ich dann auch in Windows abfragen und > weiss genau was wohin muss Ich finde, das dies ein vernünftiger Kompromiss ist. So kann man beliebige USB-UART Adapter als Ersatzteil verwenden und hängt auch nicht von Eigenschaften der Betriebssysteme ab, die sich in Zukunft vielleicht wieder ändern.
> Du solltest dich bei Gelegenheit doch besser von Win98 verabschieden...
Ich lache vllt spaeter einmal.
pumuggl schrieb: > USB läuft doch nicht mehr als 24 Stunden am Stück störungsfrei... > Dann heisst es abstecken und wieder anstecken. Kann ich so auch nicht bestaetigen. Ich hatte schon USB-Festplatten an Beaglebones wochenlang im Betrieb (LFS/BLFS drauf gebaut, war also schon immer was los und Fehler waeren schnell aufgefallen). Dass die Mini/Micro-Versionen der Stecker mechanisch eine - hm - "Herausforderung" sind - geschenkt. Aber so prinzipiell ueber einen laengeren Zeitraum funktionieren kann USB schon. Gruss WK
Franziska N. schrieb: > Dergute W. schrieb: >> Wenn die >> USB->Serial-Wandler tatsaechlich alle eine einzigartige Seriennummer >> haben ... > > Hab mal gegoogelt, an die FT4232HL könnte man wohl ein EEprom > anschließen und über USB mit FT_PROG eine eindeutige Seriennummer > hinterlegen. Das geht auch über die Busadresse, also Hub Nummer sowieso, Anschluss soundso. Einfach in /dev/serial/by-path nachschauen und das in den udev-regeln verwenden. Oder meinetwegen auch direkt von der Anwendung so ansprechen, also statt /dev/ttyACM0 verwendet man /dev/serial/by-path/pci-0000:00:14.0-usb-0:1:1.0 Und solange es immer am selben Hub und am selben Port hängt ist das immer das selbe Gerät. Und ich wette unter Windows kommt man auch irgendwie an so nen Mechanismus dran, Windows muss intern ja auch wissen wo es das Gerät findet.
@Hauke Haien @Dergute W. pumuggl ist nur ein dämlicher Troll, einfach ignorieren solche Spezis. @pumuggl Liefer doch erstmal die Tests nach von deinem heißegeliebten IAR der bei float ach so schnell sein soll. Du machst dich hier echt nur lächerlich.
Bernd K. schrieb: > Und ich wette unter Windows kommt man auch > irgendwie an so nen Mechanismus dran Bestimmt, schließlich ist dieser Pfad ja auch in der Systemsteuerung beim Virtuellen COM-Port einzusehen.
Stefan F. schrieb: > Bernd K. schrieb: >> Und ich wette unter Windows kommt man auch >> irgendwie an so nen Mechanismus dran > > Bestimmt, schließlich ist dieser Pfad ja auch in der Systemsteuerung > beim Virtuellen COM-Port einzusehen. Wie bei Windows üblich steht das alles in der Registry. Zum Programmieren benutzt man die Funktionen der Setup api.
minifloat schrieb: > Lese etwas über CDC-ACM und verstehe. > Man muss nur 10x instanziieren statt 3x und gut. Naja nicht ganz jeder VCP braucht 3 EPs da ist dann irgendwann Schluss. Maximal möglich sind 15 IN und 15 OUT Endpoints pro Device. VCP braucht 2 mal IN. Es sind also maximal 7 Ports möglich. Man braucht also immer einen Hub um auf 10 Ports zu kommen. Ich finde den Vorschlag von Stefan schon attraktiv. 4 mal Bluepill mit der Software irgendein 4Port Hub und Pegelwandler und fertig ist die Laube. Ich hab mir die FW von Nicolas mal aufgespielt. Das funktioniert einwandfrei. Die FW unterstützt auch 2 Controlleitungen pro Port. USB SN wird unterstützt. Mir ist nur eine Kleinigkeit aufgefallen die sich aber sehr einfach beheben lässt. Die Deskriptoren melden VCPVer 0.1. dort sollte wohl 0x0100 für 1.0 stehen. Thomas
Thomas Z. schrieb: > Er hat ein WinUSB Deskriptoren dazugebaut damit kann man wenn man will > eben WinUSB oder auch libusb benutzen. Zwingend ist das jedoch nicht und > es wird als VCP funktionieren. Die Deskriptoren folgen schon dem neueren > Stand für Compound Devices der aber m. W. auf dem Mac noch nicht > funktioniert. Unter Win und Linux ist das aber kein Problem. > Der Vorteil besteht darin dass mit einem Bulkpaar mehrere Schnittstellen > bedient werden können. Thomas Z. schrieb: > minifloat schrieb: >> Lese etwas über CDC-ACM und verstehe. >> Man muss nur 10x instanziieren statt 3x und gut. > > Naja nicht ganz jeder VCP braucht 3 EPs da ist dann irgendwann Schluss. > Maximal möglich sind 15 IN und 15 OUT Endpoints pro Device. VCP braucht > 2 mal IN. > Es sind also maximal 7 Ports möglich. Man braucht also immer einen Hub > um auf 10 Ports zu kommen. jetzt bin ich ein wenig verwirrt ;-) Den ersten Post hatte ich so verstanden wie wenn "beliebig" viele VCP über ein Bulkpaar ( =3 Endpoints ?) machbar wären und das Device irgendwie dafür zuständig ist, alles auseinander zu fummeln und zu verteilen.
Hans-Georg L. schrieb: > Den ersten Post hatte ich so verstanden wie wenn "beliebig" viele VCP > über ein Bulkpaar ( =3 Endpoints ?) machbar wären und das Device > irgendwie dafür zuständig ist, alles auseinander zu fummeln und zu > verteilen Das war missverständlich. Ich hab auch extra noch mal in der Spec nachgelesen weil ich der Meinung war dass man die EPs gemeinsam nutzen kann ähnlich wie es z.B die Midi spec erlaubt. Dazu hab ich aber in der Spec auf die Schnelle nichts gefunden. Meine Aussage dazu war also falsch. Ich habe das verwechselt für Midi hab ich das schon gemacht dort geht das auch. Was ev noch möglich wäre ist den Interrupt EP zu entfernen. Dies würde dann zwar der Spec widersprechen, der wird aber sowieso bei den meisten Implementation en nicht unterstützt. So auch bei Niclas. Ob so ein Device noch als VCP erkannt wird müsste man ausprobieren. (W10). Ansonsten muss eine Inf her. Dann geht das sowieso. Thomas
:
Bearbeitet durch User
Zurück zum Thema ;-) wenn es nicht unbedingt ein Bus sein muss und das ganze an einem PC hängt, der noch geeignete Steckpätze hat, wäre das hier vielleicht auch eine platzsparende Lösung: https://www.ebay.de/itm/Moxa-C168H-PCi-Serieller-Controller-8-port-RS232-mit-8-fach-Kabel/283547220054?epid=14011264683&hash=item4204bb3856:g:zyQAAOSwCW9dKcGv
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.