Skip to main content
rangaec01
Associate
February 12, 2019
Question

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

  • February 12, 2019
  • 2 replies
  • 1534 views

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

This topic has been closed for replies.

2 replies

rangaec01
rangaec01Author
Associate
February 13, 2019

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.

ST Technical Moderator
February 13, 2019

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

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks