© radoma/Shutterstock.com
Der MAX78000 auf dem Seziertisch

Maximale oder minimale IoT-Freuden?


Während Canaan mit dem Kendryte K210 das erste „moderne“ AI-SoC gelungen sein dürfte, ist ein K210-Modul als Stand-alone-Chip – also als nicht auf einen Maixduino oder einen ähnlichen Träger gelöteten Prozessor – auch heute noch eine Herausforderung. Hier setzt der MAX78000 von Maxim an, den wir uns in diesem Artikel genauer ansehen wollen.

Beginnen wir mit dem Offensichtlichen: Der Prozessor hört auf den Namen MAX78000EXG+ und wird ausschließlich in einem BGA-Gehäuse ausgeliefert. Daraus folgt, dass sein Löten alles andere als lustig ist. Selbst, wenn ein Reflow-Ofen vorhanden ist, macht die Qualitätssicherung Probleme. Beachten Sie, dass bei vielen Fertigern eine Xray-Überprüfung nur dann erfolgt, wenn der Entwickler das befiehlt (und bezahlt). Ohne Xray-Scan ist die Verarbeitung von BGAs reine Glückssache – der Autor erlebte bei reputablen Fertigern Lots, in denen vier von zehn Einheiten einen BGA-Alignment-Fehler aufwiesen. Interessanterweise verspricht das Datenblatt auch ein WLP-Gehäuse, über das sich zum Zeitpunkt der Fertigstellung dieses Artikels keine Informationen finden. Sei dem, wie es sei, als Nächstes wollen wir einen Blick auf das in Abbildung 1 gezeigte Architekturdiagramm werfen. Maxim entschied sich bei der Realisierung des Typs zu einigen ungewöhnlichen Maßnahmen.

hanna_maxim_1.tif_fmt1.jpgAbb. 1: Das Übersichtsdiagramm eines Chips verschafft Klarheit über sein Innenleben

Die rechts unten gezeigten mehreren Spannungseingänge dürften mikrocontrollererfahrene Entwickler nicht wirklich überraschen. Interessanter ist, dass man neben einem 100 MHz schnellen Cortex-M4-Prozessor auch einen RISC-V-Chip am gemeinsamen AHP/ABP-Bus angeschlossen findet. Dallas Maxim schlägt ihn im Datenblatt als „Coprozessor“ vor. Warum man nicht einfach zwei ARM-Kerne verwendet hat, ist dem Autor nicht klar. Vorstellbar wäre allerdings, dass man bei Maxim mit den Lizenzbedingungen von ARM nicht zufrieden ist und eine Artilleriekartusche in das Kontor schießt – man hört Erzählungen, dass Hersteller nach einem harten RISC-V-Push ihre ARM-Lizenzzahlungen stark reduziert fanden.

Das Kombinieren von RISC-V und ARM-Kern auf einem Chip kann die immense Medienaufmerksamkeit allerdings nicht erklären. Sie liegt vor allem im oben rechts dargestellten Convolutional-Neural-Network-Block begründet, der ein in der Hardware implementiertes neuronales Netzwerk darstellt. Sein primärer Lebenszweck besteht darin, Bilderkennung stark zu beschleunigen. Das lässt sich für diverse zivile und militärische Aufgaben einspannen. Mikrocontrollerhersteller brauchen im Allgemeinen eine gewisse Zeit, bis sie die Peripheriegeräte ihres Controllers auf ein akzeptables Niveau bringen. ein klassischer Problembär wäre beispielsweise der ADC des ESP32. Als Erfinder des One-Wire-Bus kann Maxim in diesem Bereich auf lange Erfahrung zurückblicken. Das zeigt sich unten rechts im Übersichtsdiagramm. Der MAX78000 bringt umfangreiche Unterstützung für verschiedene Busprotokolle mit. Neben I2C und mehreren SPI-Interfaces gibt es auch einen One-Wire-Controller, der das einst von Dallas Semiconductor zur Anbindung kleiner EEPROMs und Temperatursensoren implementierte Protokoll ansprechbar macht. Zudem gibt es einen ADC und andere Komfortfeatures wie Comparators. Insgesamt soll es, je nach Gehäusevariante, bis zu insgesamt 52 GPIO-Multifunktionspins geben. Interessant ist in diesem Zusammenhang noch, dass ein paralleles Interface zum Anschließen von verschiedenen Kameras vorhanden ist. Da das Entwickler Magazin kein Halbleiterheft ist, wollen die Besprechung der inneren Struktur des Chips an dieser Stelle unterbrechen und uns stattdessen der Programmierung zuwenden.

