USB CDC Datenübertragung sendet Daten wiederholt

Gast #4621826
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
#4621883
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.
Gast #4622171
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.