EFM32

Wechseln zu: Navigation, Suche
Das EFM32 Logo, ein Gecko, © energymicro.com
EFM32 sind Energie freundliche (sparende) Mikrocontroller von Silicon Labs.

Sie basieren auf ARM Cortex M0+, M3 und M4 Kernen.
Der Schwerpunkt liegt auf einem möglichst kleinen Stromverbrauch der uC.

EFM32 Gecko Microcontroller Familie[Bearbeiten]

Übersicht der EFM32 Familien, © energymicro.com

EFM32 = Energy Friendly Microcontroller 32Bit vom Norwegischem Chiphersteller Energy Micro.

Seit dem Juli 2013 gehören die EFM32 zu Silicon Labs, welche Energy Micro übernommen haben. [1] [2]

Die 32Bit Mikrocontroller von Energy Micro basieren auf ARM Cortex und sind vor allem für stromsparende Anwendungen wie:

  • Strom-, Gas- und Wasserzähler
  • in der Industrie- und Gebäudeautomatisierung
  • Alarm- und Sicherheitstechnik sowie in tragbaren Anwendungen für die Medizintechnik bzw. den Fitnessbereich.

Was bedeutet das in Zahlen?

  • Max. Verbrauch im aktiven Modus bei 32MHz: 5mA
  • Verbrauch im Sleep Modus mit Funktionen wie Displayansteuerung oder Sensorüberwachung: 1-2µA (inkl. RTC, Brown Out, RAM aktiv)
  • Ruhestrom: 20nA

Energy Micro behauptet, daß Benchmark-Messungen zusammen mit den führenden, stromsparenden MCUs am Markt ergaben,:

  • dass EFM32 Microcontrollerdie EFM32-Mikrocontroller nur ein Viertel der Energie benötigen, die von anderen 8-, 16- oder 32-Bit-MCUs verbraucht wird.

Die Produkte werden auch Gecko genannt, analog zu den Reptilien, die nur 10% der Energie von gleichgroßen Säugetieren verbrauchen.

EFM32 Familien[Bearbeiten]

Datenblätter zu allen EFM32
Broschüre mit allen EFM32
Folgende Gecko-Familien sind verfügbar:
(Fett Änderungen zu vorheriger Familie)

Cortex M0+[Bearbeiten]

Zero Gecko

  • -40 to 85 ºC, Single power supply 1.85 to 3.8 V
  • 4-32KB Flash, 2-4KB RAM, 24pin - 48pin Packages, 17-37 GPIO, 16 ext. Interrupt, Peripheral Reflex System
  • LESENSE (Low Energy Sensor Interface), 2-pin SWD interface, Pre-Programmed Serial Bootloader,
  • 1x USART, 1x LEUSART, 1x I2C, IDAC (digital zu Analog Stromsenke/Quelle)
  • 2x 16bit Timer, 2x 3 Compare/Capture/PWM Channels, 1x 24bit Real Time Counter, 1x Pulse Counter, Watchdog, Power-on Reset, Brown-Out Detector

nicht alle haben :

  • 1x 2-4 Kanal 12 Bit ADC 1M Sample, On Chip Temperatursensor, 2-5 Analog Comparator

Cortex M3[Bearbeiten]

EFM32 Cortex M3 Reference Manual

Tiny Gecko - Reference Manual Tiny Gecko

  • -40 to 85 ºC, Single power supply 1.85 to 3.8 V
  • 4-32KB Flash, 2-4KB RAM 24pin - 64pin Packages, 17-56 GPIO, 16 ext. Interrupt, Peripheral Reflex System, 8 Channel DMA
  • LESENSE (Low Energy Sensor Interface), 2-pin SWD interface, Pre-Programmed Serial Bootloader,
  • 1-2x USART, 1x LEUSART, 1x I2C
  • 2x 16bit Timer, 2x 3 Compare/Capture/PWM Channels, 1x 16bit LETIMER (Low Energy), 1x 24bit Real Time Counter, 1x Pulse Counter, Watchdog, Power-on Reset, Brown-Out Detector

nicht alle haben :

  • AES, 1x 2-8 Kanal 12bit ADC 1M Sample, On Chip Temperatursensor, 4-16 Analog Comparator, 1-2x 12bit Rail-to-rail DAC, 3x OPAMP, Integrated LCD Controller (bis 8×20 Segmente)

Gecko - Reference Manual Gecko

  • -40 to 85 ºC, Single power supply 1.85 to 3.8 V
  • 16-128KB Flash, 8-16KB RAM, 24pin - 64pin Packages, 17-56 GPIO, 16 ext. Interrupt, Peripheral Reflex System, 8 Channel DMA
  • LESENSE (Low Energy Sensor Interface), 2-pin SWD interface, Pre-Programmed Serial Bootloader,
  • 2-3x USART, 1-2x LEUSART, 1x I2C, 1x 4-8 Kanal 12bit ADC 1M Sample, On Chip Temperatursensor, 1-2x 12bit Rail-to-rail DAC, 5-16 Analog Comparator
  • 2-3x 16bit Timer, 2-3x 3 Compare/Capture/PWM Channels, 1x 16bit LETIMER (Low Energy), 1x 24bit Real Time Counter, 1-3x Pulse Counter, Watchdog, Power-on Reset, Brown-Out Detector

