USB Stack für AT90USB162

Gast #2237181
Lesenswert?
• ▲
▼
Hallo,
gibt es einen fertigen USB-Stack (in C) für den AT90USB162?
Hab schon gesucht und auch ein paar Sachen ausprobiert aber ich musste 
feststellen das alles für  AT90USBxxx7 und AT90USBxxx6 ausgelegt ist. Da 
ich nur erst mal "schnell" ausprobieren wollte wie sich mit der USB 
Schnittstelle arbeiten lässt suche ich möglichst was fertiges damit ich 
nicht erst selber die Anpassungen vornehmen muss.

Gruß
wuka-rudi
#2237332
Lesenswert?
• ▲
▼
Danke für die schnelle Antwort.
auf LUFA bin ich bei meiner Suche auch schon gestoßen.
Ich sehe nur bei dem Wust an Dateien nicht ganz durch welche die 
richtigen sind. Am liebsten hätte ich ein Beispielprojekt wo man nur die 
Dateien dabei hat die nötig sind. Ich arbeite mit dem AVR-Studio5 und 
habe die "AVR Entwicklungsplatine AT90USB162" hier aus dem shop.
#2248303
Lesenswert?
• ▲
▼
Danke Klaus für den "Teensy" Tip.

Hat jemand damit schon Erfahrungen gesammelt? Soweit kann ich alles 
Kompilieren und die Software läuft auch. Nur unter Windows wird statt 
dem von mir erhofften HID Gerät nur ein unbekanntes Gerät angezeigt.
Ich benutze das Beispiel RAW-HID.
Die Funktion
1
usb_init();
 wird noch durchlaufen.
Aus der Schleife while
1
(!usb_configured()) /* wait */ ;
 kommt er dann nicht mehr raus. Was wohl darauf zurück zu führen ist das 
die Kommunikation mit dem Rechner nicht richtig hin haut. Aber warum das 
weiß ich leider nicht.
Ich benutze das AVR Studio5 auf einer XP Maschine.
Anbei mein Quellcode evt. hab ihr ja ne Idee waran es liegen könnte.
Ach ja ich habe einen Teil des originalen Codes gelöscht da ich die 
ganze Sache mit dem ADC nicht brauche.
Angehängte Dateien:
#2251450
Lesenswert?
• ▲
▼
ich glaube ich hab den Grund gefunden warum er hier
1
(!usb_configured())
 nicht weiter kommt. weil er nie den
1
USB_COM_vect
 anspringt. Die Interrupts sind Global freigegeben und funktionieren 
auch. Aber ich weiß nicht genau ob und wo dieser Interrupt freigeben 
wird. Komischerweise heißt der im Datenblatt auch "USB Endpoint 
Interrupt request" was ja nicht stört wenn hinter beidem die Gleiche 
Adresse liegt.
Hat da wer ne Ahnung?
#2251516
Lesenswert?
• ▲
▼
In "USB General Interrupt" kommt das Programm auch rein, dort wird dann 
im UEIENX Register das RXSTPE (Received SETUP Interrupt Enable Flag) 
gesetzt.
Wenn ich das richtig verstehe sollte doch damit Software seitig alles so 
sein das der Interrupt ausgelöst werden sollte so bald der Pc versucht 
das Device zu installieren oder?
Moderator Persönliche Seite #2251558
Lesenswert?
• ▲
▼
Tobias Pfundt schrieb:
> Wenn ich das richtig verstehe sollte doch damit Software seitig alles so
> sein das der Interrupt ausgelöst werden sollte so bald der Pc versucht
> das Device zu installieren oder?

Keine Ahnung, ohne in den Code reinzugucken.  All die Abläufe sind
ziemlich komplex, und man kann das praktisch nur stückweise
debuggen.  In dem Moment, da dein Debugger einen Breakpoint erreicht,
rennt die ganze Prozedur seitens des USB-Hosts sofort in einen
Timeout, und das Gerät wird danach im Host-USB-Stack "abgeschrieben".

Die ganze Abfolge der verschiedenen Setup-Sequenzen ist der
schwierigste Schritt, den man meistern muss, um so einen USB-Controller
an einen Host ranzubekommen.  Während man das in Betrieb nimmt, nimmt
man zwangsläufig auch all die Dinge in Betrieb, die man später für
den eigentlichen Datentransfer braucht.
#2251560
Lesenswert?
• ▲
▼
Bin wieder einen Schritt weiter. Jetzt wird das Board vom Rechner 
erkannt.
Denke das Problem lag im PLLCSR-Register dort wird ja der Takt für die 
USB-Anbindung erzeugt. Die Teensy-Sticks verfügen über einen 16Mhz Quarz 
weswegen der Vorteiler auf 2 gesetzt war( (16Mhz/2)*6=48Mhz ). Da die 
"AVR Entwicklungsplatine AT90USB162" nur über einen 8Mhz Quarz verfügt 
muss kein Vorteiler gesetzt werden.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.