EFM32
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
EFM32 = Energy Friendly Microcontroller 32Bit vom norwegischen Chiphersteller Energy Micro.
Seit dem Juli 2013 gehören die EFM32 zu Silicon Labs, welche Energy Micro übernommen haben. [1]
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
Überblick aller EFM32 Familien
Broschüre mit allen EFM32
Folgende Gecko-Familien sind verfügbar:
Cortex M0+
Familie | Anzahl der Derivate |
System Parameter | Speicher | Gehäuse | GPIOs |
---|---|---|---|---|---|
Zero Gecko | 16 | 1.98 to 3.8 V, -40 to 85 ºC |
4-32KB Flash, 2-4KB RAM |
24pin - 48pin Packages | 17 to 37 |
Happy Gecko | 20 | 1.98 to 3.8 V, -40 to 85 ºC |
32-64KB Flash, 4-8KB RAM |
24pin - 48pin Packages | 15 to 37 |
Cortex M3
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
- 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
EFM32 Features
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
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)
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
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
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
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
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
Optimierte Low Power Modi
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
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
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
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
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
Simplicity Studio
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-Generatoren 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:
- Datenblätter sowie Errata Sheets
- Reference Manuals (Core und Peripherie)
- Application Notes (zum größten Teil mit Software-Beispielen)
- EFM32Lib: CMSIS kompatible Software-Libary für alle Peripherien des EFM32 (die Beispiele basieren auf dieser Library)
- viele Code Beispiele zu den verfügbaren Boards für Keil, IAR, Codesourcery und Rowley IDEs
- Benutzerhandbücher zu den Kits
- alle University Program Dokumente (Anleitungen für uC Beginner in Englisch)
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
Simplicity Studio steht kostenlos als Download zur Verfügung.
AEM - Überwachung des Energieverbrauchs
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
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
Es gibt viele ARM Cortex Development Tools (IDE,Compiler) welche verwendet werden können.
EmBlocks
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
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
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 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
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
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
Bootloader
Bei EFM32 Mikrocontrollern ist ein USB/UART Bootloader vorprogrammiert ab Werk.
Apllication Note dazu:
Debugger/Programmer
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.
- Die EFM32 uCs kann man auch mit OpenOCD mit einem ST-Link/V2 programmieren: Beispiel
IDE | Einstellungen IDE | Debugger | Bild | Beschrieb | Kosten ca. | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Keil MDK-ARM | Keil MDK-ARM | Keil Ulink-ME |
- unterstützt ARM7, ARM9, und Cortex-M uC, |
80 Euro / 100 SFr | |||||||||||||||||||||||
Keil MDK-ARM | Keil MDK-ARM | Keil Ulink 2 |
-unterstützt ARM7, ARM9, Cortex-M, 8051 und C166 uC, |
340 Euro / 400 SFr | |||||||||||||||||||||||
Keil MDK-ARM | Keil MDK-ARM |
Keil Ulink Pro |
- unterstützt ARM7, ARM9, Cortex-M, und C166 uC, |
1200 Euro / 1500 SFr | |||||||||||||||||||||||
Keil MDK-ARM |
Keil MDK-ARM |
Segger |
- J-Link Edu ist das gleiche wie J-Link, |
J-Link | |||||||||||||||||||||||
USB Driver CoLinkEx |
Olimex: ARM-JTAG-Coocox |
- unterstützt folgende EFM32 Cortex-M uC:
- JTAG und SWD, kein Embedded Trace Macrocell - ETM |
Olimex und Original CoLinkEx je 25 Euro | ||||||||||||||||||||||||
Das Olimex Produkt basiert auf dem CoLinkEx! | |||||||||||||||||||||||||||
CrossWorks for ARM |
siehe Olimex Seite |
Olimex |
- JTAG und SWD |
Olimex | |||||||||||||||||||||||
Es werden beide |
Starter Kits
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:
- Zero Gecko Starter Kit (EFM32ZG-STK3200) (mit Sharp Memory LCD) für ca. 50 Euro / 60 SFr.
- Tiny Gecko Starter Kit(EFM32TG-STK3300) für ca. 60 Euro / 70 SFr.
- Gecko Starter Kit (EFM32-G8XX-STK) für ca. 60 Euro / 70 SFr.
- Leopart Gecko Starter Kit (EFM32LG-STK3600) für ca. 70 Euro / 80 SFr.
- Giant Gecko Starter Kit (EFM32GG-STK3700) für ca. 70 Euro / 80 SFr.
- Wonder Gecko Starter Kit (EFM32WG-STK3800) für ca. 70 Euro / 80 SFr.
Development Kits
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:
- "altes" Gecko Development Kit (EFM32-GXXX-DK) für ca. 250 Euro / 310 SFr.
- "neues" Gecko Development Kit (EFM32G-DK3550 ) für ca. 260 Euro / 320 SFr.
- Leopard Gecko Development Kit (EFM32LG-DK3650) für ca. 290 Euro / 350 SFr.
- Giant Gecko Development Kit (EFM32GG-DK3750) für ca. 290 Euro / 350 SFr.
- Wonder Gecko Development Kit (EFM32WG-DK3850) für ca. 300 Euro /360 SFr.
Evaluation Boards
Es gibt noch 3 verschiedene Olimex Boards mit EFM32 Mikrocontroller.
- 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
- Cortex M3 Gecko EFM32G210F128 uC
- 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
- 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
- Olimex Website
- auch hier erhältlich Webshop
Energy Harvesting Kit
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.
Training
Lizard Labs
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
University Program
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
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
Silicon Laboratories
- EFM32 Webseite
- University Program, Lernprogramm zum uC programmieren für Einsteiger.
Andere
- Beispiel Code für Olimex EFM32 Boarde mit Olimex ARM-JTAG-COOCOX und Keil MDK-ARM-Lite
- Blog über Low Power Modes der EnergyMicro uC
- EEV Blog Review über Energy Micro Tiny Gecko Board
- EEV Blog Review über Energy Micro Giant Gecko Board und Low Power Sharp Memory LCD
- Energy Harvesting Kit von Würth mit EFM32GG-Starter Kit
- Einfaches Energy Micro Prototype Board (mit Altium Dateien) ,Diskussion dazu im EM Forum