I’m using the LPC-LINK2 CMSIS-DAP V5.361 firmware on my NXP LPC-Link2 debug probe.
I noticed that when I have the LPC-Link2 plugged into my USB hub, my webcam (Logitech C920) no longer works, even when these 2 devices are the only devices plugged into the 8-port USB hub, and even when not using the LPC-Link2 actively (only plugged in)! In my Linux kernel log, I see messages like:
kernel: usb 1-13.2: Not enough bandwidth for new device state.
kernel: usb 1-13.2: Not enough bandwidth for altsetting 11
In the Linux debug file /sys/kernel/debug/usb/devices, I can see the configuration based on the LPC-Link2 USB device descriptor:
T: Bus=01 Lev=02 Prnt=09 Port=02 Cnt=02 Dev#= 30 Spd=480 MxCh= 0
P: Vendor=1fc9 ProdID=0090 Rev= 1.00
S: Manufacturer=NXP Semiconductors
S: Product=LPC-LINK2 CMSIS-DAP V5.361
C:* #Ifs= 5 Cfg#= 1 Atr=80 MxPwr=500mA
A: FirstIf#= 1 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00
I:* If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS=1024 Ivl=125us
E: Ad=01(O) Atr=03(Int.) MxPS=1024 Ivl=125us
I:* If#= 4 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=84(I) Atr=03(Int.) MxPS=1024 Ivl=250us
E: Ad=04(O) Atr=03(Int.) MxPS=1024 Ivl=250us
I:* If#= 1 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm
E: Ad=83(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=500us
E: Ad=05(O) Atr=03(Int.) MxPS= 64 Ivl=500us
I am surprised to see the large packet size of 1024 bytes for interface 0 and 4 (USB HID). Can this high max packet size value be lowered to the actual packet size, or are the interrupt packets really this big? For USB HID, I would have expected 64 bytes max packet size.
Also, the minimum interval of 125μs for the endpoints on interface 0 means that the device consumes bus time in every single USB micro frame. Can the interval be set higher, e.g. to 1ms like for interface 1?
These should be 2 quick changes to the USB device descriptor, that hopefully fix the compatibility issue that the current descriptor causes.
I am happy to test an updated firmware if you want to send me one.
Thank you for taking a look
CMSIS-DAP is a standard from ARM, NXP just port it to their hardware.
you could try a JLink firmware for LPC-Link to see if that changes the behaviour. use Lpcscrypt to do this. See https://www.nxp.com/design/microcontrollers-developer-resources/lpc-microcontroller-utilities/lpcscr...