Vom Pi-Prototypen zum Serienprodukt

Reibungslos von der Entwicklung zur Fertigung

12. Dezember 2023, 8:00 Uhr | Von Konrad Zöpf, Deputy Director TQ-Embedded
Bild 1. In der Professional-Maker-Community wächst der Bedarf an Ethernet- und Grafik-Schnittstellen. Auch KI-Beschleuniger, wie die NPU des NXP i.MX8 Plus sind immer gefragter.
© TQ-Group

Der Raspberry Pi hat weit über den Maker-Bereich hinaus an Bedeutung gewonnen und kommt zunehmend in professionellen Anwendungen zum Einsatz. Hierbei punkten die verfügbaren Schnittstellen sowie die gute Software-Unterstützung. TQ bietet ein Maker Board, das ähnliche Eigenschaften aufweist.

Diesen Artikel anhören

Für Anwender, die auf Basis des Raspberry Pi ihren ersten Prototypen entwickelt haben und einen schnellen Übergang zu einem robusten und langzeitverfügbaren System wünschen, bietet TQ Lösungen und Unterstützung an. So gibt es beispielsweise mit dem »MBa8MP-RAS314« ein neues, professionelles Maker Board, das sich für den industriellen Serieneinsatz und viele, verschiedene Einsatzbereiche eignet (Bild 1).

Die Unterstützung für einen erfolgreichen Umstieg beginnt mit der Analyse des bestehenden Systems. Hierbei 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 Leistung ersetzt werden.

Auch die Nutzung weiterer Schnittstellen, beispielsweise für ein zweites Ethernet, ist zu erwägen. Das soll Luft bei der Leistung schaffen sowie Perspektiven für weitere Produktentwicklungen beziehungsweise -erweiterungen eröffnen. In diesem Rahmen gilt es, sich Gedanken über das Erweitern der bestehenden Funktionen zu machen, beispielsweise durch in die CPU integrierte KI-Beschleuniger oder Security-Funktionsblöcke. Als Hardware stehen für alle TQ-Module geeignete Standard-Baseboards zur Verfügung.

Um schnellstmöglich mit der Portierung auf ein Embedded-System von TQ zu starten beziehungsweise um die eigene Applikation auf der neuen Hardware testen zu können, bietet TQ das eigene Betriebssystem »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. Hierzu können Entwickler die benötigten Softwarepakete ohne langwieriges Einarbeiten installieren und die eigene Applikation testen. Leistungsfähige Build- und Software-Entwicklungswerkzeuge helfen beim Erstellen 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 darauf optimiert, den Verschleiß der SD-Karte als Massenspeicher zu minimieren.

passend zum Thema

MBa8MP-RAS314
Bild 2. Für den SBC MBa8MP-RAS314 nutzt TQ Embedded das auflötbare Modul TQMa8MPxL als zentralen Baustein.
© TQ-Group

Mehr Entwicklungsspielraum mit einer neuen Board-Alternative

Nach der erfolgreichen Analyse beziehungsweise Software-Evaluierung kann das Entwickeln des kundenspezifischen Designs starten – entweder durch den Anwender selbst, zusammen mit TQ oder komplett durch TQ. Wahlweise bietet sich dafür das »MBa8MP-RAS314« zum Einsatz an, das TQ speziell als Alternative zum Raspberry Pi entwickelt hat (Bild 2).

Das 100 mm x 100 mm kompakte Mainboard basiert auf dem »i.MX-8-Plus«-Prozessor von NXP Semiconductors und bietet zahlreiche Schnittstellen, darunter:

  • HDMI
  • LVDS
  • MIPI-DSI
  • USB
  • Audio (MIC/Headphone)
  • MIPI-CSI
  • SD-Card
  • Dual-Ethernet (1 x TSN)

Hierfür verwendet das Board die branchenüblichen Steckverbinder – es müssen also keine speziellen Kabel beschafft werden. Wireless-Standards wie WiFi (802.11a/b/g/n/ac) und Bluetooth (v5.2), jeweils über schnelles PCIe intern angebunden, sowie eine 40-Pin-I/O-Leiste runden das Schnittstellenangebot ab. Ergänzt sind die bis zu vier Arm-Cortex-A53-Cores des Prozessors um einen Cortex-M7-Core, eine 3D Graphics Processing Unit (GPU), einen Dual Image Signal Processor (ISP) zwei digitale Signalprozessoren (DSPs) für Audio sowie eine Neural Processing Unit (NPU).  Hiermit erschließt sich mit dem MBa8MP-RAS314 ein weites Spektrum an Einsatzmöglichkeiten:

  • Dank seiner zwei Gigabit Ethernet (GbE)-Schnittstellen (eine sogar TSN-fähig) entspricht das Board nicht nur den wachsenden Forderungen der Industrie nach mehr unabhängigen beziehungsweise redundanten Netzwerkzweigen, sie ermöglichen ebenfalls zahlreiche spezialisierte Netzwerk-Geräte wie Hardware-Firewall oder Failover-Edge-Router. Die Time-Sensitive Networking (TSN)-Funktion adressiert vor allem das Übertragen von Daten mit sehr geringer Latenz und hoher Verfügbarkeit. Mögliche Anwendungsbereiche sind konvergente Netzwerke mit Echtzeit-Audio/Video-Streams sowie Echtzeit-Kontroll-Streams, die beispielsweise in Autos, Flugzeugen oder Industrieanlagen zur Steuerung verwendet werden.
  • Der Audio Return Channel (HDMI-ARC) erlaubt das Nutzen der Ton-Signale von TV-Geräten/Monitoren und eröffnet hiermit den Einsatz in Produkten der Unterhaltungselektronik und der Heimkinotechnik.
  • Da ein 16 GB eMMC-Flash-Speicher 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 Applikationen mit deutlich erhöhten Sicherheitsniveau realisieren.
  • Die integrierte NPU beschleunigt das Verarbeiten von KI-Algorithmen und Machine Learning (ML) 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-Monitors 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. Zudem erlaubt es Applikationen 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.
  • Vier USB-3.0-Ports erhöhen die Einsatzmöglichkeiten.
  • Sein Formfaktor mit den Maßen von 100 mm x 100 mm ermöglicht dem MBa8MP-RAS314 den Zugriff auf das Gehäuse- und Zubehör-Ökosystem des embeddedNUC (eNUC)-Standards.
  • Bei der Stromversorgung setzt TQ statt auf eine ungesicherte Micro-USB-Buchse auf eine Leiterplatten-Grundleiste mit Lock-&-Release-Gewindeflansch von Phoenix Contact. Ein ungewolltes Trennen von der Versorgung ist somit nicht möglich – selbst bei beengten Einbauverhältnissen und Vibrationen.
  • Dank Langzeitverfügbarkeit von zehn bis 15 Jahren, eignet sich das Board für sehr lange Projektlaufzeiten.

