ADIS1655X Family no-OS Example Project

Contents

Supported Evaluation Boards

Overview

The ADIS1655X is a complete inertial system that includes a triaxis gyroscope and a triaxis accelerometer. Each inertial sensor in the ADIS16550 combines industry leading MEMS only technology with signal conditioning that optimizes dynamic performance. The factory calibration characterizes each sensor for sensitivity, bias, and alignment. As a result, each sensor has its own dynamic compensation formulas that provide accurate sensor measurements.

The ADIS1655X provides a simple, cost-effective method for integrating accurate, multiaxis inertial sensing into industrial systems, especially when compared with the complexity and investment associated with discrete designs. All necessary motion testing and calibration are part of the production process at the factory, greatly reducing system integration time. Tight orthogonal alignment simplifies inertial frame alignment in navigation systems. The serial peripheral interface (SPI) and register structure provide a simple interface for data collection and configuration control

Applications

  • Precision instrumentation, stabilization

  • Guidance, navigation, and control

  • Precision autonomous machines and robotics

  • Dead reckoning in global positioning system (GPS) denied environments

Hardware Specifications

Power Supply Requirements

The ADIS1655X eval devices have to be supplied with 5V voltage on VDD pin.

Pin Description

Please see the following table for the pin assignments for the interface connector (J1).

Pin

Name

Description

1, 2, 16 to 24

DNC

Do not connect

3

SCLK

Serial Clock (Serial Peripheral Interface)

4

DOUT

Data Output (Serial Peripheral Interface)

5

DIN

Data Input (Serial Peripheral Interface)

6

~CS

Chip Select (Serial Peripheral Interface), Active Low

7

DR

Data Ready

8

~RST

Reset, active low

9

SYNC

Sync Input

10, 11

VDD

Power Supply, +5V

12, 15

NO PIN

No pin

13, 14

GND

Ground

Cabling

ADIS1655X is compatible with ADIS16IMU1/PCBZ which has a J1 connector.

Please see the following table for the pin assignments for the interface connector (J1).

Pin

Name

Description

1

~RST

Reset, active low

2

SCLK

Serial Clock (Serial Peripheral Interface)

3

~CS

Chip Select (Serial Peripheral Interface), Active Low

4

DOUT

Data Output (Serial Peripheral Interface)

5

DNC

Do not connect

6

DIN

Data Input (Serial Peripheral Interface)

7

GND

Ground

8

GND

Ground

9

GND

Ground

10

VDD

Power Supply, +3.3V

11

VDD

Power Supply, +3.3V

12

VDD

Power Supply, +3.3V

13

DR

Data Ready

14

SYNC

Sync Input

15

DNC

Do not connect

16

DNC

Do not connect

J1 supports connection with the following style of cables: 2.00 mm IDC Ribbon Cable Assembly.

TIP: Use “2.00 mm IDC Ribbon Cable Assembly” as search criteria to find the latest options on the market.

At the time of initial release for these breakout boards, we were most familiar with the TCSD Series from Samtec.

No-OS Build Setup

Please see: https://wiki.analog.com/resources/no-os/build

No-OS Supported Examples

The initialization data used in the examples is taken out from: Project Common Data Path

The macros used in Common Data are defined in platform specific files found in: Project Platform Configuration Path

Basic example

This is a simple example which initializes the adis1655x selected device and performs angular velocity, acceleration and temperature readings in a while loop with a period of 1s. The data is printed on the serial interface.

In order to build the IIO project make sure you have the following configuration in the Makefile

# Select the example you want to enable by choosing y for enabling and n for disabling
BASIC_EXAMPLE = y
IIO_TRIGGER_EXAMPLE = n

IIO example

This project is actually a IIOD demo for EVAL-ADIS1655X device series. The project launches a IIOD server on the board so that the user may connect to it via an IIO client. Using IIO-Oscilloscope, the user can configure the IMU and view the measured data on a plot.

If you are not familiar with ADI IIO Application, please take a look at: IIO No-OS

