# EFM32

EFM32 Gecko MCUs are a family of mixed-signal 32-bit microcontroller integrated circuits from Energy Micro (now Silicon Labs) based on ARM Cortex-M CPUs, including the Cortex-M0+, Cortex-M3, and Cortex-M4.

## Overview

EFM32 microcontrollers have a majority of their functionality available down to their deep sleep modes, at sub-microamp current consumption, enabling energy-efficient, and autonomous behavior while the CPU is sleeping.
An example of a deep sleep peripheral on EFM32 is the Low Energy Sensor Interface (LESENSE), which is capable of duty-cycling inductive, capacitive, and resistive sensors while autonomously operating in Deep Sleep mode. Another aspect of the Gecko MCUs is that the peripherals have a direct connection with each other, allowing them to communicate without CPU wake-up and intervention. This interconnect is known as the Peripheral Reflex System (PRS).
Functionality is available at the lower Stop and Shutoff energy modes. The Stop mode includes analog comparators, watchdog timers, pulse counters, I$^2$C links, and external interrupts. In Shutoff mode, with 20–100 nA current consumption, depending on the product, applications have access to GPIO, reset, a real-time counter (RTC), and retention memory.
The EFM32 family consists of several sub-families, ranging from the EFM32 Zero Gecko, based on an ARM Cortex-M0+, to the higher performing EFM32 Giant Gecko and Wonder Gecko, based on Cortex-M3 and Cortex-M4 respectively. EFM32 technology is also the foundation for EFR32 Wireless Geckos, a portfolio of Sub-GHz and 2.4 GHz wireless system on a chip (SoC) devices.

### Product families

| Family | Core | Speed (MHz) | Flash memory (kB) | RAM (kB) | USB | LCD | Communications | Packages | Capacitive sense |
| Zero Gecko | ARM Cortex M0+ | 24 | 4,8,16,32 | 2,4 | No | No | I2C, I2S, SPI, UART, USART | QFN24, QFN32, QFP48 | Relaxation oscillator |
| Happy Gecko | ARM Cortex M0+ | 25 | 32,64 | 4,8 | No, Yes | No | I2C, I2S, SPI, UART, USART | CSP36, QFN24, QFN32, QFP48 | Relaxation oscillator |
| Tiny Gecko | ARM Cortex M3 | 32 | 4,8,16,32 | 2,4 | No | Yes | I2C, I2S, SPI, UART, USART | BGA48, QFN24, QFN32, QFN64, QFP48, QFP64 | Relaxation oscillator |
| Gecko | ARM Cortex M3 | 32 | 16,32,64,128 | 8,16 | No | Yes | I2C, SPI, UART, USART | BGA112, QFN32, QFN64, QFP100, QFP48, QFP64 | Relaxation oscillator |
| Jade Gecko | ARM Cortex M3 | 40 | 128,256,1024 | 32,256 | No | No | I2C, I2S, SPI, UART, USART | QFN32, QFN48, BGA125 | Capacitance to digital |
| Leopard Gecko | ARM Cortex M3 | 48 | 64,128,256 | 32 | Yes | Yes | I2C, I2S, SPI, UART, USART | BGA112, BGA120, CSP81, QFN64, QFP100, QFP64 | Relaxation oscillator |
| Giant Gecko | ARM Cortex M3 | 48 | 512,1024 | 128 | Yes | Yes | I2C, I2S, SPI, UART, USART | BGA112, BGA120, QFN64, QFP100, QFP64 | Relaxation oscillator |
| Pearl Gecko | ARM Cortex M4 | 40 | 128,256,1024 | 32,256 | No | No | I2C, I2S, SPI, UART, USART | QFN32, QFN48, BGA125 | Capacitance to digital |
| Wonder Gecko | ARM Cortex M4 | 48 | 64,128,256 | 32 | Yes | Yes | I2C, I2S, SPI, UART, USART | BGA112, BGA120, CSP81, QFN64, QFP100, QFP64 | Relaxation oscillator |

## Key properties

