Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller mit USB Interface


von André R. (andr_r23)


Lesenswert?

Hallo,

ich will einen Sensor bauen, der über RS485 kommuniziert. Jeder Sensor 
bekommt einen IC der das ganze dann auf USB wandelt. Die einzelnen 
Sensoren sollen dann einfach in einen USB Hub gesteckt werden und dann 
mit einem PC kommunizieren.

Jetzt ist die Frage, ob ich mir nicht den ganzen mist sparen kann und 
einfach einen uC hole der bereits ein USB Interface hat. Dann würde ich 
mir als erstes den Pegelwandler sparen, dann den 485 Transceiver sowie 
danach den Baustein der mir das auf USB wandelt....

Ich will einfach nur, dass 8 Sensoren am Ende über einen USB Stecker an 
den PC angeschlossen werden. Der PC sendet einen eindeutigen Befehl mit 
dem nur ein Sensor was anfangen kann und dieser Sensor antwortet dann 
mit einem String aus Buchstaben und Zahlen.

8 Bit uC reicht vollkommen aus, wenn es denn was gibt mit USB......

Vielen Dank :-)

von g457 (Gast)


Lesenswert?

> 8 Bit uC reicht vollkommen aus, wenn es denn was gibt mit USB......

Wie Sand am Meer.. z.B. ATmega*U?, AT90USB*, ATXmega*U - und noch viele 
andere auch von anderen Herstellern. Ein USB-UART-Umsetzer wäre auch 
eine Möglichkeit wenns nicht nativ sein muss, z.B. FT232, CP2102 und 
Artverwandte, die gibts für Lau fertig konfektioniert. Falls es im µC 
nativ sein soll und Du das Timing selbst(!) festlegen kannst gäbs da 
auch noch USB in Software (z.B. [0] für AVR) mit allen Vor- und 
Nachteilen(!).

HTH

[0] http://www.obdev.at/products/vusb/index.html

von André R. (andr_r23)


Lesenswert?

ALso ist es dann tatsächlich sinnvoll einen uC zu kaufen der das schon 
hat? Dann spar ich mir alles andere was ich sonst brauchen würde oder ?

Max232
Ft232
Max481

Fallen dann weg?

Danke

von g457 (Gast)


Lesenswert?

> ALso ist es dann tatsächlich sinnvoll einen uC zu kaufen der das schon
> hat?

Kommt drauf an was Du willst. Es ∗kann∗ sinnvoll sein native 
Unterstützung im µC einzukaufen, es ∗kann∗ sinnvoll sein einen 
Standard-USB-UART-Umsetzer einzusetzen, es ∗kann∗ sinnvoll sein es in 
Software umzusetzen :-)

> Dann spar ich mir alles andere was ich sonst brauchen würde oder?

Alles nicht, aber zumindest Sachen auf USB-Seite.

von André R. (andr_r23)


Lesenswert?

Also ich versteh das noch nicht so ganz .... :/


Ich habe mir den 
http://de.farnell.com/atmel/at90usb162-16au/avr-usb-mcu-16k-flash-smd-tqfp32/dp/1455073 
hier ausgesucht. Der unterstützt das USB.

Wenn ich mir das ersatzschaltbild angucke was dort aufgeführt ist 
brauche ich garnichts und kann einfach die 4 Leitungen für USB 
rausziehen und an den PC stecken ohne das ich irgendetwas zusätzliches 
brauche. (5V,GND,UDP,UDM)

Oder was verstehe ich hier falsch. Keine Lust Platine anzufordern und 
dann wegzuschmeissen :-)

Danke

von g457 (Gast)


Lesenswert?

> Wenn ich mir das ersatzschaltbild angucke was dort aufgeführt ist
> brauche ich garnichts und kann einfach die 4 Leitungen für USB
> rausziehen und an den PC stecken ohne das ich irgendetwas zusätzliches
> brauche. (5V,GND,UDP,UDM)

Serienwiderstände in den Datenleitungen nicht vergessen. Und das 
Datenplatt lesen :-)

von André R. (andr_r23)


