Skip to content

ADXL355 Accelerometer

Overview

The ADXL355 is a high-precision, low-noise, three-axis digital accelerometer, suitable for applications requiring high resolution and low power consumption. It uses advanced MEMS technology and provides up to 20-bit resolution. The built-in digital filters effectively reduce noise interference. ADXL355 supports both SPI and I2C digital interfaces, making it easy to communicate with various microcontrollers.

Key Features

  • Zero offset temperature drift: Maximum 0.15 mg/°C for all axes
  • Ultra-low noise: Noise spectral density of 22.5 μg/√Hz for all axes
  • Low power consumption:
  • Measurement mode: ~200 μA
  • Standby mode: ~21 μA
  • Measurement ranges: ±2g, ±4g, ±8g selectable
  • Resolution: Up to 20-bit ADC
  • Interface types: Supports SPI and I2C digital interfaces
  • Built-in digital filters: Programmable high/low-pass filters
  • Integrated temperature sensor
  • Operating temperature range: -40°C to +125°C
  • Package size: 14-pin, 6 mm × 5.6 mm × 2.2 mm, LCC package

Typical Applications

  • Inertial Measurement Units (IMU), Attitude and Heading Reference Systems (AHRS)
  • Platform stabilization systems
  • Structural health monitoring
  • Seismic sensing
  • Tilt measurement
  • Robotics
  • Condition monitoring and IoT nodes

Dependencies

This driver depends on the driver and SPI libraries.

Functional Block Diagram

ADXL355 Block Diagram

Pin Description

Pin Name Function Description
VDDIO Digital interface power
VSUPPLY Main power supply
GND Ground
SCL/SCLK I2C/SPI clock
SDA/SDI/SDIO I2C data/SPI data input/bidirectional
SDO/SDO2 SPI data output
INT1/INT2 Interrupt output
ST Self-test
TEMP Temperature sensor output

Integration Guide

ADXL355 supports both SPI and I2C interfaces. Choose the appropriate communication method based on your microcontroller's resources. During initialization, configure the communication interface, sampling rate, and measurement range. Refer to the ESP-IDF SPI/I2C driver documentation for integration.

Key Function Examples

Function Prototype Description Example
void adxl355_init(adxl355_dev_t *dev) Initialize ADXL355 device adxl355_init(&adxl355_dev);
int adxl355_read_accel(adxl355_dev_t *dev, float *x, float *y, float *z) Read 3-axis acceleration data (unit: g) adxl355_read_accel(&adxl355_dev, &x, &y, &z);
int adxl355_set_range(adxl355_dev_t *dev, adxl355_range_t range) Set measurement range (±2g/±4g/±8g) adxl355_set_range(&adxl355_dev, ADXL355_RANGE_4G);
int adxl355_set_odr(adxl355_dev_t *dev, adxl355_odr_t odr) Set output data rate adxl355_set_odr(&adxl355_dev, ADXL355_ODR_1000HZ);
int adxl355_read_temp(adxl355_dev_t *dev, float *temp) Read temperature sensor data adxl355_read_temp(&adxl355_dev, &temp);
int adxl355_standby(adxl355_dev_t *dev) Enter standby mode adxl355_standby(&adxl355_dev);
int adxl355_wakeup(adxl355_dev_t *dev) Wake up device adxl355_wakeup(&adxl355_dev);

Please refer to the actual driver code for specific function names and parameters, as some drivers may define different structures or enums.

ADXL355 Sensor - EVAL-ADXL355-PMDZ

EVAL-ADXL355-PMDZ is an evaluation board based on the ADXL355 sensor, providing convenient interfaces and rich features for development and testing. The board integrates the ADXL355 sensor and necessary peripheral circuits, allowing users to quickly verify and evaluate the sensor's functions and performance. This project uses this model.

EVAL-ADXL355-PMDZ.png

EVAL-ADXL355-PMDZ Pinout

Pin Number Pin Function Mnemonic
Pin 1 Chip Select CS
Pin 2 Master Out Slave In MOSI
Pin 3 Master In Slave Out MISO
Pin 4 Serial Clock SCLK
Pin 5 Digital Ground DGND
Pin 6 Digital Power VDD
Pin 7 Interrupt 1 INT1
Pin 8 Not Connected NC
Pin 9 Interrupt 2 INT2
Pin 10 Data Ready DRDY
Pin 11 Digital Ground DGND
Pin 12 Digital Power VDD

Wiring

pin-layout

Actual Wiring (Development Board to EVAL-ADXL355-PMDZ)

Function EVAL-ADXL355-PMDZ Pin Number Description
CS Pin 4 Chip Select
MOSI Pin 5 Master Out Slave In
MISO Pin 6 Master In Slave Out
SCLK Pin 7 Serial Clock