Der BL808 von Bouffalo Lab (Bild 1) ist seit einigen Monaten in Form des Pine Ox64 von Pine64 (Bild 2) und des Sipeed M1s Dock (Bild 3) erhältlich. Es ist eine Wireless-MCU mit 802.11 b/g/n-Wi-Fi, BLE 5.0 und Zigbee. Was wie ein Klon eines ESP32 anmutet, hat deutlich mehr zu bieten, als man auf den ersten Blick vermuten mag. Auch die weiteren Familienmitglieder brauchen sich nicht zu verstecken. Der BL602 , auch im Elektor-Shop zu finden, kann als Alternative zu einem ESP8266 mit BLE (Bluetooth Low Energy) angesehen werden und ist schon mehrere Jahre verfügbar. Neben dem BL808 sind der BL702 und BL616 neu in der Familie und sollen hier auch kurz vorgestellt werden.

Die Bouffalo Lab BL808 MCU
Bild 1. Bouffalo Lab BL808 MCU.
Das Pine Ox64 von Pine64. Das Sipeed M1s Dock.
Bild 2. Pine Ox64 von Pine64.
Bild 3. Sipeed M1s Dock.

Der BL808

Der BL808 kommt als asymmetrischer Dual-Core daher, mit einem 64-Bit-Kern (RV64IMAFCV) mit 480 MHz und einem 32-Bit-Kern (RV32IMAFCP) mit 320 MHz. Solche asymmetrischen Konfigurationen sind nichts Neues. Auch der STM32H747, der im Arduino Portenta zu finden ist , weist ein asymmetrisches Design auf. Doch bei näherem Hinschauen könnten diese beiden MCUs unterschiedlicher nicht sein. Bild 4 zeigt das Blockdiagramm des BL808.