Lesenswert?

Ja ok, die widerstände von mir aus. Aber sonst wirklich nichts zu 
beachten?

von Uwe S. (de0508)


Lesenswert?


von Thomas G. (thgauweiler)


Lesenswert?

Oder Du holst Dir einen Arduino Nano.
In der Bucht aktuell für EUR 11 inkl. Versand aus China (z.B. 
170974055749).
Mit dem ISP Anschluss kannst Du den auch programmieren, wenn Du Arduino 
nicht magst.

Gruß
____
/homas

von André R. (andr_r23)


Lesenswert?

Thomas Gauweiler schrieb:
> Oder Du holst Dir einen Arduino Nano.
> In der Bucht aktuell für EUR 11 inkl. Versand aus China (z.B.
> 170974055749).
> Mit dem ISP Anschluss kannst Du den auch programmieren, wenn Du Arduino
> nicht magst.
>
> Gruß
> ______
> /homas

Huhu kommt nicht in Frage. Muss Platz sparen will den gesamten Sensor 
auf 50x50mm Platine unterbringen mit allem was sonst noch drauf muss. 
Auswerteschaltungen Spannungsversorgung etc. Aber dnake

von Daniel K (Gast)


Lesenswert?

Uwe S. schrieb:
> Links

Genau diese ehajo-Bausätze wollte ich auch vorschlagen. :-)
Und wenn du die Schaltung doch selber entwickeln willst, dann besser 
wirklich nicht die 16-kB-Variante nehmen, sondern gleich den ATmega32U2 
oder besser den ATmega32U4, der lässt sich auch ohne Quarz verwenden 
(bei Low-Speed-USB, was dir bestimmt ausreicht). Beide kriegst du zum 
Beispiel hier für ganz wenige Euri:

https://guloshop.de/shop/Mikrocontroller:::3.html

Für VUSB (normaler Mikrocontroller, der die USB-Schnittstelle per 
Software nachbildet) ist dort ein gutes Beispiel:

https://guloshop.de/shop/USB-TTL-ADC-PWM-Signalwandler:::10.html

Nutzt dir möglicherweise so nichts, weil du 8 und nicht nur 4 Eingänge 
brauchst, aber du kannst das Projekt ja auf einen etwas größeren 
Mikrocontroller übertragen, z.B. auf einen ATtiny84A. Oder du verwendest 
Adressierung, um die Sensoren anzusprechen.

von Martin M. (capiman)


Lesenswert?

@ André R.

Kennst Du dich mit Profilen des USB aus?
Hast Du schon mal was mit USB programmiert?
Hast Du überhaupt schon was programmiert,
oder ist das ein Projekt, um das Programmieren zu lernen?
Geht es um ein Hobby-Projekt oder soll es kommerziell
eingesetzt werden?
Geht es nur insgesamt um die 8 Sensoren
oder sollen es später mehr werden?

von André R. (andr_r23)


Lesenswert?

Martin Maurer schrieb:
> @ André R.
>
> Kennst Du dich mit Profilen des USB aus?
> Hast Du schon mal was mit USB programmiert?
> Hast Du überhaupt schon was programmiert,
> oder ist das ein Projekt, um das Programmieren zu lernen?
> Geht es um ein Hobby-Projekt oder soll es kommerziell
> eingesetzt werden?
> Geht es nur insgesamt um die 8 Sensoren
> oder sollen es später mehr werden?

Hi,

> Kennst Du dich mit Profilen des USB aus?
Nein
> Hast Du schon mal was mit USB programmiert?
Nein
> Hast Du überhaupt schon was programmiert,
Ja, der Sensor funktioniert. Kommunikation einfach über RS232 und ohne 
Bussystem. Habe dann 3 Sensoren ganz blöd mit ner Daisy Chain dann 
verbunden. Ging auch ^^.
> oder ist das ein Projekt, um das Programmieren zu lernen?
Nein
> Geht es um ein Hobby-Projekt oder soll es kommerziell
Für die Uni wollen schauen, ob man den Sensor minimieren kann und auch 
kosten reduzieren kann.
> Geht es nur insgesamt um die 8 Sensoren
> oder sollen es später mehr werden?
Ich denke nicht das es viel mehr werden. Aber selbst wenn es zweistellig 
wird müsste das doch über USB immernoch gehen oder? Ist auch nichts 
großes soll nur nen kleines Projekt werden was von Studenten 
weitergemacht wird.

