the interesting part is the experiments I did on the XMOS EVK and how delicate USB seems to work there.
when I remove R48, I get no enumeration, note that that is 470k parallel to the 100k R46. here it sometimes enumerates, but only when I connect USB first and power second.
when I add a R (732R) and a red LED to USB_VBUS it doesn't enumerate anymore. (initially my custom board had that LED too)
I run the EVK with "external power" as this is closer to my custom board.
here's what not enumerating looks like under linux.
[ +0.111946] usb 1-8: new high-speed USB device number 97 using xhci_hcd [ +0.888034] usb usb1-port8: Cannot enable. Maybe the USB cable is bad? [ +0.000112] usb usb1-port8: attempt power cycle [ +0.951881] usb usb1-port8: Cannot enable. Maybe the USB cable is bad? [ +0.111928] usb 1-8: new high-speed USB device number 99 using xhci_hcd [ +0.000058] usb 1-8: Device not responding to setup address. [ +0.208079] usb 1-8: Device not responding to setup address. [ +0.207861] usb 1-8: device not accepting address 99, error -71 [ +0.000135] usb usb1-port8: unable to enumerate USB device [ +0.215843] usb 1-8: new high-speed USB device number 100 using xhci_hcd [ +1.784012] usb usb1-port8: Cannot enable. Maybe the USB cable is bad? [ +0.112012] usb 1-8: new high-speed USB device number 101 using xhci_hcd
the FW is identical on both boards, happens with both flashed and `xrun` boots.
on my board I tried various voltage dividers around the bipolar. removed the LED+R. even lifted the legs of USB_D_P/_N and directly soldered a USB cable. replaced the XU316 altogether.
I measured the falling edge of VBUS_DETECT it's pretty stable 20us on my custom board, and varies 10-50us on the EVK.
one difference is I have just one digital 3V3, no separate 3V3X, as the EVK has.
are there any measures I can take to make my board speak USB? any good practices to make it more reliable and robust?