Leben mit zwei Herzen

Spätestens die Erwähnung des BGA-Gehäuses sollte ausreichen, sich klarzumachen, dass eigenmächtiges Design in einer Evaluationsplatine keine einfache Aufgabe ist. Maxim ist sich dieses Problems durchaus bewusst, weshalb man zwei verschiedene Evaluationsboards anbietet, die in Abbildung 2 nebeneinander gezeigt werden.

hanna_maxim_2.tif_fmt1.jpgAbb. 2: Maxim bietet für jedes Budget passende Hardware an

Das für rund 200 Euro erhältliche große Kit bringt zwei Displays mit: Eins zeigt den Bildschirminhalt, das andere den aktuellen Energieverbrauch (!!!) des Boards an. Die Kamera lässt sich über einen Wechseladapter anschließen. Zudem sind alle JTAG-Ports exponiert; quasi nebenbei bekommt man als Bonus einige Programmiergeräte dazu. Das kleinere Feather Board kostet im Durchschnitt 25 Euro und hat nur einen JTAG-Port für den RISC-V-Kern. Interessanterweise bringt die „kleine“ Platine eine Kamera mit, die sich, wie in Abbildung 3 gezeigt, versteckt und bei der Auslieferung manchmal mit einem Schutzfilm überzogen ist, den Sie naturgemäß entfernen sollten, bevor Sie mit den Experimenten anfangen.

hanna_maxim_3.tif_fmt1.jpgAbb. 3: Die Kamera des Fea--ther Boards ist gut versteckt

Amüsanterweise ist auch die kleinere Evaluationsplatine zum Ansteuern eines Bildschirms befähigt. Die notwendige Hardware muss separat gekauft werden. Für die Implementierung des Adafruit-Standards ist der unter [1] bereitstehende 2.4'' TFT FeatherWing gut geeignet. Der Autor wird in den folgenden Schritten mit der kleinen Evaluationsplatinen arbeiten. Sie hat zwar keinen Bildschirm, erleichtert aber das Debugging. Die Arbeit mit der großen Variante ist im Großen und Ganzen analog.

Mit zwei Gehirnen

Die Entwicklung von Mikrocontrollersoftware war traditionell eine Aufgabe für Windows: Ein Großteil der EDA-Software steht für unixoide Betriebssysteme nicht zur Verfügung, die Verfügbarkeit von herstellereigenen IDEs wie STMCubeIDE oder MPLAB für Unix und macOS ist ebenfalls ein neuer Trend.

Im Bereich des maschinellen Lernens ist die Situation genau andersherum – das Gros der Arbeit erfolgt hier unter unixoiden Betriebssystemen; das wohl auch deshalb, weil die dort vorherrschende Python-Programmiersprache unter Linux einfach eher First Class Citizen ist als unter Windows. Angemerkt sei schon hier, dass ernsthafte Versuche mit dem Generieren von AI-Modellen den Besitz einer NVIDIA-Grafikkarte voraussetzen: Viele AI Frameworks nutzen die CUDA-Schnittstelle, die mit AMD-Grafikkarten nicht funktioniert. Die folgenden Schritte erfolgen auf einer AMD-Achtkernworkstation mit einer betagten AMD R7 250.

Maxim orientiert sein Entwicklerökosystem „zweigleisig“. Für die Erzeugung...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang