Forum: Mikrocontroller und Digitale Elektronik STM32F10x USB FS Bulk mit 64 Byte funzt nicht.


von Dennis H. (c-logic) Benutzerseite


Lesenswert?

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

von Jim M. (turboj)


Lesenswert?

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.

von Jim M. (turboj)


Lesenswert?

Das relevante Kapitel ist übrigens 5.8.3 in der USB 2.0 Spec:
"Bulk Transfer Packet Size Constraints"

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Oh Danke für den Tipp. Das gilt auch für USB 1.1 nehm ich an ?
Ich probiers mal aus.

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.