Forum: Mikrocontroller und Digitale Elektronik Seltsamer Effekt mit der USBN2MC Bibliothek


von martink (Gast)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.