Forum: Mikrocontroller und Digitale Elektronik Software AVR-USB -> Unknown Device


von Max W. (wauschi)


Lesenswert?

Hat schon jemand mit der Software-USB-HID-Implementierung von Objective
Development für ATmega8 gearbeitet? Ich habe die Projekte Automator und
HidKeys ausprobiert indem ich die Schaltungen nachgebaut habe und das
fertige .hex file verwendet habe.

Verbinde ich den AVR zum USB-Port ist kurz USB-Traffic auf den
Leitungen zu sehen und dann meldet Windows: "Unknown Device".

Ich habe mich vergewissert, dass alle Spannungen, Verbindungen, usw.
stimmen.

Ich hätte erwartet, dass ich ohne Driverinstallation ein HID Gerät im
Geräte-Manager finde.

Wenn ich bereits alle Leitungen, Spannungen, CLK, Bus usw.. überprüft
habe, wo könnte ich meine Fehlersuche fortsetzen?

von Ssss S. (sssssss)


Lesenswert?

pullup an der richtigen datenleitung ? (weiss nimmer obs bei D+ oder D-
hin muss)
Wenn er am falschen ist/nicht dran ist wird er als highspeed(?) device
erkannt und funzt nicht (oder lowspeed, ka. jedenfalls falsch ;) )

Bye, Simon

von Max W. (wauschi)


Lesenswert?

Hallo Ssss :-)

Es befindet sich ein 1k5 Pull-Up zwischen D- und +5V.
Die Versorgung über USB ist konstant 4V7 und über den Pull-Up fällt 1V
ab -> Auf D- habe ich 3V7 und auf D+ habe ich konstant 0 Volt.

Beim Verbinden kann ich auf D+ ein Signal erkennen, dann geht die
Leitung auf 0V zurück. Auf D- kann ich beim Verbinden auch ein Signal
erkennen, dann bleibt die Leitung auf 3V7.

Durch Blinken einer LED an einem freien Port kann ich erkennen, dass
die Fimware läuft.

Der Controller ist ca. 5cm von der USB-Buchse entfernt.

(Auweh, das wird wieder eine lange Nacht... :-) )

von Max W. (wauschi)


Lesenswert?

Nachtrag:

Durch einen Reset am µC kann ich wieder eine Kommunikation auf die D+
und D- Leitungen zaubern und Windows meldet wieder "Unknown Device".

von Luky S. (luky)


Lesenswert?

Ich habe genau dasselbe Problem und auch noch keine Lösung gefunden.
Allerdings verwende ich keinen Mega8, sondern einenn 88er.

von Lokko (Gast)


Lesenswert?

bei mir läuft der code auch nicht an allen rechnern.

hängt bei mir mit dem host controller im pc zusammen. erfahrung ist.

USB 1.1 host controller ... alles klappt
USB 2.0 host controller ... 3 von 4 klappen nicht.
USB 2.0 host controller -> 1.1 hub ... alles klappt

pull up ist am richtigen pin!

von Lokko (Gast)


Lesenswert?

habe beim messen mit dem oszi die gleichen aufnahmen gemacht wie ihr.
kurzes daten senden und dann nix -> "unbekanntes gerät"

von Max W. (wauschi)


Lesenswert?

@Lokko

Egal ob ich am 2.0 Host oder 1.1 Hub anstecke, es geht nicht, leider.

Da bist du schon weiter wie ich :-)

Der, der eine Lösung für uns kenn wird unser HELD.

von Lokko (Gast)


Lesenswert?

Mal ne blöde frage... hast du auch den externen quarz als taktquelle bei
den fusebits gewählt!??!

von Max W. (wauschi)


Lesenswert?

CKOPT = 0
CKSEL = 1111
SUT   = 11
(BODEN= 0)

Durch toggeln eines Pins erkenne ich, dass der µC wirklich läuft.

von Max W. (wauschi)


Lesenswert?

Problem behoben!!!
Es geht endlich!!!