nicht alle haben :

  • AES, 3x OPAMP, Integrated LCD Controller (bis 4*40 Segmente), External Bus Interface (EBI)

Leopard Gecko - Reference Manual Leopard Gecko

  • -40 to 85 ºC, Single power supply 1.85 to 3.8 V
  • 64-256KB Flash', 32KB RAM, 64pin - 120pin Packages, 50-93 GPIO, 16 ext. Interrupt, Peripheral Reflex System, 12 Channel DMA
  • LESENSE (Low Energy Sensor Interface), 2-pin SWD interface, Pre-Programmed Serial Bootloader, 3x OPAMP, 4-16 Analog Comparator
  • 3x USART, 2x LEUSART, 1x I2C, 1x 8 Kanal 12bit ADC 1M Sample, On Chip Temperatursensor, 2x 12bit Rail-to-rail DAC, 5-16 Analog Comparator
  • 4x 16bit Timer, 4x 3 Compare/Capture/PWM Channels, 1x 16bit LETIMER (Low Energy), 1x 24bit Real Time Counter, 3x Pulse Counter, Watchdog, Power-on Reset, Brown-Out Detector, AES

nicht alle haben :

  • Integrated LCD Controller (bis 8*36 Segmente), External Bus Interface (EBI), USB 2.0 LOW/Full Speed HOST/DEVICE/OTG, TFT Controller mit Direct Drive

Giant Gecko - Reference Manual Giant Gecko

  • -40 to 85 ºC, Single power supply 1.85 to 3.8 V
  • 512-1024KB Flash, 128KB RAM, 64pin - 120pin Packages, 50-93 GPIO, 16 ext. Interrupt, Peripheral Reflex System, 12 Channel DMA
  • LESENSE (Low Energy Sensor Interface), 2-pin SWD interface, Pre-Programmed Serial Bootloader, 3x OPAMP, 4-16 Analog Comparator
  • 3x USART, 2x LEUSART, 1x I2C, 1x 8 Kanal 12bit ADC 1M Sample, On Chip Temperatursensor, 2x 12bit Rail-to-rail DAC, 5-16 Analog Comparator
  • 4x 16bit Timer, 4x 3 Compare/Capture/PWM Channels, 1x 16bit LETIMER (Low Energy), 1x 24bit Real Time Counter, 3x Pulse Counter, Watchdog, Power-on Reset, Brown-Out Detector, AES

nicht alle haben :

  • Integrated LCD Controller (bis 8*36 Segmente), External Bus Interface (EBI), USB 2.0 LOW/Full Speed HOST/DEVICE/OTG, TFT Controller mit Direct Drive

Cortex M4[Bearbeiten]

Wonder Gecko

  • ARM Cortex-M4 mit FPU (Gleitkommaeinheit)
  • -40 to 85 ºC, Single power supply 1.85 to 3.8 V
  • 64-256KB Flash, 32KB RAM, 64pin - 120pin Packages, 50-93 GPIO, 16 ext. Interrupt, Peripheral Reflex System, 12 Channel DMA
  • LESENSE (Low Energy Sensor Interface), 2-pin SWD interface, Pre-Programmed Serial Bootloader, 3x OPAMP, 4-16 Analog Comparator
  • 3x USART, 2x LEUSART, 2x I2C, 1x 8 Kanal 12bit ADC 1M Sample, On Chip Temperatursensor, 2x 12bit Rail-to-rail DAC, 4-16 Analog Comparator
  • 4x 16bit Timer, 4x 3 Compare/Capture/PWM Channels, 1x 16bit LETIMER (Low Energy), 1x 24bit Real Time Counter, 3x Pulse Counter, Watchdog, Power-on Reset, Brown-Out Detector, AES

nicht alle haben :

  • Integrated LCD Controller (bis 8*36 Segmente), External Bus Interface (EBI), USB 2.0 LOW/Full Speed HOST/DEVICE/OTG, TFT Controller mit Direct Drive

EFR[Bearbeiten]

Übersicht der EFR Familien, © energymicro.com

EFR steht für Energy Friendly Radios. Was soviel bedeutet wie energiesparende Funk Controller.

Diese Funk Controller sind noch nicht erhältlich, erscheinen voraussichtlich im Q4 2013.

http://www.energymicro.com/draco/4

Es gibt bereits eine Broschüre dazu.

EFM32 Features[Bearbeiten]

Übersicht Peripherie EFM32

Die Farben bedeuten die Verfügbarkeit einer Funktion im den verschiedenen Energiemodie (EM=Energy Mode), die auch unten dargestellt sind.

