i.MX8-Träger-Board

Wir haben für ein Kundenprojekt ein Trägerboard für einen i.MX8-SoM entwickelt.

Der i.MX8 wurde durch ein FPGA für kundenspezifische Echtzeit-Signalverarbeitung, Stepper-Controller-Steuerung und LED-Bus-Ansteuerung erweitert.

Das Board integriert zudem verschiedene Motorsteuerungen für Stepper- und BLDC-Motoren sowie ein zweites Ethernet mit PoE über PCIe.

Unsere Leistungen

Konzeption & Entwicklung

  • Elektronik für ein komplexes Trägerboard auf Basis von i.MX8-SoMs
  • Echtzeit-Software auf dem Cortex-M4-Kern (FreeRTOS)
  • FPGA-Design für Echtzeit-Datenverarbeitung, Schrittmotorsteuerung und Schnittstellen

Embedded-Firmware

  • STM32-Firmware für Steuerung und Kommutierung von zwei BLDC-Motoren (Block- und Sinus-Kommutierung)
  • Linux-Treiber für Kommunikation zwischen Linux-Anwendungen und der Cortex-M4-Echtzeitsoftware via RPMSG

PC-Software & Tools

  • Linux-User-Programme für Diagnose und Tests
  • Scope-Software zur Diagnose der BLDC-Motorsteuerungen, basierend auf Qt

Embedded-Linux & Systemintegration

  • Anpassung eines Yocto-basierten Frameworks
  • Konfiguration von Devicetree, Linux-Kernel und U-Boot-Bootloader

Prototypen & Projektumsetzung

  • Aufbau der ersten Prototypen
  • Zusammenarbeit mit Partnerunternehmen für Linux-Userspace-Firmware und Webschnittstelle

Technologien

Hardware

  • Multilayer-PCB für komplexe Schaltungen
  • Stepper-Motoren und BLDC-Motorkommutierung
  • Power Sequencing und Power over Ethernet (PoE)
  • i.MX8M Mini (VAR-DART-MX8MM-SoM) und i.MX8M Plus (VAR-DART-MX8MP-SoM)
  • TMC2590 Schrittmotorsteuerung
  • STM32-Mikrocontroller
  • FET-Gate-Driver
  • iCE40-FPGA für Echtzeit-Datenverarbeitung
  • Batteriegepufferte RTC und eFUSEs
  • PCIe-Ethernet-Controller und PSE/PoE-Controller

Software

  • Embedded-Linux
  • Devicetree-Konfiguration
  • Linux-Kernel und Linux-Treiber
  • U-Boot Bootloader
  • RPMSG Messaging für die Kommunikation zwischen Echtzeitsoftware und Linux

Programmiersprachen

  • C/C++ für Firmware und Linux-Software
  • VHDL für FPGA-Design
  • Python für automatisierte Diagnosen

Schnittstellen

  • SPI, QSPI, I2C, UART
  • Ethernet und USB
  • PCIe für Erweiterungen
  • LED-Bus zur Steuerung von Anzeigen
  • SPS-Inputs für industrielle Signale

Tools

Softwareentwicklung

  • KDevelop – C/C++ Entwicklungsumgebung für Firmware auf dem i.MX8 Cortex-M4
  • Segger J-Link Pro & GDB – Debugging und Analyse der CM4-Firmware
  • ST-Link – Debugging von STM32-Mikrocontrollern
  • CubeIDE (ST) – C/C++ Entwicklungsumgebung für STM32
  • Yocto – Erstellung von Embedded-Linux-Images
  • Docker – Isolierte Build-Umgebung für Yocto-Projekte

FPGA-Design

  • iCEcube2 (Lattice) – FPGA-Synthese und Implementierung
  • GHDL – Simulation und Verifikation von FPGA-Logik

Hardwareentwicklung

  • KiCAD – Schaltplanerstellung und PCB-Layout
  • Reflow-Ofen – Löten von Prototypen

Projektmanagement & Versionskontrolle

  • Git – Verwaltung von Quellcode-Versionen
  • GitLab – Projektorganisation, Ticket-Management und Versionskontrolle

Regulative Anforderungen

Die folgenden Regulatorien wurden berücksichtigt:

  • CE-Kennzeichnung & EU-Konformität
  • EMV-Richtlinie
  • Maschinenrichtlinie / Maschinenverordnung
  • RoHS