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 Build Setup
For detailed build setup instructions, please refer to the no-OS build guide.
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.
In order to build the IIO project make sure you have the following configuration in the Makefile.
# Enable Standard IIO Example
IIO_EXAMPLE=y
IIO_TRIGGER_EXAMPLE=n
IIO_TIMER_TRIGGER_EXAMPLE=n
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.
# Enable IIO Trigger Example
IIO_EXAMPLE=n
IIO_TRIGGER_EXAMPLE=y
IIO_TIMER_TRIGGER_EXAMPLE=n
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.
# Enable IIO Timer Trigger Example
IIO_EXAMPLE=n
IIO_TRIGGER_EXAMPLE=n
IIO_TIMER_TRIGGER_EXAMPLE=y
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
# Clean previous build artifacts
make clean
# Build the project with ADuCM3029-specific settings
make aducm3029
# Flash the newly compiled firmware onto the ADuCM device
make flash
# Launch a debugging session for the ADuCM platform
make debug
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
Below is a consolidated set of commands to clean, build, flash, and debug the ADXRS290-PMDZ project on a Maxim platform:
# Clean the project (from the project root: no-OS/projects/adxrs290-pmdz)
make clean
# Full project build for the MAXIM target (uses settings from builds.json)
make TARGET=maxim
# Build the IIO example application:
cd no-OS/projects/adxrs290-pmdz/src/examples/iio_example && make -f example.mk
# Build the IIO Timer Trigger example:
cd no-OS/projects/adxrs290-pmdz/src/examples/iio_timer_trigger_example && make -f example.mk
# Flash the compiled binary to the MAXIM hardware
make flash TARGET=maxim
# Start a debug session with debugging symbols for the MAXIM target
make debug TARGET=maxim
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
Below is a single code block containing the primary commands for cleaning, building, flashing, and debugging the ADXRS290 project on the PICO platform:
# Navigate to the project directory (if not already there)
cd no-OS/projects/adxrs290-pmdz/src/examples/iio_example
# Set the target platform to PICO
make TARGET=pico
# Clean: remove previous build artifacts
make clean PLATFORM=pico
# Build:
# - Default full build (using 'all' target or simply 'make')
make all PLATFORM=pico
# Build specific IIO examples:
# IIO example build
make iio_example TARGET=pico
# IIO trigger example build
make iio_trigger_example TARGET=pico
# IIO timer trigger example build
make iio_timer_trigger TARGET=pico
# Flash: program the firmware onto the PICO board
make flash PLATFORM=pico
# Debug: launch a GDB debugging session for troubleshooting
make debug PLATFORM=pico
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
# Navigate to the project directory (if not already there)
cd no-OS/projects/adxrs290-pmdz/src/examples/iio_example
# Set the target platform to STM32
export TARGET=stm32
# Clean previous build artifacts
make clean
# Build the project for the STM32 platform (compiles both core and example applications)
make all
# Flash the compiled firmware onto the STM32F469NIH6 microcontroller
make flash
# Launch the debugging environment for development and troubleshooting
make debug