Das heißt im Energy Mode EM0 (aktiver Modus)sind alle Funktionen aktiv. Im Energy Mode EM2 (Deep Sleep Modus) sind alle Funktionen bis auf die grün markierten Funktionen aktiv.

Geringer Stromverbrauch im Aktivmodus[Bearbeiten]

EFM32-MCUs wurden so entwickelt, dass sie den Stromverbrauch im Aktivmodus erheblich senken.

Bei 32 MHz und 3 V verbraucht die MCU nur 150 µA/MHz bei der Code-Ausführung aus dem internen Flash-Speicher.

Der Stromverbrauch bleibt über die Temperatur, VDD und auch über die verschiedenen Flash und RAM Varianten stabil (siehe Datenblätter).

Effiziente CPU (ARM Cortex)[Bearbeiten]

Die EFM32-Gecko-MCUs basieren auf ARMs 32-Bit-Cortex-M3-Prozessor-Core.

Die Cortex-M3-Architektur wurde für Anwendungen mit geringer Stromaufnahme und schnellem Ansprechverhalten entwickelt.

Sie bietet eine wesentlich effizientere Datenverarbeitung als 8- und 16-Bit-CPUs.

Die Tasks werden daher mit weniger Taktzyklen ausgeführt, was die Verweildauer im Aktivmodus erheblich reduziert.

ARM Cortex M3 bietet 1.25DMIPS/MHz, d.h. er benötigt nur ca. 1/4 der Taktzyklen eines MSP430 und verbraucht somit weniger Energie.

Zusammen mit dem geringen Stromverbrauch im Aktivmodus von 150µA/MHz verbaucht der EFM32 daher signifkant weniger Energie.

Schnelle Wake-up-Zeit[Bearbeiten]

EFM32-MCUs minimieren die ineffiziente Wake-up-Zeitdauer von den Deep-Sleep-Modi in den Aktivmodus.

Diese Zeitperiode lässt sich nicht vernachlässigen, da Strom sparende Systeme ständig zwischen aktiven und Sleep-Modi hin- und herschalten.

EFM32-MCUs verringern die Wake-up-Zeit aus dem Deep Sleep auf 2 µs und gewährleisten damit, dass so wenig Energie wie möglich vor der eigentlichen Task-Verarbeitung durch die CPU verbraucht wird.

Niedriger Standby-Stromverbrauch[Bearbeiten]

EFM32-MCUs kombinieren eine Ultra-Low-Power-Technologie mit einem ausgereiften Power Management und verringern so den Energieverbrauch im Standby-Modus, während gleichzeitig grundlegende Funktionen ausgeführt werden können. Der Deep-Sleep-Modus ermöglicht einen RAM- und CPU-Erhalt, bietet Power-on-Reset und Brown-out-Erkennung, einen Echtzeit-Zähler und verbraucht nur 900 nA Strom. Im Shutoff-Modus sinkt die Stromaufnahme auf nur 20 nA.

Eigenständiger Peripheriebetrieb[Bearbeiten]

Neben dem niedrigsten Energieverbrauch im Aktiv- und Sleep-Modus, kann die EFM32-Peripherie im Stromsparmodus arbeiten, ohne dabei die CPU zu nutzen. Mithilfe autonomer Peripherie kann eine Anwendung den Energieverbrauch verringern, während weiterhin wichtige Aufgaben ausgeführt werden.

Beispiele:

  • Die Low Energy UART überträgt im Deep Sleep Mode Daten mit Hilfe der DMA in den RAM.
  • Der ADC kann mit Hilfe des PRS und der DMA ohne Nutzung der CPU Daten wandeln

PRS - Peripherie-Reflexsystem[Bearbeiten]

Das Peripherie-Reflexsystem der EFM32-MCUs ermöglicht die direkte Verbindung einer Peripherie an eine andere, ohne dabei die CPU mit einzubinden. Damit kann eine Peripherie-Einheit Signale erzeugen, die eine andere Einheit verarbeitet und darauf reagiert – während die CPU im Sleep-Modus verweilt. Application Note zum PRS

Übersicht der Low Power Modi

Optimierte Low Power Modi[Bearbeiten]

EFM32-MCUs bieten fünf effiziente Energieverbrauchsmodi, die dem Entwickler Flexibilität bei der Optimierung seines Systems hinsichtlich höchster Leistungsfähigkeit und längster Batterielebensdauer bieten.

Es gibt eine umfassende University Program Dokumentation über die Energy Modes.


Äußerst effiziente Peripherie[Bearbeiten]

EFM32-MCUs bieten Peripherie, die einen Betrieb mit niedriger Stromaufnahme unterstützt. Damit erhöht sich die Batterielebensdauer im Gegensatz zu anderen 8-, 16- und 32-Bit-Lösungen um das Vierfache.

