We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi,
I use a modified version of Keil's USB CDC-ACM function class implementation. It works really well but I am having a problem in the way I am using it. I use the virtual COM-port to connect as a modem to the host PC. My target connects through PPP to the USB CDC-ACM input/output. This allows me to create multiple sockets for multi-channel TCP/IP communication. This creates the problem! With increasing communication throughput my application showes signs of instability. I am looking for a way how I could limit the data throughput at the USB device level. Could someone provide me with an feasable example of how to achieve this? I appreciate your help - thank you!
-Frank
Good morning Tsuneo,
you suggested: - Select the bulk OUT EP (USB_CTRL) - Check PKT_RDY bit of RX_PLENGTH - if not ready, return
Here is a part of my USB_ReadEP:
USB_CTRL = ((EPNum & 0x0F) << 2) | CTRL_RD_EN; cnt = RX_PLENGTH; if ((cnt & PKT_RDY) == 0) { return (0); }
I return if the packet is not ready. The function is then called again in USB_SOF_Event () until a packet is ready and can be processed.
This solution doesn't work! It seems that after selecting the endpoint I have to finish the operation.
Do you know what the problem is?
Thank you! -Frank