USBDM 4.10.5 supports now MCU10.4

Wow, that was fast! The SourceForge USBDM project has added support for MCU10.4 (see as well this post) in release 4.10.5 available here, announced in the Freescale Forum.

USBDM 4.10.5 Installer

USBDM 4.10.5 Installer

Installation is easy (uninstall a earlier version might be necessary). As for 10.4, make sure you browse to your installation folder (it was not able to find my 10.4 installed version in the default C:\Freescale\CW MCU v10.4\ path:

Browse for MCU10.4

Browse for MCU10.4

Then make sure you launch Eclipse with the -clean option (or from the shortcut installed) after installation:

Launching Eclipse with -clean

Launching Eclipse with -clean

However, although the USBDM device was properly showing up in the device manager, and as well in the debugger settings, I was not able to connect:

Problem Occured

Problem Occured

From the connection settings everything was looking ok:

USBDM Target

USBDM Target

Still, I had errors:

Starting 3rd party flash programming...
DiMemoryDownload() - DI_DNLD_TERMINATE - Programming memory image...
===========================================================
Programming target
    Device = 'MKL25Z128M4'
    Trim, F=0, NVA@0000, clock@0000
    Ram[1FFFF000...20002FFF]
    Erase=EraseAll
    Security=unsecured
    Total bytes=892
    doRamWrites=T
DiMemoryDownload() - DI_DNLD_TERMINATE - Programming complete, rc = 7
GDI: => DI_ERR_FATAL
DiErrorGetMessage() => Failed to write to target
GDI: Failed to write to target

New USBDM Firmware

Reading the release notes, it tells that the OpenSDA USBDM supports USB CDC (similar to the P&E OpenSDA CDC), so I thought that there must be a new USBDM firmware. And I found it here:

C:\Program Files (x86)\pgo\USBDM 4.10.5\FlashImages\MKxx\USBDM_OpenSDA.sx

Programmed the board with the new firmware. However, this did not not help :-(.

Uninstalling and Re-installing USBDM Device Drivers

Next thing to try was to uninstall the USBDM Drivers, as I would have expected that a USB CDC device would enumerate as virtual COM port. Obviously this would need new device drivers. So I uninstalled the existing drivers and installed the new ones. And indeed: now USBDM shows up as a composite (multi-role) device:

USBDM Composite Device

USBDM Composite Device

And it enumerates sucessfully as an USBDM Serial Port:

USBDM Serial Port

USBDM Serial Port

Good news: with this I should have USB CDC support as with the original P&E OpenSDA. Bad news: I’m still not able to connect to my board 😦

I uninstalled the USBDM drivers, installed a clean CodeWarrior for MCU10.4, re-installed USBDM and all the drivers. But still: not able to connect to my board.

Puzzled with that, I re-installed the original P&E USBDM firmware, and I was able to connect to the board. Then flashed again the USBDM firmware, tried with USBDM, and: it worked! 🙂

I’m really not sure what the problem is/was. All what I can say is that I was working with low power modes on that board, and it could be that the microprocessor was in a low power (stop, I think) mode, and somehow OSBDM failed to connect to it. I have made so many desperate changes, that I’m not sure any more what was originally on the board. But at least I was able to connect to it with the original OpenSDA.

Summary

USBDM supports new CodeWarrior for MCU10.4. The wizard integration works out of the box, and even a problem I have seen with the earlier 4.10.4 version disappears with the new version. USBDM has added USB CDC support which is a great thing. Until I’m able to reproduce my (potential low power mode) problem, I recommend to use the original OpenSDA firmware in case connecting to the board does not work. Other than that: USBDM works very well for me.

Happy Debugging 🙂

15 thoughts on “USBDM 4.10.5 supports now MCU10.4

  1. Pingback: Adding USBDM to CodeWarrior for MCU10.4 | MCU on Eclipse

  2. I have a freedom board that I use to program my own board with the the KL25 processor on it. I have on occasion put code in that will not allow me to connect to the device and I came across the trick that if you hold down reset on target board then try and connect them release the reset before it times out I am able to recover and connect to my devices.

    Like

    • Hi Rex,
      yes, I have tried that. But unfortunately it did not work. I have tried to keep the reset down different times, but maybe I was not lucky, or my case is special in some way.
      Thanks for your help!

      Like

  3. Pingback: CMSIS-DAP with IAR and the KL25Z Freedom Board | MCU on Eclipse

  4. Thanks!
    Now I can use Freemaster with the Freedom!!
    Freemaster is a great tool but has no OpenSDA drivers, the only way to use it with the Freedom in the past was through the CDC and this way was not very efficient. Now I can use it through USBDM and works great!

    It’s a shame that give so little attention to this tool, I do not see progress in their development 😦

    Like

      • No. What I meant is that before I had to use Freemaster through a communication port CDC and now I can do it by directly accessing memory through USBDM because the Freemaster not have the drivers for the OpenSDA of PEMicro. (My English is not as good as I would like so sorry if I confused you).

        Like

  5. Pingback: Bricking and Recovering FRDM-KL25Z Boards: Reset, SWD Clock and Low Power | MCU on Eclipse

  6. Hi Erich:

    Does USBDM apply to FRDM-KL25Z only? I was trying to use USBDM on FRDM-KL02Z, it is possible to identify KL02Z device, but CodeWarrior got stuck during firmware downloading.

    Not sure whether this is my environmental problem or it is compatibility issue for USBDM.

    Thanks a lot.

    Like

  7. Pingback: DIY Free Toolchain for Kinetis: Part 3 – Debugger (GDB Server with P&E and Segger) | MCU on Eclipse

  8. Pingback: The Freescale OpenSDA Trap: “No Device Available”, or something like that…. | MCU on Eclipse

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.