EmbDev.net

Forum: ARM programming with GCC/GNU tools USB Host Enumeration problem


von Prakash R. (Company: Coinel Technology Solutions) (prakash)


Attached files:

Rate this post
useful
not useful
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?

The schematic for usb host I have attached.

Many thanks in advance,

-Prakash
9886545216

von Prakash R. (Company: Coinel Technology Solutions) (prakash)


Rate this post
useful
not useful
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_TDControlStatu s = 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?

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.