Das MBa8MP-RAS314 hilft professionellen Makern bei der Überführung ihrer Prototypen in die Serie.

Das MBa8MP-RAS314 hilft professionellen Makern bei der Überführung ihrer Prototypen in die Serie. (Bild: TQ-Group)

Der Raspberry Pi hat weit über den Maker-Bereich hinaus an Bedeutung gewonnen und kommt auch in professionellen Embedded-Anwendungen zum Einsatz. Geschätzt von den Anwendern werden die verfügbaren Schnittstellen, aber vor allem die sehr gute Software-Unterstützung.

Die Unterstützung für einen erfolgreichen Umstieg vom Pi-Prototypen zum Serienprodukt beginnt mit der Analyse des bestehenden Systems. Dabei wird auf Basis des verwendeten Raspberry Pi ein vergleichbares TQ-Modul herausgesucht. Ein wichtiger Punkt dabei ist der Abgleich der verwendeten Schnittstellen: Diese sollen nicht nur funktionell, sondern auch mit einer gleichen oder besseren Performance ersetzt werden.

Auch die Nutzung weiterer Schnittstellen, z. B. für ein zweites Ethernet, ist zur erwägen, um nicht nur Luft bei der Performance zu haben, sondern auch Perspektiven für weitere Produktentwicklungen/-erweiterungen zur eröffnen. In diesem Rahmen gilt es, sich auch Gedanken über die Erweiterung der bestehenden Funktionalitäten zu machen, beispielsweise durch in der CPU intergierte KI-Beschleuniger oder Security-Funktionsblöcke. Als Hardware stehen für alle TQ-Module geeignete Standard-Baseboards zur Verfügung.

Um schnell mit der Portierung auf ein Embedded-System von TQ zu starten bzw. um die eigene Applikation auf der neuen Hardware testen zu können, bietet TQ „Armbian - Linux for ARM development boards“ an. Armbian beschreibt sich selbst als eine „leichtgewichtige, auf Debian oder Ubuntu basierende Linux-Distribution, die auf ARM-Entwicklungsboards spezialisiert ist.“ Die Images sind für Flash-Speichergeräte wie NAND, eMMC und USB optimiert. Sowohl SSH- als auch DHCP-Dienste sind von Anfang an aktiviert. Je nach Applikationsbedarf hat der Entwickler die Wahl, das Betriebssystem für Kommandozeilen- oder GUI-Betrieb zu konfigurieren. Dazu können ohne langwierige Einarbeitung die benötigten Softwarepakete installiert und die eigene Applikation getestet werden. Leistungsfähige Build- und Software-Entwicklungswerkzeuge helfen bei der Erstellung benutzerdefinierter Builds.

Armbian hat den Anspruch, einen Teil der Kernel-Entwicklung und einen Großteil der Wartung für Arm-Plattformen zu übernehmen. Im Unterschied dazu verlässt sich Debian auf Upstream-Quellen für ARM-Hardware, die oftmals Jahre hinterherhinken können und/ oder denen viele Funktionen fehlen. So ist beispielsweise das Armbian-System optimiert, den Verschleiß der SD-Karte als Massenspeicher zu minimieren.

Das 100 mm × 100 mm kompakte Mainboard MBa8MP-RAS314 basiert auf dem NXP-i.MX-8-Plus-Prozessor und bietet zahlreiche Schnittstellen.
Das 100 mm × 100 mm kompakte Mainboard MBa8MP-RAS314 basiert auf dem NXP-i.MX-8-Plus-Prozessor und bietet zahlreiche Schnittstellen. (Bild: TQ-Group)

Mehr Entwicklungsspielraum mit einer neuen Board-Alternative

Nach der erfolgreichen Analyse bzw. Software-Evaluierung kann die Entwicklung des anwendungsspezifischen Designs starten – entweder durch den Anwender selbst oder zusammen mit TQ oder auch komplett durch TQ. Wahlweise bietet sich dafür das Mainboard MBa8MP-RAS314 zum Einsatz an, dass das Unternehmen speziell als Alternative zum Raspberry Pi entwickelt hat.