Danke :-)

von Martin M. (capiman)


Lesenswert?

Aufgrund deiner Antworten (USB-Profile, USB-Programmierung
und der Anzahl der finalen Sensoren) würde ich Dir abraten,
einen USB-uC einzusetzen. Der Berg an Informationen,
die Du benötigst und der Aufwand, dass ganze zum Laufen zu bringen,
ist vermutlich in keiner Weise dem Nutzen gerechtfertigt,
die paar Sensoren zum Laufen zu bringen.
Außer es geht um Spaß und späteres Nutzen der (USB-) Infos.
Oder du brauchst eine Speziallösung, die Du mit einer fertigen
Lösung nicht umsetzen kannst...

Nimm was fertiges, google nach "USB RS485".

Beispielseite:
http://www.ftdichip.com/Products/Cables/USBRS485.htm
Preis irgendwas um die 25 Euro je Stück
(vielleicht zzgl. Steuer, Versand und was weiß ich noch)
Aber da gibt es noch zig andere Lösungen mit
unterschiedlichsten Eigenschaften...

Wenn Du wirklich dein uC Lösung umsetzen willst,
schau Dir mal die USB Spec. 2.0 auf www.usb.org an
und die diversen USB Profile Specs. (Hinweis CDC oder HID).
Mach dies bevor Du nach einen uC suchst und
beurteile selbst, ob Du dir das zutraust.

von Weingut P. (weinbauer)


Lesenswert?

versteh nich nicht ganz, wozu RS485 Bus wenn dann jeder Sensor seinen 
USB bekommen soll? Warum nicht alle auf einen Bus und einen 
USB-RS485-Dongle?

von André R. (andr_r23)


Lesenswert?

Hmm ich dachte die sind schon von Haus aus so, dass ich einfach daten 
senden kann über USB. Was muss den da alles gemacht werden?

Hat evtl jemand schonmal so ein Projekt mit nem 8Bit uC gemacht? Mir 
fehlt tatsächlich die Zeit sich damit intensiv zu beschäftigen. Ich hab 
mir das von vorher mit dem RS232 auch schon alles "klauen" müssen beim 
Peter Fleury weil ich nicht gerade fit bin im Programmieren.

Danke schonmal für die ganzen KOmmentare :-)

von André R. (andr_r23)


Lesenswert?

Fhutdhb Ufzjjuz schrieb:
> versteh nich nicht ganz, wozu RS485 Bus wenn dann jeder Sensor seinen
> USB bekommen soll? Warum nicht alle auf einen Bus und einen
> USB-RS485-Dongle?

Ich brauch doch für JEDEN Sensor einen Max232, Ft232 und den MAX 481 
damit es funktioniert oder nicht?

von André R. (andr_r23)


Lesenswert?

Was ist mit solchen Libraries:
http://www.obdev.at/products/vusb/index.html
https://code.google.com/p/lufa-lib/

Kann ich die nicht einfach verwenden? Geschwindigkeit ist mir egal ich 
will nur alle paar Minuten einen kurzen String übertragen

von g457 (Gast)


Lesenswert?

> Ich brauch doch für JEDEN Sensor einen Max232, Ft232 und den MAX 481
> damit es funktioniert oder nicht?

Kommt drauf an. Nochmals zurück auf Start: Was sind das denn für 
Sensoren? Sollen die an einem Bus betrieben werden (z.B. ein µC als 
Master auf einem Bus, n Sensoren an diesem Bus), einzeln (jeder Sensor 
hat einen µC dabei der die Kommunikation übernimmt), 'sternförmig' (ein 
µC an dem 'direkt' alle Sensoren hängen), ..?