Die Peripherie umfasst unter anderem:

  • LCD-Controller zur Ansteuerung von bis zu 4 x 40 Segmenten mit nur 0,55 uA Stromaufnahme
  • Low-Energy-UART für Datenkommunikation bei 32 kHz, wobei nur 100 nA Strom verbraucht werden
  • 12-Bit-ADC, der bei 12Bit und 1MSPS nur 350 uA verbraucht - bei 6Bit und 1KSPS sind es nur 500 nA - es ist sogar möglich bei 12Bit und 1Ksamples auf 20µA Durchschnittsstromverbrauch zu kommen - siehe Application Note
  • Analog-Komparator mit nur 150 nA Stromaufnahme
  • Hardwarebeschleuniger für 128/256-Bit-AES-Verschlüsselung-/Dekodierung in nur 54/75 Zyklen

Low Energy Sense Interface[Bearbeiten]

Das sogenannte "Low Energy Sensor Interface", LESENSE, ermöglicht eine autonome Überwachung von bis zu 16 externen Sensoren im Deep Sleep Mode (EM2).

Da LESENSE Funktionen unabhängig von der CPU des EFM32 übernimmt, können Regelalgorithmen mit einem Stromverbrauch von Mikroampere realisiert werden. Über LESENSE können verschiedenste analoge Sensoren wie kapazitive, induktive oder ohmsche Sensoren überwacht werden. Anwendungsbeispiele für LESENSE sind zum Beispiel die Unterstützung für "Touch-Pad"- oder "Touch-Slider"-Funktionen oder Rotationssensoren für Gas- und Wasserzähler. Beispiele sind im Simplicity Studio enthalten (Schaltungskonzepte und Software).


Backup Power Domain[Bearbeiten]

Die Energy Micro Mikrocontroller der Leopard Gecko, Giant Gecko sowie Wonder Gecko Serie enthalten eine sogenannte Backup Power Domain. Auf diese kann man auch noch im EM4 (bei einem Stromverbrauch von ca. 400nA) zugreifen. Dieser Bereich besteht aus einem Backup Realtime Clock (BURTC) sowie 512 byte Speicher. Dieser Bereich wird durch eine seperate Speisung betrieben. Auf den Energy Micro STK Boards ist zum Beispiel ein 30mF Kondensator in Serie mit einem 100 Ohm Widerstand an den Backup Power Spannungseingang (BU_VIN) angeschlossen. Laut Energy Micro (STK_3700 User Manual S.9) läuft der Mikrocontroller so im EM4 rund 8 Stunden. Dabei bleiben die Daten im Backup Power Domain Speicher erhalten und der RTC zählt.

Der Backup Power Domain Speicher (Retention Register) ist in 128 32 Bit Register aufgeteilt (BURTC_RET[0:127]_REG). Es kann in allen Energy Modes auf diese Register zugegriffen werden (EM0-EM4). Um Energie zu sparen, können diese auch deaktiviert werden (BURTC_POWERDOWN).

Der BURTC wird defaultmäsig am ULFRCO "angeschlossen" , für eine höhere genauigkeit (höhere Frequenzen) kann der BURTC aber auch mit dem LFRCO oder dem LFXO bis in den EM4 geclockt werden. Es handelt sich dabei um einen 32bit Counter.

Dokumente dazu:
Online:
- Application Note 0041 Backup Power Domain

im Simplicity Studio:
- EFM32GG-STK3700 User Manual Seite 9, 5.7 Backup Domain Capacitor
- Code Beispiel (Uhr implementation mit BURTC) für EFM32LG-STK3600, EFM32GG-STK3700, EFM32WG-STK3800
unter Examples/entsprechendes Board/burtc
- Code Beispiel (Kalender + Uhr implementation mit BURTC) für Giant Gecko Development Kit (EFM32GG-DK3750)
unter Application Note/AN0041 Backup Power Domain/Source/backup_rtc_clock_dk...


Clock Quellen[Bearbeiten]

Die Energy Micro Mikrocontroller bieten viele verschiedene Clock Quellen.

Quarz Oszilatoren:
- Ultra Low Frequency Crystal Oscillator (ULFRCO) 1 kHz
-Low Frequency Crystal Oscillator (LFXO) 32.768 kHz
-High Frequency Crystal Oscillator (HFXO) 32 MHz

RC Oszilatoren:
- High Frequency RC Oscillator (HFRCO) 1-28MHz
- Low Frequency RC Oscillator (LFRCO) 32.768kHz
- Auxiliary RC Oscillator (AUXHFRCO) 14MHz (nur für Debug/Trace/Flash programm und LESENCE Timing)

Dokumente dazu:
Online:
- Application Note 0016 zur Clock Wahl / Konfiguration
- Application Note 0004 zur Clock Management Unit
- Reference Manuals, Kapitel CMU - Clock Management Unit

im Simplicity Studio:
-- Code Beispiele zu div. Development Kits und Starter Kits
unter Application Note/AN0016 Clock Management Unit/Source/...