Das 100 mm × 100 mm kompakte Mainboard basiert auf dem NXP-i.MX-8-Plus-Prozessor und bietet zahlreiche Schnittstellen wie HDMI, LVDS, MIPI-DSI, USB, Audio (MIC/Headphone), MIPI-CSI, SD-Card oder Dual-Ethernet (1 × TSN) mit den branchenüblichen Steckverbindern, es müssen also keine speziellen Kabel beschafft werden. Wireless-Standards wie WiFi (802.11a/b/g/n/ac) und eine 40-Pin-I/O-Leiste runden das Schnittstellenangebot ab. Die bis zu vier Arm-Cortex-A53-Cores des Prozessors sind ergänzt um Cortex-M7-Core, 3D-GPU, Dual Image Signal Processor (ISP) zwei Audio-DSPs und eine NPU (Neural Processing Unit).

Damit erschließt sich mit dem MBa8MP-RAS314 ein weites Spektrum an Einsatzmöglichkeiten:

  • Dank seiner zwei Gigabit-Ethernet-Schnittstellen (eine TSN-fähig) entspricht das Board den wachsenden Forderungen der Industrie nach mehr unabhängigen bzw. redundanten Netzwerkzweigen und es ermöglicht zahlreiche spezialisierte Netzwerk-Appliances wie Hardware-Firewall oder Failover-Edge-Router. Die Time-Sensitive-Networking (TSN) -Funktion adressiert vor allem die Übertragung mit sehr geringer Latenz und hoher Verfügbarkeit. Mögliche Anwendungsbereiche sind konvergente Netzwerke mit Echtzeit-Audio/Video-Streams sowie insbesondere Echtzeit-Kontroll-Streams, die beispielsweise in Autos, Flugzeugen oder Industrieanlagen zur Steuerung verwendet werden.
  • Der Audio Return Channel (HDMI-ARC) erlaubt die Nutzung der Ton-Signale von TV-Geräten/Monitoren und eröffnet damit den Einsatz in Produkten der Unterhaltungselektronik und der Heimkinotechnik.
  • Da ein 16 GB eMMC Flash integriert ist, muss nicht auf leicht manipulierbare USB-Speicher oder SD-Karten zurückgegriffen werden, um das Betriebssystem zu laden. In Kombination mit den bereits im Chip integrierten Security-Funktionen und einem zusätzlichen Security-Chip (SE050) auf dem Modul, lassen sich Anwendungen so mit deutlich erhöhten Sicherheitsniveau realisieren.
  • Die integrierte Neural Processing Unit (NPU) beschleunigt die Verarbeitung von KI-Algorithmen und Machine Learning um ein Vielfaches (Faktor 10 bis 30) gegenüber dem klassisch CPU-Kern Cortex-A53.
  • Wer ein hochwertiges Display in sein Produkt integrieren will, ohne den Kosten-Overhead eines HDMI-Displays zahlen zu wollen, kann auf LVDS zurückgreifen und so die Serientauglichkeit verbessern.
  • Dank optionaler Inline-ECC-Speicherfunktion stellen Speicherfehler gegenüber den Standard-Maker-Boards ein geringeres Problem dar und erlaubt Anwendungen für erhöhte Safety-Anforderungen.
  • Der in der CPU integrierte DSP ist für die Audio-Analyse optimiert und bietet sich so für sprachgesteuerte Bedienfunktionen (Sprachassistenz) an – und das mit geringem Energiebedarf.
  • Die vier USB-3.0-Ports erhöhen die Funktionalität für praktisch alle Anwendungen.
  • Sein Formfaktor 100 mm × 100 mm ermöglicht dem MBa8MP-RAS314 den Zugriff auf das Gehäuse- / Zubehör-Ecosystem des eNUC-Standards.
  • Zur Stromversorgung wird statt auf eine ungesicherte Micro-USB-Buchse auf eine Leiterplatten-Grundleiste mit Lock-&-Release-Gewindeflansch (Phoenix Contact) gesetzt. Eine ungewollte Trennung von der Versorgung ist damit verhindert – selbst bei beengten Einbauverhältnissen und Vibrationen.
  • Dank Langzeitverfügbarkeit von zehn bis 15 Jahren, eignet sich die Lösung auch für sehr lange Projektlaufzeiten.
