Forum: Mikrocontroller und Digitale Elektronik USB: Data toggle PID error


von Matthias (Gast)


Lesenswert?

Hallo,
ich arbeite gerade an einem Programm welches Daten per USB Übertragen 
soll. Aber vielleicht erstmal kurz zur Hardware:
µC: AT32UC3 auf eigener Platine
USB Seriellwandler MCP2200 auf Demoboard. Verbunden über circa 1m USB 
Kabel.

Ich benutze das Atmelstudio zusammen mit dem ASF und dem CDC Treiber für 
den USB-Seriel Wandler.
Ich kann Bytes per "uhi_cdc_putc" senden und diese kommen auch an. Wenn 
ich aber Bytes vom PC (UART->MCP2200->)an den µC sende, dann kommt nicht 
jedes Byte an!
Wenn ich mehrere Bytes gleichzeitig sende kommen alle an außer das 
erste. Wenn ich Bytes einzeln sende kommt exakt jedes zweite an.
z.B ich Sende "1" "2" "3" "4" und es kommt an 2 3 4
Beispiel 2: ich Sende "1", kommt an. Ich sende "1", kommt nicht an,...
Das ganze verhält sich immer gleich.
An den Stellen wo mir Bytes verloren gehen bekomme ich ein 
"UHD_TRANS_DT_MISMATCH" was laut Header Datei "Data toggle PID did not 
match the expected value" bedeutet.

Ich benutze von Atmel die Option "multiple Host" mit MSC und CDC. Einen 
USB Stick kann ich ohne Probleme lesen und schreiben, nur beim CDC habe 
ich das Problem.

Jetzt weis ich leider nicht mehr weiter.
Hat es eine Hardwareursache? Dagegen spricht, dass es sich immer gleich 
verhält, beim USB Stick nicht passiert und auch das Senden des CDC 
fehlerfrei abläuft.
Hat es eine Softwareursache? So tief kenne ich mich mit USB leider nicht 
aus. Ich komme sonst eigentlich mit dem ASF gut aus und ich gehe davon 
aus, dass die USB funktionen von Atmel funktionieren sollten.
Könnt ihr mir einen Tipp geben in welche Richtung ich suchen könnte?
vielen Dank.

von Matthias (Gast)


Lesenswert?

Problem gelöst:
In der usbc_host.c hat Atmel in der Funktion "uhd_ep_abort_pipe" 
anscheinend einige Dinge geändert. in meiner Version gabs den Abschnitt 
zum Data Toggle noch nicht.

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.