Archiv der Kategorie: Cortex-M3

Ledunia Benchmarks

Mit dem Beitrag Arduino32: Die jungen Wilden in der Zeitschrift DESIGN&ELEKTRONIK (Online-Version Teil 1Online Version Teil 2) hatte ich 32-Bit Arduinos vorgestellt und an Hand einfacher Benchmarks miteinander verglichen.

Der verbreitete #ESP8266 ist ebenfalls in die Arduino Umgebung integriert und die Verfügbarkeit von #Ledunia als High-End-ESP8266-Modul haben mich veranlasst, diese Tests mit Ledunia zu wiederholen.

Die Programme selbst sind unter GitHub abgelegt, können von da heruntergeladen und in der Arduino IDE ausgeführt werden. Hier sind die Benchmark-Ergebnisse im Vergleich zu verschiedenen klassischen Arduinos:

Board Arduino Uno Arduino M0 Arduino Due Ledunia
CPU ATmega328 ATSAMD21G18
(Cortex-M0+)
AT91SAM3X8E
(Cortex-M3)
ESP8266EX
Clock 16 MHz 48 MHz 84 MHz 80 MHz
Runtime 18267 ms 5180 ms 3451 ms 2189 ms
IO-  Periode 11,60 us 3.24 us 4,32 us 5 us
I/O-Frequenz 86,21 kHz 308,6 kHz 203,3 kHz 200 kHz

Die Leistungsmerkmale der ESP8266-basierten Arduinos können sich sehen lassen und bilden damit eine sehr gute Ergänzung der Arduino-Familie.

Ranging mit radino32 DW1000

Der Decawave DW1000 Baustein ist ein IEEE802.15.4-2011 konformer Ultra-Wideband (UWB) Transceiver und kann zur Positionsbestimmung im 2-Wege-Ranging betrieben werden und bietet dabei eine Genauigkeit von 10cm.

Das radino32 DW1000 kombiniert einen STM32L151 Mikrocontroller (Cortex-M3 Core) von STMicroelectronics mit dem DW1000 Funkchip von Decawave zum kompakten radino Formfaktor und kann damit als ein Baustein in einem komplexeren Real-Time Location System (RTLS) dienen.

Der Hersteller In-Circuit bietet eine freie Arduino-Bibliothek für die radino Funkmodule an, welche USB-Treiber, Bootloader und zahlreiche Beispiel-Sketches enthält.

Links zu weiteren Herstellerinformationen:

DW1000 Datasheet DW1000 User Manual

radino32 DW1000 für Ranging und RTLS, Ultra Wideband (UWB), IEEE802.15.4-2011 compliant, 3.5-6.5GHz

 

 

 

Arduino-Formfaktor

Hersteller von Mikrocontrollern stellen auf ihren Evaluationboards häufig eine Arduino-Schnittstelle zur Verfügung, um das breite Spektrum von Arduino-Shields für das Rapid Prototyping einsetzen zu können. Der eingesetzte Mikrocontroller wird aber nicht mit der Arduino-IDE programmiert.

Für das Rapid Prototyping ist die Arduino-Schnittstelle von großem Vorteil, da auch später noch Komponenten/Shields gewechselt oder an konkrete Anforderungen angepasst werden können.

Die mbed Plattform unterstützt zahlreiche dieser Boards, die ich in der filter- und sortierbaren Liste Arduino-compatible Microcontroller Boards supported by ARMmbed zusammengestellt habe.

archpro1

Beim Arch Pro von Seeed Studio ist der Arduino-Formfaktor durch die gelben Buchsenleisten deutlich erkennbar. Der auf dem Board befindliche Mikrocontroller LPC1768 von NXP (Cortex-M3) kann aus der mbed Umgebung heraus programmiert werden.

 

Arch Pro

archpro1Die Sendung vom Elektronikladen in Leipzig ist eingetroffen und brachte das erwartete Arch Pro Controllerboard. Danke Oliver.

Das auf NXP’s LPC1768 (Cortex-M3) aufbauende Arch Pro kann über die mbed Online-Entwicklungsumgebung programmiert werden und weist den verbreiteten Arduino-Formfaktor für die Erweiterung mit Arduino Shields auf.

Der LPC1768 kann  mit bis zu 100 MHz getaktet werden und stellt somit eine sehr gute Rechen-Performance bereit. Seitens der Peripherie stehen mehrere UARTs, I2C-Ports und SPI-Kanäle, bis hin zu USB und Ethernet zur Verfügung.

Um einen Eindruck von der Rechenleistung zu erhalten, habe ich wie bei einigen Arduinos zuvor den „Sieve of Eratosthenes“ Benchmark implementiert und laufen lassen.

Das Ergebnis kann sich sehen lassen. Gegenüber dem Arduino Duemilanove hat sich die Performance etwa um den Faktor 10 verbessert. Gegenüber dem Arduino Due liegt der Arch Pro auch noch bei einem Faktor von über 2.

Der Quelltext befindet sich im mbed Repository. Der Vergleich mit unterschiedlichen 8-bit und 32-Bit Arduinos ist unter http://www.ckuehnel.ch/arduino_benchmarks.html zu finden.