Siehe Schaltplan: Ich habe mir ein kleines USB-Gerät gebaut, das auf der einen Seite per USB kommuniziert und auf der anderen ein par GPIO-Pins herausführt (diese sind aktuell noch komplett ungenutzt). Das Ganze soll per V-USB mit dem Host kommunizieren. Die funktionierenden V-USB-Sourcen kommen dabei von einem sehr ähnlichen USB-Gerät, bei dem im Vergleich zu meiner Schaltung nur die Ports für D+ und D- vertauscht sind. Mein Problem: das Ding funktioniert bei mir nicht, Windows und Linux erkennen, dass ein USB-Gerät vorhanden ist, können mit diesem aber nicht kommunizieren. F_CPU sollte stimmen (16500000, 16000000 funktioniert aber auch nicht), die Port-Definition für D+ und D- auch (beide probehalber mal tauschen hilft auch nix). Wenn ich die Z-Dioden mit einem Multimeter messe, komme ich nur auf eine Z-Spannung von 1,7 Volt, der Bestücker sagt aber, alles wäre in Ordnung und es sind 3.6 V Z-Dioden vom Typ MM3Z3V6T1G bestückt worden. Ich bin jetzt ein wenig ratlos, wo ich noch suchen könnte. Deswegen: hat irgend jemand eine Idee, was hier falsch sein könnte bzw. was ich noch überprüfen könnte? Danke!
Schau mal genau ins Linux "dmesg" nach, ob da ein "Full Speed" oder "Low Speed" Gerät erkannt wird. Bei Full Speed wären D+ und D- vertauscht. Der Pullup muss an D- für Low Speed. Zaphod schrieb: > Wenn ich die Z-Dioden mit einem Multimeter messe, komme ich nur auf eine > Z-Spannung von 1,7 Volt, Kann sein das dein Multimeter nicht die 5mA liefert, die bei diesen Dioden für die Zenerspannung spezifiziert sind.
:
Bearbeitet durch User
Zaphod schrieb: > Idee, was hier falsch sein könnte Schon lange her da bin ich mit T85 und V-USB voll auf die Fresse geflogen: es lief nicht am Entwicklungsrechner. Kollege Zufall zeigte damals: an jedem anderen Rechner ging es Problemlos, ausgerechnet nur nicht an diesem meinem Entwicklungsrechner :-( ...das "warum" wurde nie gelöst. HTH
Zaphod schrieb: > Mein Problem: das Ding funktioniert bei mir nicht, Windows und Linux > erkennen, dass ein USB-Gerät vorhanden ist, können mit diesem aber nicht > kommunizieren. Vielleicht hilft ein Log. Du hast ja mehrere offene Baustellen: Die Hardware könnte fehlerhaft sein, der Code könnte fehlerhaft sein, der Rechner könnte es nicht mögen.
OK, es läuft. Die schlechte Nachricht: ich weiß nicht warum, ich habe es einfach noch mal probiert und plötzlich funktioniert es - nicht nur mit einer Platine sondern mit allen. Trotzdem vielen Dank für die hilfreichen Hinweise!
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.