I'm working on a UC3C micro to create a USB Composite (Device) CDC & MSC. I'm having an issue with the CDC interface. When the board is first plugged in, the CDC interface works great (for a few seconds). However, once the MSC interface finishes initializing, the device-to-host part of the CDC interface stops working.
I have proven that data gets from the host to the device, but not from the device to the host. I have proven this by single stepping and watching traffic using the USBlyzer tool. I see characters moving from the host to the device, but none get returned.
My assumption is that the MSC interface is reassigning some USB buffer/mailbox/endpoint-pipe away from the CDC so the buffer is never again marked used. Unfortunately I have not been able to find a good reference on this part of the USB framework.
Is there an app-notes which describe the USB buffer management? (More then is mentioned in AVR4900)
Have you seen this before?
Have any ideas that might help?
Here's more info on what I've done and how I got here:
I started with this project:
ASF USB Device MSC (UC3-EK Eval)
This project makes the onboard Flash and the SD/MMC card appear as a mass-storage (MSC) device on the host. I stripped out the on-board Flash from the project so only the SD shows up. Then removed the Single-USB device descriptors and merged in the Composite descriptor from:
ASF USB Composite Device Example CDC and MSC (EVK1101)
This project implements the CDC but only exposes the on-board Flash memory as MSC.
There appear to be two USB frameworks, an "B" and "C" which I assume is for the two different processors. The EVK1101 is a UC3B, and the UC3-EK is a UC3C. Going from the B to C USB framework may be my issue, but I have not been able to track this down either. They seem to support the same conf_usb.h file from what I can tell, but maybe I am missing something.
My final project uses the UC3C processor, and requires the MSC to be an SD card. I have all of this working, except for the odd disappearing CDC traffic from the device to host once the MSC is running.
Thanks in advance!