Neustart mit RISC-V

Nach langer Wartezeit, aber doch noch vor der Embedded World 2020 ist mein Beitrag „Neustart mit RISC-V“ in der Zeitschrift Design & Elektronik 1/2020 S.29-35 erschienen.

Entwicklungsboard SiFive HiFive 1 Rev. B im Arduino Uno-Formfaktor

Damit sich eine neue Befehlssatzarchitektur für Controller oder Prozessoren durchsetzt, ist viel Aufwand erforderlich. Hardware-Hersteller müssen überzeugt, Entwicklungswerkzeuge angepasst und Entwickler eingearbeitet werden. Entsprechend selten kommt ein neuer Befehlssatz auf den Markt. Aber RISC-V hat die Anfangshürden genommen und ist auf dem Weg zum Erfolg.

RISC-V FOUNDATION

Die RISC-V FOUNDATION finden Sie auf der Embedded World 2020 in Halle 3A Stand 536.

Calista Redmond (CEO, RISC-V Foundation) spricht über Neuigkeiten bei RISC-V:

Das ist neu bei RISC-V Vortragssprache Deutsch
Datum: 26.02.2020 Uhrzeit: 16:10 – 16:30 Uhr
Ort: Markt&Technik VIP-Bühne, Halle 3A, 3A-502

Event merken
Termin merken
Event teilen

Massgeschneidert für IoT Anwendungen

Espressif’s ESP32 ist aus IoT Anwendungen kaum noch wegzudenken. Geringe Stromaufnahme, eine leistungsfähige CPU und WiFi- bzw. BLE-Connectivity sind der Schlüssel für den Erfolg in diesem Bereich.

Eine Vielzahl dieser Anwendungen setzt das ESP-WROOM-32x-Modul von Espressiff ein.

Die ESP32-WROVER Serie besticht durch einige Modifikationen der ESP32-WROOM-32x-Module, die unter anderem ein zusätzliches 8-MB-SPI-PSRAM (Pseudo Static RAM) enthalten.

Das zusätzliche PSRAM kann für Geräte mit einem Display sehr nützlich sein. Wenn der Grafiktreiber einen Framebuffer verwendet, können so mehr Farben unterstützt werden.

Für das maschinelle Lernen bietet TensorFlow Lite alle Tools, die Sie zum Konvertieren und Ausführen von TensorFlow-Modellen auf Mobil-, Embedded- und IoT-Geräten benötigen. Genügend Speicher sollte aber vorhanden sein und den kann ein ESP32-Wrover nun bieten (siehe Tabelle).

Zu Tensorflow Lite auf dem ESP32 finden Sie weitere Informationen unter https://towardsdatascience.com/tensorflow-meet-the-esp32-3ac36d7f32c7

