MCU-Link changes to use WinUSB for MCUXpresso IDE 11.7 and future releases

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MCU-Link changes to use WinUSB for MCUXpresso IDE 11.7 and future releases

brendonslade
NXP TechSupport
NXP TechSupport
2 0 4,034

MCUXpresso 11.7.0 was released in January 2023 along with an update to the MCU-Link debug probe firmware (version 3.108). We changed the major version number for this MCU-Link firmware release because it marks an update to be based on CMSIS-DAP 2.1, meaning the probe now enumerates as a WinUSB device instead of a USB HID device.

MCU-Link-PRO_TOP_sm.png

Since MCUXpresso IDE versions pre-dating 11.7.0 will look for MCU-Link devices that enumerate as USB HID, they wont find an MCU-Link running firmware versions 1.xxx or 2.xxx, so if you need to keep with an older IDE release, don't update (we'd recommend sticking with the last v2.xxx release, that being 2.263). MCUXpresso IDE version from 11.7.0 will recognize and work with MCU-Link probes that are implementing WinUSB (firmware v3.xxx) or older USB HID types (v2.xxx or v1.xxx). You can easily move back and forth between firmware installations using the scripts supplied with the MCU-Link installer package for the version you want to use. All MCU-Link platforms use the same firmware, which you can easily locate here https://nxp.com/mcu-link 

FreeMASTER users (version 3.2.1 or older at the time of writing) will also need to stay with MCU-Link firmware v2.xxx for now if they want to use the SWD/JTAG option. We are working on WinUSB support for this now. Note that you can use v3.xxx MCU-Link firmware if you are just using the USB to SPI, i2c or UART (VCOM) bridges, since these are still based on USB HID devices.

Why did we make the change? Well WinUSB gives at least 2x performance improvement in most cases because it can use bulk transfers. We also have a longer term roadmap to better align with Arm's CMSIS-DAP standard as there are other benefits, such as a standard SWO implementation which can work with our partner's tools. Why didnt we do that before I hear you ask? Well when we started utilizing SWO many years ago there was no CMSIS standard for it, and also we wanted to implement cool features like power profiling that the early version of the standard couldn't accommodate. Now Arm have addressed these limitations, so we can revisit our implementation to align to the standard without compromising features.

Firmware version 3.108 introduces some other improvements and fixes of note:

  • Target boot configuration control (on supported EVKs). This allows MCUXpresso IDE to control how the target boots up during a debug session, without having to move jumpers/DIP switch settings.
  • Enables smart / automated usage of USBSIO-I2C and SWO, which share a UART in the MCU-Link hardware. Whichever feature is used first is enabled, until power cycling the EVK.
  • Changes to the VCOM service to ignore DTR signal from host; this is to prevent issues with host applications that use flow control, since VCOM does not support it.
  • Changes DBGIF_TCK_SWCLK pin configuration (pull-down) when not in use, resolving boot up issues that can otherwise occur on i.MX RT10xx platforms
  • Updates to blhost version 2.6.5 (fixes firmware update problems on macOS)
  • Enablement of the USBSIO GPIO bridge interface on MCU-Link Pro (despite not having a dedicated pin for GPIO.) Other I2C/SPI pins or the multi-board sync signals can be re-configured for GPIO if needed. Use with caution, as indiscriminate set up of GPIOs on pins dedicated for other purposes could cause hardware damage. 

 

Tags (2)