USB mit dem AT90usb1287

Gast #2363914
Lesenswert?

Hallo zusammen

ich hoffe ihr könnt mir da weiter helfen :)

Ich hab jetzt ein ATMEL usbkey2 mit den controller AT90USB1287.

und würde gerne mit dem Controller ein paar zeichen an meine pc 
schicken.

aber ich hab keine ahnung mit der Initalisierung wie das funktioniert da 
gibt es so viele register und so.

das ist um einiges schwieriger als UART das ist ja einfach :)

So zu meiner frage kann mir jemand ein ganz einfaches programm geben mit 
einer initalisierung.

ich wäre euch sehr dankbar

weil im Web hab ich nicht wirklich was gefunden nur große die ich nicht 
verstehe.

danke für die mühe
Gast #2364777
Lesenswert?

Die beispiel programme sind ja ganz nett.

aber die sind teilweise ja auch recht groß und mit jeder menge von 
header und source cods

am liebsten wäre mir eine wo nur eine usb.h eine usb.c und eine main 
code gibt wo "nur" die einzelen register geschaltet werden und zwei 
funktionen gibt wie zb. zeichen schicken und zeichen holen.

das ist leichter für das verständnis

gruß michi
Moderator Persönliche Seite #2364801
Lesenswert?

michi schrieb:
> am liebsten wäre mir eine wo nur eine usb.h eine usb.c und eine main
> code gibt wo "nur" die einzelen register geschaltet werden und zwei
> funktionen gibt wie zb. zeichen schicken und zeichen holen.

So einfach ist USB leider nicht.

Praktisch ist es so, dass man die komplette Funktionalität eines
USB-Devices bereits fehlerfrei am Laufen haben muss, damit man nur
erst einmal hinter die sogenannte Enumeration seitens des Hosts
kommt.  Dieser Prozess fragt vom Device allerlei sogenannte
Descriptoren ab um herauszufinden, um was für eine Art Device es
sich handelt.  Für ein CDC schließt das auch solche Dinge ein, wie
das Aufteilen eines Transfers von mehr als 64 Bytes in zwei Pakete,
weil einer der Descriptoren zwangsweise so groß ist, dass er nicht
in 64 Byte hineinpasst.

Erst, nachdem das alles gelaufen ist, akzeptiert der Host das Device,
und dann kann man mit der eigentlichen Datenübertragung beginnen.  Die
Routinen dafür sind jedoch zu diesem Zeitpunkt bereits alle da, denn
die braucht man schon zum Übertragen der Descriptoren selbst.

Ich habe seinerzeit mal versucht, ein minimales Beispiel für ein CDC
zu schreiben, das ohne vielfälte Abstraktionsschichten arbeitet.  Das
kannst du im Rahmen des µracoli-Projekts finden.  Dieses Projekt ist
zwar eigentlich primär für die Ansteuerung der Atmel-Transceiver für
IEEE 802.15.4 gedacht, aber die USB-Funktionalität solltest du wohl
auch so benutzen können.
Gast #2364817
Lesenswert?

Ok Ok jetzt wird mir langsamm alles klar das des mit den USB etwas 
größerer aufwand ist :(

naja da muss ich mich halt durch kämpfen

tut mir leid wenn ich jetzt so blöd frage aber wo finde ich das 
µracoli-Projekts

gruß
Gast #2365525
Lesenswert?

Hallo,

noch ein kleiner Hinweis:

Schau mal bei "Teensy" (http://www.pjrc.com/teensy/)
dort gibt es in der Bibliothek kleine Beispielprojekte meist nur aus 2 
oder 3 Quellcodefiles die auch für den AT90usb1286 compilierbar sind und 
eventuell mit kleinen Änderungen für AT90USB1287.

Diese Files stammen teils aus LUFA oder haben dort Eingang gefunden.
Die "Projekte" sind gut erklärt und beinhalten auch Beispielprogramme, 
Treiber für den PC.

Gruss Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren