m_a_d_i_s wrote on Thursday, January 03, 2008:


I posted the same issue to the AT91 forum too, but no reply so far. I dont know how many of you follow the atmel forum, sorry if you all have seen it already. But maybe somebody can give me a hint.

Im running FreeRTOS and USB CDC device on SAM7X256 (USB stuff is the same as in FreeRTOS demo project).

Schematic is the same as for SAM7X evaluation board. USB pullup is permanently connected to the Vcc.

Everything works fine under normal conditions. I can open the virtual com port and communicate to it via terminal. But the problem occurs when I remove the USB cable or power and but it back while the com port is open under windows (terminal program is running and com port is open). After cycling the power or connecting/disconnecting USB cable, its not possible to communicate to device anymore. After I close the com port in terminal, Im not able to open it anymore. Only thing that helps is that after closing the com port in terminal software I have to recycle the power or disconnect/connect the USB cable again.

This is one way I can reproduce the problem. Original problem occurs after board is running for eight-ten hours and pc is constantly communicating to it. Virtual com port hangs up and not possible to reopen it without cycling the power of the pwb board or disconnecting/connecting the cable.

Is there any workaround for this problem? Any way to force windows to re-initialise the device while USB pullup is permanently on? One solution would be to make pullup switchable, but what about SAM-BA then, as I understood SAM7X bootloader does not deal with USB pullup…? And bad thing is that I dont have any IO left anymore…


rtel wrote on Thursday, January 03, 2008:

Basically - I’m not sure what the issue is.  The CDC driver is just a demo and may not be fully compliant.  Running the comms through some sort of protocol analyser might highlight messages that are not being handled.