Test- und Fehlersuchfunktionen

Mit seinen Funktionen und Schnittstellen geht das MBa8MP-RAS314 deutlich über die Ausstattung der üblichen Maker Boards wie dem Raspberry Pi hinaus und zielt auf anspruchsvollere Applikationen ab.

Diese ziehen allerdings häufig einen erhöhten Debug-Bedarf nach sich. Aus diesem Grund stehen Entwicklern neben JTAG mit einem eigenen Debug-UART/USB-Port (per USB2.0 Micro AB) und einem spezifischen Serial Downloader/USB-3.0-Gerät (per Micro-USB Typ B) leistungsfähige Zusatzkanäle für Debug- und Programmieraufgaben zur Verfügung.

zuverlässige passive Kühlung
Bild 3. Eine zuverlässige passive Kühlung muss von Anfang an Bestandteil der Entwicklung eines Single Board Computers sein.
© TQ-Group

Betriebssysteme decken den Anwendungsbedarf

Auf Basis der Standard TQ-Baseboards, wie dem MBa8MP-RAS314, lässt sich die kundenspezifische 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. Hiermit lassen sich einerseits die Betriebssystem-Images relativ klein halten und andererseits die installierten Pakete exakt bestimmen und hinsichtlich der Versionsnummer festlegen. Das ist vor allem für nachfolgende Prozesse wie das Erstellen einer Software Bill of Material (SBOM) oder dem Common Vulnerabilities and Exposure (CVE)-Tracking 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 Kundenwünsche erweitert wurde: Obwohl sie nun ein vollständigeres und besseres Produkt ist, verbraucht sie mehr Ressourcen. Dank skalierbarer, eingebetteter Module lassen sich die gestiegenen Rechenleistungsanforderungen leicht erfüllen. Leider geht das auf Kosten einer höheren Leistungsaufnahme sowie einer höheren Wärmeentwicklung.

Der Einbau von lauten Lüftern ist oft nicht möglich, da sie nicht in das Gehäuse passen oder – wie in Anwendungen der medizinischen Elektronik oder in Gefahrenbereichen – verboten sind. Zudem ist das Entwickeln einer passiven Kühlungslösung zeitaufwendig und teuer. Viel günstiger ist es, wenn der Board-Lieferant von Anfang an ein geeignetes Kühlkonzept für die Hauptplatine entwickelt. Hierbei definiert der Hersteller außerdem alle mechanischen Befestigungspunkte und optimiert sie für den Einbau. TQ bietet für das MBa8MP-RAS314 mit Headspreader und Flachkühlkörper-Optionen für ein optimiertes Kühlkonzept an (Bild 3).

Armbian für TQ-Module und -Boards

Armbian stellt für das Anpassen der Linux-Kernel ein eigens Build-System zur Verfügung, das das Einbinden eigener Entwicklungsboards ermöglicht. Es steht über Github zum Download bereit.

Auch wenn der Patch zum Hinzufügen der TQ-Boards auf den aktuellen »master« Branch möglich sein sollte, empfiehlt TQ von einem der bereitgestellten Tags auszugehen. Mit dem Aufruf des Scripts »./compile.sh« kann ein Menü-geführter Build ausgeführt werden. Alternativ können die einstellbaren Variablen im Kommando mitgegeben werden. Sobald der Build-Vorgang 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 das »MBa8MP-RAS314«, zusätzliche Dokumentation und Downloads sind im TQ-Support-Wiki verfügbar.

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.

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 lässt sich ebenso ein Debian basiertes Image erzeugen. 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 vom Yocto-basierten Linux-Ansatz. Eine gute Basis für allgemeine Informationen ist die Dokumentation zu Armbian.

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 »imx8mptqma8mpxl-hdmi.tdb« verwendet. Ist ein Monitor an HDMI angeschlossen, wird eine Konsole auf ihm angezeigt. Mithilfe des armbian-config-Tools kann man das U-Boot Environment beeinflussen. Ü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 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 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 Audiodateien abgespielt werden. Dafür ist ein Audio-player per apt installierbar.

 


Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu TQ-Group GmbH

Weitere Artikel zu Echtzeit-/Embedded Software

Weitere Artikel zu SBCs / CPU-Boards / CoM / SoM

Weitere Artikel zu Industrie-Computer / Embedded PC