cancel
Showing results for 
Search instead for 
Did you mean: 

When does the STM32F2 abort a USB pipe?

RKeelan
Associate

I have an STM32F2 MCU acting as a USB CDC Device. When I stress-tested my communication code by sending data as fast as possible (i.e., as fast s the USB Host will allow), I discovered that data was being dropped. In particular, there would be 64 or 128 out of 2.7 million bytes missing.

Using a USB analyzer, I found that the missing bytes were lost because the USB device (i.e., the STM32F2 MCU) aborted a pipe.

The packet status reported by my USB analyzer was 0xC00100000

This status corresponds to an NTStatus reported by the Windows USB stack. From this page (https://msdn.microsoft.com/en-us/library/windows/hardware/ff539136(v=vs.85).aspx), the meaning of that status code is:

USBD_STATUS_CANCELED
0xC0010000
The USB stack reports this error whenever it completed a transfer because of an AbortPipe request from the client driver.

Does anyone know what this corresponds to on the STM32F2 MCU or USB middleware?

I'm using:

STM32F2 Hal v1.0.1 (25-March-2014)

USB CDC Middleware v2.0.0 (18-February-2014)

Thanks,

Richard

0 REPLIES 0