Hallo zusammen, heut ist mir mal danach, was zu fragen. Ich hatte mir vor einiger Zeit mal einige Cortexe M0 von Nuvoton gegönnt, genauer den NUC120. Der ganze normale Kram (Clock, Ports, Seriell, Timer) geht eigentlich ohne Probleme. Aber: Der USB-Anschluß treibt mich derzeit auf die Palme. Schon den Device-Descriptor krieg ich einfach nicht zum Host geschickt. Aus Sicht des uC sieht alles bestens aus, so als ob das Paket richtig zum PC gesendet worden wäre, aber beim PC kommen nur Nullen an. Also, kennt sich jemand mit diesen Chips näher aus? W.S.
Es gibt auf Nuvoton.com gleich mehrere USB Beispiele: http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/MicrocontrollerApplicationIC/ARMMicrocontroller/ARMCortexTMM0/Pages/ApplicationNotes.aspx Ich empfehle dringend mit diesen Beispielen anzufangen. USB ist ziemlich komplex auf jedem µC.
Danke für den Tip, aber das kenne ich schon. Guck dir mal in /drivers die USBdrv.c an, grausam. Hab vergeblich versucht, aus diesem Gestrüpp von void Pointern herauszufinden, wie die zugehörige Hardware denn tatsächlich funktioniert und was man tun muß, um wenigstens die Enumeration hinzukriegen, aber bei dieser!! Quelle ist das nur was für Masochisten. Irgendwelche Software-Usbsniffer nützen auch nix. Entweder ein Gerät funktioniert bereits, dann sind sie überflüssig - oder es funktioniert nicht, dann kriegen sie vom eigentlichen Datenverkehr auch bloß nix ab. Bin inzwischen soweit, daß ich mir ein paar Log-Routinen in den uC gesetzt hab. Resultat: - Host sendet Reset (find ich OK) - Host sendet Setup-Paket und fordert Device Descriptor an (ist auch OK) - Device Descriptor wird zum Host gesendet - Host antwortet mit ACK (find ich auch OK) - Host schickt leeres Paket, wird mit ACK angenommen (= Status stage, scheint OK zu sein) - Host sendet Reset (wozu? versteh ich nicht) - Host sendet Setup-Paket und liefert einem eine Adresse (Set Addr.) - Adresse wird eingestellt ---> dann passiert für 500 ms garnix Würde ich die Adresse nicht einstellen, dann wartet der Host ca. 5 Sekunden, bevor er das Spiel wiederholt. Irgendwas undokumentiertes passiert also damit in der Hardware. Dann wiederholt sich das ganze Spiel noch 2x und dann schmeißt der Host das Handtuch und meint, das Device funktioniert nicht richtig. Glaub ich ja gern, bloß wo ist der Fehler? Guck ich im PC mit Usbview, dann sieht es so aus, als ob anstelle des Device Descriptors nur Nullen angekommen wären. Kann aber auch sein, daß das bloß ein Platzhalter ist. W.S.
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.