Software Tools[Bearbeiten]

Simplicity Studio[Bearbeiten]

Ein auf QT basierende Software-Konsole, die sofortigen Zugriff auf alle Tools, Dokumentation, Software und andere Ressourcen bietet, die für die Entwicklung von Systemen mit EFM32 erforderlich sind

– von Datenblättern und Manuals bis zu Code-Gernatoren und Quellcode für fast jede Application Note.

Die Icon-basierte Simplicity-Studio-Konsole konfiguriert sich automatisch, nachdem die Target-MCU aus einem Drop-Down-Menü ausgewählt wurde. Die Konsole stellt dem Entwickler dann nur die Entwicklungsoptionen zur Verfügung, die für seine gewählte MCU zur Verfügung stehen. Über eine einfache Add-/Remove-Funktion lässt sich die Konsole anschließend weiter konfigurieren.

Der Anwender bleibt ständig auf dem neuesten Wissensstand bleibt: Sobald Änderungen in der eigenen Entwicklungsumgebung durchgeführt werden. Der Anwender wird benachrichtigt, wenn z.B. neue Software-Versionen, Dokumentation, Firmware-Updates etc. eintreffen und hat über ein Protokoll (Change-Log) Zugriff auf alle Änderungen.

Simplicity Studio enthält folgende Dokumentation und Software, die bei online Zugriff aktualisiert werden:

Das Simplicity Studio vereint Energy Micros kostenlose Tools:

  • energyAware Commander: Tool mit Programmierschnittstelle zum Handling von Firmware-Upgrades für die EFM32-Entwicklungskits, des Programmierung der MCU und des Debug-Zugriffs.
  • energyAware Profiler: Tool zum Energy-Debugging (s.u.)
  • energyAware Designer: Pin-Konfigurationstool mit Code-/Projektgenerator, als Konfigurator der Peripherie
  • energyAware Battery: lässt die Lebensdauer der Batterie anhand der programmierten Software berechnen.

Download[Bearbeiten]

Simplicity Studio steht kostenlos als Download zur Verfügung.

- Download Simplicity Studio für Windows

- Forum und Download BETA Simplicity Studio für Mac und Linux

AEM - Überwachung des Energieverbrauchs[Bearbeiten]

Auf allen Starter Kits von Enerrgy Micro ist der Advanced Energy Monitor (AEM), ein Überwachungssystem für den Energieverbrauch, integriert.

Damit lässt sich der Stromverbrauch des Mikrocontroller auf dem STK oder noch viel besser der des Prototypen-Systems in Echtzeit messen.

energyAware Profiler[Bearbeiten]

Die zum AEM passende PC Software heisst energyAware Profiler. Mit Hilfe des Profiler können "Energy Bugs" identifiziert und beseitigt werden.

Die Strommessung über das AEM wird mit dem Program Counter, der über die Debugging Schnittstelle übermittelt wird, korrelliert.

Diese SW ermöglicht es, daß ein Klick in der dargestellten Stromkurve direkt zur korresspondierenden C-Code-Zeile führt.

In einem weiteren Fenster werden die Information aufkummuliert und als Energieverbrauch pro SW-Funktion dargestellt.

ARM Cortex Development Tools[Bearbeiten]

Es gibt viele ARM Cortex Development Tools (IDE,Compiler) welche verwendet werden können.

EmBlocks[Bearbeiten]

Seit Version 1.10 unterstützt die freie IDE EmBlocks auch EFM32 Mikrocontroller. Dies ist eine sehr kleine IDE (40 MB Download), welche auf Code::Blocks basiert.
Die Entwicklungsumgebung kann hier heruntergeladen werden.
Mit diesen Projekt Files kann man alle Beispiele von Energy Micro für das EFM32GG STK3700 sowie das EFM32GG STK3300 auch in EmBlocks öffnen, kompilieren und debuggen.
Hier findet man die Energy Micro Beispiele für das EFM32WG STK3800 Board
Der GNU ARM Compiler ist bereits integriert und funktioniert ohne weitere Einstellungen mit dem JLINK mit den Energy Micro uC.

Vorgehen:
1. Simplicity Studio herunterladen (Download Link), installieren, aktualisieren
2. EmBlocks herunterladen (Download Link), installieren
3. Project Files herunterladen (Download Link), entzippen, in das folgende Verzeichniss kopieren:
C:\Users\"Benutzername"\AppData\Roaming\energymicro\kits\EFM32GG_STK3700
C:\Users\"Benutzername"\AppData\Roaming\energymicro\kits\EFM32TG_STK3300

4. EmBlocks öffnen, dann auf File/open klicken, folgenden Pfad auswählen:
C:\Users\"Benutzername"\AppData\Roaming\energymicro\kits\EFM32GG_STK3700\examples\blink\emblocks\blink.ebp
C:\Users\"Benutzername"\AppData\Roaming\energymicro\kits\EFM32TG_STK3300\examples\blink\emblocks\blink.ebp