BL808 Funktionsblockdiagramm
Bild 4. Blockdiagramm des BL808. (Quelle: Bouffalo Lab, https://tinyurl.com/2p84s39w)

Zwei Herzen

Bei den RISC-V-Prozessorkernen handelt es sich nicht um eine Eigenentwicklung, hier kommen der C906 und der E907 von T-HEAD (eine Tochter der Alibaba Group) zum Einsatz. Den Kernen stehen 728 kB SRAM und für eine MCU üppige 64 MB pSRAM zur Verfügung. Dank der MMU (Memory Management Unit) kann der BL808 sogar einen Mainline-Linux-Kernel ausführen, was momentan für eine MCU (noch) nicht selbstverständlich ist. Den beiden CPU-Kernen steht zusätzlich noch ein Beschleuniger für neuronale Netze zur Seite (BLAI-100 mit 0,1 TOPS). Wer sich noch an den Artikel „Start Playfully with RISC-V: How to Run Quake 1 on a Microcontroller“ erinnert, dem wird auch der Canaan Kendryte K210 in den Sinn kommen, ein 64-Bit-Dual-Core mit RISC-V-Kernen (die mit 400 MHz getaktet sind), einem AI-Beschleuniger und 8 MB RAM, was sich perfekt für die Objekterkennung einsetzen lässt.

Das asymmetrische Design des BL808 verfolgt hier das Ziel, einen Linux-fähigen Kern (64 Bit) für Multimedia und einen Mikrocontroller für Echtzeitanwendungen miteinander zu verbinden. Daher ein kleiner Blick auf die Peripherie; eine umfassendere Auflistung der Funktionen des Chips bietet der Kasten Übersicht BL808-Peripherie.

Übersicht über die BL808-Peripheriegeräte

Zwischen Multimedia und Bussystemen

Ein Blick auf die Systemarchitektur in Bild 5 zeigt die Aufteilung des BL808. Im Multimedia-Bereich finden sich für eine MCU eher untypische Elemente, wie ein Scaler, MJPEG-De- und -Encoder und H264-Encoder, Audio-Codec, MIPI-CSI und MIPI-DSI. In Verbindung mit dem 10/100-Mbit-Ethernet-Controller und dem USB 2.0HS-OTG-Interface (480 MBit) hat die MCU die nötige Hardware, um als Videokamera zu fungieren.

BL808-Systemarchitektur
Bild 5. Systemarchitektur des BL808. (Quelle: Bouffalo Lab, https://tinyurl.com/5n6d8sfz)

Auf der anderen Seite ist die MCU mit unter anderem vier I²C-Controllern, zwei SPI-Controllern, vier UARTs und einem CAN-2.0b-Interface (als ISO11898 bezeichnet) ausgestattet. ADC, DAC, Touch, PWM-Einheiten und klassische I/O-Pins sind nur ein Teil der weiteren Hardwarekomponenten, die den Controller nicht nur auf Multimedia-Anwendungen beschränken.

Auch in Bezug auf die drahtlosen Schnittstellen ist viel Hardware für Projekte vorhanden. Jedoch zeigt die Erfahrung, dass in einem Datenblatt immer nur ein Teil des Gesamtbilds zu erkennen ist. Hardwaredokumentation, SDK, Beispiele, Toolchain sowie praktische Erfahrungen sind unumgänglich, um den Chip und seine Einsatzgebiete später besser einschätzen zu können. Andere Hersteller waren schon vor Bouffalo Lab da; und manchmal war es nicht direkt die Hardware, sondern das SDK und die Dokumentation, die dem Erfolg der Produkte im Wege standen. 

Abonnieren
Tag-Benachrichtigung zu RISC-V jetzt abonnieren!

Zwischen den Welten

Der BL808 ist zwischen zwei Welten angesiedelt, mehr als nur eine MCU, jedoch weniger als ein Single-Board-Computer wie der erste Raspberry Pi. Der Chip stellt eine interessante Hardware dar, nicht nur, weil hier RISC-V-Kerne verbaut worden sind. Es wurde ein bunter Blumenstrauß an Hardware im Chip zusammengestellt, mit dem der Chip einen Linux-Kernel ausführen oder aber mit einem anderen RTOS Hardware betreiben kann. 64 MByte RAM sind etwas, das nicht jede MCU von Haus aus mitbringt, mit 128 MBit externem Flash, dem SD-Karten-Interface und dem USB 2.0HS-Controller lässt sich auch der Bedarf an Massenspeichern befriedigen. Wer einen BL808 in Form eines Pine Ox64 oder Sipeed M1S Dock hat, kann heute schon einen Linux-Kernel mit rudimentären Tools starten. Doch der BL808 ist noch recht jung und wie der ESP32 wohl auch auf die Community angewiesen, um das Laufen zu lernen.

Sipeed M1s Dock
Bild 6. Sipeed M1s Dock.
Das Sipeed MAix BiT
Bild 7. Sipeed Maix Bit.

Pine Ox64 im Raspberry-Pi-Pico-Formfaktor

Während der Sipeed M1s Dock in Bild 6 äußerlich an einen ESP32-DevKitC erinnert und sich mit optionaler Kamera und Display eher als Alternative zu einem Sipeed Maixduino Kit for RISC-V AI + IoT positioniert (Bild 7), geht Pine64 einen anderen Weg.

Das Pinout des Pine Ox64 und auch der Formfaktor entsprechen dem eines Raspberry Pi Pico und Raspberry Pi Pico W. Bild 8 und Bild 9 zeigen den Vergleich mit einem Raspberry Pi Pico W. Beim Pine Ox64 ist der Micro-USB-Port jedoch nur für die Spannungsversorgung gedacht, der USB-2.0HS-OTG ist über den USB-C verfügbar, wo auch die Datenleitungen für ein später geplantes CSI-Kamera-Add-On versteckt sind.

BL808 und Raspberry Pi Pico W (oben und unten)
Bild 8 und Bild 9: BL808 und Raspberry Pi Pico W (Oberseite und Unterseite).

Durch die Wahl des Formfaktors kann ein Teil der Peripherie für den Raspberry Pi Pico genutzt werden, was für den einen oder anderen Maker das Experimentieren mit dem Board vereinfacht und Zugriff auf ein bestehendes Ökosystem an Hardware erlaubt.

BL616 Funktionsblockdiagramm.
Bild 10. Blockdiagramm des BL616 (Quelle: Bouffalo Lab, https://tinyurl.com/2p9da2w6).

BL616

Der BL616 ist der kleine Bruder des BL808. Hier ist nur ein 32-Bit-RISC-V-Kern (RV32IMAFCP) verbaut und nur eine reduzierte Peripherie vorhanden, wie in dem Blockschaltbild in Bild 10 zu sehen ist. Es stehen 480 kB RAM zur Verfügung und 4 MB Flash im Chip. Sipeed hat als kleines Modul den MOS (Bild 11) und das M0S Dock im Angebot. Mit dem USB-2.0HS-OTG-Port mit 480 Mbit ermöglicht der Chip sicherlich ein paar interessante Anwendungen.
 

Sipeed M0S-Modul
Bild 11. M0S Modul von Sipeed. (Quelle: Sipeed, https://tinyurl.com/3h44ak3c)

BL702 und BL602

Der BL702 und der BL602 sind nicht neu, eventuell aber dem einen oder anderen nicht bekannt. Der BL602 ist der älteste hier vorgestellte Chip und kann von seiner Ausstattung an RAM und Flash am ehesten mit einem ESP8266 verglichen werden, wobei der BL602 neben WLAN auch BLE 5.0 unterstützt. Der BL602 war der erste Chip von Bouffalo Lab, der zwar auf eine breitere Community getroffen ist, dann jedoch im Schatten des ESP32 verschwand. Hier kommt schon ein RISC-V-Kern (32 Bit) mit 192 MHz zum Einsatz, dem 276 kB SRAM zur Seite stehen. Für den BL602, der auch im Elektor-Shop auf dem Pine BL602 EVB zu finden ist, gibt es passende Lektüre von LEE Lup Yen , die einen einfachen Einstieg erlauben sollte. Die Peripherie des BL602 (Blockdiagramm in Bild 12) ist im Vergleich mit anderen Chips der Familie sehr schlicht gehalten.

Der BL702 besitzt ebenfalls einen 32-Bit-RISC-V-Kern, unterstützt jedoch nur BLE und Zigbee 3.0. Das Blockdiagramm in Bild 13 zeigt, dass die Periphere in diesem Chip gegenüber dem BL602 deutlich ausgebaut wurde. Durch das USB-2.0FS-Interface (12 Mbit) wurde der Chip auch ohne Wireless-Funktionen in einigen preisgünstigen Debuggern verbaut.

 

BL602 und BL702 Diagramme
Bild 12. Blockdiagramm des BL602. (Quelle: Bouffalo Lab, https://tinyurl.com/bdzfm2ka)
Bild 13. Blockdiagram des BL702. (Quelle: Bouffalo Lab, https://tinyurl.com/2e95z7cb)

Dokumentation und SDK

Für BL808, BL702, BL616 und BL602 gibt es eine Dokumentation in englischer und chinesischer Sprache. Wie bei anderen Firmen wird diese nicht einfach als Download auf der Webseite angeboten, sondern steht in einem GitHub-Repository bereit. Einerseits erlaubt dies, Benutzer auf Fehler und mögliche Verbesserungen hinzuweisen, das Ganze zeigt aber auch, dass die Dokumentation noch in Arbeit ist. Die Dokumente sind funktional, jedoch mit dem Datenblatt eines Raspberry Pi Pico nicht zu vergleichen.

Mit dem Datenblatt und dem Reference Manual für diese Chips lässt sich jedoch schon entwickeln. Wer auf der Suche nach einem passenden Arduino-Framework ist, wird sich noch etwas gedulden müssen. Für den BL602 wurde damit schon begonnen , für die anderen Chips ist aber noch keine Unterstützung vorhanden.

Für die Entwicklung mit den Chips steht das bl_mcu_sdki> zur Verfügung, das es erlaubt, Code in C/C++ zu schreiben. Auch hier ist zu sehen, dass noch Potenzial für Verbesserungen vorhanden ist. 

Abonnieren
Tag-Benachrichtigung zu Mikrocontroller jetzt abonnieren!

Ein erstes Fazit

Der erste Eindruck von BL808 und BL616 verspricht sehr Interessantes für die Zukunft. Eine eher nachdenkliche Frage ist, warum ein solcher Chip aus dem asiatischen Raum in solch kurzer Zeit Gestalt annehmen kann, während es den Anschein hat, als würden die großen verbleibenden Hersteller in Europa oder Amerika aktuell eine sehr konservative Entwicklung betreiben. Die letzte wirkliche Überraschung in diesem Bereich war und ist immer noch der RP2040 von Raspberry Pi.

Wer auf der Suche nach einer stabilen Plattform mit bewährtem SDK ist, sollte momentan noch nach anderen Chips Ausschau halten. Dokumentation und SDK sind auf GitHub aber vorhanden und erlauben es, den Fortschritt nicht nur zu verfolgen, sondern wie bei anderen Herstellern auch aktiv an der Verbesserung teilzunehmen. Zudem lassen Preis und Funktionsumfang den Chip mehr als interessant erscheinen. Mit dem aktuellen SDK und auch dem momentanen Stand an Treibern ist der Chip eher für Experimentierfreudige geeignet, die herausfinden wollen, wozu ein solcher Chip in der Lage ist. Mir selbst stellt sich nicht nur die Frage „Can it run DOOM?“, sondern auch „Can it run Quake 1?“.

Wer nun einmal erste Schritte mit einem BL808 wagen möchte, für den stellt der Pine Ox64 von Pine64 sicherlich eine interessante Wahl dar. Aktuell ist dieses Board leider noch nicht im Elektor-Shop verfügbar und bei einer Bestellung direkt beim Hersteller ist zu beachten, dass Einfuhrabgaben anfallen. Lassen Sie uns daher wissen, ob Sie ein Interesse an dem Board haben, sodass wir Sie informieren können, wenn dieses Board direkt bei Elektor bestellbar ist.
 


Fragen oder Kommentare zum BL808?

Bei Fragen oder Anmerkungen zu diesem Artikel wenden Sie sich bitte an die Elektor-Redaktion unter: redaktion@elektor.de