USB-Probleme mit AT90USB646

Ich habe ungefähr viermal versucht, ein Design mit AT90usb646 zu implementieren, aber in jedem Fall wird die Platine verbunden und sofort getrennt. lsusb gibt aus , dass ein Gerät von Atmel Corp angeschlossen wurde , sodass ich weiß , dass das Board funktioniert , aber es wird getrennt , bevor ich irgendetwas damit machen kann . Normalerweise stelle ich es mit Oshpark her und hatte keinerlei Probleme, aber dieses Mal habe ich versucht, die Platine zu Hause zu ätzen, da dies ein Hobbyprojekt ist und ich die Dinge ziemlich schnell ausprobieren wollte. Die Platinen sind zweischichtig und ich habe alle Richtlinien für die Anordnung des USB-Teils befolgt, nämlich die Spuren klein und die Komponenten nah beieinander zu halten, die Leiterbahnbreite mit Impedanzrechnern zu berechnen, den Boden nicht unter den USB-Datenleitungen zu unterbrechen und den VBUS- und Erdungsstrom beizubehalten weg von den USB-Datenleitungen, um Rauschen zu vermeiden. Dies ist das Bild [! [Bildbeschreibung hier eingeben][1]][1] Das Datenblatt von Microchip für AT90USB646 schlägt ein paar Kappen für VBUS und UCAP vor und ich habe sie entsprechend platziert. Ich habe alles noch einmal überprüft und auch mit Teensy ++ überprüft, das AT90USB1286 verwendet, das AT90USB646 ähnlich ist, aber ich kann nicht herausfinden, was ich falsch mache. Hier ist der Schaltplan

[1]: https://i.stack.imgur.com/d0bJe.pngGeben Sie hier die Bildbeschreibung ein

Bitte geben Sie die verwendeten Schaltpläne und die verwendeten Kappen an. IMHO sind die Datenleitungen zu eng - wie groß ist die Lücke zwischen diesen Drähten? Hast du vor dem Zusammenbau mit einem Multimeter zwischen den Netzen elektrisch geprüft? Hat die Firmware mit einem Evaluation Board von Atmel funktioniert?
@Tom Kuschel, es gab keine Möglichkeit, die Differenzimpedanz auf 90 Ohm zu bringen, ohne die Leitungen extrem nahe zu bringen. Ich habe vor und nach dem Zusammenbau mit Dimm auf Kurzschlüsse und Durchgang geprüft und alles richtig gelesen, die Spannung an den USB-Datenleitungen lag bei etwa 3,56 V, was fast genau dem im Datenblatt angegebenen erwarteten Wert entspricht. Ich habe keine Firmware geladen, diese Serie wird mit einem dfu-Bootloader ausgeliefert und ich hatte gehofft, dfu-util oder flip zum Laden der Firmware zu verwenden, aber da die Verbindung für einige Sekunden kaum besteht, konnte ich dies nicht tun.
Auch mit verschiedenen USB-Kabeln probiert? Einmal hatte ich Probleme mit einem einfachen Kabel.
@Tom Kuschel hat es mit verschiedenen Kabeln und verschiedenen Computern versucht, aber das Problem besteht weiterhin. Ich denke, ich werde es bei Oshpark bestellen und die gleichen Komponenten verwenden, um zu prüfen, ob es funktioniert. Ich denke, es könnte etwas mit der DIY-Methode der Leiterplattenherstellung zu tun haben. Ich hoffe, jemand kann Licht in ihre Herangehensweise an die Herstellung von USB-fähigen PCBs zu Hause bringen
Bitte geben Sie einen Schaltplan und die Komponenten für jede Hilfe an
@Tom Kuschel erledigt
Wenn Sie Linux verwenden, dmesgkönnten uns relevante Ausgaben helfen.
@Turbo es zeigt, dass ein Gerät mit einer bestimmten ID angeschlossen ist, aber das passiert selten, da das Board größtenteils nicht erkannt wird. Ich habe versucht, dmesg zu löschen und dann das Board anzuschließen, und dmesg zeigt nichts an
Wie ich sehe, verwenden die Schaltpläne einen Taktgeneratorchip Y1. Wie hoch ist der Stromverbrauch dieses Chips? Glauben Sie, dass 12 kOhm im Stromversorgungsnetz ausreichen, um den Generator mit stabilen 3,3 V zu versorgen?
@Ali, das ist das erste der vier Designs, die ich ausprobiert habe, für das dritte habe ich einen Kristall verwendet und das hat auch nicht geholfen
Verwenden Sie Kristallkomponenten und zugehörige Kappen genau wie in ihrem Referenzdesign? Die Leistung dieses aktuellen Quarzoszillators ist eindeutig sehr schlecht. Kristalle sind noch empfindlicher zu handhaben.
@Ali Chen ja, die Kappen sind 10 Pf und so nah wie möglich am Kristall und aneinander platziert, um die Länge der Schleife zu reduzieren

Antworten (1)

Dieser Chip verwendet den Full-Speed-USB-Modus. In diesem Modus gibt es absolut keinen Grund, Haare über 90-Ohm-Differenzimpedanz zu spalten, insbesondere bei wenigen mm langen Leiterbahnen. Jede Spur wird gut funktionieren. Und Kabel werden keinen Unterschied machen.

Da das Gerät zunächst eine Verbindung herstellt (vielleicht auf halbem Weg) und Deskriptoren vom Host gelesen wurden, bedeutet dies wahrscheinlich, dass die Systemfrequenz des Geräts aus dem Gleichgewicht geraten ist. Anfängliche Steuerungsübertragungen verwenden relativ kurze Pakete, sodass GET_DESCRIPTOR in Ordnung ist, selbst wenn die USB-Frequenz um einige Prozent abweicht. Bei längeren Paketen kann jedoch die Flexibilität des Host-Empfängers erschöpft sein. Repariere deine Uhr und alles wird gut.

Übrigens ist das Erdungskabel am Stecker unangemessen dünn.

Werde mal auf die Uhr schauen und berichten
Das Teensy++-Schema verwendete 10 pf für den Kristall, aber das Datenblatt schrieb eine Kapazität im Bereich von 12-22 pf vor, ich verwendete 18 pf anstelle von 10 pf und es fing an zu arbeiten. Du hattest recht, es hatte mit dem Kristall zu tun.
@Aakusti, Kristalloszillatoren sind heikle Dinge. Ihr Design ist anscheinend zu marginal, wenn ein so kleiner Unterschied dazu führte, dass es bestanden oder nicht bestanden wurde. Die Frequenz-"Pullability" ist normalerweise nicht so stark und sollte mit jeder dieser Kappen in den USB-FS-Toleranzbereich (+-2000 ppm) passen. Möglicherweise gibt es weitere versteckte / marginale Probleme, die Sie lösen müssten. Für einige Ideen und Vorbehalte verdauen Sie bitte die folgenden Stackexchange-Elemente: electronic.stackexchange.com/search?q=user%3A117785+crystal
Ich habe einen neuen IC verwendet, ich denke, das hätte auch einen Unterschied machen können. Danke, ich werde den Lesestoff durchgehen