The energy efficiency of the EFM32 MCU portfolio stems from autonomous operations in deep sleep modes, low active and sleep currents, and fast wakeup times. EFM32 devices claim to be constructed to reduce development cycles by being pin and software-compatible, scalable across wide application requirements, and compatible with multiple development platforms. The wireless Gecko portfolio (EFR32) shares the same MCU architecture with both software and hardware (pin/package) compatibility.

### Features

At a low level, the MCU can be broken down into eight categories: the core and memory, clock management, energy management, serial interfaces, I/O ports, timers and triggers, analog interfaces, and security modules.
Features of the MCU include:
* Low-energy modes.
* Peripheral Reflex System (PRS), a peripheral interconnect system with eight triggers to handle task execution without CPU intervention.
* CPU: ARM Cortex-M series, from the Cortex-M0+ to the Cortex-M4.
* Clock rate: 4 MHz to 48 MHz.
* Low frequency and ultralow frequency clocks.
* Internal voltage regulators.
* Flash memory: 4 kB to 1024 kB.
* RAM: 2 kB to 128 kB.
* Serial digital interfaces: USART, low energy UART, I2C, and USB.
* Timer and triggers block of the MCU includes a CRYOTIMER, low energy pulse counter (PCNT), and backup real-time-counter (RTC).
* Analog modules: ADCs, DACs, operational amplifiers, and analog comparators.
* Hardware cryptographic engines and cyclic redundancy checks (CRCs).
* Up to 93 General-purpose Input/Output (GPIO) pins.
* Some variants have LCD controllers.

### Design and development resources

Design and development resources include a freeware Integrated Development Environment (IDE), performance analysis tools, configuration tools and utilities, compilers and development platforms, software stacks, reference code and design examples, application notes, training videos, and white papers.
Silicon Labs Simplicity Studio is a freeware, Eclipse-based development platform with graphical configuration tools, energy-profiling tools, wireless network analysis tools, demos, software examples, documentation, technical support and community forums. It also includes compiler tool options, including GCC for ARM, Keil, IAR Embedded Workbench, and other third-party tools.
Tools within Simplicity Studio IDE include the Advanced Energy Monitor (AEM) and the Network Debugger called “Packet Trace”. The Advanced Energy Monitor is an EFM32 tool that allows developers to do energy profiling while their application is running. It also claims to allow direct code correlation to optimize both hardware and software. The Network Debugger is a tool that allows developers to use the wireless Gecko MCUs to trace network traffic and packets throughout nodes on the network.
EFM32 is supported by multiple third-party real-time operating systems (RTOS) and software libraries, drivers, and stacks, like Micro-Controller Operating Systems (uC/OS) (Micrium), FreeRTOS, GNU Chopstx, embOS (Segger), and mbed OS (ARM). In October 2016, Silicon Labs acquired Micrium. In addition to IoT-critical middleware stacks such as TCP/IP, Micrium provides a RTOS that enables embedded IoT designs to handle task management in real-time.

### Getting started

