cancel
Showing results for 
Search instead for 
Did you mean: 

USB CDC device example code for STM32F4 shows "Open Pipes:0 *!*ERROR: No open pipes!"

rangaec01
Associate

Hi am new to STM32,

I had generated USB device CDC example using STM32CubeMX 5.0.0 for STM32F427II and once i connect my DUT it show enumeration warning with following error, kindly see what i am doing wrong or can someone please share me just USB CDC device bare metal example code

Port1] : USB Serial Device

Is Port User Connectable:     no

Is Port Debug Capable:      no

Companion Port Number:      0

Companion Hub Symbolic Link Name: 

Protocols Supported:

 USB 1.1:             yes

 USB 2.0:             yes

 USB 3.0:             no

    ---===>Device Information<===---

String Descriptor for index 2 not available while device is in low power state.

ConnectionStatus:          

Current Config Value:       0x00 -> Device Bus Speed: Full (is not SuperSpeed or higher capable)

Device Address:          0x16

Open Pipes:              0

*!*ERROR: No open pipes!

     ===>Device Descriptor<===

bLength:              0x12

bDescriptorType:          0x01

bcdUSB:             0x0200

bDeviceClass:           0x02 -> This is a Communication Device

bDeviceSubClass:          0x02

*!*ERROR: bDeviceSubClass of 2 is invalid

bDeviceProtocol:          0x00

bMaxPacketSize0:          0x40 = (64) Bytes

idVendor:            0x0A12 = Cambridge Silicon Radio Ltd.

idProduct:            0x3039

bcdDevice:            0x0200

iManufacturer:           0x01

String Descriptor for index 1 not available while device is in low power state.

iProduct:             0x02

String Descriptor for index 2 not available while device is in low power state.

iSerialNumber:           0x03

String Descriptor for index 3 not available while device is in low power state.

bNumConfigurations:        0x01

    ---===>Full Configuration Descriptor<===---

     ===>Configuration Descriptor<===

bLength:              0x09

bDescriptorType:          0x02

wTotalLength:          0x0043 -> Validated

bNumInterfaces:          0x02

bConfigurationValue:        0x01

iConfiguration:          0x00

bmAttributes:           0xC0 -> Self Powered

MaxPower:             0x32 = 100 mA

     ===>Interface Descriptor<===

bLength:              0x09

bDescriptorType:          0x04

bInterfaceNumber:         0x00

bAlternateSetting:         0x00

bNumEndpoints:           0x01

bInterfaceClass:          0x02 -> This is Communications (CDC Control) USB Device Interface Class

bInterfaceSubClass:        0x02

bInterfaceProtocol:        0x01

iInterface:            0x00

 -> This is a Communications (CDC Control) USB Device Interface Class

     ===>Descriptor Hex Dump<===

bLength:              0x05

bDescriptorType:          0x24

05 24 00 10 01 

 -> This is a Communications (CDC Control) USB Device Interface Class

     ===>Descriptor Hex Dump<===

bLength:              0x05

bDescriptorType:          0x24

05 24 01 00 01 

 -> This is a Communications (CDC Control) USB Device Interface Class

     ===>Descriptor Hex Dump<===

bLength:              0x04

bDescriptorType:          0x24

04 24 02 02 

 -> This is a Communications (CDC Control) USB Device Interface Class

     ===>Descriptor Hex Dump<===

bLength:              0x05

bDescriptorType:          0x24

05 24 06 00 01 

     ===>Endpoint Descriptor<===

bLength:              0x07

bDescriptorType:          0x05

bEndpointAddress:         0x82 -> Direction: IN - EndpointID: 2

bmAttributes:           0x03 -> Interrupt Transfer Type

wMaxPacketSize:         0x0008 = 0x08 bytes

bInterval:             0x10

     ===>Interface Descriptor<===

bLength:              0x09

bDescriptorType:          0x04

bInterfaceNumber:         0x01

bAlternateSetting:         0x00

bNumEndpoints:           0x02

bInterfaceClass:          0x0A -> This is a CDC Data USB Device Interface Class

bInterfaceSubClass:        0x00

bInterfaceProtocol:        0x00

iInterface:            0x00

     ===>Endpoint Descriptor<===

bLength:              0x07

bDescriptorType:          0x05

bEndpointAddress:         0x01 -> Direction: OUT - EndpointID: 1

bmAttributes:           0x02 -> Bulk Transfer Type

wMaxPacketSize:         0x0040 = 0x40 bytes

bInterval:             0x00

     ===>Endpoint Descriptor<===

bLength:              0x07

bDescriptorType:          0x05

bEndpointAddress:         0x81 -> Direction: IN - EndpointID: 1

bmAttributes:           0x02 -> Bulk Transfer Type

wMaxPacketSize:         0x0040 = 0x40 bytes

bInterval:             0x00

2 REPLIES 2
rangaec01
Associate

Hi have generated code for CDC class virtual com, how does HID wil come in to picture (sorry my understating is wrong ) Could you please generate bare metal code for CDC class and send me if you wroking one or if you can generate for stm32f427II is my part number.

Imen.D
ST Employee

Hello @rangaec01​ ,

Sorry, I comment on your discussion by miskake. I delete my answer as it is not apprpriate for your discussion.

For your case, I recommend you to take as reference the CDC example within STM32CubeF4 firmware package: STM32Cube_FW_F4_V1.23.0\Projects\STM324x9I_EVAL\Applications\USB_Device\CDC_Standalone

You can get inspired from this working CDC Standalone application and modify it depending on your needs.

Kind Regards,

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen