ADXRS290-PMDZ no-OS Project
Supported Evaluation Boards
Overview
The EVAL-ADXRS290-PMDZ offers a robust evaluation platform for the ADXRS290 high-performance MEMS gyroscope, specifically designed for stabilization applications. The sensor measures angular rates for roll and pitch within a ±100°/s full-scale range and outputs 16-bit two’s complement data via a 4-wire SPI interface operating at clock speeds up to 12 MHz. This board also features an ultralow noise floor of 0.004°/s/√Hz, rapid startup, and low latency.
Applications
Optical image stabilization
Platform stabilization
Wearable products
Hardware Specifications
Power Supply Requirements
Parameter |
Specification |
Notes |
Primary Supply Voltage |
5V (4.75V to 5.25V tolerance) |
Regulated DC supply required for both digital and analog circuits. |
Pin Description
SPI Connector
Pin Name |
Pin Function |
Description |
SCLK (P4) |
Clock |
Provides the timing signal for SPI communication. |
Data In (P2) |
Input Data |
Receives data from the host processor. |
Data Out (P3) |
Output Data |
Transmits data from the board to the host processor. |
CS (P1) |
Chip Select |
Selects the sensor during SPI communication. |
Power and Ground Connector
Pin Name |
Pin Function |
Description |
VDD (P6, P12) |
Power Supply |
Supplies the positive operating voltage to the board. |
GND (P5, P11) |
Ground |
Provides the common ground reference for the board. |
No-OS Supported Examples
The initialization data used in the examples is sourced from the Project Common Data Path. The macros used in Common Data are defined in platform-specific files found in the Project Platform Configuration Path.
IIO Example
This example demonstrates basic sensor initialization and data acquisition using the IIO framework in a no-OS environment. It shows how to capture and stream data from the ADXRS290 gyroscope with minimal configuration.
This example is built by selecting the iio variant (see the Build
Command sections below).
IIO Trigger Example
This example extends the basic IIO setup by incorporating hardware or software triggers to synchronize sensor data capture with external events. It is ideal for scenarios where sensor readings must be initiated by specific trigger conditions.
This example is built by selecting the iio_trigger variant (see the
Build Command sections below).
IIO Timer Trigger Example
This example uses timer-based triggers to achieve periodic sensor sampling through timer interrupts. It is suited for applications requiring consistent sample intervals to reliably monitor the ADXRS290 sensor data.
This example is built by selecting the iio_timer_trigger variant (see
the Build Command sections below).
No-OS Supported Platforms
ADuCM Platform
Used Hardware
Connections
Connect EVAL-ADXRS290-PMDZ board at connector P8 of the EVAL-ADICUP3029.
Connect a micro-USB cable to the P10 connector of the EVAL-ADICUP3029 and connect it to a computer.
The table below summarizes the primary physical connections between the ADXRS290 sensor board (EVAL-ADXRS290-PMDZ) and the evaluation board (EVAL-ADICUP3029). The table lists the board pin (or connector pin number), a suggested connection mnemonic, and the pin function.
ADXRS290-PMDZ Board Pin / Connector |
EVAL-ADICUP3029 Board Pin / Connector |
Connection Mnemonic |
Pin Function |
P1-4 (SPI SCLK) |
SPI_SCLK (as configured in pinmux) |
SCLK |
SPI clock – Synchronizes SPI data. |
P1-2 (SPI MOSI) |
SPI_MOSI (as defined in configuration) |
MOSI |
SPI data out from master to sensor. |
P1-3 (SPI MISO) |
SPI_MISO (as defined in configuration) |
MISO |
SPI data in to master from sensor. |
P1-1 (SPI SS / Chip Select) |
SPI_CS (e.g., CS_0 in configuration) |
CS |
Chip Select – Enables SPI sensor. Active low. |
UART0_TX (per configuration) |
UART_RX (per pinmux setup) |
TX |
UART transmit – MCU to host PC. |
UART0_RX (per configuration) |
UART_TX (per pinmux setup) |
RX |
UART receive – Host PC to MCU. |
Dedicated GPIO (SYNC signal) |
GPIO_SYNC (as configured) |
SYNC |
Sync signal – Triggers/captures. |
IOVDD (power supply) |
VDD (power input) |
Power |
Power – Regulated supply for sensor. |
GND |
GND |
GND |
Ground – Common reference. |
Build Command
For toolchain setup and prerequisites, see the ADuCM3029 CMake build guide.
Available variants: iio, iio_timer_trigger.
Available boards: eval-adicup3029.
Replace --variant / --board accordingly.
# point at the CrossCore Embedded Studio install (only if not auto-detected)
export CCES_HOME=/opt/analog/cces/3.0.3
# Windows (PowerShell): $env:CCES_HOME = "C:\analog\cces\3.0.3"
cd no-OS
# build the project (iio example on the EVAL-ADICUP3029)
python tools/scripts/no_os_build.py build \
--project adxrs290-pmdz --variant iio --board eval-adicup3029
# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
--project adxrs290-pmdz --variant iio --board eval-adicup3029 \
--probe openocd --flash
Maxim Platform
Used Hardware
Connections
The table below summarizes the required connections between the EVAL‑ADXRS290‑PMDZ board and the MAX32655EVKIT evaluation board. Each row lists the connection mnemonic, the pin identifier on each board, and a brief description of the pin function.
Connection Mnemonic |
EVAL‑ADXRS290‑PMDZ |
MAX32655EVKIT Board Pin |
Function |
SPI1_SCLK |
Sensor SCLK (per board’s schematic) |
GPIO1.12 (SPI1_SCLK) |
Serial Clock for SPI communication |
SPI1_MISO |
Sensor MISO (per board’s schematic) |
GPIO1.14 (SPI1_MISO) |
Master In Slave Out for SPI data |
SPI1_MOSI |
Sensor MOSI (per board’s schematic) |
GPIO1.16 (SPI1_MOSI) |
Master Out Slave In for SPI data |
SPI1_CS_0 |
Sensor CS (per board’s schematic) |
GPIO1.18 (SPI1_CS_0) |
Chip Select for gyroscope sensor |
UART0_TX |
Debug TX (per board’s schematic) |
GPIO0.20 (UART0_TX) |
Transmit line for UART debugging |
UART0_RX |
Debug RX (per board’s schematic) |
GPIO0.22 (UART0_RX) |
Receive line for UART communication |
GPIO_SYNC |
Sync/Interrupt (per board’s schematic) |
GPIO1.9 (Sensor Sync) |
Sensor synchronization and interrupt |
Build Command
For toolchain setup and prerequisites, see the Maxim CMake build guide.
Available variants: iio, iio_trigger.
Available boards: max32655fthr.
Replace --variant / --board accordingly.
# point at the Maxim SDK libraries (only if not auto-detected)
export MAXIM_LIBRARIES=</path/to/MaximSDK/Libraries>
# Windows (PowerShell): $env:MAXIM_LIBRARIES = "C:\MaximSDK\Libraries"
cd no-OS
# build the project (iio example on MAX32655)
python tools/scripts/no_os_build.py build \
--project adxrs290-pmdz --variant iio --board max32655fthr
# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
--project adxrs290-pmdz --variant iio --board max32655fthr \
--probe openocd --flash
PICO Platform
Used Hardware
Connections
Interface |
Raspberry Pi Pico Pin (Function) |
EVAL-ADXRS290-PMDZ Pin (Signal) |
Connection Mnemonic |
Pin Function / Description |
SPI |
SPI0_TX (GP19) |
MOSI (Data In) |
SPI_TX |
Transmits data from Pico to sensor |
SPI |
SPI0_RX (GP16) |
MISO (Data Out) |
SPI_RX |
Receives sensor data on Pico |
SPI |
SPI0_SCK (GP18) |
SCLK |
SPI_CLK |
Provides clock signal for SPI communication |
SPI |
SPI0_CS (GP17) |
CS (Chip Select) |
SPI_CS |
Activates sensor communication (active low) |
UART |
UART0_TX (GP0) |
UART_RX |
UART_TX |
Transmits debug/command data from Pico |
UART |
UART0_RX (GP1) |
UART_TX |
UART_RX |
Receives debug/command data on Pico |
GPIO |
GPIO_SYNC (GP20) |
Sync/Interrupt |
GPIO_SYNC |
Synchronization and sensor interrupt trigger |
Ensure that the pin numbers and functions detailed here align with your platform-specific header files and the ADXRS290 documentation before wiring the boards.
Build Command
For toolchain setup and prerequisites, see the Raspberry Pi Pico CMake build guide.
Available variants: iio, iio_timer_trigger, iio_trigger.
Available boards: rpi-pico.
Replace --variant / --board accordingly.
cd no-OS
# build the project (iio example on the Raspberry Pi Pico)
python tools/scripts/no_os_build.py build \
--project adxrs290-pmdz --variant iio --board rpi-pico
# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
--project adxrs290-pmdz --variant iio --board rpi-pico \
--probe openocd --flash
STM32 Platform
Used Hardware
Connections
SPI Connections
EVAL-ADXRS290-PMDZ Board Pin |
EVAL-SDP-CK1Z Board Pin (STM32F469NIH6) |
Connection Mnemonic |
Pin Function |
SCLK (e.g., Pin 1) |
SPI1_SCLK (PA5) |
SCLK |
SPI Clock – synchronizes data transfer |
MOSI (e.g., Pin 2) |
SPI1_MOSI (PA7) |
MOSI |
Master Out, Slave In – transmit data |
MISO (e.g., Pin 3) |
SPI1_MISO (PA6) |
MISO |
Master In, Slave Out – receive data |
CS (e.g., Pin 4) |
SPI1_CS (PA4) |
CS |
Chip Select – enables the sensor |
UART Connections
EVAL-ADXRS290-PMDZ Board Pin |
EVAL-SDP-CK1Z Board Pin (STM32F469NIH6) |
Connection Mnemonic |
Pin Function |
RX (e.g., Pin 5) |
UART_TX (e.g., PB6) |
UART_TX |
UART Transmit – sends data to sensor RX |
TX (e.g., Pin 6) |
UART_RX (e.g., PB7) |
UART_RX |
UART Receive – receives data from sensor TX |
Build Command
For toolchain setup and prerequisites, see the STM32 CMake build guide.
Available variants: iio.
Available boards: sdp-ck1z.
Replace --variant / --board accordingly.
# set the path to STM32CubeMX and STM32CubeIDE (only if they are not
# in a default install location)
export STM32CUBEMX=</path/to/stm32cubemx>
export STM32CUBEIDE=</path/to/stm32cubeide>
# Windows (PowerShell):
# $env:STM32CUBEMX = "C:\ST\STM32CubeMX"
# $env:STM32CUBEIDE = "C:\ST\STM32CubeIDE"
cd no-OS
# build the project (iio example on the SDP-K1 board)
python tools/scripts/no_os_build.py build \
--project adxrs290-pmdz --variant iio --board sdp-ck1z
# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
--project adxrs290-pmdz --variant iio --board sdp-ck1z \
--probe openocd --flash