2011-02-16 05:52 AM
ST Virtual COM example. What is the speed of data transfer via USB?
2011-05-17 05:25 AM
Watch descriptors: maybe you connected at 1.5Mbps (low speed USB).
Also see dochttp://www.13thmonkey.org/documentation/USB/resistor_ecn.pdf
, page 3.2011-05-17 05:25 AM
Hi,
for ColdWheater:
IfI remember correctly
Virtual COM is not possible with a low-speed USB device because it does not have bulk endpoint (used by CDC driver). Max Speed of Virtual COM = 640 Kbits/s = 80 Kbytes/sI hope
this helps
Paolo2011-05-17 05:25 AM
@Paolo:
The author of the topic seems to have his own board design. The question is, what happens, if 1.5K is applied to D- instead of D+ USB line?2011-05-17 05:25 AM
2011-05-17 05:25 AM
''Max Speed of Virtual COM = 640 Kbits/s''
Where does that figure come from? Is it inherent in the USB specs, or is it a specific limiation of this particular ST implementation?
2011-05-17 05:25 AM
2011-05-17 05:25 AM
ferrari.paolo.001
> The limit is in the Windows CDC drivers. Huh? Are you talking about old Windows versions? For XP and later, at least, such a limit doesn't exist. You'll see more than 1 MBytes/sec on full-speed bus over usbser.sys. otachkin.alexey > while(!UsbCDCWrite(Buffer,63)); - in infinite loop. You are sending just 63 bytes transfer (short packet). It's the reason why you can't get more transfer speed. Keep full-size packet (64 bytes) to get greater transfer size. And then, you get more transfer speed. It is the principle of bulk transfer. Please note, For the CDC bulk IN, the transfer should always terminate with short packet (including Zero-Length Packet). For usbser.sys, I recommend you to terminate the transfer size in less than 4K bytes. Tsuneo2011-05-17 05:25 AM
Hi! I would like to ask the people here for a different problem. I ha ve the example (CDC usb ) working satisfactorily and check it with Hyperterminal. However it happens that the transfer from the micro to pc does not happen when the buffer is ''exactly'' filled with a multiple of 64 bytes. Or more exactly this happens at 128 bytes certainly. Is this something known? If the micro sends one more byte or one less the transmission is succesfull, if it is exactly 128 the buffer seems to sit there in the PC until a new character is added and only at that point the whole is received on the hyperterminal screen. Can somebody help with this particular case? The example is CDC example from IAR. Thanks in advance for any clue !
2011-05-17 05:25 AM
''I would like to ask the people here for a different problem''
If it's a different problem, then don't hijack the thread - start a new thread. You can always give a link to this thread if you think it helps...