EFM32 starter kits are available for evaluation purposes and to gain familiarity with the portfolio. Each starter kit contains sensors and peripherals that help illustrate device capabilities as well as serve as a starting point for application development. Using Simplicity Studio software also grants access to kit information and the ability to program the starter kit with demos and code examples. Most starter kits contain EEPROM with board IDs to enable automated setup when a kit is connected to Simplicity Studio IDE.
Some of the EFM32 kits are ARM mbed-enabled. These kits support ARM mbed out of the box, and are supported in Simplicity Studio development tools and community forums.
Featuring the Giant Gecko MCU with 1024KB of Flash and 93 GPIO, the EFM32 Giant Gecko Starter Kit, shown below, is one of the latest starter kit offerings in the EFM32 family.
Other EFM32 starter kits include:
| Starter kit (STK) | Part number | Main STK features | LCD type | Battery power option |
| Pearl Gecko STK (also used for Jade Gecko MCU) | SLSTK3401A | USB J-Link Debugger, relative humidity and temperature sensor, 2 user buttons | Memory LCD | Yes |
| Wonder Gecko STK | EFM32WG-STK3800 | USB J-Link Debugger, 32 MB Flash, 20-pin expansion header, ambient light sensor, LC metal sensor, 2 user buttons | 160 segment LCD | Yes |
| Giant Gecko STK | EFM32GG-STK3700 | USB J-Link Debugger, 32 MB Flash, 20-pin expansion header, ambient light sensor, LC metal sensor, 2 user buttons | 160 segment LCD | Yes |
| Leopard Gecko STK | EFM32LG-STK3600 | USB J-Link Debugger, 32 MB Flash, 20-pin expansion header, ambient light sensor, LC metal sensor, 2 user buttons | 160 segment LCD | Yes |
| Gecko STK | EFM32-G8XX-STK | USB J-Link Debugger, 20-pin expansion header, 2 user buttons and cap touch slider | 4x40 LCD | Yes |
| Tiny Gecko STK | EFM32TG-STK3300 | USB J-Link Debugger, LESENSE demo ready, light, LC, and touch sensors, 2 user buttons | 8x20 LCD | Yes |
| Happy Gecko STK | SLSTK3400A | USB J-Link Debugger, 20-pin expansion header, relative humidity and light sensor, 2 user buttons and 2 touch buttons | 128x128 pixel memory LCD | Yes |
| Zero Gecko STK | EFM32ZG-STK3200 | USB J-Link Debugger, 20-pin expansion header, 2 user buttons and 2 cap touch pads | Ultra low power 128x128 pixel memory LCD | Yes |

## Energy modes

The EFM32 is designed to achieve a high degree of autonomous operation in the low-energy modes. Multiple ultralow energy modes are available for tuning energy usage and significantly reducing power consumption.
| Energy Mode | State Designation | Characteristics | Power Consumption |
| Active/Run | EM0 | The ARM Cortex-M CPU fetches and executes instructions from Flash or RAM, and all low-energy peripherals can be enabled. EFM32 can quickly enter one of the low-energy modes from this mode, effectively halting the CPU and Flash memory. After a wake up, all low-energy modes return to this mode within 2 μs, making it easy to enter the low-energy mode and return to 32-bit performance when needed. | 114 μA/MHz |
| Sleep | EM1 | The clock to the CPU is disabled, effectively reducing the energy needed for operation while maintaining all low-energy peripheral (including Flash and RAM) functionality. By using the peripheral reflex system (PRS) and DMA, the system can collect and output peripheral data without CPU intervention. This autonomous behavior enables the system to remain in this mode for long periods of time, thereby increasing battery life. Additionally, the low-leakage RAM ensures full data retention. | 48 μA/MHz |
| Deep Sleep | EM2 | EFM32 MCUs offer a high degree of autonomous operation while keeping energy consumption low. The high frequency oscillator is turned off in this mode; however, a 32 kHz oscillator and the real-time clock are available for the low energy peripherals. Since the ARM Cortex-M CPU is not running in this mode, the MCU performs advanced operations in sleep mode. The peripherals run autonomously due to intelligent interconnection of the modules and memory, the wake-up time to EM0 is only 2 μs and low-leakage RAM ensures full data retention in this mode. | 0.9 μA |
| Stop | EM3 | This mode tailors the energy consumption of the EFM32 to maintain a very short wake-up time and respond to external interrupts. In this mode the low-frequency oscillator is disabled, but the low-leakage RAM ensures full data retention and the low-power analog comparator or asynchronous external interrupts can wake-up the device. | 0.5 μA |
| Shutoff | EM4 | In this deepest energy mode available, the EFM32 MCU is completely shut down, and the only way to wake up is with a reset. This energy mode enables further energy savings for applications that do not require a RTC or RAM retention. This mode is available in select low-energy peripherals, including power-on reset and external interrupts | 20 nA |

### Core technology

