This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

USB Host Enumeration problem

Hello,

I've never done a USB Host interface before, now I am trying to
enumerate USB Host using NXP's USBHostLite example using LPC1768
controller.

It stuck at "while (!HOST_RhscIntr);"

I got a short serial output followed by flashing

----------------------------
Initializing Host Stack
Host Initialized
Connect a Mass Storage device
-----------------------------

Can anybody tell me why

"LPC_USB->OTGStCtrl = 0x3;" statement is using. And if I use
"LPC_USB->OTGStCtrl = 0x203;" this statement then serial output is
followed as

------------------------------------
Initializing Host Stack
Host Initialized
Connect a Mass Storage device
ERROR: In Host_EnumDev at Line 358 - rc = -1
---------------------------------------------

The line (Line 358 in usbhost_lpc17xx.c) is this block of code:

rc = HOST_GET_DESCRIPTOR(USB_DESCRIPTOR_TYPE_DEVICE, 0, TDBuffer, 8);
if (rc != OK) {
PRINT_Err(rc);
return (rc);
}

Could it be an issue with my USB drive or hardware?

Many thanks in advance,

-Prakash
9886545216

Parents Reply Children
  • I don't have USB snooper.
    I have checked the pendrive. That was working fine with my PC.

  • I have ensured that PORT_FUNC in OTGStCtrl register is 0x3, PWRD, PPWR, POVRCR, USB-D+ and USB-D- are set correctly for USB host in PINSELx.

    Observations are as follow,

    1. It stuck at "while (!HOST_RhscIntr) ;" and If I not initialize UART, then get rc = -1 at
    ------------ --------- --------- ---------
    rc = HOST_GET_DESCRIPTOR (USB_DESCRIPTOR_ TYPE_DEVICE, 0, TDBuffer, 8);
    if (rc != OK) {
    PRINT_Err(rc) ;
    return (rc);
    } ------------ --------- --------- ---------

    because HOST_TDControlStatus = 5.

    2. Before setting of global power bit in OHCI RHStatus,
    HcRhStatus = OR_RH_STATUS_ LPSC; /* Set Global Power */
    voltage at PWRD pin is 4.68v and after setting of global power
    PWRD = 0.8V
    is it correct?