Hallo, derzeit versuche ich einen Virtuellen COM Port über USB CDC umzusetzten. Die Klasse ist nach meinem Verständnis nun vollständig implementiert. Sende ich nun Daten mit TeraTerm und kann keine neuen Daten annehmen (Buffer voll, Prozessor beschäftigt) sende ich einen NACK auf entsprechenden Endpunkt. Leider wird die Übertragung nach 500ms erneut eingeleitet ohne mitzuteilen das dies eine Wiederholungssendung ist. Gibt es eine Möglichkeit diesen Fall abzufangen, da diese Wartezeit wärend der Übertragung in meiner Anwendung sehr wahrscheinlich ist!? Mit freundlichen Grüßen Sgessler
Sebastian G. schrieb: > Sende ich nun Daten mit TeraTerm und kann keine neuen Daten annehmen > (Buffer voll, Prozessor beschäftigt) sende ich einen NACK auf > entsprechenden Endpunkt. Wie das? Ist das Software USB? Die USB Hardware die ich kenne macht das automagisch genau solange wie der Endpoint Buffer nicht leer ist. Sebastian G. schrieb: > Leider wird die Übertragung nach 500ms erneut > eingeleitet Erst nach 500ms? Ich hätte da eher µs erwartet. Beschreibe Dein Hardware Setup genauer, und poste am Besten mal USB Traces.
Einen Trace muss ich demnächst nachreichen. Mein Hardware Setup ist ein STMF4 Eval Board mit dem vom ST zur Verfügung gestellten USB Treiber und CDC Klasse. Ja die Hardware setzt das NACK wenn der Buffer voll ist oder ich via Software wenn ich warten will. Ich denke du hast recht, es sind ySekunden. Habe die Zeitskala falsch gelesen. Nichtsdestotrotz ändert das nichts daran das die Übertragung automatisch neu Angesetzt wird ohne Mitteilung und ich einen Weg in der CDC suche dies zu verhindern.
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.