This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

j-link issue if used with Nordic EK j-link OB

I wish to inform Nordic about this issue with jlink OB used on EK boards when used in OS X environment.

J-link OB returns " Can not connect to J-Link via USB." and a CDC disabling is due to establish a connection.

But, if I use j-link Lite Cortex M there are no problems, the connection is ready without disabling CDC.

All firmwares are updated.

Not fatal but annoying .

-c

Parents
  • Take a look at the thread here on the Segger site, scroll to the bottom where Alex from Segger explains as I did that the CDC driver on OSX takes exclusive access to the device (it does, you can confirm that with dtrace). At that point libusb can't connect to the JLink and JLink uses libusb.

    On other operating systems the CDC driver does not take exclusive access to the device allowing that driver to run the CDC channels and the virtual serial point, but libusb to connect to the custom Segger endpoints.

    The only thing Segger could really do about this is make the device appear as a composite device with CDC + Segger as if they were attached to an intermediate hub instead of one interface based on CDC, then OSX would run the CDC bit and leave the Segger endpoint alone but that's vastly complicated for an embedded USB device, adding a channel to CDC works for other OSes.

    So you have to disable the driver (for which I wrote cdccontrol in the package I published a few weeks ago or use a script).

Reply
  • Take a look at the thread here on the Segger site, scroll to the bottom where Alex from Segger explains as I did that the CDC driver on OSX takes exclusive access to the device (it does, you can confirm that with dtrace). At that point libusb can't connect to the JLink and JLink uses libusb.

    On other operating systems the CDC driver does not take exclusive access to the device allowing that driver to run the CDC channels and the virtual serial point, but libusb to connect to the custom Segger endpoints.

    The only thing Segger could really do about this is make the device appear as a composite device with CDC + Segger as if they were attached to an intermediate hub instead of one interface based on CDC, then OSX would run the CDC bit and leave the Segger endpoint alone but that's vastly complicated for an embedded USB device, adding a channel to CDC works for other OSes.

    So you have to disable the driver (for which I wrote cdccontrol in the package I published a few weeks ago or use a script).

Children
  • I contacted Segger some months ago telling them what I'd found and how they might be able to get the information they needed without opening the device.

    They wrote back today and told me it's fixed since version 4.88, I just grabbed version 4.90 and it IS fixed, you no-longer need to disable the CDC drivers to use JLink on OS X.

    So you can program the soggier AND you can read the UART

Related