Hi, meine Frage geht an alle USBN9604 oder Usbprog Experten. Ich wollte für meinen Usbprog 3.1 eine Firmware schreiben, um mit meinen eignen Boards via I2C oder auch SPI kommunizieren zu können. Es geht dabei hauptsächlich um verschiedene Funktionstests und das Flashen... Aber das ist gar nicht der Kern der Frage. Ich habe mir aus den verschiedenen Projekten um den Usbprog Beispielcode zusammengesucht und eine Testfirmware zusammengebaut. Den gesamten Code könnt ihr im angehangenen Archiv finden. Es sind zwei Bulk Endpoints implementiert, einer OUT, einer IN. Der OUT Endpoint akzeptiert einige Testbefehle, von denen ich hier jetzt mal nur "TRANSFER_SPI_DATA" nennen will. Von der Windows Software werden derzeit zwei Byte geschikt: Der Befehl 0xc3 und ein beliebiger Wert, z.B. 0xaa. Dieser Wird dann um ein Bit nach rechts geshiftet (div 2) und kann auf IN gelesen werden: Ausgabe 0xc3, 0x55. Das läuft auch toll, aber sobald ich in den OUT Endpoint schreibe kann der USB Descriptor nicht mehr einwandfrei gelesen werden. Allerdings nur die String Tabelle, da wird dann nur Zeichensalat gelesen. Der Transfer auf den Bulk Endpoints ist davon nicht betroffen und funktioniert weiter. Ich kann das Device dann nur nicht mehr eindeutig identifizieren, wenn ich es später nochmals öffnen will. UART Debugging ist leider zu langsam, um alle Daten zu senden und trotzdem weiterhin am USB Hub aktiv zu sein. So konnte ich dem Usbprog also keine hilfreichen Infos entlocken. Es versteckt sich da also irgendwo ein Gremlin, den ich trotz großer Mühe bisher nicht finden konnte... Jetzt wo ich den Text schreibe kommt mir allerdings noch die Idee. Nämlich, dass der AVR ähnlichen Zeichensalat normalerweise liest, wenn man auf einen String im Flashspeicher direkt, ohne die entsprechenden Funktionen zugreift. Aber soweit ich das sehen konnte ist in der Bibliothek alles richtig implementiert. Noch ein Satz zum Quellcode: Es ist ein Eclipse Projekt (Eclipse für AVR), aktiviert man das Debug Profil wird der UART Code mit hineinkompiliert und es geht im Prinzip nichts mehr. Release entählt dann das beschriebene Dilemma. Danke schon mal. Grüße, Martin.
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.