Dies öffnet das Beispielprogram blink.

5. EFM32GG STK3700/ EFM32GG STK3300 Board über USB an PC anschliessen
6. Compilieren ("Build" Knopf)
7. Debugg Modus starten ("Session Start/Stop)
8. Programm starten ("Continue" Button)

Nun wird das Beispielprogram blink ausgeführt.

Eclipse[Bearbeiten]

Im Simplicity Studio gibt es eine Application Note, die die Konfiguration von Eclipse und Gnu Tools beschreibt. Diese ist auch Online als pdf verfügbar

Es gibt eine University Program Anleitung für die Installation, (insbesondere unter Ubuntu) als pdf oder im Simplicity Studio.

Libraries[Bearbeiten]

Die EFM32-API hat zwei Schichten: Die unterste Schicht, genannt CMSIS ist eine direkte Zuordnung zu den Registern der Peripherals. CMSIS steht für Cortex Microcontroller Software Interface Standard und ist ein herstellerunabhängiger Standard von ARM. Basierend auf dem CMSIS-Standard hat Energy Micro hat eine Bibliothek für die Peripheriefunktionen, namens Emlib erstellt. Emlib bietet ein höheres Maß an Abstraktion und eine einfache Anwendungsschnittstelle. Ein Entwickler kann zwischen CMSIS und Emlib wählen oder sogar auf beiden Ebenen entwickeln.

Die Emlib ist Teil des Simplicity Studios über das auch auf die API-Dokumentation zugegriffen werden kann. Updates dieser Bibliothek werden auch über das Studio publiziert (wie z.B. Erweiterungen oder Bug Fixes).

Die Namenskonvention der Bilibiothek ist sehr stark an das Reference Manual des EFM32 angelehnt. Beispiel:

/* Start ADC Single Conversion */ ADC0->CMD = ADC_CMD_Singletstart;

Die Beispiele und der Referenzcode der Application Notes basieren auf der Emlib. Für jede Peripheriefunktion gibt es eine Application Note mit mindestens einem Softwarebeispiel. Somit wird der Umgang mit der Bilbiothek und der API schnell ersichtlich.

Middleware[Bearbeiten]

Unter Middleware versteht man vorgeschriebene USB, TCP/IP, CAN, File System Bibliotheken, welche benutzt (meist nicht kostenlos) werden können. Dadurch sinkt der Programmieraufwand.

Folgende Middleware ist im Simplicity Studio enthalten:

  • FAT File System Module - FatFs is a generic FAT file system module for small embedded systems
  • Simple graphic library - Energy Micro's Glib is an implementation of simple graphic functions
  • IEC-60335 Selftest Library
  • SEGGER emWin Library for Graphical User Interface applications

In Application Notes ist folgende Software enthalten:

  • Http server on EFM32 - Ethernet PHY is implement with an ASIX AX88796C Ethernet Controller (on board of the DKs) (AN0032)
  • Speex is a free audio codec which provides high level of compression with good sound quality for speech encoding and decoding (AN0055)

In Beispielen (siehe Examples im Simplicity Studio) ist folgende Software enthalten:

USB:

  • USB CDC virtual COM port example
  • USB HID keyboard example
  • USB Mass Storage Device example
  • USB PHDC (Personal Healthcare Device Class) example
  • USB Vendor Unique Device example
  • USB device enumerator example
  • USB Host mass storage device example

RTOS[Bearbeiten]

Echtzeitbetriebssysteme (Real Time Operation System) gibt es von verschiedenen Anbietern. Diese können im Prinzip vorhersagen, wann zum Beispiel ein LED ausgeschaltet werden soll (Delay 500ms) in dieser Zeit wird nicht gewartet, sondern ein anderer Thread (Prozess) wird ausgeführt. So wird das Programm in einzelne Threads unterteilt.

Bei den EFM32 uC ist dies insbesondere interessant, da wenn nichts läuft (alle Threads warten, sind nicht aktiv) der uC in einen seiner Schlaf Moden gesetzt werden kann und somit noch weniger Energie verbraucht.

Besonders hervorzuheben sind die frei verfügbaren RTOS:

Im Simplicity Studio sind folgene RTOS-Varianten enthalten, bzw. folgende Beispiele verfügbar:

  • RTOS from Keil/ARM under Open Source license (BSD)
  • FreeRTOS from Real Time Engineers Ltd.
  • uC/OS-II Real-Time Kernel
  • uC/OS-III Real-Time Kernel

In den Beispielen (Examples) im Simplicity Studio findet man:

  • uC/OS-II und uC/OS-III RTOS on EFM32 using example
  • Keil RTX RTOS - tick-less & blink example, Video darüber

Hardware Tools[Bearbeiten]

Bootloader[Bearbeiten]

Bei EFM32 Mikrocontrollern ist ein USB/UART Bootloader vorprogrammiert ab Werk.
Apllication Note dazu:

Debugger/Programmer[Bearbeiten]

Die EFM32 uC können nur über SWD programmiert werden. Daher können nur Debugger/Programmer welche SWD unterstützen verwendet werden.

Die EFM32 Starter Kits sowie die Development Kits enthalten bereits einen J-Link auf dem Board.

Unterstützte Debugger/Programmer pro IDE
IDE Einstellungen IDE Debugger Bild Beschrieb Kosten ca.
Keil MDK-ARM Keil MDK-ARM Keil
Ulink-ME
Ulink-Me

- unterstützt ARM7, ARM9, und Cortex-M uC,
JTAG und SWD
- Standard 20-pin (0.1") JTAG und 10-pin (0.05")
Cortex Debug Stecker
- Target Voltage: 3.0V - 3.6V
- kein Embedded Trace Macrocell - ETM
- Data Trace Streaming 1Mb/s

80 Euro
/ 100 SFr
Keil MDK-ARM Keil MDK-ARM Keil
Ulink 2
Ulink 2

-unterstützt ARM7, ARM9, Cortex-M, 8051 und C166 uC,
JTAG und SWD
- Standard 20-pin (0.1") JTAG, 10-pin (0.05"),
16-pin (0.1"),14-pin (0.1") Cortex Debug Stecker
- Wide target voltage range: 2.7V - 5.5V
- kein Embedded Trace Macrocell - ETM
- Data Trace Streaming 1Mb/s

340 Euro

/ 400 SFr

Keil MDK-ARM Keil MDK-ARM

Video über Ulink Pro

Keil
Ulink Pro
Ulink-Pro

- unterstützt ARM7, ARM9, Cortex-M, und C166 uC,
JTAG und SWD
- Standard 20-pin (0.1") JTAG, 10-pin (0.05"),
20-pin (0.05") Cortex Debug Stecker
- Target Voltage: 1.2V - 3.3V
- Embedded Trace Macrocell - ETM
- Data Trace Streaming 800Mb/s

1200 Euro
/ 1500 SFr

Keil MDK-ARM

Atollic True Studio

CooCox CoIDE

IAR Embedded
Workbench


Rowley CrossWorks

EmBlocks

Keil MDK-ARM

Atollic True Studio

CooCox CoIDE

IAR Embedded
Workbench


Rowley CrossWorks

EmBlocks

Segger

J-Link

J-Link Edu

J-Link

- J-Link Edu ist das gleiche wie J-Link,
Edu Version jedoch nur für Ausbildung erlaubt!
- unterstützt: ARM7/9/11, Cortex-A5/A8/A9,
Cortex-M0/M0+/M1/M3/M4, Cortex-R4,
- Renesas RX610, RX621, RX62N, RX62T, RX630, RX631,
RX63N
- JTAG und SWD, kein Embedded Trace Macrocell - ETM

J-Link
250 Euro
/ 300 SFr

J-Link Edu
50 Euro
/ 70 SFr

J-Link Edu

Keil MDK-ARM

IAR Embedded
Workbench


CooCox CoIDE

USB Driver CoLinkEx

Keil MDK-ARM 1/2

Keil MDK-ARM 2/2

IAR Embedded
Workbench


Olimex:

ARM-JTAG-Coocox

CoLinkEx:

zum selber basteln

fixfertig kaufen

ARM-JTAG-Coocox

- unterstützt folgende EFM32 Cortex-M uC:

EFM32G200F16 EFM32G200F32 EFM32G200F64
EFM32G210F128 EFM32G230F128 EFM32G230F32
EFM32G230F64 EFM32G280F128 EFM32G280F32
EFM32G280F64 EFM32G290F128 EFM32G290F32
EFM32G290F64 EFM32G840F128 EFM32G840F64
EFM32G840F32 EFM32G880F128 EFM32G880F64
EFM32G880F32 EFM32G890F128 EFM32G890F64
EFM32G890F32

- JTAG und SWD, kein Embedded Trace Macrocell - ETM

Olimex und
Original
CoLinkEx

je 25 Euro
/ 32 SFr

Das Olimex Produkt

basiert auf dem CoLinkEx!

Es gibt noch div.
weitere nachbauten
des CoLinkEx,
z.B. von Embest.

CrossWorks for ARM

siehe Olimex Seite
der beiden Adapter

Olimex

ARM-JTAG-SWD
ARM-USB-OCD-H

ARM-JTAG-SWD

- JTAG und SWD

Olimex
ARM-JTAG-SWD
5 Euro / 6 SFr

Olimex
ARM-USB-OCD
55 Euro / 69 SFr

ARM-USB-OCD

Es werden beide
Adapter gemeinsam benötigt!

Starter Kits[Bearbeiten]

Energy Micro Tiny Gecko Starter Kit
Energy Micro Gecko Starter Kit

Energy Micros Starter Kits haben 3 wesentliche Funktionen:

1) Evaluierung (Zugriff auf alle pins, Display, Taster, Touch-Slider, LEDs, ...)

2) Software Debugger (inkl. J-Link von Segger und Debugging-Schnittstelle) - man spart sich einen Extra-Debugger