> [vusb] [..] Kann ich die nicht einfach verwenden? Geschwindigkeit ist mir
> egal ich will nur alle paar Minuten einen kurzen String übertragen

Klar, wenn Du das Timing vorgeben kannst.

von André R. (andr_r23)


Lesenswert?

g457 schrieb:
>> Ich brauch doch für JEDEN Sensor einen Max232, Ft232 und den MAX 481
>> damit es funktioniert oder nicht?
>
> Kommt drauf an. Nochmals zurück auf Start: Was sind das denn für
> Sensoren? Sollen die an einem Bus betrieben werden (z.B. ein µC als
> Master auf einem Bus, n Sensoren an diesem Bus), einzeln (jeder Sensor
> hat einen µC dabei der die Kommunikation übernimmt), 'sternförmig' (ein
> µC an dem 'direkt' alle Sensoren hängen), ..?
>
>> [vusb] [..] Kann ich die nicht einfach verwenden? Geschwindigkeit ist mir
>> egal ich will nur alle paar Minuten einen kurzen String übertragen
>
> Klar, wenn Du das Timing vorgeben kannst.

Timing sollte kein Problem sein. Ich will einen PC als Master haben. 
Dann habe ich einen USB Hub mit eigener Stromversorgung. Jeder Sensor 
ist dann einzeln am Hub dran und ist somit verbunden mit dem PC. PC 
schickt ein Signal los zB S1M (Soll dann heißen Sensor 1 Messung 
auslösen). Sensor 1 generiert Messwert und sendet dann einen String 
zurück (zB S1M2.08791).

Jeder Sensor hat einen EIGENEN uC und ist damit auch komplett unabhängig 
von allen anderen!

von Lattice User (Gast)


Lesenswert?

Das wichtigste ist noch gar nicht gefragt worden:

Um was für Kabellängen geht es hier?
Ist das Poetentialtrennung nötig?

von André R. (andr_r23)


Lesenswert?

Lattice User schrieb:
> Das wichtigste ist noch gar nicht gefragt worden:
>
> Um was für Kabellängen geht es hier?
> Ist das Poetentialtrennung nötig?

Wegen der Kabellängen ich werde wohl vorgefertigte Kabel bestellen von 
mini usb auf USB mit 2m Länge. Länger wirds dann auf keinen Fall bis zum 
Hub und der HUb kann von mir aus auch dichter dran an den PC aber der 
hat eh ne aktive Stromversorgung bei.

von g457 (Gast)


Lesenswert?

> Ich will einen PC als Master haben. Dann habe ich einen USB Hub mit
> eigener Stromversorgung. Jeder Sensor ist dann einzeln am Hub dran und
> ist somit verbunden mit dem PC.

Der PC enumeriert dann die USB-Geräte, identifiziert sie anhand einer 
geeigneten ID, und redet mit ihnen.

> PC schickt ein Signal los zB S1M (Soll dann heißen Sensor 1 Messung
> auslösen). Sensor 1 generiert Messwert und sendet dann einen String
> zurück (zB S1M2.08791).

Geht sowohl mit vusb (und Konsorten) als auch nativ USB-fähigem µC als 
auch mit einem USB-UART-Wandler. Letzeres braucht mehr Bauteile, ist 
dafür 'Plattformunabhängig' (weil einfach eine UART beim Betriebssystem 
erscheint, über die die Kommunikation läuft). vusb braucht geringen 
Adaptionsaufwand (siehe z.B. das HID-Beispiel), läuft dann auf allen 
Plattformen mit libusb problemlos (oder man nutzt eine UART/CDC-Adaption 
davon, auch schon gesehen irgendwo(tm) in den Beispielen). Natives USB 
braucht am meisten Aufwand, bietet dafür die höchste Performance - hier 
vermutlich nicht von Belang.

HTH

von Lattice User (Gast)


Lesenswert?

Ok,

Die nächste Frage: Linux oder Windows PC (oder gar einen angebissenen 
A..)?

USB ist nur auf dem ersten Blick treibermässig problemlos.
Wenn man genau hinschaut gibt es da viele Fallen.

