i.MX8 carrier board
For a customer product we have developed a mainboard PCB and embedded software.
The mainboard carries an i.MX8-SoM from Variscite and extends the i.MX8 using an iCE40-FPGA for interfacing and real-time control. It further contains a stepper motor controller (controlled by FPGA and i.MX8), two BLDC motor controller (based on STM32), several interfaces like ethernet, USB, some SPS sensor inputs, control outputs and a bus led output.
Our services
Conceptual design and development of
- the electronics (~530 components)
- the real time software, based on FreeRTOS and running on the i.MX8 Cortex M4 core
- the FPGA design
- for real-time data processing
- for real-time control of the stepper motor controller
- for interfacing
- the STM32 firmware to control and commutate the two BLDC motors
- the Linux driver for the communication between the Linux userspace programs and the Cortex M4 real-time software
- some Linux userspace programs for testing and maintenance purposes
Adaption of
- the Yocto based embedded Linux environment which is running on the i.MX8 Cortex A53 cores to the project requirements
- the Linux devicetree and Linux kernel to the mainboard
- the u-boot to the project requirements
Assembling of
- the first prototypes
The Linux userspace firmware and a webinterface was developed by a software development company with whom we shared the task.
Our Skills
- Embedded Linux, Linux BSP, Linux driver development
- C/C++ programming language
- VHDL programming language
- Schematic and Layout
- SMD/THT assembling and reflow-soldering
Used technologies
Technologies
- Embedded Linux
- Devicetree
- Linux kernel
- Linux driver
- u-boot
- C/C++ programming language
- VHDL programming language
- RPMSG
- Stepper motor
- BLDC motor
- Power sequencing
- 4-Layer PCB
Chips and SoMs
- i.MX8M Mini, VAR-DART-MX8MM-SoM from Variscite
- i.MX8M Plus, VAR-DART-MX8MP-SoM from Variscite
- TMC2590 stepper motor controller
- STM32 microcontroller
- FET-Gate-Driver
- iCE40 FPGA
- Battery buffered RTC
- eFUSEs
Interfaces
- SPI, QSPI
- I2C
- UART
- SPS interfacing
- Ethernet
- USB
Tools
- kdevelop - C/C++ development IDE for developing Firmware for the CM4 based on the NXP SDK
- Segger J-Link-Pro - debugging the CM4 and STM32
- Segger-GDB - debugging the CM4 and STM32
- Yocto - building the embedded Linux images
- Docker - containing the Yocto build pipes
- CubeIDE from ST - C/C++ development IDE for the STM32
- Git - version control software
- Gitlab - version control and ticket management software
- iCEcube2 from Lattice - FPGA development
- GHDL - FPGA simulation
- KiCAD - schematic and layout software
- Reflow-Oven