USB_Host_SendControlREquest hangs: LPC_1837_Xpresso

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USB_Host_SendControlREquest hangs: LPC_1837_Xpresso

616 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by waltwallach on Sun Mar 16 16:23:55 MST 2014
I am extending the LPC USB stack to support hubs and multiple devices. As a start, I am configuring the Mass Storage demo to use pipe 1 as its EP0, and pipes 2 and 3 as its data pipes (pipe 0 remains for the host control endpoint).

I set the device address to 1, and pipe 1 to EP0 for device 1. I can get the device descriptor and config descriptors.

However, when I get the string descriptor, or set the configuration, the request never completes.  Here is the stack for USB_Host_GetDeviceStringDescriptor:

ngx_xplorer_1830_lpcusblib_DualDeviceAudioMSC Debug (1) [C/C++ (NXP Semiconductors) MCU Application]
ngx_xplorer_1830_lpcusblib_DualDeviceAudioMSC.axf
Thread [1] <main> (Suspended : Signal : SIGINT:Interrupt)
HcdQHD() at EHCI.c:857 0x1a00f472
WaitForTransferComplete() at EHCI.c:797 0x1a00f314
HcdControlTransfer() at EHCI.c:317 0x1a00deac
USB_Host_SendControlRequest() at HostStandardReq.c:56 0x1a00a7d8
USB_Host_GetDeviceStringDescriptor() at HostStandardReq.c:281 0x1a00aa46
EVENT_USB_Host_DeviceEnumerationComplete() at MassStorageHost.c:372 0x1a004abe
USB_Host_ProcessNextHostState() at Host.c:181 0x1a00a610
USB_HostTask() at USBTask.c:91 0x1a00b8aa
USB_USBTask() at USBTask.c:62 0x1a00b800
main() at DualDevice.c:181 0x1a00421a
gdb

HcdQHD

Since the device descriptor calls out string descriptor indexes, I wopuild expect the device will support get string descriptor requests.  In any case, as the demo stack is delivered (with USB_SetDeviceAddress stubbed out), all device communication is using device address 0 and these calls work.

Is there some issue using non-zero device addresses with the LPC1837 and the LPCUSB stack?


Labels (1)
0 Kudos
1 Reply

499 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by braincs on Sat Jun 14 06:55:16 MST 2014
Hello waltwallach,

I am also using LPC1837 xplorer, Have you tried to use nxpUSBlib. It has some example about LCP1830xplorer. Maybe helpful to look at.

By the way, one question. Does your timer work well? When I debug my LPC1837 using lpc1830 demo code, i find PR (prescale registion) cannot be set to customer value. it is always 0xFFFF FFFF. Did you meet this problem?

Thanks
Braincs
0 Kudos