We implement a terminal through a virtual com using the CDC class from the Freescale USB stack (3.1). Everything was working fine until we tried to transmit and receive data simultaneously. This happens when we use a "cat" command to print the content of a file in the terminal and buffers other commands like another cat or a "top" command to show the cpu load and memory informations. We note that when this happens the USB stack has received just one character (we think this is due the keyboard scan time, i.e., when the data input is from keyboard we always will receive a character at a time), but informs that there are 64 bytes in the endpoint. If we reduce the endpointer buffer to 16, the USB port registers informs that there are 16 bytes to be received.
This can be verified if we do a "cat" command of a large file and holds a key pressed in order to receive a lot of characters during the cat command. In this condition the USB port always stop to receive character at a certain time.
Has anyone faced the same problem? Are there some workaround to this problem?
We face the same problem in kinetis and coldfire microcontrollers. We are using the same code and USB stack in both microcontrollers. The code can be download here:
Thanks in advance,