Bei meinem Versuchsaufbau war das Gehäuse der USB-Buchse nicht mit
Masse verbunden (Nur die 4 Leitungen waren verbunden). In der Schematic
ist nicht ersichtlich, dass das Buchsengehäuse mit Masse verbunden
werden muss.

Danke für eure Mithilfe.

von Christian Rötzer (Gast)


Lesenswert?

Interessant. Das ist keinesfalls die Ursache des Problems. Was wäre
wohl, wenn gar keine Buchse vorhanden wäre und das Kabel direkt
angelötet wird?

Wo wir gerade so schön beisammen sind: Funktioniert AVR USB auch mit
Resonator statt Quartz? Theoretisch sollte es das, wie jede Maus
beweist, aber bei mir geht das nicht. Eine Einschränkung der
Softwareemulation? Wie sind Eure Erfahrungen?

von Andreas B. (Gast)


Lesenswert?

Hat unterdessen jemand das Problem gelöst? Ich glaube ich habe
dasselbe.... habe einfach die Firmware auf meinen AT90S8515 geladen
(ohne oder mit Anpassung kommt aufs gleiche...), dann bei Windows
"Unbekanntes USB Gerät". Ich habe leider hier gerade nur USB 2.0
Hosts, an Windows liegts nicht, ich habs bei meinem NB mit Linux
angehängt, und lsusb listet mir das Device nicht auf...

mfg Andreas

von SIGINT (Gast)


Lesenswert?

Hast du schon die Fuses überprüft?!?!?
Ich hatte mit einem anderen USB-HID Treiber für den ATmega8 das
Problem, daß ich die falsche Taktquelle gewählt hatte. Vielleicht läuft
der AVR nicht... oder mit internem Quarz.
Die Schaltung wird nämlich auch als "Unbekanntes USB Gerät" erkannt,
wenn der AVR nicht läuft... die Erkennung findet durch den Widerstand
statt.

Gruß,
  SIGINT

von Andreas B. (Gast)


Lesenswert?

Das ist sicher der Externe Quarz, wenn ich den nämlich raus nehme
funktionieren das ganze nicht mehr... (habe ich schon getestet). Das es
durch den Wiederstand erkannt wird habe ich auch bemerkt (Es reicht +
und - vom Experimentierboard auf den USB Anschluss anzuschliessen, auf
dem auch die Widerstände verlötet sind).
Ich werds bei Gelegenheit dann mal noch an einem USB 1.0 Anschluss
testen...

mfg Andreas

von Ulrich (Gast)


Lesenswert?

Also meine liste mit Fehler die ich machte:
-Widerstand an die falsche Datenleitung
-Fuses falsch eingestellt
-Im Quellcode die USB-Pins nicht als Ausgang oder so....

von Jens D. (Gast)


Lesenswert?

habt ihr mal die komplette verkabelung versucht??
und denkt an die 2 widerstände in der datenleitung (ich hatte 68R
genommen) dann hatte es funktioniert

von Ulrich (Gast)


Lesenswert?

die beste hilfe ist ein Oszi am usb....

von Christian Starkjohann (Gast)


Lesenswert?

Ein kleiner Hinweis fuer alle, die mit diesem Problem kaempfen:

Es liegt unseres Wissens am fehlenden Spannungsregler. Das
"Automator" Projekt hat USB nur so "nebenbei". Daher haben wir den
3.3 V Spannungsregler eingespart, weil's bei uns auch so
funktioniert.

Bei manchen Hosts und Hubs wird aber die common mode range des
Eingangsverstaerkers ueberschritten.

Abhilfe:
(a) 3.3 V Spannungsregler in der Versorgung
(b) zwei Dioden in der Versorgung (fuer 1.4 V Spannungsabfall)
(c) 3.6 V Zenerdioden an D+ und D- zum Begrenzen der Spannung

Das hat zumindest allen geholfen, die sich bei uns gemeldet haben.
[Sorry, ich lese dieses Forum nicht regelmaessig. Sonst haette ich
schon frueher geantwortet.]

--
Christian Starkjohann.
http://www.obdev.at

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.