LPC4333: can't boot from USB

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

LPC4333: can't boot from USB

380 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by svenb on Sun Oct 19 11:24:33 MST 2014
Hi!

I have a LPC4333 which is on a self-made board. I'm trying to use the USB bootloader feature but can't get it to work, and I'm quite clueless about what is wrong. Maybe someone here has a hint on how to continue debugging this issue.

I configured the boot pins to boot from USB, then I toggle the reset pin. In dmesg, I then see this message:
[28578.835904] usb 2-1.1: new full-speed USB device number 33 using ehci-pci
[28578.902738] usb 2-1.1: device descriptor read/64, error -32

That is reproducable every time.
Since it looks like a communication problem, I attached my scope to the USB traces, and what I see there is this:
https://imgur.com/a/sI8GD#0

The communication looks perfectly clean for a while, then suddenly after the second reset, D- goes low in a weird pattern.

I checked the power supply; there are no spikes visible when the fault happens. There's also no excessive noise visible on the supply lines. I tried with a different USB cable as well. Here's a log from Linux' usbmon USB debugging tool for the communication which happens: http://paste.kde.org/piusouoga/didzqr/raw
I am not familiar enough with the USB protocol yet to read much from that to be honest; it seems like everything goes well for a while, then the error -32 fault happens but after that communication continues for a while. What also confuses me is that the fault is visible after ~70ms on the scope, but this log shows communication much later.

Another surprising thing is that the fault happens pretty much exactly 20ms after the start of the second reset. Does something special happen 20ms after a reset finished?

Might the USB PHY have been damaged during soldering? Could that fit the error I see?

As said, I am really quite clueless on this issue (I will continue trying to understand how USB initiation works though), so any hints and ideas would be appreciated.

Thanks and best regards,
Sven
Labels (1)
0 Kudos
3 Replies

339 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by svenb on Tue Dec 09 12:58:17 MST 2014
Yes, this problem was solved by using a 12 MHz crystal oscillator. The device is now recognized as a DFU device. Booting from USB using dfu-util still doesn't work, but I didn't debug this further.
0 Kudos

339 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by bomellberg on Tue Dec 09 05:45:05 MST 2014
Sven,

did you manage to solve your issue? I have a similar problem with a USB device under uClinux.

usb 1-1: new full speed USB device using lpc43xx-ehci and address 2
~ # usb 1-1: device descriptor read/64, error -71
usb 1-1: device descriptor read/64, error -71
usb 1-1: new full speed USB device using lpc43xx-ehci and address 3
usb 1-1: device descriptor read/64, error -71
usb 1-1: device descriptor read/64, error -71
usb 1-1: new full speed USB device using lpc43xx-ehci and address 4
usb 1-1: device not accepting address 4, error -71
usb 1-1: new full speed USB device using lpc43xx-ehci and address 5
usb 1-1: device not accepting address 5, error -71
hub 1-0:1.0: unable to enumerate USB device on port 1
0 Kudos

339 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by svenb on Sun Oct 19 12:51:25 MST 2014
Ah, it looks like the USB DFU mode only works with a 12 MHz crystal, but my board has a 4 MHz. I guess that could explain the issues I am seeing.
0 Kudos