EFM32 products can maintain processing with reduced energy consumption. In Active/Run mode, the EFM32 has a base current consumption of 114 μA/MHz while running real-time code with a clock speed of 32 MHz at 3V of power. The EFM32 has a maximum clock speed of 48 MHz, which caps the total power consumption.
Energy consumption of the EFM32 can be reduced by configuring the attached peripherals. In the Active/Run mode, the CPU may interact with all peripherals. Interaction with high-frequency peripherals, those requiring a clock in the megahertz range, can be done in the Active/Run mode and the Sleep mode. Interaction with low-speed peripherals, those requiring a lower-speed clock such as 32 kilohertz, may be done in the Deep Sleep mode and any higher mode. Asynchronous peripherals, those that do not require a clock, may be interacted with in Stop mode and any higher mode.
To further reduce energy consumption, the timing of the interactions of the EFM32 may be grouped together so that the CPU is woken to interact with the peripherals and then, when the interactions and processing has completed, the EFM32 may be put into one of the lower energy modes. The features of Autonomous Peripherals, Peripheral Reflex System, and LESENSE may also be drawn upon to keep the EFM32 in lower energy modes.
* The Autonomous Peripheral feature ensures that peripheral devices can operate without waking up the CPU. This feature provides direct memory access (DMA) support with up to 16 channels, depending on the EFM32.
* The Peripheral Reflex System may be configured to work with the Autonomous Peripherals by executing tasks without CPU intervention.
* LESENSE is an EFM32 feature that allows the MCU to monitor up to 16 sensors in Deep Sleep mode. The EFM32 can do resistive sensing, capacitive sensing, and inductive sensing in this mode.
When needed, the EFM32 can wake up from Deep Sleep mode and engage the CPU in less than two microseconds.

### Application examples of low-energy Gecko technology

ADC sensing applications (temperature): In a demonstration with the Wonder Gecko MCU and a standard temperature thermistor, setting the ADC to sample the thermistor every second (at 1 Hz rate) equates to 1.3 μA average current. This would equate to a 220 mA-hr CR2032 coin cell battery lasting for close to 20 years. This same application could be implemented with LESENSE and preset thresholds, instead of using regular time interval ADC samples. In the case of LESENSE and irregular triggers, a threshold trigger rate of 1 Hz would allow the EFM32 to stay in a low energy mode unless the sensor reading crosses a preset threshold.
Low-energy pulse counter for metrology: Using the low energy pulse counter, the EFM32 could also be used in (pulsed) sensing applications. For example, with a magnetic Hall effect sensor, the EFM32 can convert rotational position to quantified speed or flow rate. This is a common situation in water or heat flow metering. The EFM32 can be used in Stop mode (EM3) to count pulses and calculate flow. Operating power consumption in this state could be as low as 650 nA (3Vdc).

## History

The EFM32 microcontroller family is one of the two products of Energy Micro. The other being EFR4D Draco SoC radios.
* In April 2008, Energy Micro announced that it licensed the ARM Cortex-M3 core.
* In October 2009, Energy Micro announced the EFM32 Gecko MCU family (EFM32G series) based on Cortex-M3.
* In December 2009, Energy Micro announced development kit for its EFM32 Gecko MCU family.
* In February 2010, Energy Micro announced EFM32 Tiny Gecko MCUs were announced.
* In March 2010, Energy Micro announced the EFM32 Tiny Gecko MCU family (EFM32TG series) based on Cortex-M3.
* In March 2010, Energy Micro announced low cost EFM32 Gecko starter kit.
* In July 2010, Energy Micro announced the EFM32 Giant Gecko MCU family (EFM32GG series) based on Cortex-M3 for memory heavy applications.
* In November 2010, Energy Micro announced the Simplicity Studio development suite.
* In March 2011, Energy Micro announced the EFM32 Zero Gecko MCU family (EFM32ZG series) based on Cortex-M0+ for low cost applications.
* In September 2011, Energy Micro announced the EFM32 Leopard Gecko MCU family (EFM32LG series) based on Cortex-M3.
* In April 2013, Energy Micro announced the EFM32 Wonder Gecko MCU family (EFM32WG series) based on ARM Cortex-M4F.
* In June 2013, Silicon Labs announced the intention to acquire Energy Micro.
* In July 2013, Silicon Labs completed the acquisition of Energy Micro.

## Development tools

The Gecko mbed compiler is available at: https://developer.mbed.org/compiler/#nav:/;