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?
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
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... :-) )
Nachtrag: Durch einen Reset am µC kann ich wieder eine Kommunikation auf die D+ und D- Leitungen zaubern und Windows meldet wieder "Unknown Device".
Ich habe genau dasselbe Problem und auch noch keine Lösung gefunden. Allerdings verwende ich keinen Mega8, sondern einenn 88er.
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!
habe beim messen mit dem oszi die gleichen aufnahmen gemacht wie ihr. kurzes daten senden und dann nix -> "unbekanntes gerät"
@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.
Mal ne blöde frage... hast du auch den externen quarz als taktquelle bei den fusebits gewählt!??!
CKOPT = 0 CKSEL = 1111 SUT = 11 (BODEN= 0) Durch toggeln eines Pins erkenne ich, dass der µC wirklich läuft.
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.
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?
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
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
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
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....
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.