Using Analog Devices MEMS Sensors and SPI I2C Converters with LabVIEW
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.
ADIS16265 Programmable Low Powered Gyroscope Sensor Driver (also supports ADIS16250 and ADIS16255)
ADIS16350 High Precision Tri-Axis Inertial Sensor Driver (also supports ADIS16355)
|Driver status||Starting Point||Notes|
|ADIS16006||Low-g Accelerometer||ADIS16003||Change the sensitivity from 1.22mg/LSB to 3.91mg/LSB|
|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|
|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|
|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|
|ADIS16300||IMU||Copy ADIS16350 and update accelerometer sensitivity|
|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 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
Reader Comments | Submit a comment »