AT90usb162 USB COM Interrupt wird nicht ausgelöst

Gast #2956501
Lesenswert?
• ▲
▼
Guten Tag zusammen,
Ich habe ein Problem, für das ich schon drei Tage rumprobiere.

Ich baue gerade eine Steuerung für einen Plotter.
Dazu habe ich eine Platine mit einem AT90usb162 aufgebaut.
Der Atmel-Bootloader funktioniert einwandfrei und ich kann die Firmware 
immer zum Testen aufspielen.

Die Firmware soll sich am PC als USB-Seriell-DEvice (CDC) ausgeben. Bei 
der Enumeration erkennt der PC zwar, das etwas am USB angeschlossen 
wurden ist, allerdings wird kein USB_COM-Interrupt ausgelöst (getestet 
mit LEDs). Daher fehlen natürlich die Deskriptoren und der PC erkennt 
nur ein fehlerhaftes Device.

Allmählich habe ich keine Idee mehr, wo mein Problem sein könnte.
End-of-Reset vom USB wird erkannt,
der Endpoint0 gültig aufgesetzt,
der Received-Standard-Request aktiviert.
Aber der Interrupt wird nicht ausgelöst.

Hat einer von euch eine Idee, woran es liegen könnte?
(Quellcode ist angehängt.)
Angehängte Dateien:
Gast #2957184
Lesenswert?
• ▲
▼
>Bei der Enumeration erkennt der PC zwar, das etwas am USB angeschlossen
>wurden ist,
Das sagt garnichts aus. Das passiert auch, wenn Du einen Widerstand an 
D+/D- hängst.

>Daher fehlen natürlich die Deskriptoren und der PC erkennt nur ein fehlerhaftes
>Device.
Typisch für eine fehlerhafte Enumeration. Wie sieht denn der 
Datenverkehr auf dem Bus aus?

>End-of-Reset vom USB wird erkannt,
>der Endpoint0 gültig aufgesetzt,
>der Received-Standard-Request aktiviert.
Wenn Du das alles weisst, dann zeig doch mal Dein Log.
Gast #2957395
Lesenswert?
• ▲
▼
Pit schrieb:
> Typisch für eine fehlerhafte Enumeration. Wie sieht denn der
> Datenverkehr auf dem Bus aus?

Datenverkehr kann ich leider nicht überprüfen.
Ich habe die Initialisierung und das Vorrankommen des Codes mittels LEDs 
überprüft.
Daher kann ich mit Sicherheit sagen, dass der USB_COM-Interrupt nicht 
ausgeführt wird, obwohl der Interrupt auf ein empfangenes Setup-REquest 
eingestellt ist.

> Wenn Du das alles weisst, dann zeig doch mal Dein Log.
Gibt es denn eine MÖglichkeit, die USB-Enumeration unter Win7 zu loggen? 
Dahingehend habe ich nichts gefunden.

Ich werde jetzt mal den Code von

Karlheinz schrieb:
> getesteter Quellcode ist unter
>  Code Library/USB Serial
> http://www.pjrc.com/teensy/usb_serial.html

austesten. Falls dieser tut, habe ich eine Vergleichsmöglichkeit.

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.