Forum: Compiler & IDEs Unbekanntes Gerät bei V-USB (www.obdev.at)


von vusb (Gast)


Lesenswert?

Ich möchte gerne in die Welt des USB einsteigen. Dazu habe ich mir ein 
Beispiel der V-USB lib ausgesucht und umgesetzt. Leider erhalte ich 
ständig die Meldung "Unbekanntes USB Gerät".

Ich besitze das Pollin Board und habe einen ATmega8 mit 16MHz darauf 
laufen. Geflasht wird mit AVR Lab. Als Pegel Konverter habe ich an den 
Leitungen D+/D- jeweils Z-Dioden 3,6V dran (siehe 
http://vusb.wdfiles.com/local--files/hardware/level-conversion-with-zener.gif). 
Da der ATmega nicht vom USB versorgt wird, habe ich lediglich die Massen 
von USB und dem ATmega verbunden.

Ich hänge das gesamte AVR-Studio Projet inklusive der Fuse-Einstellungen 
in den Anhang. Ich hoffe es kann mir jemand helfen.

von vusb (Gast)


Angehängte Dateien:

Lesenswert?

nach der Vorschau war der Anhang weg, sry

von vusb (Gast)


Lesenswert?

Hat denn schon mal jemand etwas mit V-USB von www.obdev.at gemacht und 
kann mir evtl. eine *.hex für einen ATmega8 mit 16MHz hochladen?
Da könnte ich schon mal abklären, ob es an der Hardware oder an der 
Software liegt.

von Sachich N. (dude) Benutzerseite


Lesenswert?

Sollten es nicht 12MHZ sein?

von Max (Gast)


Lesenswert?

Also beim USBASP sind es 12 MHz, mit denen der Mega läuft. Und bei 
Windows is ja alles wofür Windows kein Treiber mitbringt ein 
"unbekanntes USB Gerät". Ist beim USBASP auch so.
Und eigtl. will WIndows dann doch auch ein Treiber installieren... muss 
man ihm halt ein passenden geben.

Da ein USB Gerät erkannt wird, geh ich einfach mal davon aus, dass der 
Mega das macht was er soll, da wenn ich mich nich irre, der sich ja bei 
dem USB Host regelmässig melden muss(oder verwechsel ich da jetzt was).

von vusb (Gast)


Lesenswert?

laut Website von V-USB:
"Can be clocked with 12 Mhz, 15 MHz, 16 MHz or 20 MHz crystal or from a 
12.8 MHz or 16.5 MHz internal RC oscillator."

Der 16MHz Oscillator ist auch fest verlötet. Hab auch die defines und 
die Projekteinstellungen schon auf 16MHz angepasst. Sollte also gehen.

von vusb (Gast)


Lesenswert?

@Max:
Als HID wurde eine Tastatur genommen. Dafür brauch ich eigentlich keine 
Treiber.

von Simon K. (simon) Benutzerseite


Lesenswert?

vusb schrieb:
> @Max:
> Als HID wurde eine Tastatur genommen. Dafür brauch ich eigentlich keine
> Treiber.

Klar brauchst du die. Aber die sind bei Windows schon dabei.

von vusb (Gast)


Lesenswert?

@Simon K.
Ist mir schon klar, aber ich brauch keine zusätzlichen^^

von Martin F. (martinf)


Lesenswert?

Such dir mal nen einfachen USB device lister, z.B. USBView. Der dürfte 
auch ohne Treiber für deine Firmware funktionieren.

von vusb (Gast)


Lesenswert?

@ Martin Freund:
Ich bin der Meinung ich benötige keinen extra Treiber. Es wird ja 
lediglich eine Tastatur simuliert. Es wird also sicherlich nicht am 
evtl. fehlenden Treiber liegen. Es wird ja auch keine automatische 
Treiberinstallation vorgenommen. Das Gerät wird einfach nicht erkannt 
und ich weiss nicht ob es an der Hard- oder Software liegt.

von Martin F. (martinf)


Lesenswert?

Deswegen sollst du ja mit USBView mal schaun, ob die Enumeration 
funktioniert.
Gibt auch noch USB20CV, das testet alle Anforderungen an ein USB Gerät; 
gibts leider nur für x86 WinXP.

von vusb (Gast)


Lesenswert?

"DeviceFailedEnumeration"
Funktioniert anscheinend nicht. Hab auch schon +D und -D getauscht. Habs 
also nicht verwechselt^^

von Martin F. (martinf)


Lesenswert?

Mit USBTrace kannst du mal schaun, wie weit die Enumeration kommt.

von vusb (Gast)


Angehängte Dateien:

Lesenswert?

Ergebnis, siehe Anhang

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Der 16MHz Oscillator ist auch fest verlötet. Hab auch die defines und
> die Projekteinstellungen schon auf 16MHz angepasst. Sollte also gehen.

Und die sogenannten "Fuses" hast Du auch korrekt gesetzt?

von Martin F. (martinf)


Lesenswert?

Du brauchst noch die "Device Class Decoders" damit USBTrace die Pakete 
dekodieren kann. Detect Hot-Plugging (Symbol mit dem Stecker) ist 
aktiviert?

von vusb (Gast)


Lesenswert?

>Und die sogenannten "Fuses" hast Du auch korrekt gesetzt?
>>Ich hänge das gesamte AVR-Studio Projet inklusive der Fuse-Einstellungen
>>in den Anhang.

Hab ich extra als *.png mit in das Archiv gepackt.


>Detect Hot-Plugging (Symbol mit dem Stecker) ist aktiviert?
Ja

von Michael U. (amiga)


Lesenswert?

Hallo,

die Leitungen, Widerstände, Z-Dioden und USB-Buchse sind auch halbwegs 
kurz verdrahtet?
USN kann da schon ziemlich sensibel sein, speziell mit den Pegeln, die 
ja bei der AVR-Version nicht unbedingt normgerecht sind.

Gruß aus Berlin
Michael

von vusb (Gast)


Lesenswert?

>die Leitungen, Widerstände, Z-Dioden und USB-Buchse sind auch halbwegs
>kurz verdrahtet?

Ist alles auf einem Streifenraster angebracht und dann über kurze Drähte 
mit dem Pollin Board verbunden.

von kaffeetas (Gast)


Lesenswert?

Meiner Meinung liegts an der "falschen" Frequenz von 16Mhz. In den 
neueren Versionen wird in der usbdrvasm.S am Schluß Code in Abhängigkeit 
der Taktfrequenz includiert. Dieser Abschnitt fehlt bei deinem Code 
leider völlig!
Das einfachste wäre IMHO ins Pollinboard einen Präzisionsockel fürs 
Quarz zu löten und dann mal testhalber einen 12MHz Quarz ausprobieren. 
(Projekt dazu auch für 12Mhz compilieren)
"Unbekanntes USB Gerät" kommt meiner Erfahrung nach fast eigentlich 
immer wenn Windows am D- einen High Pegel detektiert aber nicht mit dem 
Device kommunizieren kann.

Ich spreche hier aus Erfahrung. Ich hab mal das CDC USB-RS232 Projekt 
mit 16Mhz zum laufen gebracht und bin dann dabei auf die zusätzliche 
Frequenzselektion in der .S Datei gestoßen.

Dein Code entspricht auch eher dem Code aus der usbdrvasm12.inc (12Mhz) 
als dem aus usbdrvasm16.inc (16Mhz). Insbesonders bei den als 
timingrelevant gekennzeichneten Funktionen.

Grüße
 kaffeetas

von vsub (Gast)


Lesenswert?

>Das einfachste wäre IMHO ins Pollinboard einen Präzisionsockel fürs
>Quarz zu löten und dann mal testhalber einen 12MHz Quarz ausprobieren.
>(Projekt dazu auch für 12Mhz compilieren)

Hab ich jetzt gemacht und mit 12MHz funktionierts.
THX

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.