If you are not familiar with ADI IIO-Oscilloscope Client, please take a look at: IIO Oscilloscope

The No-OS IIO Application together with the No-OS IIO ADIS driver take care of all the back-end logic needed to setup the IIO server.

This example initializes the IIO device and calls the IIO app as shown in: IIO Trigger Example

The read buffer is used for storing the burst data which shall be retrieved periodically by any LibIIO client. The measured data is sampled using a hardware trigger (e.g. interrupts). ADIS1655X offers the capability to use DATA_READY pin as a flag which shows when new measurements are available. Thus, DATA_READY pin is used as a hardware trigger. The example code maps the DATA_READY pin as GPIO input with interrupt capabilities. When DATA_READY pin transitions from low to high, new data is available and will be read based on is_synchronous flag setting used in adis_iio_trigger_desc. If the flag is set to true, the data will be read immediately, in the interrupt context. If the flag is set to false, the data will be read from application context. In this case some samples might be missed.

In order to build the IIO project make sure you have the following configuration in the Makefile

# Select the example you want to enable by choosing y for enabling and n for disabling
BASIC_EXAMPLE = n
IIO_TRIGGER_EXAMPLE = y

No-OS Supported Platforms

STM32 Platform

Used hardware:

Connections:

ADIS16IMU1/PCBZ J1 with ADIS16550

Mnemonic

Function

SDP-K1 Pin Number

1

~RST

Reset, active low

ANALOG IN A1

2

SCLK

Serial Clock

DIGITAL 13

3

~CS

Chip Select (Serial Peripheral Interface), Active Low

DIGITAL 10

4

DOUT

Data Output (Serial Peripheral Interface)

DIGITAL 12

6

DIN

Data Input (Serial Peripheral Interface)

DIGITAL 11

7

GND

Ground

DIGITAL GND

10

VDD

Power Supply, +3.3V

POWER 3.3V

13

DR

Data Ready

ANALOG IN A0

Build Command

# to delete current build
make reset
# to build the project
make PLATFORM=stm32
# to flash the code
make run
# to debug the code
make debug

Maxim Platform

Used hardware:

Connections:

ADIS16IMU1/PCBZ J1 with ADIS16550

Mnemonic

Function

MAX78000 Pin Number

1

~RST

Reset, active low

P0_19

2

SCLK

Serial Clock

P0_7

3

~CS

Chip Select (Serial Peripheral Interface), Active Low

P0_11

4

DOUT

Data Output (Serial Peripheral Interface)

P0_6

6

DIN

Data Input (Serial Peripheral Interface)

P0_5

7

GND

Ground

GND

10

VDD

Power Supply, +3.3V

3V3

13

DR

Data Ready

P1_6

Build Command

# to delete current build
make reset
# to build the project
make PLATFORM=maxim TARGET=max78000
# to flash the code
make run
# to debug the code
make debug

Pico Platform

Used hardware:

Connections:

ADIS16IMU1/PCBZ J1 with ADIS16550

Mnemonic

Function

MAX78000 Pin Number

1

~RST

Reset, active low

GP20

2

SCLK

Serial Clock

GP18

3

~CS

Chip Select (Serial Peripheral Interface), Active Low

GP17

4

DOUT

Data Output (Serial Peripheral Interface)

GP16

6

DIN

Data Input (Serial Peripheral Interface)

GP19

7

GND

Ground

GND

10

VDD

Power Supply, +3.3V

3V3

13

DR

Data Ready

GP21

The following table shows how the connection between ADALM-UARTJTAG and Raspberry Pi Pico is realized in this project example.

ADALM-UARTJTAG Pin Number

Raspberry Pi Pico Pin Number

Function

VIO

VBUS

Bus voltage

GND

GND

Ground

TX

GP1 (Pico RX)

Pico UART RX

RX

GP0 (Pico Tx)

Pico UART TX

Build Command

# to delete current build
make reset
# to build the project
make PLATFORM=pico
# to flash the code
make run
# to debug the code
make debug