von Lattice User (Gast)


Lesenswert?

Und dann gibt es noch das Problem der USB ID. (5k$)

von Thomas G. (thgauweiler)


Lesenswert?

> Muss Platz sparen will den gesamten Sensor
> auf 50x50mm Platine unterbringen mit allem was sonst noch drauf muss.

Naja, kommt darauf an, welche Sensoren das sind.
Der Nano passt prima in einen IC-Sockel und seitlich ist dann noch genug 
Platz z.B für einen DHT22.
Du könntest auch auf einer Seite SMD aufbringen und von der anderen 
Seite her den IC-Sockel einlöten. Dann hast Du für SMD den ganzen 
Bereich.

Der Arduino nimmt Dir die USB-Programmierung dann ab.

rein Interesse halber:
Kommt das später in die Wand, d.h. in die Dose einer Steckdose oder 
Lichtschalter? (5x5cm² passt da fast rein).

____
/homas

von André R. (andr_r23)


Lesenswert?

Windows PC im Moment.

von André R. (andr_r23)


Lesenswert?

Thomas Gauweiler schrieb:
>
> rein Interesse halber:
> Kommt das später in die Wand, d.h. in die Dose einer Steckdose oder
> Lichtschalter? (5x5cm² passt da fast rein).
>
> ______
> /homas
Nein wird einfach an ein freihängendes Rohr rangeklemmt und macht dann 
lustige Sachen wie Extinktion messen, Partikel zählen usw..

von Lattice User (Gast)


Lesenswert?

André R. schrieb:
> Windows PC im Moment.

Suboptimal.
Da du Strings redest denkst du vermutlich an so etwas einfaches wie eine 
serielle Schnittstelle. Das Problem hier ist, dass es zwar eine USB 
Geräteklasse dadür gibt, aber kein Standardprotokoll und damit keinen 
generischen Treiber in Windows. Unter Linux kann man einfach den Treiber 
für serielle USB Devices patchen, ist in der Regel ziemlich einfach.

Mit Windows bleibt, wenn man keine Treiber schreiben will, nur 
Vendorspezific Deviceclass und WinUSB. Das ist aber nicht ganz so 
einfach wie eine serielle Schnittstelle zu verwenden. (das Linux 
äquivalent ist libusb).

von g457 (Gast)


Lesenswert?

> Und dann gibt es noch das Problem der USB ID. (5k$)

Nur bedingt - vusb bringt frei nutztbare mit. Und wenn man das Ding 
nicht verkauft/weitergibt darf man eh tun und lassen was man will.

Zu vusb gibt es eine ganze Sammlung an Projekten, die man als Vorlage 
nutzen kann [0, 1]. Ich hab hierzuworkstation einen mega88 mit vusb am 
laufen mit einer adaptierten Version der HID-data-Beispiels (im 
Sourcecode mit drin). Läuft stabil und zuverlässig. Libusb regelt :-)

[0] http://www.obdev.at/products/vusb/prjobdev.html
[1] http://www.obdev.at/products/vusb/projects.html

von Daniel K (Gast)


Lesenswert?

Lattice User schrieb:
> Mit Windows bleibt, wenn man keine Treiber schreiben will, nur
> Vendorspezific Deviceclass und WinUSB. Das ist aber nicht ganz so
> einfach wie eine serielle Schnittstelle zu verwenden. (das Linux
> äquivalent ist libusb).

Windows ist wirklich nicht gut geeignet für solche Entwicklungen. Ich 
würde umsteigen auf ein flexibleres Betriebssystem. ;-)

Trotzdem gibt es auch libusb-Treiber für Windows. Einfacher wäre es dann 
aber, du schließt das Gerät als "HID", in dem Fall als Tastatur an, dann 
brauchst du dich um Treiber gar nicht zu kümmern. Ein gutes 
Beispielprojekt findest du hier:

http://www.obdev.at/products/vusb/easylogger.html

von André R. (andr_r23)


Lesenswert?

