EFM32

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Zwei EFM32-Mikrocontrollerchips im QFN-Chipgehäuse
System Design Kit mit Energy Micro Woder Gecko

EFM32 ist eine Mikrocontrollerfamilie, die von der Firma Silicon Laboratories angeboten wird. Die EFM32 sind 32-Bit-Mikrocontroller verschiedener Unterfamilien, die auf der Arm Cortex-M3-Architektur basieren. Speziellen Fokus hat man bei der Entwicklung auf den Energieverbrauch gelegt. Dies hat auch die Namensgebung beeinflusst: EFM steht für englisch Energy Friendly Microcontrollers.

Die EFM32 Mikrocontrollerfamilie[1] wurde ursprünglich von der Firma Energy Micro entwickelt. Mitte 2013 wurden Energy Micro von Silicon Laboratories übernommen. In folgender Tabelle sind die einzelnen Meilensteine aufgelistet.

Datum Ankündigung
April 2008 Energy Micro kündigt an, dass sie Arm Cortex-M3 Core lizenziert haben.[2]
Oktober 2009 Ankündigung der EFM32-Gecko-MCU-Familie
Dezember 2009 Entwicklungskit für EFM32-Gecko-MCU-Familie
Februar 2010 EFM32 Tiny-Gecko-MCU-Familie
Juli 2010 EFM32 Giant-Gecko-MCU-Familie
November 2010 Ankündigung der Entwicklungsumgebung Simplicity Studio
September 2011 EFM32 Leopard-Gecko-MCU-Familie
April 2013 EFM32 Wonder-Gecko-MCU-Familie
Juni 2013 Silicon Laboratories kündigt Übernahme von Energy Micro an[3]
Oktober 2013 EFM32 Zero-Gecko-MCU-Familie[4]
Juni 2014 Simplicity Studio V2[5]
Februar 2015 Simplicity Studio V3[6]
Mai 2015 EFM32 Happy-Gecko-MCU-Familie[7]
Dezember 2015 EFM32 Pearl-and-Jade-Gecko-MCU-Familie[8]

Prozessor-Architektur

[Bearbeiten | Quelltext bearbeiten]

Die EFM32-Mikrocontroller-Familie ist in verschiedene Unterfamilien eingeteilt, welche auf der Arm Cortex-M-Architektur basieren. Die nachfolgende Tabelle gibt einen Überblick der Prozessoren und EFM32-Familien.

Arm Cortex-M-Version EFM32-Familie
Arm Cortex-M0+ EFM32 Zero Gecko (EFM32ZG)[9],
EFM32 Happy Gecko (EFM32HG)[10]
Arm Cortex-M3 EFM32 Tiny Gecko (EFM32TG)[11],
EFM32 Gecko (EFM32G)[12],
EFM32 Leopard Gecko (EFM32LG)[13],
EFM32 Giant Gecko (EFM32GG)[14],
EFM32 Jade Gecko (EFM32JG)[15]
Arm Cortex-M4F EFM32 Wonder Gecko (EFM32WG)[16],
EFM32 Pearl Gecko (EFM32PG)[17]

Interne Peripherie

[Bearbeiten | Quelltext bearbeiten]

Die EFM32-Mikrocontroller besitzen je nach Typ unterschiedliche interne Peripherieeinheiten. Üblich sind unter anderen GPIO, Analog-Digital-Umsetzer, Digital-Analog-Umsetzer, Timer, Watchdog, UART, serielle synchrone Schnittstellen wie I²C- und Serial Peripheral Interface (SPI) und eine Echtzeituhr (RTC). Manche dieser Peripherieeinheiten können autonom ohne Interaktion mit dem Mikrocontrollerkern verwendet werden, was unter anderem die Leistungsaufnahme reduziert.

Die Ein- bzw. Ausgabe von digitalen Informationen ist bei einem Mikrocontroller eine grundlegende Aufgabe (EVA-Prinzip). In der Regel sind bei Mikrocontrollern die digitalen Ein- und Ausgänge gemultiplext. Das heißt, dass verschiedene Funktionen an ein und denselben Pin herausgeführt sind und die letztendlich verfügbare Funktion über Kontroll-Register selektiert werden kann. Auf diese Weise werden verschiedene digitale I/O-Funktionen, aber auch Modul-Funktionen (wie beispielsweise UART-Signale, I2C-Signale, SPI-Signale, PWM-Signale, …) an den Pins des MCU-Gehäuses verfügbar gemacht. Durch diese Flexibilität lässt sich derselbe Mikrocontroller in verschiedensten Applikationen verwenden und dessen Pinning entsprechend flexibel der Applikation anpassen.

Bei der EFM32-Familie können zudem noch der Betriebsmodus des I/Os (tristate, push-pull, open-drain, pull-up resistor, pull-down resistor), die Treiberfähigkeit der digitalen Ausgänge sowie das Interrupt-Verhalten eingestellt werden. Außerdem kann die digitale Funktionalität komplett deaktiviert werden, so dass der Pin als analoger Ein- oder Ausgang genutzt werden kann.

Analog-Digital-Umsetzer

[Bearbeiten | Quelltext bearbeiten]

Um die Mikrocontroller in Sensor-Applikationen einsetzen zu können, sind in vielen Chips auch entsprechende analoge Peripherie-Module enthalten. Ein wichtiges Modul ist hier der Analog-Digital-Umsetzer (englisch Analog to Digital Converter, ADC). Bei einigen EFM32-Mikrocontrollern ist deswegen ein Analog-Digital-Umsetzer integriert. Die Auflösung des Wandlers ist beim EFM32 programmierbar – es kann eine Auflösung von 6 bit, 8 bit oder 12 bit gewählt werden. Zudem besteht die Möglichkeit, durch Hardware unterstützte Überabtastung die Auflösung noch zu verbessern. Durch entsprechende Wahl der Auflösung kann die Wandlungszeit optimiert und so die mittlere Stromaufnahme der Applikation angepasst werden. Bei vielen Mikrocontrollern wird die für den Analog-Digital-Umsetzer verwendete Referenzspannung separat im Datenblatt spezifiziert. Nicht so beim EFM32 – hier ist der Einfluss der integrierten Referenz bereits in der Analog-Digital-Umsetzer-Spezifikation enthalten.

Der Software-Programmierer hat bei der EFM32-Mikrocontroller-Familie die Möglichkeit, entweder in Assembler oder in C zu programmieren. Heutzutage geschieht die Software-Entwicklung allerdings fast nur noch in C. Eine unvollständige Liste von C-Compiler-Entwicklungsumgebungen ist in folgender Tabelle gelistet.

Liste der verfügbaren C-Compiler (unvollständige Auswahl)
IDE Name Hersteller Erhältliche Versionen
Simplicity Studio Silicon Labs
MDK-ARM Microcontroller Development Kit Keil
IAR Embedded Workbench IAR Systems
TrueSTUDIO for ARM Atollic
Crossworks for ARM Rowley Associates
Commons: EFM32 – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]