Low-Speed-Gerät wird als Full-Speed-Gerät erkannt (USB Tiny-ähnlicher AVR-ISP-Programmierer)

Ich habe kürzlich versucht, das in diesem instructable vorgeschlagene Setup zu replizieren .

Alles ist in Ordnung, bis ich das Gerät an einen der USB-Ports anschließe. Unter Ubuntu beschwert sich dann, dmesgdass das Gerät die Adresszuweisung nicht akzeptiert hat (wirft einen Fehler -71).

Ich habe versucht, den Schaltplan hier zu replizieren:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Der einzige Unterschied zwischen diesem Schema und meinem tatsächlichen Aufbau ist der R3Widerstand, der in meinem Fall jeweils zwei Vorwiderstände sind 1k. ( D3war nicht vorhanden, aber ich dachte, es könnte nützlich sein, um zu sehen, ob das Gerät tatsächlich mit Strom versorgt wird)

Warum erkennt Ubuntu dies als volle Geschwindigkeit und nicht als niedrige Geschwindigkeit ? Muss ich genau denselben Widerstand verwenden, der im Schaltplan gezeigt wird, oder habe ich ein völlig anderes Problem, das nichts mit diesem Widerstandswert zu tun hat?

Ich bin ein totaler Anfänger, also übersehe ich vielleicht etwas Triviales, aber ich kann es nicht sehen. Jede Hilfe ist willkommen.

PS: Alle Komponenten sind SMDs

Sie wissen, dass Ihr ATTiny mit der richtigen Software programmiert werden muss, damit dies funktioniert, oder? Dieses Ding wird ein AVR-Programmierer sein, aber damit es funktioniert, müssen Sie bereits einen AVR-Programmierer haben, um die Software im ATTiny zu installieren.
Die Geschwindigkeitserkennung funktioniert über verschiedene Kombinationen von Pull-Up/Down-Widerständen bis 3,3 V, Sie müssen ziemlich genau sein, als irgendwelche Ersatzwiderstände zu schlagen, die Sie zur Hand haben. Überprüfen Sie, wie es gemacht wird, verstehen Sie, wie es gemacht wird, und überprüfen Sie dann, was Sie anders gemacht haben.
@JRE ja, das weiß ich, und ich habe und Arduino als ISP verwendet, um die Hex-Datei zu laden, die als Schnittstelle fungieren sollte, und Avrdude hat sich nicht beschwert, daher kann ich nicht sagen, ob dies softwarebezogen ist oder nicht (aber da dies so scheint für andere Leute zu arbeiten, ich wette, es liegt an der Hardware)

Antworten (1)

Ein Pullup auf D+ signalisiert den Full-Speed-Modus. Der Low-Speed-Modus wird durch ein Hochziehen von D- signalisiert .

Das hat alles gelöst. Jetzt wird der Programmer erkannt und arbeitet auch mit dem 2k Pullup.