The nRF52 devkit has 2 SEGGER instances

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • The nRF52 devkit has 2 SEGGER instances

      Hello,

      We use the Nordic nRF52 devkit (52832) for our purpose. However it identifies itself (often, not always) after power on as:

      Bus 001 Device 004: ID 1366:0101 SEGGER J-Link PLUS
      Device Descriptor:
      bLength 18
      bDescriptorType 1
      bcdUSB 2.00
      bDeviceClass 0
      bDeviceSubClass 0
      bDeviceProtocol 0
      bMaxPacketSize0 64
      idVendor 0x1366 SEGGER
      idProduct 0x0101 J-Link PLUS
      bcdDevice 1.00
      iManufacturer 1 SEGGER
      iProduct 2 J-Link
      iSerial 3 000682979319
      bNumConfigurations 1
      Configuration Descriptor:
      bLength 9
      bDescriptorType 2
      wTotalLength 0x0020
      bNumInterfaces 1
      bConfigurationValue 1
      iConfiguration 4
      bmAttributes 0x80
      (Bus Powered)
      MaxPower 100mA
      Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 255 Vendor Specific Subclass
      bInterfaceProtocol 255 Vendor Specific Protocol
      iInterface 5
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x81 EP 1 IN
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 1
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x02 EP 2 OUT
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 1


      However after using the slide switch to power off/on the board it comes online on USB as

      Bus 001 Device 005: ID 1366:0105 SEGGER J-Link
      Device Descriptor:
      bLength 18
      bDescriptorType 1
      bcdUSB 2.00
      bDeviceClass 239 Miscellaneous Device
      bDeviceSubClass 2
      bDeviceProtocol 1 Interface Association
      bMaxPacketSize0 64
      idVendor 0x1366 SEGGER
      idProduct 0x0105
      bcdDevice 1.00
      iManufacturer 1 SEGGER
      iProduct 2 J-Link
      iSerial 3 000682979319
      bNumConfigurations 1
      Configuration Descriptor:
      bLength 9
      bDescriptorType 2
      wTotalLength 0x0062
      bNumInterfaces 3
      bConfigurationValue 1
      iConfiguration 4
      bmAttributes 0x80
      (Bus Powered)
      MaxPower 100mA
      Interface Association:
      bLength 8
      bDescriptorType 11
      bFirstInterface 0
      bInterfaceCount 2
      bFunctionClass 2 Communications
      bFunctionSubClass 2 Abstract (modem)
      bFunctionProtocol 0
      iFunction 5
      Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 2 Communications
      bInterfaceSubClass 2 Abstract (modem)
      bInterfaceProtocol 1 AT-commands (v.25ter)
      iInterface 5
      CDC Header:
      bcdCDC 1.10
      CDC Call Management:
      bmCapabilities 0x03
      call management
      use DataInterface
      bDataInterface 1
      CDC ACM:
      bmCapabilities 0x06
      sends break
      line coding and serial state
      CDC Union:
      bMasterInterface 0
      bSlaveInterface 1
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x83 EP 3 IN
      bmAttributes 3
      Transfer Type Interrupt
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0040 1x 64 bytes
      bInterval 4
      Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 1
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 10 CDC Data
      bInterfaceSubClass 0
      bInterfaceProtocol 0
      iInterface 6
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x81 EP 1 IN
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 1
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x02 EP 2 OUT
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 1
      Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 2
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 255 Vendor Specific Class
      bInterfaceSubClass 255 Vendor Specific Subclass
      bInterfaceProtocol 255 Vendor Specific Protocol
      iInterface 7
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x85 EP 5 IN
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval 1
      Endpoint Descriptor:
      bLength 7
      bDescriptorType 5
      bEndpointAddress 0x06 EP 6 OUT
      bmAttributes 2
      Transfer Type Bulk
      Synch Type None
      Usage Type Data
      wMaxPacketSize 0x0200 1x 512 bytes
      bInterval

      This is the operation mode we need. The fact that it presents itself as 2 very different SEGGER devices is very anoying.
      I checked with JLinkConfig, the SEGGER driver is the latest available.

      As this is on Linux, it would be nice if usb_modeswitch could be used here. I don't know the proper arguments for it.

      best regards

      Kees
    • Hi,

      The PID used depends on what features are reported on the USB level.
      PID 0x0105 is the default for that kit which means J-Link + VCOM + drag & drop.
      The 0x0101 you are seeing is most probably the bootloader of the OB because the bootloader does not support VCOM + drag & drop.
      We must use a different PID when reporting different features for the same S/N because otherwise the host OS may get confused.
      Same S/N but different feature set must be handled as a different "product" (PID) on the host side.

      Why do you think you need J-Link to report PID 0x0101?
      Why should you as a user of J-Link care about the PID at all?


      BR
      Alex
      Please read the forum rules before posting.

      Keep in mind, this is *not* a support forum.
      Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
      Should you be entitled to support you can contact us via our support system: segger.com/ticket/

      Or you can contact us via e-mail.