Daniel K schrieb:
> Lattice User schrieb:
>> Mit Windows bleibt, wenn man keine Treiber schreiben will, nur
>> Vendorspezific Deviceclass und WinUSB. Das ist aber nicht ganz so
>> einfach wie eine serielle Schnittstelle zu verwenden. (das Linux
>> äquivalent ist libusb).
>
> Windows ist wirklich nicht gut geeignet für solche Entwicklungen. Ich
> würde umsteigen auf ein flexibleres Betriebssystem. ;-)
>
> Trotzdem gibt es auch libusb-Treiber für Windows. Einfacher wäre es dann
> aber, du schließt das Gerät als "HID", in dem Fall als Tastatur an, dann
> brauchst du dich um Treiber gar nicht zu kümmern. Ein gutes
> Beispielprojekt findest du hier:
>
> http://www.obdev.at/products/vusb/easylogger.html

Ich nutze Privat und auf der Arbeit eh nur Linux und nichts anderes. 
Aber es steht hier halt so oder so ein PC schon auf dem halt Windows 
läuft. Die Daten sollen dann ja auch eh in Labview ausgewertet werden. 
LAbview Lizenz für Linux müsste man wohl noch extra erwerben.... Naja 
mal schauen ob ich da was hinbekomme. Ich denk da ja auch schon an sowas 
wie nen Raspberry Pi auf dem Linux läuft und als Schnittstelle dient. 
Dann kann ich immernoch weitergehen und per Ethernet uoder sonstiges 
übertragen. Währe vorallendingen dann interressant wenn ich dann doch 
mehrere sensoren habe und die in 8er Clustern aufteilen kann.

von Lattice User (Gast)


Lesenswert?

André R. schrieb:
> mal schauen ob ich da was hinbekomme. Ich denk da ja auch schon an sowas
> wie nen Raspberry Pi auf dem Linux läuft und als Schnittstelle dient.
> Dann kann ich immernoch weitergehen und per Ethernet uoder sonstiges
> übertragen. Währe vorallendingen dann interressant wenn ich dann doch
> mehrere sensoren habe und die in 8er Clustern aufteilen kann.

Das ist eine gute Idee.

Daniel K schrieb:
> Einfacher wäre es dann
> aber, du schließt das Gerät als "HID", in dem Fall als Tastatur an, dann
> brauchst du dich um Treiber gar nicht zu kümmern. Ein gutes
> Beispielprojekt findest du hier:
>
> http://www.obdev.at/products/vusb/easylogger.html

HID ist nur bedingt einfach. Bedingt deswegen weil es einfach nicht 
vorgesehen ist unter Windows Tastaturen zu unterscheiden, d.h. einem 
Programm zuzuordnen, auch wenn dieses nicht den Focus hat. Und auch wenn 
ein Programm den Focus hat, scheint es nicht möglich zu sein zu erkennen 
von welcher Tastatur die Eingabe kommt. Wenn du da was kennst, nur her 
damit. (Ist ernst gemeint, ich habe da eine Problem mit einem 
Barcodescanner)

von g457 (Gast)


Lesenswert?

Stelle fest: vusb unter Windows nutzt inzwischen(?) native 
Windows-Funktionen aus dem DDK, braucht also kein (Bill-induziertes) 
Rumgewürge für die libusb.

Die Verwendung der HID-Klasse ist hier übrigens nicht, eine Tastatur 
oder ähnliches zu emulieren, sondern die Reports der Klasse zur 
Kommunikation zweckzuentfremden.

von Arc N. (arc)


Lesenswert?

Lattice User schrieb:
> Mit Windows bleibt, wenn man keine Treiber schreiben will, nur
> Vendorspezific Deviceclass und WinUSB.

Nö. HID und CDC wurden schon genannt, einige Hersteller liefern auch die 
passend signierten Inf wenn CDC genutzt werden soll (zur Not stellt man 
sich selber ein Root-Zertifikat aus und signiert Treiber/Inf damit). 
LibUSB ist seit längerem ebenso signiert "Vista/7/2008/2008R2 64 bit are 
supported from version 1.2.0.0 since a Microsoft KMCS accepted digital 
signature is embedded in the kernel driver libusb0.sys."

