Porting mbed to EFM32ZG (Zero Gecko) Cortex M0+ MCUs


This page is to keep my progress of porting mbed SDK to EFM32ZG devices.

EFM32 Zero Gecko MCUs

EFM32 MCUs were designed to be used in low power applications. Implementations based on ARM Cortex-M3 and M4 were available for quite some time now. The recent release of Zero Gecko devices based on ARM Cortex-M0+ makes it nice candidate for porting mbed SDK.

First attempt is made to port mbed to EFM32ZG110F32 MCU.

What is special about EFM32ZG110F32 ?

  • Cost: Devices with 32 KB flash and 4 KB RAM are available for around 1 U.S.D.
  • 12bit 1 Msamples/s ADC
  • 1 Analog comparator
  • 1 Current DAC
  • 4 channel DMA
  • 2× 16-bit Timer/Counter(3 Compare/Capture/PWM channels), 1× 16-bit Pulse Counter
  • Inbuilt 24-bit Real-Time Counter which consumes just 0.9 μA @ 3 V in Deep Sleep mode.
  • On-chip temperature sensor, which can be used for sensing ambient temperature (with some clever use).
  • Configurable GPIO drive strength up-to 20mA (which is good for LED driving!) .
  • I2C, SPI, UART
  • Hardware AES
  • Peripheral Reflex System ( A bus used for autonomous communication of peripherals without CPU intervention)
  • Upto 24 Mhz clock.

Harware Board

Designed a board for EFM32ZG110 target board.I just got the orderd MCUs. Waiting for the PCB.

EFM32 Board EFM32 Board

Challenges ahead

  • Initially I worked on a port with M3/M4 EFM32 devices. I had used two 16-bit timers to implement uTicker. But, ZG110 only has two 16-bit timers. At most, I can use one 16-bit timer. The other 16-bit timer should be used for PWMout
  • Possibility of using SysTickTimer for uTicker need to be explored. Since SysTickTimer is only used for RTOS, non-RTOS mbed application could make use of SysTickTimer.

2 comments on Porting mbed to EFM32ZG (Zero Gecko) Cortex M0+ MCUs:

19 Dec 2013


you state you worked on a M3 port for the EFM previously. Is this work available somewhere? I'm interested in writing code for the EFM32 M3 devices using the mbed libraries too.

Best regards.

21 Dec 2013

The port is not ready yet. I have a working Ticker and DIO. The Ticker implementation has some limitation as it uses just one 16bit Timer. I would post an update once a complete functionality is implemented.

Please log in to post comments.