Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S USB Schnittstelle ohne extra Treiber


von Sebastian Bäumler (Gast)


Lesenswert?

Hallo,

gibt es eine Möglichkeit die USB Schnittstelle vom AT91SAM7S
anzusprechen ohne unter Windows/Linux einen extra treiber zu
installieren? Gibt es da nicht irgendwelche Standard Schnittstellen
unter Windows/Linux die mann nutzten kann? Mein Ziel ist: Einstecken
und geht.

MFG Sebastian

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das geht, wenn Du auf dem Controller eine der Standardgeräteklassen
implementierst, für die bei den üblichen Betriebssystemen von
vornherein Treiber mitgeliefert werden.
Dazu gehören zum Beispiel HID ("human input device" wie Tastaturen,
Mäuse, Graphiktabletts etc.) und MSD ("mass storage device" wie
USB-Sticks, Kartenleser, USB-IDE-Bridges für Festplatten etc.).

Wenn Du dennoch eine Software zum Gebrauch Deines Gerätes mitliefern
willst, kannst Du diese auch unter Verwendung der libusb bzw.
libusb-win32 schreiben, das ist eine Library zum Ansprechen von
USB-Geräten aus Usermodeprogrammen.

von Sebastian B. (baeumles)


Lesenswert?

Vielen dank für die super schnelle Antwort.

Aber ich bin mal so dreist zu Fragen, gibt es irgenwo ein gutes
Beispiel wie ich eine HID Geräteklasse imlementiere?

Und unterstützt die HID Geräteklasse auch die 12MBit übertragungsrate.

Ich bin noch Neuling was USB in Verbindung mit µC's angeht!

MFg Sebastian

von morpheuz (Gast)


Lesenswert?

>>>
Und unterstützt die HID Geräteklasse auch die 12MBit übertragungsrate.
<<<

Nein tut es nicht! HID ist extremst langsam! (100kByte/sec)
Außerdem ist HID auch nicht für zuverlässige Übertragung geeignet - da
ist tatsächlich spezifiziert, dass bei HID auch mal ein Paket verloren
gehen darf!

von Erwin Reuss (Gast)


Lesenswert?

Eine recht einfache Methode ist die Implementierung der CDC-Klasse. Hier
wird das USB-Gerät einfach über eine virtuelle COM-Schnittstelle
angesprochen. Aber auch hier gilt, die extrem langsame Übertragungsrate
(maximal ca. 12 kB / Sekunde getestet). Wer nur geringe Datenmengen
übertragen will, für den ist diese Variante ideal, weil der Aufwand auf
PC-Seite extrem niedrig ist.

von jörn (Gast)


Lesenswert?

Atmel bietet ein Beispiel mit Treiber und C++-Code für PC und µC.
(http://www.atmel.com/dyn/products/app_notes.asp?family_id=605 und da
Basic USB-Application)
Mit wirklich geringem Aufwand und mit freeware-tools bekommt man das
mit vernünftigen Datenraten zum Laufen und kann es dann entsprechend
anpssen.

Gruß, Jörn

von Sebastian B. (baeumles)


Lesenswert?

@ALL

Danke für Eure Posts.

Aber mein Ziel war ja den µC über USB anzusprechen ohne einen extra
Treiber zu installieren.

Und da war der Tip von Rufus (Danke) mit dem HID nicht schlecht.
Im moment suche ich auch schon nach irgendwelchen Beispielen wie ich
eine HID Schnittstelle in einen AVRUSBxxx oder in einen AT91SAM7S
implementiere.

Falls jemand dafür ein gutes Beispiel hat, oder jemand weis wonach ich
am besten suchen muss, währe ich echt dankbar!

Gruss Sebastian

von Matthias (Gast)


Lesenswert?

Zu FreeRTOS gibts ein kleines beispiel einer (nicht vollständigen) USB
HID Joystick Implementierung:
http://www.freertos.org/portsam7iar.html

Wie gut das Beispiel ist kann ich dir aber nicht sagen, habs noch nicht
genauer angesehen.

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.