I have an OM13092 LPCXpresso board with LPC54608. I tried to run the example program lpcxpresso54608_host_msd_fatfs_bm. This is configured for full speed port. I changed the jumper settings to enable Full Speed (FS) mode. a) Installed JP10 b) Set JP9 2-3 pins (FS) c) confirmed that the jumpers JP11, JP12, and JP13 are set to 2-3.Ensured that power is supplied through J1.
An USB stick was connected to the J3 (FS) port. It was not even getting detected. I don't get any event in USB_HostOhciTaskFunction(). I expected that when USB stick is connected, an USB_HOST_OHCI_EVENT_ATTACH event will happen. But no. Nothing comes.
As a part of debugging the code, accidentally I put a printf in the USB_HostOhciTaskFunction() after the USB_HostOhciPortChange() in ubs_host_ohci.c.
if (bitSet & USB_HOST_OHCI_EVENT_PORT_CHANGE)
This changed the behaviour. Now USB stick was detected and it did other tests like creating the file system, directory creation etc. Then I replaced the printf with a delay. The behavior is consistent and it works every time with the delay. If the delay is removed, it will never detect the stick again.
Did anyone face this issue before? Any thoughts will be helpful
I have already gone through that discussion thread before posting here. I have ensured that the jumper settings are proper and the board is powered correctly. The point is that the example is working only if I add a delay in USB_HostOhciTaskFunction(). Since it is working, the jumper settings are correct. Otherwise it should not have worked at all.
One more observation is that the same example program works perfectly in High speed mode without any delay. I did the modifications in the usb_host_config.h. Changed the value of USB_HOST_CONFIG_OHCI to 0 and USB_HOST_CONFIG_IP3516HS to 1. Changed the Jumper settings a) Opened JP10 b) set JP9 1-2. Connected USB stick to J2.
So I am sure that the OM13092 board and the USB stick are working good. It could not be a hardware issue. It could be something related to timing or so. Is there any known issues for LPC54608 controller?
Sandeep: Could you hook up an USB com analyser to see how far the enumeration goes (if any) ? This may help pinpoint the root cause of the problem. I downloaded SDK 2.5.0's host_msd_fatfs_bm example and I could not reproduce the issue on my OM13092 dev board.
Bob: I don't have an USB analyzer here to do the analysis. That would have given us a better picture of what is happening. But it seems that the issue surfaces only with newer USB sticks. If I use older USB sticks, then we dont get this issue.
Are these newer sticks you tried USB 3.0 or USB 2.0 ? A quick way to tell is if the inside of the USB connector is blue (USB 3.0) vs black (USB 2.0). I tried a USB 3.0 stick and it works just fine. What are the USB stick brands an reference number that fail to enumerate?
Unfortunately, I cannot reproduce your issue, could you please help me to change the USB stick (brand and capacity) and test again?
Please let me know the results of the tests.
Have a nice day!
There are a lot of USB sticks manufacturers and several of them don’t meet the specification (timing, endpoint handling, supported commands, access speed, etc).
Unfortunately, we don't include a workaround for all those variations,