Forum: Mikrocontroller und Digitale Elektronik AT90usb162 USB COM Interrupt wird nicht ausgelöst


von Floh (Gast)


Angehängte Dateien:

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.)

von Karlheinz (Gast)


Lesenswert?

Hallo,

es ist müsig deinen Quellcode oder deine Vorgangsweise auf Fehler zu 
durchsuchen etc.

Gehe auf die seite von "teensy"
http://www.pjrc.com/teensy/first_use.html
dort gibte es unter "Projects" getesteten Quellcode und eine Anleitung 
was wie zu machen ist !!!

Viel Spass

von Karlheinz (Gast)


Lesenswert?

Nachtrag:

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

von Pit (Gast)


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.

von Floh (Gast)


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.

von Pit (Gast)


Lesenswert?

>Gibt es denn eine MÖglichkeit, die USB-Enumeration unter Win7 zu loggen?
Wenn Du das öfter brauchst:
http://www.basic.io/index.php/category-analyzers/alogic-analyzer-detail
Oder in Software:
http://www.sysnucleus.com/

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.