Hi guys,
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!
Voytek