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.
Gast
#324789
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!
Gast
#324790
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.
Gast
#324792
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.
Gast
#324795
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?
Gast
#324796
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
Gast
#324797
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
Gast
#324798
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
Gast
#324799
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....
Gast
#324800
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
Gast
#324801
die beste hilfe ist ein Oszi am usb....
Gast
#324802
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.