4 years, 4 months ago.

Programming external target using silicon labs development kit

Has anyone managed to successfully program and run an external target using silicon labs development kit?

I am setting the kit manager to target the external target. I can see that there is communication between the board and the target when I drag and drop the image onto the virtual drive. However the target device doesn't start.

Using the Simplicity Studio IDE I have programmed the mbed exported project into the external device, however the debugging doesn't start. When I pause I can see that It enters some weird infinite loop and the debugging doesn't start

Any thoughts?

1 Answer

4 years, 4 months ago.

Your post does not offer many of the required details like what is your external target CPU, wiring diagram, source kit being used. Extrapolated that since you are referencing Simplicity Studio, the target CPU is also from Silabs.

Review Debugging an external target


Review this thread:


We have applied EFM8 into a mix of our designs which are soldered blank and then we use the C2D specification to erase / read / write / reflash our firmware using our GPIO port pins to bit bang to the micro. This should also be possible for any other EFM8 / EFM32 micro which is common to Silabs micros.

Read my post linking the CORRECT AN127 which is the proper documentation on how C2D routines should be coded (the version that Silabs has made public for the past 1-2 years is buggy and should be removed but we have given up on getting them to listen. They apparently do not care to correct such serious mistakes. We wasted weeks fixing the coding mistakes in the current V1.4 documentation. So if you really want to build a Silabs programmer from scratch, then you must review the Cygnal AN127 documentation I posted about about 1 year ago. Hope this saves you some time.


DO NOT FOLLOW AN127 V1.4 from Silabs which is full of errors that most likely will not be corrected anytime soon.


If you wish to just borrow part of the EFM kit to program other Silabs micro then it should be possible by following the linked webpages and the related procedure. For us, it was vital to offer the tools in our end h/w to fix any issue out in the field so we built the C2D programmer into our products.

Hi, Sorry for not giving enough details. Generally I would like to be able to program any Silicon Labs chip that is present on Silicon Labs development kits. But for now lets focus on EFM32ZG222F32. I have the zero gecko starter kit that has EFM32ZG222F32 on board and that flashes properly with mbed generated file and I can debug as explained in the tutorial section through the Silicon Labs IDE.

Then I do, what I typically do when programming external targets, set the kit to debug output,aka external target, and my external target EFM32ZG222F32 responds, os the same chip as on the starter kit. Furthermore I can program and debug the external target MCU using silicon labs IDE when I make my own code. That runs without any problems. However, as soon as I try to load the same example from bed, that works on the development kit, on the same processor, onto the external target the external target doesn't start.

I have placed oscilloscope probes on the data and clock lines and I can see communication going back and forth. Furthermore if there was a code running previously it gets erased, so something is getting programmed into the external target MCU. However the MCU seems to be stuck in some sort of a loop.

Do I need serial link as well? Is there a boot loader that needs to be there beforehand for mbed software to work?

posted by Dusan Vuckovic 27 May 2017