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
Die LUFA Bibliothek ( http://www.fourwalledcubicle.com/LUFA.php ) könnte dir helfen. Ist auch Kompatibel mit dem at90usb1287. Es sind auch ein Haufen Beispiele dabei, damit der Einstieg leicht fällt.
Was dich insbesondere davon interessieren wird ist der sogeannte "CDC" (communications device class), denn dafür haben die üblichen Betriebssysteme einen Standardtreiber dabei.
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
ich hab jetzt ein projekt ausprobiert in demos mit der Mouse aber mein compailer kann die Lufa bibliothken nicht wie #include <LUFA/Drivers/USB/USB.h> gruß michi
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.
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ß
michi schrieb: > aber wo finde ich das > µracoli-Projekts Erster Treffer bei Gugel: http://www.nongnu.org/uracoli/ Die konkrete Implementierung für den AT90USB1287 ist in dieser Datei: http://cvs.savannah.gnu.org/viewvc/uracoli/Src/Lib/Ioutil/hif_at90usb.c?root=uracoli&view=markup
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
@Stefan danke für den seiten Tipp. Die Seite ist echt super da versteht man ganz einfach wie das mit dem USB funktioniert. danke auch an alle anderen die mir geholfen haben
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.