Hallo Leute, ich habe ein Problem mit einer selbst designten Platine, auf der der oben genannte Mikrocontroller implementiert ist. Der interne USB-Controller wird per Micro-USB-B Stecker an einen entsprechenden WinXP-Host-PC zur Energieversorgung des Boards und zum Flashen des Mikrocontrollers verwendet. Soweit so gut. Ich habe die Fuse-Bits bereits so eingestellt, dass der MCU durch Drücken eines entspr. Buttons bei gleichzeitigem Reset in den Programmiermodus wechselt, in dem er über BatchISP und AVR32-Studio auch problemlos geflasht werden kann. Ich hatte auch bereits eine kleine Software für das EVK1101 Eval-Board erstellt, in der ich über USB-CDC (Virtual COM) eine simple Kommunikation mit Hilfe von Hyperterminal etablieren konnte. Nun habe ich die Software abgeändert, so dass sie eigentlich auch für das Custom Board verwendbar sein müsste. Nach dem Flashen erkennt WinXP leider die USB-CDC-Verbindung des Custom Boards nicht, wie noch im Fall des EVK1101, sondern meldet lediglich "Unbekanntes Gerät". Ein anderes simpelstes Programm (LED blinken lassen) lies sich allerdings anstandslos in den MCU des Custom Boards einprogrammieren und lief dort auch ohne Probleme. Dazu muss ich noch sagen, dass ich, wie dies in den FAQ's von Atmel beschrieben wird, im Verzeichnis /SOFTWARE_FRAMEWORK/BOARDS des Projekts ein neues Verzeichnis erstellt und einen eigenen Header userboard.h eingefügt habe. Hier drin habe ich FOSC32, FOSC0 und die zugehörigen Startup-Zeiten neu definiert. Ich hab mich dabei beim Aufbau an evk1101.h orientiert. Da ich in der Hardware den USB-ID Pin nicht angeschlossen habe, weiß ich nicht so recht, was ich bei #define USB_ID und #define USB_VBOF etc. schreiben soll. Anschließend habe ich natürlich auch in board.h entsprechend auf diesen neuen Header verwiesen. Hat jemand von euch schon einmal etwas ähnliches im Zusammenhang eines Anschlusses eines neu entwickelten AVR32-Boards an den PC über USB-CDC erlebt? Muss ich ggf. den Treiber at32uc3xxx_cdc.inf editieren und anpassen, damit Windows das Board erkennt? Ich wäre euch für jede Hilfe bzw. jeden Tipp wirklich sehr dankbar. Liebe Grüße.
>Da ich in der Hardware den USB-ID Pin nicht angeschlossen habe, weiß ich >nicht so recht, was ich bei #define USB_ID und #define USB_VBOF etc. >schreiben soll. Anschließend habe ich natürlich auch in board.h >entsprechend auf diesen neuen Header verwiesen. Dann solltest du dir mal die entsprechenden Stellen im Datasheet anschauen, sonst kann es sein das USB im Host Mode anstatt Device Mode startet. >Muss ich ggf. den Treiber at32uc3xxx_cdc.inf editieren und >anpassen, damit Windows das Board erkennt? Wenn du die Vendor und Product ID nicht verändert hast, eigentlich nicht. Mein Tipp währe es sich die Enumerierung eines EVK1101 und deines Boards mit einem USB Monitors aufzuzeichen. Danach kannst du beide Enumerierungen vergleichen und schauen was sich verändert hat.
Hallo sepp und die anderen, ich habe mit USBTrace einmal die Vorgänge während des Einsteckens des EVK1101 (siehe evk1101.jpg) und des Custom-Boards (customboard.jpg) aufgezeichnet. Leider bin ich nicht so bewandert mit dem USB-Protokoll bzw. mit der Funktionsweise der Deskriptoren. Evtl. könntet ihr euch die beiden Screenshots einmal kurz ansehen, und mir mitteilen, was eurer Meinung nach im Falle des Anschlusses des Customboards schiefläuft. Vielen Dank. Irgendwie schafft es WinXP im Falle des Customboards nicht den Request "GET_DESCRIPTOR_FROM_DEVICE" auszusenden, sondern beginnt stattdessen mit dem Request "QUERY_CAPABILITIES". Worauf könnte dies evtl. hinweisen? Was meint ihr? Er scheint überhaupt gar nicht erst dazu zu kommen den Deskriptor auszulesen, sondern scheitert schon vorher. D.h. es würde wahrscheinlich nichts bringen in den Sources "usb_descriptors.h(.c)" herumzufuschen, da er ja soweit überhaupt gar nicht vordringt, oder? Ich bin euch für jede Anmerkung dankbar. Schönen Gruß.
Hier noch der USBTrace-Screenshot zum Plugin des Customboards.
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.