AnsweredAssumed Answered

LPC4337 USB CDC VCOM not enumerating

Question asked by Rishit Borad on Jun 6, 2017
Latest reply on Jun 7, 2017 by Rishit Borad



I am working on LPC4337 USB CDC VCOM on a customize board. It uses external crystal for clocking of 10MHz. For the software I am referring to LPCOpen usbd_rom_cdc_vcom project. Unfortunately my board doesn't support debugger yet and I am using UART printing to determine whats going on. 

So far, USBD_API->hw->init() and vcom_init() returns LPC_OK. USB interrupts are being generated and program enters EP0_patch; I am also reading USBSTS register in side usb0_IRQhandler() and 'event' parameter in EP0_patch. My serial terminal outputs something like this after USBD_API->hw->Connect(g_hUsb, 1) function call :


1) USBSTS:                0x180         (SOF | SUSPENDED)

2) USBSTS:                0xC0          (SOF | RESET)

3) USBSTS:                0x84           (SOF | PORTCHANGE)

4) USBSTS:                0x81           (SOF | USBERROR)

5) EP0_patch event:   USB_EVT_SETUP

6) USBSTS:                0x10001     (SOF | NAK_INT)

7) EP0_patch event:   USB_EVT_OUT_NAK

8) USBSTS:                0x1             (USBERROR)

9) EP0_patch event:   USB_EVT_OUT

10) USBSTS:              0x81           (SOF | USBERROR)

11) EP0_patch event:  USB_EVT_SETUP

12) USBSTS:              0x1             (USBERROR)

13) USBSTS:              0x81           (SOF | USBERROR)

14) EP0_patch event: USB_EVT_SETUP

14) EP0_patch event: USB_EVT_OUT_NAK

16) USBSTS:              0x1             (USBERROR)

14) EP0_patch event: USB_EVT_OUT 

15) Stops printing on serial terminal and windows reports, after a delay of 45-50 seconds, Unknown USB Device (Device Descriptor Request Failed) Code 43.


I am also setting the M-divider value to 0x071A7FAA (corrosponding to 10 MHz) in usbPLLSetup. My code is same as LPCOpen CDC_VCOM software except I had to port it to C++. 


I am stuck here and hoping to get an idea of what is happening inside, the cause or resolution of the problem. 


Thanks in advance,