3) Energy Debuggung - auf allen STKs ist das AEM integriert (s.u.)

Es gibt zurzeit folgende Starter Kits:

Development Kits[Bearbeiten]

Gecko Development Kit
Giant Gecko Development Kit

Energy Micros DVKs sind die Deluxe-Variante von Entwicklungsboards:

  • Built-in SEGGER J-Link + J-Trace
  • Advanced Energy Monitoring
  • 320x240 resistive touch color TFT display
  • 10/100 Mbit/s SPI based MAC/PHY
  • User interface (joystick, switches, potentiometer)
  • EXP32 prototyping module

Es gibt zurzeit folgende Development Kits:

Evaluation Boards[Bearbeiten]

Es gibt noch 3 verschiedene Olimex Boards mit EFM32 Mikrocontroller.

EM-32G210F128-H
  • das EM-32G210F128-H für ca. 17 Euro / 22 SFr.
    • Cortex M3 Gecko EFM32G210F128 uC
    • Standard JTAG Stecker mit ARM 2x10 Pin Layout zum programmieren/debuggen
    • UEXT Buchse
    • Li-ion Batterie Klemme
    • RESET Button, User Button, Status LED, Power LED
    • alle uC Pins sind nach aussen geführt
    • Abmessung: 43 x 34.5 mm


