Hallo Forum, Ich suche gerade die Einzelteile für ein kleines Projekt zusammen und hätte mal einige Fragen, beziehungsweise Aussagen, die ich gerne bestätigt hätte, sodass ich weiss, dass ich die Materie verstanden habe: - Solange ich die USB-Anschlüsse D- und D+ habe, ist es möglich für den Mikrocontroller Daten zu empfangen UND zu senden?! Beispiel: ATMega 32U4 auf dem Arduino Bord und ein Notebook, normaler Computer als Hoster! - Um die volle Strommenge aus dem USB-Anschluss zu bekommen, muss ich einen Treiber schreiben, damit das Betriebssystem das Gerät erkennt, den nur so kann man die USB Ports voll ausnutzen. - USB Massenspeichergeräte brauchen zum Beispiel keine zusätzlichen Treiber, da sie so populär sind, dass Betriebssystemhersteller schon einige in ihren Libraries miteingebaut haben!? Danke für die Unterstützung Besten Dank
Senden kann man vom Device genaugenommen nicht. Aber die Daten vom Host abholen lassen schon ( kommt ja auf das gleiche raus;-) Treiber muss man normalerweise nicht schreiben. Man benutzt einfach eine Geräte-Klasse für die das PC Betriebssystem einem Treiber hat. (CDC,HID, MSD...) oder benutzt einen Treiber wie libusb.
Danke für die rasche Antwort. Ich versuche eben so etwas ähnliches Wie ein Datenlogger aufzubauen, also die Daten sollen dann in den immer gleichen Abständen vom Host zum Device übertragen werden. dann gehe ich mal davon aus, dass das alles mein Programm regeln muss (Zeitabstände,..etc) Warum schreiben dann Mobilgerätehersteller eigene Treiber? Das Smartphone bildet am USB Anschluss eigentlich auch nur einen Massenspeicher mit Ladeeinrichtung für den LIION-Akkku...
Richard K. schrieb: > Solange ich die USB-Anschlüsse D- und D+ habe, ist es möglich für den > Mikrocontroller Daten zu empfangen UND zu senden? USB ist bidirektional. (Allerdings braucht es nicht dafür zwei Signale; die heißen D+ und D-, weil die Daten differentiell übertragen werden.) > Um die volle Strommenge aus dem USB-Anschluss zu bekommen, muss ich > einen Treiber schreiben, damit das Betriebssystem das Gerät erkennt Nicht wirklich. Der Standard schreibt vor, dass ein Gerät nur dann viel Strom ziehen darf, wenn der Treiber es ihm erlaubt. Dadurch kann verhindert werden, dass zu viele stromhungrige Geräte gleichzeitig aktiviert werden. Allerdings ist dieser Schutz meist nur in Software implementiert; wenn dein Gerät einfach mehr Strom saugt, funktioniert es oft. (Viele Mainboards haben aber auch eine feste Strombegrenzung in Hardware.) > USB Massenspeichergeräte brauchen zum Beispiel keine zusätzlichen > Treiber, da sie so populär sind, dass Betriebssystemhersteller schon > einige in ihren Libraries miteingebaut haben!? Im Prinzip ja; das hat aber weniger mit Popularität zu tun, als damit, dass diese Protokolle standardisiert sind: http://www.usb.org/developers/docs/devclass_docs/
Richard K. schrieb: > Ich versuche eben so etwas ähnliches Wie ein Datenlogger aufzubauen, > also die Daten sollen dann in den immer gleichen Abständen vom Host zum > Device übertragen werden. Wenn du etwas genauer auf die Datenmenge eingehen würdest, bekämts du bestimmt noch präzisere Hinweise...
Verstehe ich aber nicht so ganz, wenn die Protokolle standardisiert sind, warum gibt's Gerätefehlermeldungen bei Windows wenn USB-Sticks/Geräte verwendet werden, die etwas älter sind? Das Projekt steckt noch in der Befruchtung :) somit kann ich nicht viel über die Datenmenge sagen. Es soll einfach optisch Parameter ausgeben können. Auslastung, Audiolautstärke, Temperatur, Internettverbindungsgeschwindigkeit...So eine Art Diagnosetool!
Ausgeben auf einer GUI, so dass ein Benutzer das sieht? Dann ist die Datenmenge auf jeden Fall relativ winzig. Dann kannst du bestimmt CDC oder HID verwenden. Bei CDC bekommst du auf dem PC einen "virtuellen" COMport und kannst deine Daten am Anfang einfach in einem beliebigen Terminalprogramm anzeigen. Sowas (Terminal) gibt es auch für HID. Für ein "kleines" Projekt brauchst du auf jeden Fall eine Art Framework (eine Beispielprojekt), das den ganzen USB Kram auf dem uC handelt. Gibt es bestimmt vom Hersteller.
Richard K. schrieb: > Verstehe ich aber nicht so ganz, wenn die Protokolle standardisiert > sind, warum gibt's Gerätefehlermeldungen bei Windows wenn > USB-Sticks/Geräte verwendet werden, die etwas älter sind? Was genau meinst Du mit "USB-Sticks/Geräte"? Die "USB Mass Storage Device Specification", die das Verhalten von USB-Speichersticks, USB-Kartenlesern, USB-Festplatten, USB-Diskettenlaufwerken und USB-CD-/DVD-Laufwerken/Brennern regelt, ist schon gut 15 Jahre alt; dazu nicht kompatible Geräte findet man seit deutlich über zehn Jahren nicht mehr. Wenn es im Zusammenhang mit solchen Geräten zu Problemen kommt, hat das andere Ursachen.
vloki schrieb: > Für ein "kleines" Projekt brauchst du auf jeden Fall eine Art Framework > (eine Beispielprojekt), das den ganzen USB Kram auf dem uC handelt. Gibt > es bestimmt vom Hersteller. Echt? Datenmenge relativ winzig? Hätt ich jetzt schlimmer eingeschätzt:) Wie finde ich sowas...bzw unter welcher Spezifikation? Rufus Τ. F. schrieb: > Wenn es im Zusammenhang mit solchen Geräten zu Problemen kommt, hat das > andere Ursachen. Also wir haben in der Firma Massenspeichergeräte, die einen automatischen Download des Tachographen (wie lange ist die Ruhe-,Arbeits,Berietschaftszeit) und wenn wir die an unseren Rechner mit WIN7 anschliessen, kommt immer eine Problem-Meldung. Genauso mit meinem USB 2GB Speicherstick. Steck ich den in mein Notebook USB2.0 Port kommt jedesmal ein Fenster, dass mir sagt, dass mit dem Laufwerk ein Problem vorliegt und ob ich es reparieren will?!? Ich kann aber über den Arbeitsplatz problemlos darauf zugreifen. Hier behaupte ich, dass es das Betriebssystem nicht fertig bringt den Autostart auszuführen.... Beim oben beschriebenen Massenspeicher für Tachographen handelt es sich um diesen: http://www.fleet.vdo.de/gesetze/daten-auswerten-archivieren/dlk-pro-tis-compact/
>kommt >jedesmal ein Fenster, dass mir sagt, dass mit dem Laufwerk ein Problem >vorliegt und ob ich es reparieren will?!? ...dann dürfte vermutlich das Dateisystem auf dem USB-Stick nicht in einwandfreiem Zustand sein: http://www.howtogeek.com/184640/ask-htg-windows-always-wants-to-scan-and-fix-my-usb-drive-should-i-let-it/
Richard K. schrieb: > kommt jedesmal ein Fenster, dass mir sagt, dass mit dem Laufwerk ein > Problem vorliegt und ob ich es reparieren will Diese Fehlermeldung hat mit dem Dateisystem zu tun, aber überhaupt nichts mit dem verwendeten USB-Devicetreiber. Komplett andere Baustelle.
Richard K. schrieb: > Ich suche gerade die Einzelteile für ein kleines Projekt zusammen Wenn daraus keine Endlos-Baustelle werden soll, dann wirst du nicht umhin kommen, dich zur prinzipiellen Funktionsweise des USB zu belesen und anschließend dir zu allererst Gedanken über die gesamte Struktur deines Vorhabens zu machen. Sich einfach hinzustellen und zu sagen "naja, der USB besteht doch nur aus 2 Strippen, das kann doch wohl nicht so schwer sein!" ist ein bissel zu wenig. Also lies zu allererst. W.S.
Richard K. schrieb: > Echt? Datenmenge relativ winzig? Hätt ich jetzt schlimmer eingeschätzt:) Na wenn du nur so viel überträgst wie ein menschlicher Betrachter auch erfassen kann, wird das, verglichen mit dem was auf dem Bus möglich wäre, schon nicht allzu viel sein. Deshalb "relativ"
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.