Lattice User schrieb:
> Und dann gibt es noch das Problem der USB ID. (5k$)

Nö. u.a. Atmel, SiLabs, TI und Microchip bieten eine Unterlizenz an

von pit (Gast)


Lesenswert?

Wenn es etwas 'out of the box' sein soll, dann schau Dir mal das HID 
Generic Beispiel von Microchip und irgendeinen passenden Controller 
(z.B. PIC18F14K50).

Auf der PC-Seite empfehle ich Dir die AHID.DLL von 
http://www.ahidlib.com - einfacher gehts nicht.

von Hermann (Gast)


Lesenswert?

André R. schrieb:
> Ich will einfach nur, dass 8 Sensoren am Ende über einen USB Stecker an
> den PC angeschlossen werden. Der PC sendet einen eindeutigen Befehl mit
> dem nur ein Sensor was anfangen kann und dieser Sensor antwortet dann
> mit einem String aus Buchstaben und Zahlen.
Ich glaube, mit der Idee die Daten über einen USB-Hub einzusammeln, hast 
du dich verrannt. Jedenfalls geht das mit 1/10 Aufwand mit der 
klassischen Lösung, die genau dafür gemacht ist:
Alle Sensoren an einen RS485-Bus hängen und über einen RS485/USB-Wandler 
an den PC hängen. Jeder Sensor braucht so nur einen RS485-Chip und sonst 
gar nichts. Ich habe zwar keine Erfahrung mit USB, aber mit einem 
RS485/RS232-Wandler läuft das bei mir seit Jahren problemlos. Kosten: 
fast Null.

von André R. (andr_r23)


Lesenswert?

Hermann schrieb:
> André R. schrieb:
>> Ich will einfach nur, dass 8 Sensoren am Ende über einen USB Stecker an
>> den PC angeschlossen werden. Der PC sendet einen eindeutigen Befehl mit
>> dem nur ein Sensor was anfangen kann und dieser Sensor antwortet dann
>> mit einem String aus Buchstaben und Zahlen.
> Ich glaube, mit der Idee die Daten über einen USB-Hub einzusammeln, hast
> du dich verrannt. Jedenfalls geht das mit 1/10 Aufwand mit der
> klassischen Lösung, die genau dafür gemacht ist:
> Alle Sensoren an einen RS485-Bus hängen und über einen RS485/USB-Wandler
> an den PC hängen. Jeder Sensor braucht so nur einen RS485-Chip und sonst
> gar nichts. Ich habe zwar keine Erfahrung mit USB, aber mit einem
> RS485/RS232-Wandler läuft das bei mir seit Jahren problemlos. Kosten:
> fast Null.

die kosten teilweise mehrere Euros die ics und brauchen viel platz. Ist 
dann direkt mal 10x10mm weniger platz auf der Platine. Der uC hat alles 
drin und hat alleine nur 5x5mm Platzbedarf.

von Hermann (Gast)


Lesenswert?

Ja, tatsächlich 2€ und 8Pin(z.B. LTC485 bei Reichelt 2,05€). Billiger 
und kleiner geht es wohl nicht. Kannst ja auch SMD nehmen.

von André R. (andr_r23)


Lesenswert?

Hermann schrieb:
> Ja, tatsächlich 2€ und 8Pin(z.B. LTC485 bei Reichelt 2,05€). Billiger
> und kleiner geht es wohl nicht. Kannst ja auch SMD nehmen.

Ja aber ich brauch dazu doch noch nen max232 oder nicht? und zumindest 
am ende ein mal noch zusätzlich nen baustein der mir das ganze auf meine 
USB buchse bringt oder halt nen adapter kaufen.

von Hermann (Gast)


Lesenswert?

Der RS485-chip kommt direkt an den UART des µC, sonst nichts. Zum PC 
brauchst du dann den Adapter. Würde ich kaufen, da gibt es wahrschinlich 
den passenden Treiber dazu. Ich habe den 485/232-Adapter selbst gebaut, 
weil ein gekauftes Billig-Teil nicht funktionierte.