EM-32G880F128-H
  • das EM-32G880F128-H für ca. 20 Euro / 25 SFr.
    • Cortex M3 Gecko 32G880F128 uC
    • Standard JTAG Stecker mit ARM 2x10 Pin Layout zum programmieren/debuggen
    • UEXT Buchse
    • Li-ion Batterie Klemme, Power Jack (4.5-12VDC)
    • RESET Button, User Button, Status LED, Power LED
    • alle uC Pins sind nach aussen geführt
    • Abmessung: 70 x 43 mm


EM-32G880F128-STK
  • das EM-32G880F128-STK für ca. 27 Euro / 34 SFr.
    • Cortex M3 32G880F128 uC sowie ein Segment Display
    • Standard JTAG Stecker mit ARM 2x10 Pin Layout zum programmieren/debuggen
    • UEXT Buchse
    • Li-ion Batterie Klemme, Power Jack (6-9VDC, 4.5-6VAC)
    • RS232 Buchse und Treiber (ST3232)
    • RESET Button, 4 User Button, Status LED, Power LED
    • Buzzer
    • alle uC Pins sind nach aussen geführt
    • Abmessung: 77 x 64 mm

Erhältlich[Bearbeiten]

Energy Harvesting Kit[Bearbeiten]

Von Würth Electronics gibt es ein Energy Harvesting Kit. Dieses beinhaltet ein Giant Gecko Starter Kit sowie ein Board welches einfach an das Starter Kit angesteckt wird.

Auf diesem sind mehreren Energiequellen (Solarzelle, Peltier Element,Piezo Element, Induktiv Generator) vorhanden, mit welchen der uC Betrieben werden kann.

Energy Harvesting Kit













Training[Bearbeiten]

Lizard Labs[Bearbeiten]

Zugeschnittenes Online-Training von Energy Micro: Lizard Labs - Videos & Präsentationen sind für Themen wie Tools, SW-Bibliothek, Programmierung,Vertiefung spezieller Peripheriefunktionen, etc. verfügbar.

Online Webinare[Bearbeiten]

University Program[Bearbeiten]

Energymicro bietet für interessierte Universitäten ein umfangreiches Lernpaket um den Umgang mit Mikrocontrollern zu erlernen.

Es beinhaltet einerseits Kursunterlagen auf Englisch mit entsprechenden Code Beispielen, sowie 10 EFM32 Giant Gecko Starter Kits für USD 399 plus Versand.

Die Kursunterlagen enthalten viele Grundlegende Informationen über uC und können daher auch für die Programmierung anderer uC hilfreich sein.

Die University Program Dokumente und Code Beispiele sind ebenfalls im Simplicity Studio enthalten.

Bezugsquellen[Bearbeiten]

  • Samples gibt es hier
  • Bewerbung um ein Gratis Starter Kit (für Entwickler) hier

Die uC selbst sowie die Starter Kits und Development Kits findet man bei:

Die Olimex Evaluation Boards sowie die Olimex Programmer/Debugger gibt bei:

Weblinks, Foren, Communities[Bearbeiten]

Energy Micro[Bearbeiten]

Andere[Bearbeiten]

  1. http://news.silabs.com/press-release/corporate-news/silicon-labs-acquire-energy-micro-leader-low-power-arm-cortex-based-mic
  2. http://www.energymicro.com/news/silicon-labs-to-acquire-energy-micro