i.MX8 carrier board
For a customer project, we developed a carrier board for an i.MX8 SoM.
The i.MX8 was extended with an FPGA for custom real-time signal processing, stepper controller management, and LED bus control.
The board also integrates various motor controllers for stepper and BLDC motors as well as a second Ethernet interface with PoE via PCIe.
Our services
Design & Development
- Electronics for a complex carrier board based on i.MX8 SoMs
- Real-time software on the Cortex-M4 core (FreeRTOS)
- FPGA design for real-time data processing, stepper motor control, and interfaces
Embedded Firmware
- STM32 firmware for control and commutation of two BLDC motors (block and sinus commutation)
- Linux drivers for communication between Linux applications and the Cortex-M4 real-time software via RPMSG
PC Software & Tools
- Linux user programs for diagnostics and testing
- Scope software for BLDC motor diagnostics, based on Qt
Embedded Linux & System Integration
- Adaptation of a Yocto-based framework
- Configuration of Devicetree, Linux kernel, and U-Boot bootloader
Prototypes & Project Implementation
- Assembly of the first prototypes
- Collaboration with partner companies for Linux userspace firmware and web interface
Technologies
Hardware
- Multilayer PCB for complex circuitry
- Stepper motors and BLDC motor commutation
- Power sequencing and Power over Ethernet (PoE)
- i.MX8M Mini (VAR-DART-MX8MM SoM) and i.MX8M Plus (VAR-DART-MX8MP SoM)
- TMC2590 stepper motor controller
- STM32 microcontroller
- FET gate driver
- iCE40 FPGA for real-time data processing
- Battery-backed RTC and eFUSEs
- PCIe Ethernet controller and PSE/PoE controller
Software
- Embedded Linux
- Devicetree configuration
- Linux kernel and Linux drivers
- U-Boot bootloader
- RPMSG messaging for communication between real-time software and Linux
Programming Languages
- C/C++ for firmware and Linux software
- VHDL for FPGA design
- Python for diagnostic automation
Interfaces
- SPI, QSPI, I2C, UART
- Ethernet and USB
- PCIe for expansions
- LED bus for display control
- PLC inputs for industrial signals
Tools
Software Development
- KDevelop – C/C++ IDE for firmware development on the i.MX8 Cortex-M4
- Segger J-Link Pro & GDB – Debugging and analysis of CM4 firmware
- ST-Link – Debugging of STM32 microcontrollers
- CubeIDE (ST) – C/C++ IDE for STM32 development
- Yocto – Building embedded Linux images
- Docker – Isolated build environment for Yocto projects
FPGA Design
- iCEcube2 (Lattice) – FPGA synthesis and implementation
- GHDL – Simulation and verification of FPGA logic
Hardware Development
- KiCAD – Schematic capture and PCB layout
- Reflow oven – Soldering of prototypes
Project Management & Version Control
- Git – Source code version control
- GitLab – Project management, ticketing, and version control
Regulatory Requirements
The following regulations were taken into account:
- CE Marking & EU Conformity
- EMC Directive
- Machinery Directive / Machinery Regulation
- RoHS