J-Link WinUSB driver selection

From SEGGER Knowledge Base
(Redirected from J-Link WinUSB Mode)
Jump to navigation Jump to search

Historically, J-Link needed to use SEGGER-specific USB BULK driver by default. This is because initially Microsoft Windows did not come with a generic USB BULK driver. Starting with Windows 8, Microsoft included the generic USB BULK driver driver, called WinUSB, in Windows installations, so that vendor-specific drivers are no longer required for new products.

While current J-Link models and hardware versions are shipped to use WinUSB by default (aka driverless mode), there are still plenty of older versions of J-Link out there that are WinUSB capable but were shipped use the SEGGER driver.
Also, for some older setups in the field, when replacing a J-Link in that setup, it may be desirable or even necessary to have a current hardware model running with SEGGER driver selection instead of driverless mode.
In order to check and change the USB driver selection of J-Link, J-Link Configurator can be used.

Configuring USB driver selection

  1. Connect the J-Link to a machine that is able to detect it (ideally some state of the art PC)
  2. Make sure the most recent version of the J-Link software package is installed
  3. Start J-Link Configurator
  4. Make sure that the J-Link firmware is up-to-date by right-clicking it in the overview and selecting "Update firmware"
    JLinkConfig FWUpdate.png
  5. Open the configuration dialog (right click on the unit -> Configure)
  6. Under USB Driver (Windows) select WinUSB (driverless) or SEGGER (SEGGER-specific legacy USB driver)
    JLinkConfig USBDrv.png
  7. Click OK
  8. Power-cycle J-Link
  9. Exit J-Link Configurator


Note:
Changing the USB driver selection also changes the product ID (PID) used on the USB level to enumerate J-Link.
However, this is a change transparent to the majority of users as they do not directly deal with the PID of a USB device

Linux and macOS support

The USB driver selection only has an immediate effect under Windows.
Under Linux and macOS there is no SEGGER-specific driver and always the generic USB driver shipped with the OS is used to communicate with J-Link.
However, the previously mentioned change in the PID depending on the USB driver selection, will also be visible under Linux and macOS.