Hallo. Ich hab da ein Problem welches mir nicht ganz einleuchtet. Ich nutze die STM32 USB-FS-Device Lib V4.0.0 mit einem STM32F103RBT6 in Verbindung mit der CDC-Klasse. Jetzt ist mir aufgefallen, wenn ich im Bulkmodus am Endpoint einen Transfer generiere mit Längen unterhalb von 64 Bytes klappt das auch wunderbar. Allerdings will der mit genau 64 Bytes ums Verrecken nicht senden. Laut USB1.1-Standard soll das in der USB-Spezifikation sein,die maximal 64 Bytes in einem Bulk-Transfer zuläßt. Wo genau ist da mein Denkfehler jetzt oder ist das ein Bug des STM32F1-USB-Device-Cores ? Viele Grüße Dennis Heynlein
Er sendet die 64 Bytes sehr wohl, nur möchte das andere Ende (der Host oder PC) noch einen weiteren Transfer sehen (wenn es genau MaxPacketSize Bytes sind). Für diesen Zweck gibt es Zero Packets, oder man sendet ein weiteres Paket < 64 Bytes.
Das relevante Kapitel ist übrigens 5.8.3 in der USB 2.0 Spec: "Bulk Transfer Packet Size Constraints"
Oh Danke für den Tipp. Das gilt auch für USB 1.1 nehm ich an ? Ich probiers mal aus.
Vielen Dank hat geklappt. Habs beim Sende-Flush so realisiert, wenns = 64 wird nen NullPacket nachgeschickt, wenn < 64 ein Einzelpacket. Vielen Dank
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.