Reply
Highlighted
Posts: 113
Registered: ‎10-01-2012

HOWTO: Detect hardware in Studio 3.x and successfully program target!

I wrote this up for someone at work, but figured it might be useful to others. Here is the process I use to get hardware detected in Simplicity Studio. This procedure works-for-me as of v3.0 under Windows 7. YMMV for other versions, but it looks like the hardware detection works the same (i.e. just as problematic) in "v3.3" released a few days ago. Which, just to confuse you more, also reports as simply "v3". Any installed older "v3" version (at least 3.0, per my experience) will not show any updates or indication that a newer version exists.

 

  •  Unplug EVERYTHING!
  • Reboot the PC (this may not be needed, but...)
  • Plug everything in the following order:
    • Plug in the devkit USB (make sure target board is unconnected!) Wait until it appears as a USB drive and the green LED near the USB is blinking (blue might also blink, sometimes, either a little or a lot. Sometimes the green LED is solid ON, and this is your secret signal to plugcycle everything, likewise if the blue LED is OFF.)
    • Plug in target board (make sure target board is unpowered!)
    • Finally, power target board. (Beware, programmer may sink excessive current if back-fed from target board while unplugged from USB.)
  • Open Studio (you can *probably* safely keep it open between plugcycles, but...) and make sure you are on the home screen.
  •  On the left, press "Refresh detected hardware" and wait a while for your plugged-in kit to appear under 'Detected Hardware'. (Probably worth doing even if your hardware appears to already be listed.)

  • Right-click the hardware entry (e.g. "EFM32 ... Starter Kit Board...") and 'Select Target Part'. (NB: Ignore any guesses/assumptions about target part in the dropdown that appears from left-clicking the hardware entry, even if it is correct. To make the programmer happy, you must physically detect it again!)
  • In the "Target Selection" window that appears, press 'Detect Target'. Don't bother selecting anything for 'Target Interface' (it will disregard or randomly change your selection, at least in my experience). You will probably get one or more warning dialogs with: "J-Link currently uses target inferface XXX while current debugger tries to select target interface YYY. Should the interface be changed?" (the exact debug interface names, e.g. JTAG/SWD/C2, will swap about randomly). Click away these dialogs (press OK).
  • If you are lucky, the 'Part' dropdown will change from 'No part' to the name of the chip on your target board. Congratulations! Programming/debugging will probably work now.


Note, if the target board or programmer ever loses power (or has a power glitch), some or all of this procedure has to be repeated. Likewise, if you begin receiving error messages like "SWO can only be used with target interface SWD" when trying to program/debug (whether your project uses SWO or not), try rebooting and redoing this procedure.

 

Hope this helps! (Also, somebody please fix this!)