We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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
1. If you have any USB snooper, connect and get the log which is ease to debug. 2. Check your pendrive with PC, whether it is working or not.
After this basic debugging, we can go further into the code.
Regards, D.
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?