von Martin M. (capiman)


Lesenswert?

Kannst Du deinen Gesamtaufbau nochmal etwas beschreiben?

Mir kommt es vor, als willst Du (final) folgenden Weg. Ist das richtig?

Sensor (nur die "Halbleiter-Sensor-HW") <-> uC <-> RS485 <-> RS232 <-> 
USB <-> USB-Hub <-> USB <-> PC/RaspberryPi/o.ä. <-> Ethernet <-> PC mit 
LabView

von André R. (andr_r23)


Lesenswert?

Martin Maurer schrieb:
> Kannst Du deinen Gesamtaufbau nochmal etwas beschreiben?
>
> Mir kommt es vor, als willst Du (final) folgenden Weg. Ist das richtig?
>
> Sensor (nur der Sensor) <-> uC <-> RS485 <-> RS232 <-> USB <-> USB-Hub
> <-> USB <-> PC/RaspberryPi/o.ä. <-> Ethernet <-> PC mit LabView

Ich habe ein Projekt gesehen für das dann auch die Libraries etc zur 
Verfügung gestellt wurden. Dort wwar der Aufbau für das reine RS485 so:


Sensor -> uC -> Max232 -> Max481 -> Ausgabe am PC wobei hier noch nen 
Adapter ran muss wenn man das an den PC USB Port stecken will (nur 1 
Adapter erforderlich egal wieviele Sensoren)

Da ich aber nun ganz simpel nen USB Hub verwenden will dachte ich mir 
ist es am einfachsten den Weg zu gehen:

Sensor -> uC mit USB -> Ausgabe

Ich meine so habe ich einfach pro Sensor einen USB Stecker und steck den 
einfach in den Hub rein. Und brauche dafür garkeine peripherie

von Hermann (Gast)


Angehängte Dateien:

Lesenswert?

Der Max232 ist vollkommen überflüssig. Im Anhang ist der Anschluss 
gezeigt. Der auch dargestellte Max232 entfällt für den Sensor. Beides 
würde man für einen 232/485-Wandler brauchen.

von André R. (andr_r23)


Lesenswert?

Hermann schrieb:
> Der Max232 ist vollkommen überflüssig. Im Anhang ist der Anschluss
> gezeigt. Der auch dargestellte Max232 entfällt für den Sensor. Beides
> würde man für einen 232/485-Wandler brauchen.

Also brauch ich pro Sensor tatsächlich dann nur 1xRs485 Chip und 1xuC 
???

Dann muss ich mir das mal überlegen wobei mir das reine USB immernoch 
besser gefällt wegen Platz und Kostenersparnis ;-). Aber vielen dank 
schonmal !!!

von Hermann (Gast)


Lesenswert?

Ja, nur der RS485 direkt am µC und alle an den Bus. Die Verkabelung habe 
ich mit Billig-Cat5-Patchkabeln (1€) gemacht, über die auch gleich die 
Spg-Versorgung läuft.
Mit der Kostenersparnis glaube ich noch nicht. Rechne mal alles 
zusammen. Und mit der USB-Lösung wirst du dich noch lange beschäftigen 
müssen.

von André R. (andr_r23)


Lesenswert?

Hermann schrieb:
> Ja, nur der RS485 direkt am µC und alle an den Bus. Die Verkabelung habe
> ich mit Billig-Cat5-Patchkabeln (1€) gemacht, über die auch gleich die
> Spg-Versorgung läuft.
> Mit der Kostenersparnis glaube ich noch nicht. Rechne mal alles
> zusammen. Und mit der USB-Lösung wirst du dich noch lange beschäftigen
> müssen.

Hmm ok, dachte nur , da es schon fertige Lösungen gibt und in den 
Tutorials hat sich das so angehört wie: Lade die Library runter, rufe 
sie auf und steck stecker rein --> fertig.

Hmm ich glaub ich schlaf nochmal ne Nacht drüber ;-). danke!

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.