was ist die maximale Geschwindigkeit des STM32 USB-CDC?
Ich bin mit stm32L151 für die Kommunikation mit PC über USB-CDC. Ich verwendet stm32 HAL-Bibliotheken zu erstellen, die mein Projekt.
Ich fand, dass die usb sendet die Daten in 1ms Abständen und jeweils 64 bytes gesendet. Also ist die maximale Geschwindigkeit der USB-CDC ist 64 KByte/s? und diese Geschwindigkeit ist sehr niedriger als die USB full speed 12Mbit/Sek. Wie kann ich erreichen, diese Geschwindigkeit? oder zumindest ein Bruchteil dieser Geschwindigkeit?
Dank
InformationsquelleAutor Mohammad | 2017-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
NÖ. Wenn Ihr code ist "schnell genug" ist, die maximale CDC-Geschwindigkeit ist etwa
1MByte/sec
. Dies kann erfordern, einen großen (>1KB) FIFO auf der device-Seite. Oh, und der PC-Seite muss in der Lage sein, die Daten zu Lesen schnell genug ist, z.B. mit großen Puffer.Den 64 KByte/s-Grenze gilt für USB-HID, die verwendet interrupt-Endpunkte. USB CDC-Schnittstelle verwendet schnellere bulk-Endpunkte.
InformationsquelleAutor Turbo J
USB-FS Rahmen ist 1ms so, wenn Sie 64 Byte in den Puffer (mit dem HAL-Funktion) - sendet es diese 64 bytes, die in den nächsten frame. Und es wird nicht senden keine Daten mehr, bis ein anderes 1ms frame
So erhöhen Sie diese Geschwindigkeit -> sammeln von Daten in größeren Blöcken und senden Sie mehr Daten in einer Transaktion (bis zu 8 Kb mit HAL-Bibliotheken).
Sie müssen ein bisschen besser USB-Bibliothek als die von STM. Denken Sie daran, dass windows selbst ein limit, die Geschwindigkeit, wie die integrierte Umsetzung der VCOM ist nicht sehr gut,
Danke nochmal @ PeterJ. Ich könnte die maximale Geschwindigkeit zu erreichen von 500kByte/Sekunde mit der HAL-Bibliotheken. Gibt es irgendeinen trick erhöhen Sie diese Geschwindigkeit mit der HAL-Bibliotheken? Oder können Sie sich vorstellen, mich besser usb-Bibliothek als HAL-Bibliotheken, bitte?
InformationsquelleAutor P__J__