Hello,
I'm having some issues getting the virtual com port (VCP) working correctly for a Segger J-Link OB connection to a Nordic nRF52840 Preview DK (nordicsemi.com/eng/Products/nRF52840-Preview-DK).
When connected to the target board using Putty on Windows 10, UART comms via the VCP work correctly when JLink enumerates as a USB high speed device.
When connected to the target board using Minicom or similar within Linux, UART comms via the VCP don't work if the JLink enumerates as a USB high speed device.
When connected to the target board using Minicom or similar within Linux, UART comms via the VCP do work if the JLink enumerates as a USB full speed device through a USB hub.
The following text appears in the dmesg log when the JLink enumerates as USB high speed device.
[297130.313927] usb 1-1: new high-speed USB device number 65 using ehci-pci
[297130.539199] usb 1-1: config 1 interface 1 altsetting 0 bulk endpoint 0x83 has invalid maxpacket 64
[297130.539201] usb 1-1: config 1 interface 1 altsetting 0 bulk endpoint 0x4 has invalid maxpacket 64
If the information at the following link sourceforge.net/p/libusb/mailman/message/32662224/ is correct, it would appear the JLink is reporting the incorrect max packet size of 64 when enumerated as a USB high speed device. The max packet size should be 512. I suspect this to be the reason that the USB CDC driver in Linux doesn't tranfer any characters to/from the target.
The 'invalid maxpacket' error doesn't occur when the enumerated as a USB full speed device and USB CDC comms work as expected. Interestingly, the JLink Plus that I have with VCP enabled enumerates with the correct maxpacket size of 512 under Linux (I haven't had a change to test the USB CDC comms using the JLink Plus).
To help debug this issue please see the attached log outputs. segger-high-speed-usb-issues.txt
Regards
Austin
I'm having some issues getting the virtual com port (VCP) working correctly for a Segger J-Link OB connection to a Nordic nRF52840 Preview DK (nordicsemi.com/eng/Products/nRF52840-Preview-DK).
When connected to the target board using Putty on Windows 10, UART comms via the VCP work correctly when JLink enumerates as a USB high speed device.
When connected to the target board using Minicom or similar within Linux, UART comms via the VCP don't work if the JLink enumerates as a USB high speed device.
When connected to the target board using Minicom or similar within Linux, UART comms via the VCP do work if the JLink enumerates as a USB full speed device through a USB hub.
The following text appears in the dmesg log when the JLink enumerates as USB high speed device.
[297130.313927] usb 1-1: new high-speed USB device number 65 using ehci-pci
[297130.539199] usb 1-1: config 1 interface 1 altsetting 0 bulk endpoint 0x83 has invalid maxpacket 64
[297130.539201] usb 1-1: config 1 interface 1 altsetting 0 bulk endpoint 0x4 has invalid maxpacket 64
If the information at the following link sourceforge.net/p/libusb/mailman/message/32662224/ is correct, it would appear the JLink is reporting the incorrect max packet size of 64 when enumerated as a USB high speed device. The max packet size should be 512. I suspect this to be the reason that the USB CDC driver in Linux doesn't tranfer any characters to/from the target.
The 'invalid maxpacket' error doesn't occur when the enumerated as a USB full speed device and USB CDC comms work as expected. Interestingly, the JLink Plus that I have with VCP enabled enumerates with the correct maxpacket size of 512 under Linux (I haven't had a change to test the USB CDC comms using the JLink Plus).
To help debug this issue please see the attached log outputs. segger-high-speed-usb-issues.txt
Regards
Austin