USB: Data toggle PID error

Gast #3854684
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren