EFM32
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.
Geschichte
BearbeitenDie 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
BearbeitenDie 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
BearbeitenDie 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.
GPIO
BearbeitenDie 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
BearbeitenUm 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.
Programmierung
BearbeitenDer 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.
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 |
Weblinks
BearbeitenEinzelnachweise
Bearbeiten- ↑ silabs.com: EFM32 32-bit Microcontrollers (MCUs) ( vom 28. Februar 2015 im Internet Archive) (englisch)
- ↑ Energy Micro Licenses Cortex-M3 Processor
- ↑ Silicon Labs kündigt Übernahme von Energy Micro an ( vom 11. Juni 2013 im Internet Archive)
- ↑ Press Release EFM32 Zero Gecko Familie ( vom 14. Oktober 2013 im Internet Archive)
- ↑ Silicon Labs kündigt Simplicity Studio Version 2 an ( vom 31. August 2014 im Internet Archive)
- ↑ Silicon Labs kündigt Simplicity Studio Version 3 an ( vom 21. März 2015 im Internet Archive)
- ↑ silabs.com: Silicon Labs Introduces World’s Most Energy-Friendly USB Microcontrollers ( vom 20. Juli 2015 im Webarchiv archive.today) (englisch)
- ↑ Press Release EFM32 Pearl and Jade Gecko Familie ( vom 9. März 2016 im Internet Archive)
- ↑ EFM32 Zero Gecko Familie
- ↑ EFM32 Happy Gecko Familie
- ↑ EFM32 Tiny Gecko Familie
- ↑ EFM32 Gecko Familie
- ↑ EFM32 Leopard Gecko Familie
- ↑ EFM32 Giant Gecko Familie
- ↑ EFM32 Jade Gecko Familie
- ↑ EFM32 Wonder Gecko Familie
- ↑ EFM32 Pearl Gecko Familie