SoCs auf Basis von RISC-V bieten sich als lizenzfreie Alternative zu verbreiteten MCUs an. Ob sie auch für das eigene Projekt geeignet sind, lässt sich mit einem günstigen Entwicklungsboard klären.
Bild 1: Das Entwicklungsboard LoFive-R1 ist ein vollwertiges Prozessormodul auf Basis des RISC-V-Prozessors FE310 von SiFive. Es lässt sich direkt auf eine Trägerkarte löten.
(Bild: GroupGets LLC)
Entwickler stehen ständig unter Druck: Sie müssen schnell innovative Schaltungen entwerfen, die mit möglichst wenig Energie ausreichend Rechenleistung bereitstellen und möglichst wenig kosten sollen. Gleichzeitig müssen sie ihr geistiges Eigentum (Intellectual Property, IP) bestmöglich schützen. „Reduced Instruction Set Computer V“, kurz RISC-V, könnte eine Lösung für diese Anforderungen sein – nicht zuletzt für Mobilanwendungen im Internet of Things.
Die Hardware-Befehlssatz-Architektur (Instruction Set Architecture, ISA) ist als Open Source unter einer BSD-Lizenz verfügbar. Damit ist es möglich, für Applikationen maßgeschneiderte Prozessoren oder Cores auf Basis dieser Architektur zu entwickeln, herstellen zu lassen und zu verkaufen, ohne Lizenzgebühren zahlen zu müssen. Oder eben solche Prozessoren in seinen Projekten einzusetzen. Mittlerweile sind einige RISC-V-Controller samt passender Entwicklungskits kommerziell erhältlich.
Bildergalerie
Eine gute Möglichkeit, in das RISC-V-Universum einzusteigen, ist ein Entwicklungsboard mit einem RISC-V-Prozessor – zum Beispiel das LoFive-R1 von Groupgets LLC. Dessen Basis bildet die neuste Version des FE310 RISC-V-Prozessors von SiFive, der mit bis zu 320 MHz getaktete 32-bit RV32IMAC-Prozessor FE310-G002. Er besitzt 8 kByte OTP-Speicher (One-Time-Programmable), 8 kByte MROM (Mask Read Only Memory), ein 16 kByte großen Befehls-Cache und 16 kByte SRAM (Static Random Access Memory).
Darüber hinaus verfügt der Prozessor über drei unabhängige PWM-Controller (Pulsweitenmodulation) und hat neben den integrierten Schnittstellen SPI, QSPI, I2C auch zwei UARTs an Bord. Gegenüber dem Vorgänger stehen damit mehr Möglichkeiten zur Verfügung, externe Sensoren und Peripherie-Schnittstellen hinzuzufügen. Auch die Platine wurde verbessert und hat jetzt gekerbte Kanten.
Das Entwicklungsboard LoFive R1 mit FE310-Prozessor
Auf das Entwicklungsboard lassen sich Erweiterungsanschlüsse löten. Alternativ lässt sich die Entwicklungsplatine dank ihrer gekerbten Kanten auch direkt auf eine Trägerkarte löten und als Prozessormodul verwenden. Dies kann die Entwicklung von kundenspezifischer Hardware erleichtern, da die oft mühevolle Beschaffung des Prozessors entfällt.
Darüber hinaus verfügt das Entwicklungsboard über On-board-QSPI-Flash-Speicher, der von einem Flash-Modul IS25LP128 von Integrated Silicon Solution Inc. (ISSI) bereitgestellt wird. Das IS25LP128 ist ein 16 MByte großes 128-MBit-Flash-Modul, das im Quad-Modus mit einem SPI-Bustakt von bis zu 133 MHz betrieben werden kann. Das SPI-Flash-Modul eignet sich zum Speichern von Anwendungen oder auch von Laufzeitdaten wie Anwendungsprotokollen.
Das Entwicklungsboard läuft auch mit 5 V, die von einem Linearregler SPX3819M5 von MaxLinear auf 3,3 V heruntertransformiert werden. Der Regler wird in einem SOT23-5-Gehäuse geliefert und liefert bis zu 500 mA Strom. Das Entwicklungsboard zieht nicht viel Strom. Daher können weitere Sensoren und Bausteine ohne eine zusätzliche Stromquelle betrieben werden. Alle Konstruktionsdetails der Entwicklungsplatine, z.B. Schaltpläne und Materiallisten, sind auf github erhältlich. Diese Informationen erleichtern das Verständnis der Arbeitsweise des Boards. Sie können auch als Leitfäden für kundenspezifische Entwicklungsprojekte dienen.
Toolchain einrichten und Board programmieren
Blockschaltbild des auf dem Entwicklungsboard LoFive R1 eingesetzten 128-MBit-SPI-Flash-Moduls zum Speichern von Anwendungsdaten.
(Bild: ISSI)
Nun geht es ans Einrichten der RISC-V-Toolchain und ans Programmieren des Entwicklungsboards. Je nach gewählter Entwicklungsplatine stehen Entwicklern mehrere Toolchains für RISC-V zur Verfügung. Die Software-Entwicklungsumgebung (SDK) für RISC-V läuft auf den Betriebssystemen Windows, macOS und Linux. In diesem Artikel wird die Einrichtung des Entwicklungsboards unter Linux beschrieben.
Laden Sie zuerst in einem Terminalfenster das LoFive Freedom-E-SDK mithilfe des folgenden Befehls von github herunter:
Wechseln Sie dann in das soeben mithilfe des SDKs erzeugte Verzeichnis:
cd freedom-e-sdk
Für das Entwicklungsboard stehen zwei verschiedene SDKs zur Verfügung. Das erste wird als „the legacy SDK“ bezeichnet, da es sich um eine ältere Version handelt. Verwenden Sie das neueste SDK. Es verfügt über eine vorinstallierte Toolchain und umfasst OpenOCD zum Debuggen. Das Herunterladen gelingt mit folgenden Befehlen:
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Das Entwicklungsboard kann auf mehrere verschiedene Arten programmiert werden. Zuerst sind auf dem Prozessor über die Erweiterungsanschlüsse des LoFive-R1 Standard-JTAG-Signale verfügbar. Es kann jeder Programmer verwendet werden, der JTAG unterstützt, z.B. der J-Link von SEGGER. Wenn kein Programmer verfügbar ist, kann auch ein kostengünstiger USB-seriell-Wandler wie der FT2232H-56Q Mini MDL von FTDI verwendet werden. Der FT2232H-56Q Mini MDL ist ein Modul, das mit allen Verbindungen und Anschlüssen bestückt ist, die für eine Kommunikation mit dem Entwicklungsboard LoFive-R1 benötigt werden.
Verbindungen zwischen dem Entwicklungsboard LoFive R1 und dem Modul FFT2232H-56Q von FTDI.
(Bild: Digi-Key)
Das SDK verwendet die allgemeine E/A-Schnittstelle (General Purpose Input/Output, GPIO) des FT2232H-56Q, um die für die Programmierung des Mikrocontrollers erforderlichen JTAG-Verbindungen herzustellen. Zwischen dem Entwicklungsboard LoFive-R1 und dem Modul FT2232H-56Q müssen neun verschiedene Verbindungen hergestellt werden (siehe Tabelle): Stromversorgung und Masse, JTAG-Signale und UART-Signale. Dies kann direkt erfolgen, oder mithilfe einer Steckplatine wie der PB-83M von Global Specialties. Zu diesen Steckplatinen gehören Bananenstecker für zwei Spannungsquellen und Masse, um das Prototyping zu vereinfachen.
Es ist empfehlenswert, vor der ersten Verwendung der LoFive-R1 einen Bootloader auf der Platine zu installieren. Die Komponente wird einmal eingerichtet und vereinfacht spätere Upgrades. Zum Generieren des Bootloaders dient der Befehl:
make PROGRAM=lofive-boot TARGET=lofive-r1-bootloader upload
Das folgende Kommando lädt eine einfache „hello world“-Anwendung auf das Entwicklungsboard:
make PROGRAM=sifive-welcome TARGET=lofive-r1 upload
Damit hat der Entwickler seine erste RISC-V-Anwendung programmiert – die weiteren Möglichkeiten sind praktisch unbegrenzt.
Tipps und Tricks für die Arbeit mit RISC-V
Der Einstieg in die Arbeit mit RISC-V-Prozessoren unterscheidet sich von anderen Mikrocontroller-Ökosystemen. Folgende Hilfestellungen erleichtern den Erstkontakt:
Nehmen Sie sich nach dem Herunterladen des LoFive-R1-SDK die Zeit, die Datei README.md im Hauptverzeichnis zu lesen. Diese enthält nützliche Informationen zum Speicherort der Dokumentation des SDK, zu Unterstützungspaketen für das Board und weitere interessante Informationen.
Wenn Sie eine professionelle Debug-Sonde, z.B. eine J-Link von SEGGER, zur Verfügung haben, können Sie damit Anwendungen für den RISC-V-Prozessor programmieren. J-Link unterstützt RISC-V offiziell bereits seit dem Jahr 2017.
Für Entwickler, die lieber mit einer integrierten Entwicklungsumgebung (Integrated Development Environment, IDE) als mit den Befehlszeilen-Tools arbeiten, ist das Eclipse-basierende Freedom Studio für die RISC-V-Entwicklung interessant.
Das RISC-V-Ökosystem wächst schnell
Eine Steckplatine wie die PB-83M vereinfacht den Anschluss externer Komponenten und Module – und damit das Prototyping.
(Bild: Global Specialities)
RISC-V ist eine interessante Architektur für Open-Source-interessierte Entwickler. Mittlerweile sind mehrere Entwicklungsboards für RISC-V-Prozessoren verfügbar, und die Einrichtung der Toolchains ist nicht schwieriger als bei jedem anderen Standard-Mikrocontroller. Wichtig bei aller RISC-V-Euphorie ist, dass die freie ISA nicht über das umfassende Tool-Ökosystem vieler anderer Mikrocontroller-Plattformen verfügt.
Daher werden Entwickler, die den RISC-V-Weg gehen, möglicherweise feststellen, dass Ihnen eine kleinere Auswahl und weniger Ressourcen zur Unterstützung auf dem Weg zu ihrem Ziel zur Verfügung stehen. Dieser Verzicht kann sich trotzdem lohnen – je nach Endanwendung, den Vorlieben des Entwicklers und den verfügbaren Ressourcen.