Mit seinen Funktionen und Schnittstellen zielt MBa8MP-RAS314 auf anspruchsvollere Anwendungen ab.
Mit seinen Funktionen und Schnittstellen zielt MBa8MP-RAS314 auf anspruchsvollere Anwendungen ab. (Bild: TQ-Group)

Test- und Fehlersuchfunktionen

Mit seinen Funktionen und Schnittstellen geht MBa8MP-RAS314 also deutlich über die Ausstattung der üblichen Maker-Boards wie dem Raspberry Pi hinaus und zielt auf anspruchsvollere Anwendungen ab. Diese ziehen häufig aber auch einen erhöhten Debug-Bedarf nach sich. Daher stehen den Entwicklern neben JTAG mit einem eigenen Debug-UART/ USB-Port (per USB2.0 Micro AB) und einem spezifischen Serial Downloader / USB 3.0 Device (per Micro-USB Typ B) leistungsfähige Zusatzkanäle für Debug- und Programmieraufgaben zur Verfügung.

Betriebssysteme zur Deckung des Anwendungsbedarfs

Auf Basis der Standard-Baseboards, wie dem MBa8MP-RAS314, lässt sich die anwendungsspezifische Hardware schnell ableiten und im gewünschten Formfaktor erstellen. Der Prototypenbau sowie die Inbetriebnahme und Verifikation stellen sicher, dass alle gewünschten Eigenschaften erfüllt sind.

Für seine Applikationssoftware kann der Anwender weiterhin die Armbian-Distribution verwenden oder auf eine Yocto-Distribution umsteigen. Der Vorteil der Armbian-Distribution ist der geringe Anpassungsaufwand gegenüber der Prototypen-Entwicklung. Wer jedoch die volle Kontrolle über sein Linux-System erhalten will, dem empfiehlt TQ die Nutzung von Yocto. Damit lassen sich einerseits die Betriebssystem-Images relativ klein halten und andererseits die installierten Pakete exakt bestimmen und auch hinsichtlich der Versionsnummer festlegen. Das ist vor allem für nachfolgende Prozesse wie die Erstellung einer SBOM (Software Bill of Material) oder das CVE-Tracking (Common Vulnerabilities and Exposures) sehr hilfreich.

Auch wenn das Betriebssystem und die Anwendungssoftware erfolgreich zusammenarbeiten, gibt es oft eine unerwartete Überraschung: Das System wird wärmer als erwartet. Die Ursache ist oft die Software, die während der Entwicklung mit neuen Ideen und um Wünsche der Anwender erweitert wurde: Obwohl sie nun ein vollständigeres und besseres Produkt ist, verbraucht sie mehr Ressourcen. Dank skalierbarer, eingebetteter Module können die gestiegenen Rechenleistungsanforderungen leicht erfüllt werden. Leider geht dies auf Kosten eines höheren Stromverbrauchs und einer höheren Wärmeentwicklung.

Der Einbau von lauten Lüftern ist oft keine Lösung, da sie nicht in das Gehäuse passen oder sogar in Anwendungen der medizinischen Elektronik oder in Gefahrenbereichen verboten sind. Die Entwicklung einer passiven Kühlungslösung ist zeitaufwendig und teuer. Es ist viel billiger, wenn der Board-Lieferant von Anfang an ein geeignetes Kühlkonzept für die Hauptplatine entwickelt. Dabei werden auch alle mechanischen Befestigungspunkte definiert und für den Einbau optimiert. Das MBa8MP-RAS314 gibt es dafür mit Headspreader und Flachkühlkörper-Optionen für ein optimiertes Kühlkonzept. (neu)

Armbian für TQ-Module und -Boards

Armbian stellt für die Anpassung der Linux-Kernel ein eigens Build-System zur Verfügung, das das Einbinden eigener Entwicklungsboards ermöglicht. Das Build-System kann von Github heruntergeladen werden: hier