ModuleChipFlash, MBPSRAM, MBAnt.Dimensions, mm
ESP32-WROOM-32ESP32-D0WDQ64MIFA18 × 25.5 × 3.1
ESP32-WROOM-32DESP32-D0WD4, 8, or 16MIFA18 × 25.5 × 3.1
ESP32-WROOM-32UESP32-D0WD4, 8, or 16U.FL18 × 19.2 × 3.1
ESP32-SOLO-1ESP32-S0WD4MIFA18 × 25.5 × 3.1
ESP32-WROVER (PCB)ESP32-D0WDQ648MIFA18 × 31.4 × 3.3
ESP32-WROVER (IPEX)ESP32-D0WDQ648U.FL18 × 31.4 × 3.3
ESP32-WROVER-BESP32-D0WD4, 8, or 168MIFA18 × 31.4 × 3.3
ESP32-WROVER-IBESP32-D0WD4, 8, or 168U.FL18 × 31.4 × 3.3
Key characteristics of ESP32 Modules (https://docs.espressif.com/projects/esp-idf/en/latest/hw-reference/modules-and-boards.html)

Aus Fernost werden mittlerweile unterschiedlich ausgestattet Module mit ESP32-WROVER-B angeboten.

Ein gerade für IoT-Anwendungen optimal angepasstes Board wird mit dem ESP32 ePulse Dev Board von der Schweizer Firma Thingpulse angeboten.

Das Board ist für geringen Stromverbrauch und einen breiten Eingangsspannungsbereich optimiert. Weitere technische Aspekte finden Sie im Beitrag Designing the ESP32 Dev Board I always wanted.

Der VIN-Pin akzeptiert Spannungen zwischen 3.3 V und 12 V DC. Wenn sich das Board im Tiefschlaf befindet, verbraucht es nur zwischen 25 uA (bei 3.3 V) und 35 uA (bei 12 V). Die meisten ESP32-Boards verbrauchen etwa 100 – 130 uA.

Thingpulse bietet das Board für $ 16.90 an https://thingpulse.com/product/epulse-thingpulse-esp32-devboard/. Early Birds bekommen es noch für $ 12.70.

M5StickC Devices

Der M5StickC hat einen internen LiPo-Akku mit einer Kapazität von 80 mAh, der dem mobilen Einsatz dann doch gewisse Grenzen setzt. Bei meinen Experimenten zur Messung der Wassertemperatur hatte ich das zu berücksichtigen.

Kurz vor dem Jahresende 2019 kam Post aus Shenzen mit dem 18650C HAT, einem Batterieteil für den M5SticKC mit integriertem wiederaufladbaren LiPo-Akku 18650 mit einer Kapazität von 2000 mAh.

Das Batterieteil ist mit den Steckern der HAT-Serie ausgestattet, mit denen eine zuverlässige Verbindung zum M5StickC hergestellt werden kann. Die Unterseite ist mit einer USB-Ladeschnittstelle ausgestattet. Der USB-C-Anschluss des Batterieteils wird nur als Ladeschnittstelle verwendet und hat keine UART-Funktion. Auf der Rückseite des Batterieteils befinden sich zahlreiche Befestigungslöcher, die eine einfache Befestigung des gesamten Devices ermöglicht.

Handheld-Thermometer

Ich habe mit dem ENV Hat und dem M5StickC ein Handheld-Thermometer aufgebaut.

Über den BMP280 im ENV Hat werden Temperatur, relative Luftfeuchte und barometrischer Druck gemessen und im Sekundentakt auf dem M5StickC Display zur Anzeige gebracht.

Ich werde die Laufzeit einer Batterieladung in der Folge testen und hier berichten.

Überwachungsmassnahmen für den Batteriezustand sind nicht implementiert.

Neustart mit RISC-V

Damit sich eine neue Befehlssatzarchitektur für Controller oder Prozessoren durchsetzt, ist viel Aufwand erforderlich. Hardware-Hersteller müssen überzeugt, Entwicklungswerkzeuge müssen angepasst und Entwickler eingearbeitet werden. Entsprechend selten kommt ein neuer Befehlssatz auf den Markt. Aber RISC-V hat die Anfangshürden genommen und ist auf dem Weg zum Erfolg.

Unter dem Titel „Neustart mit RISC-V“ ist eine Beitrag zu RISC-V in der Zeitschrift Design & Elektronik Heft 1/2020 angekündigt.

Um die Performance des Maixduino, einem Arduino-kompatiblen Kendryte K210 Dual-Core 64-bit RISC-V Prozessor (RV64IMAFDC), gegenüber anderen Arduinos resp. Arduino-kompatiblen Mikrocontrollern zu vergleichen, habe ich zwei Benchmarks laufen lassen:

  • Sieve of Eratosthenes
  • CoreMark

Den ersten Benchmark habe ich zu Vergleichszwecken verwendet, da ich in der Vergangenheit damit bereits zahlreiche Tests vorgenommen habe.

Erweiterung der Arduino-Familie: ESP32 – wie gut ist es?
https://www.elektroniknet.de/design-elektronik/embedded/erweiterung-der-arduino-familie-esp32-wie-gut-ist-es-160294.html

Arduino32: Die jungen Wilden.
http://www.elektroniknet.de/embedded/arduino32-die-jungen-wilden-131502.html

CoreMark 1.0 hingegen ist ein vom EEMBC empfohlener Test und zudem an die Arduino-Umgebung angepasst (https://www.eembc.org/coremark/). Beide Benchmarks stehen unter https://github.com/ckuehnel/newArduino/tree/master/Maixduino zum Download zur Verfügung.

Die Resultate der beiden Benchmarks zeigen die folgenden Abbildungen. Verglichen wurden ein Arduino Due (AT91SAM3X8E@84 MHz), ein ESPduino-32 (ESP-Wroom-32@80 MHz) und ein Maixduino (Kendryte K210 RISC-V@400 MHz).

RISC-V Foundation kommt in die Schweiz


(Bild: gemeinfrei / Pixabay)

Wie die Elektronik Praxis berichtet zieht die RISC-V Foundation wegen des andauernden Handelsstreits zwischen den USA und China aus den USA in die Schweiz.

Die RISC-V Foundation und die ETH mit dem Institut für Integrierte Systeme – speziell die Abteilung Digitale Schaltungen und Systeme und Prof. Luca Benini, die ein wichtiger Entwicklungsstandort für RISC-V-Prozessoren sind, kommen nun auch örtlich enger zueinander.

Die an der ETH entwickelte PULP-Prozessorplattform (PULP: Parallel Ultra Low Power) wurde als Cluster konzipiert – mit zahlreichen energieeffizienten RISC-V-Kernen. Details zu PULP sind hier zu finden,

Tastaturerweiterung für M5StickC

Die Eingabemöglichkeiten über die zwei Tasten des M5StickC sind zwangsläufig limitiert. Möchte man eine voll ausgestatteten QWERTY-Tastatur für den M5StickC zur Verfügung haben, dann ist das CardKB HAT eine gute Möglichkeit.

Das CardKB HAT bietet auch Unterstützung für verschiedene Tastenkombinationen (Shift + Taste, Fn + Taste), mit denen praktisch viele verschiedene Tasten hinzugefügt werden können. Der Tastaturstatus wird mit einer RGB-LED angezeigt. Leider ist diese in der Ecke links oben nicht sehr günstig angeordnet, da sie durch den M5StickC abgedeckt wird. Das Keyboard meldet sich als I2C-Device mit der I2C-Adresse 0x5F.

Das die unten angezeigten Ausgaben erzeugende Testprogramm M5StickC_Keyboard.ino steht auf Github zum Download zur Verfügung. Die Tastatureingaben werden hier auf dem M5StickC-Display in grün dargestellt.

Teensy 4.0 – NXP’s i.MX RT1062 für alle

Teensy 4.0

Mit dem Teensy 4.0 steht ein kompaktes, aber dennoch handliches Boards mit NXP’s i.MX RT1062 (Arm Cortex-M7), einem sogenannten Crossover Processor (Kombination aus Mikrocontroller & Application Processor) , zur Evaluation bereit.

Die Ausstattungsliste im Datenblatt liest sich wie der Wunschzettel eines Embedded Entwicklers in der Vor-Weihnachtszeit. Ein Blick ins Datenblatt (https://www.nxp.com/part/MIMXRT1062CVL5A ) zeigt das.

Paul Stoffregen hat dafür gesorgt, dass der Teensy 4.0 auch als Arduino-kompatibler Mikrocontroller gehandhabt werden kann ( https://www.pjrc.com/teensy-4-0/ ) und somit der derzeit wohl leistungsfähigste Arduino zu einem sehr moderaten Preis von USD 19.95 zur Verfügung steht.

Den ersten Eindruck möchte ich mit den erweiterten Benchmarks aus meinem letzten Post https://ckblog2016.net/2019/08/19/maixduino/ beschließen.

Verglichen wurden eine Arduino Due (AT91SAM3X8E@ 84 MHz), eine ESPduino-32 (ESP-Wroom-32@80 MHz), ein Maixduino (Kendryte K210 RISC-V@400 MHz) und ein Teensy 4.0 ( i.MX RT1062@600 MHz). Hier sind die Resultate der beiden Benchmarks:

Benchmarkergebnisse Sieve of Erastothenes
Benchmarkergebnisse Coremark 1.0

Wie die beiden Benchmarks deutlich zeigen, hat Teensy 4.0 mit seinem mit 600 MHz getakteten i.MX RT1062 die Performance des Maixduino wesentlich überboten und kann als derzeit leistungsfähigster Arduino-kompatibler Mikrocontroller (oder eben als Crossover Processor) angesehen werden.