LPC4330 recognize High Speed Device as Low Speed Device

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

LPC4330 recognize High Speed Device as Low Speed Device

787 Views
yasushiaoyama
Contributor I

Hi All,

 I'm developing USB host function for USB high speed devices.  I have a trouble of recognizing USB speed.  LPC4330 recognize some high speed device as low speed devices.  I'd appreciate if somebody could advice me.

Environment) H/W: LPC4330 Explore Board

                     SW:  lpcopen_3_01_lpcxpresso_ngx_xplorer_4330

                              

 Problem) Some high speed device is recognized low speed device. Some device can be recognized as high speed device correctly.  It's depends on device model.  Not depends on timing nor individual

 I checked PORTSC1_H register when port status change occurs.(Device Connect) 

 (A)The high speed device correctly recognized, PORTSC1_H value is 0x30001803.

  PSPD(b27:26) = 00  Full Speed

  LS(b11:10)= 10: Not Low Speed

 (B)The high speed device recognized as Low speed,  PORTSC1_H value is 0x34001803

  PSPD(b27:26) = 01  Low Speed

  LS(b11:10)= 10: Not Low Speed

In (A) case, after bus reset, device chirp and hub chirp occurs and the device becomes High speed device.

In (B) case, after bus reset, device chirp occurs but hub chirp doesn't occur, the device remain low speed device.

Yasushi Aoyama

0 Kudos
Reply
2 Replies

670 Views
yasushiaoyama
Contributor I

Hi Carlos,

 Thanks for your advice.  Finally I found another solution. What I did was,

 at the interrupt routine of "detect device connection", I forced to the port "High Speed" by PORT_SC1H "force High Speed test mode" then return to "Normal mode" by resetting  the bit.

 This workaround was not perfect.  Sometime the device was configured to "Low Speed", so I added retry.

 I found it worked well.

  The device needs 500mA, I guess it needs time to be stable from power on, but the USB controller would try to get the status of the device before the device become stable.  If so this problem could happen in other big current eater devices.

 I know more general and smarter way is to use USB hub, but this time I need to adapt only the device, so I din't use hub solution.

Thank you 

Yasushi Aoyama 

0 Kudos
Reply

670 Views
Carlos_Mendoza
NXP Employee
NXP Employee

Hi Yasushi Aoyama,

Which LPCOpen example are you using? I see you mention that you are using a HUB, is it the same problem if you remove the hub and connect the USB device directly to the host?

Have you tried using a USB analyzer to log the information and see if the Device is the one failing or is it is the Host?

Best Regards,
Carlos Mendoza
Technical Support Engineer

0 Kudos
Reply