Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Using Analog Devices MEMS Sensors and SPI I2C Converters with LabVIEW

7 ratings | 3.43 out of 5
Print

Overview

Use National Instruments LabVIEW for rapid design prototyping, product evaluation and performance optimization with MEMS products from Analog Devices (ADI). LabVIEW's SPI I2C engine and dedicated drivers enable quick connection and communication with both ADI MEMS sensor product families: iMEMS Motion Signal Processing™ and iSensor™ intelligent sensor technologies. ADI's iSensor technology provides quick access to MEMS solutions that are accurate, programmable, and feature-rich. They are used in many industrial applications that include medical, instrumentation, and robotics systems. Combine iSensor products with LabVIEW for a user-friendly, development environment for inertial sensing design requirements. Leverage this powerful combination to help shorten design cycles and identify key performance insights early, when they have optimal strategic value.

MEMS and SPI I2C Sensors from ADI Overview

This application note describes how to communicate to Analog Devices sensors using National Instruments LabVIEW FPGA Module or the low cost plug-and-play USB-8451 for I2C and SPI control and communication. 

The LabVIEW FPGA Module is a graphical development environment for easily configuring FPGAs on NI RIO hardware to implement functionality that usually requires custom hardware. Such functions include implementing digital communication protocols such as I2C and SPI.

The National Instruments USB-8451 is an interface for connecting to and communicating with I2C, SMBus, and SPI devices. With plug-and-play USB connectivity, the NI USB-8451 is a portable solution to communicate with consumer electronics and integrated circuits.

To see the available component and sensor drivers for Analog Devices components, such as MEMS Accelerometers, visit the NI IPNet.

IPNET Resources

ADIS16060 MEMS Yaw Rate Gyroscope Sensor Driver

ADIS16003 Dual-Axis Accelerometer Sensor Driver

ADIS16006 Dual-Axis Accelerometer Sensor Driver

ADIS16209 High Accuracy, Dual-Axis Digital Inclinometer Sensor Driver

ADIS16265 Programmable Low Powered Gyroscope Sensor Driver (also supports ADIS16250 and ADIS16255)

ADIS16350 High Precision Tri-Axis Inertial Sensor Driver (also supports ADIS16355)

 

PART NUMBER CATEGORGY LabVIEW
    Driver status Starting Point Notes
ADIS16003 Low-g Accelerometer Complete    
ADIS16006 Low-g Accelerometer   ADIS16003 Change the sensitivity from 1.22mg/LSB to 3.91mg/LSB
ADIS16060 Gyroscope Complete    
ADIS16080 Gyroscope   ADIS16003 Change the Clock phase to get SPI working, then develop gyroscope output interface
ADIS16100 Gyroscope   ADIS16080 Change the sensitivity from 0.098°/sec per LSB to 0.244°/sec per LSB
ADIS16130 Gyroscope      
ADIS16201 Low-g Accelerometer   ADIS16209 Copy ADIS16209 and update the register definitions and user interface where appropriate
ADIS16203 Low-g Accelerometer   ADIS16209 Copy ADIS16209 and update the register definitions and user interface where appropriate
ADIS16204 High-g Accelerometer   ADIS16209 Copy ADIS16209 and update the register definitions and user interface where appropriate
ADIS16209 Low-g Accelerometer Complete    
ADIS16240 Low-g Accelerometer   ADIS16209 Copy ADIS16209 and update the register definitions and user interface where appropriate
ADIS16250 Gyroscope   ADIS16265 Copy the ADIS16265
ADIS16251 Gyroscope   ADIS16265 Copy the ADIS16265 and update the sensitivity by dividing it by 4
ADIS16255 Gyroscope   ADIS16265 Copy the ADIS16265
ADIS16260 Gyroscope   ADIS16265 Copy the ADIS16265
ADIS16265 Gyroscope Complete    
ADIS16300 IMU     Copy ADIS16350 and update accelerometer sensitivity
ADIS16350 IMU Complete    
ADIS16354 IMU   ADIS16350 Change accelerometer sensitivity
ADIS16355 IMU   ADIS16350 Copy the ADIS16350
ADIS16360 IMU   ADIS16350 Change gyrocsope sensitivity to 0.05°/sec per LSB and Accel to 3.33mg/LSB
ADIS16362 IMU   ADIS16350 Change gyrocsope sensitivity to 0.05°/sec per LSB and Accel to 0.333 mg/LSB
ADIS16364 IMU   ADIS16350 Change gyrocsope sensitivity to 0.05°/sec per LSB and Accel to 1mg/LSB
ADIS16365 IMU   ADIS16350 Change gyrocsope sensitivity to 0.05°/sec per LSB and Accel to 3.33mg/LSB
ADIS16400 IMU   ADIS16350 Change gyrocsope sensitivity to 0.05°/sec per LSB and Accel to 3.33mg/LSB, add magnetometer
ADIS16405 IMU   ADIS16350 Change gyrocsope sensitivity to 0.05°/sec per LSB and Accel to 3.33mg/LSB, add magnetometer

 

Learn how to easily modify the above drivers for other MEMS sensors. For example, the ADIS16354 is programmed the same as the ADIS16355.  See the developer zone document called How-to: Using SPI and FPGA to with LabVIEW and Embedded Sensors.  Also, learn how to target other NI hardware with the same driver.  See the developer zone document called How-to: Developing an Embedded Sensor Application.

Download many more drivers and source code IP at www.ni.com/ipnet

General SPI I2C Resources

You have a number of options from National Instruments for communicating using SPI and I2C. Click on the links below to learn more.

Software Reference  NI Hardware  Description
 NI FPGA IPNET LabVIEW FPGA Hardware Targets

IPNet has links to FPGA IP for the SPI and I2C protocols, and specific device driver IP for displays, sensors, and other SPI/I2C-enabled devices. This FPGA IP works for any RIO Devices including, R Series, CompactRIO, Single-Board RIO, and FlexRIO.

 

 Software for Hardware-timed Digital I/O Boards Digital I/O Hardware Products

Find LabVIEW code and a tutorial for using with hardware-timed DIO boards NI 655x series devices to communicate using the SPI/I2C protocol.

 

 NI 8451 SPI USB Device

NI 8451 I2C USB Device

NI USB 8451

Find LabVIEW code and a tutorial for using the 8451 to communicate with SPI/I2C devices.

 

Originally Authored By: Greg Crouch, National Instruments

7 ratings | 3.43 out of 5
Print

Reader Comments | Submit a comment »

 

Legal
This example program (this "program") was developed by a National Instruments ("NI") Applications Engineer. Although technical support of this program may be made available by National Instruments, this program may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this program with each new revision of related products and drivers. THIS EXAMPLE PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).