Auch wenn der Patch zum Hinzufügen der TQ-Boards auf den aktuellen „master“ Branch möglich sein sollte, wird empfohlen von einem der zur Verfügung gestellten Tags auszugehen. Durch Aufruf des Scripts ./compile.sh kann nun ein Menü geführter Build ausgeführt werden. Alternativ können die einstellbaren Variablen auch im Kommando mitgegeben werden. Sobald der Buildvorgang abgeschlossen ist, befindet sich das SD-Karten-Image im Ordner /output/ images und kann mit den bekannten Möglichkeiten auf eine SD-Karte gespielt werden. Detaillierte Build-Anleitungen für MBa8MP-RAS314, zusätzliche Dokumentation und Downloads sind im TQ-Support-Wiki verfügbar: hier

Beim ersten Start mit einem neu erstellten Image werden noch einige Schritte zur Fertigstellung ausgeführt. Diese (z. B. Root-Passwort vergeben) sind in der Dokumentation beschrieben: hier

Da nicht alle Kombinationen von Distribution und Desktop-Umgebung fehlerfrei baubar sind, empfiehlt sich für den Start die „jammy“ + „cinamon“-Kombination. Neben den Ubuntu-basierten Images kann auch ein Debian-basiertes Image erzeugt werden. Zudem lassen sich für die TQ-Module Images mit verschieden Kernelversionen erstellen: In den Konfigurationsdateien wird auf die jeweiligen Release-Tags der BSPs verwiesen. Mit der Variable BRANCH kann der Build beeinflusst werden. So nutzt BRANCH=current den „kirkstone“-Release. BRANCH=legacy nutzt hingegen „hardknott“.

Armbian Anleitungen

Armbian unterscheidet sich stark von dem Yocto-basierten Linux-Ansatz. Eine gute Basis für allgemeine Informationen ist die Dokumentation zum Armbian: hier

Beispiele anhand des Mainboards MBa8MP-RAS314 erläutern die Armbian-Vorgehensweise:

  • Anschluss HDMI/LVDS: Bei Armbian liegen die Devicetree-Dateien im Ordner /boot/dtb/. Als Standard Devicetree wird der imx8mptqma8mpxl-hdmi.tdb verwendet. Ist ein Monitor an HDMI angeschlossen, wird eine Konsole auf ihm angezeigt. Mithilfe des armbian-config Tools kann das U-Boot Environment beeinflusst werden. Über die Menüpunkte „System“ → „Bootenv“ gelangt man zum Editor.
  • Systeminformationen: Ist ein Monitor oder ein Display angeschlossen, wird nach dem Einloggen ein Startbildschirm mit Informationen zum Board angezeigt. Eine vergleichbare Anzeige erscheint auch beim Anmelden per SSH.
  • Software-Update: Eine Aktualisierung der Pakete wird wie bei Ubuntu mit apt durchgeführt.
  • Paketverwaltung - Mithilfe von apt lassen sich auch einfach weitere Pakete installieren und entfernen.
  • Python: Python und PIP sind bereits installiert.
  • GPIO: Um dem Nutzer Zugriff auf die GPIOs zu erlauben, muss der Nutzer in die Gruppe gpio aufgenommen werden. Anschließend muss die Änderung durch ab- und wieder anmelden übernommen werden. Um sich einen Überblick über die vorhandenen GPIOs zu verschaffen installiert man sich zunächst das Paket „gpiod“ und kann dann das Programm „gpioinfo“ aufrufen. Will man die GPIOs mit Python ansprechen, muss zusätzlich das passende Paket mithilfe von PIP installiert werden. Dieses Paket bringt auch einige Tests mit, die die Möglichkeiten demonstrieren. Typischerweise ist der erste Parameter die GPIO-Chipnummer und der zweite Parameter der Offset des entsprechenden GPIOs. Diese Informationen können mit „gpioinfo“ ermittelt werden.
  • Audio: Sind Lautsprecher (oder ein Monitor mit Lautsprechern) angeschlossen, können auch Audiodateien abgespielt werden. Dafür ist ein Audio-player per apt installierbar.

 

Autor

Autor Konrad Zöpf
(Bild: TQ)

Konrad Zöpf, Deputy Director TQ-Embedded

Sie möchten gerne weiterlesen?