Silicon Labs EFM32/EFR32/EZR32

Silicon Labs’s EFM32/EFR32/EZR32 MCUs implementation.

Support for Silicon Labs EFM32/EFR32/EZR32 CPUs.

This module contains all code and definitions for the Silicon Labs EFM32/EFR32/EZR32 MCUs. It uses the Gecko SDK (vendor library) for the peripheral drivers.

Supported Peripherals

The following peripherals are supported (depends on microcontroller):

  • ADC
  • CPUID
  • DAC
  • Flash page
  • GPIO
  • HW RNG
  • I2C
  • Power Management
  • PWM
  • RTC
  • RTT
  • SPI
  • Timer
  • UART (including low-power)

Clock Configuration

By default the microcontroller will run on the internal RC-oscillator. If an external crystal is available, you can configure it to use by setting CLOCK_HF=cmuSelect_HFXO. The same applies for CLOCK_LFA, CLOCK_LFB and CLOCK_LFE using cmuSelect_LFXO.

If the internal RC-oscillator is not used, it will be disabled.

Refer to the reference manual of the specific microcontroller for the specifics.

EMU and CMU Configuration

The Energy Management Unit (EMU) and Clock Management Unit (CMU) are initialized using default values provided by the Gecko SDK. You can override any of the following defaults to use other values:

  • CMU_HFXOINIT
  • CMU_LFXOINIT
  • EMU_DCDCINIT
  • EMU_EM23INIT
  • EMU_EM4INIT

Refer to the Gecko SDK for more information about these values.

Low-power Configuration

The EFM32/EFR32/EZR32 MCUs have support for low-power peripherals. Support is enabled by default, but can be disabled by setting LOW_POWER_ENABLED=0.

CPU_DEFAULT_IRQ_PRIO

ARM Cortex-M specific CPU configuration.

1
(1U)
CPU_IRQ_NUMOF
1
(EXT_IRQ_COUNT + 1)
CPU_FLASH_BASE
1
(FLASH_BASE)
FLASHPAGE_SIZE

Flash page configuration.

1
(FLASH_PAGE_SIZE)
FLASHPAGE_NUMOF
1
(FLASH_SIZE / FLASH_PAGE_SIZE)