Electronics

Accelerometer MPU-9250 IMU Breakout Module Sparkfun

Out Of Stock

1

Description

This Accelerometer MPU-9250 IMU Breakout Module is the latest 9-axis MEMS sensor of invensense. This replaces the popular EOL'd MPU-9150. InvenSense reduces energy consumption and reduces the size by 44% compared to the MPU-9150. "The Sensing performance of the gyro has been improved by a factor of three, and the full-size range of the compass is more than four times better than previous products." The MPU-9250 uses a 16-bit analog-to-digital converter (ADC) to digitize all 9 axes.

Parathyroid hormone connection

The following table summarizes the connection sequence of all plated through-hole ( parathyroid hormone ) terminal blocks. See the upper left corner of the terminal block, clockwise winding:

Pin labelNeedle functionnotes
SCLMy second C series clock
SPI serial clock
100 or 400 kHz i two C
up to 1 MHz SPI (20 MHz in some cases)
SDAI have two C serial dataCan also be used for SPI serial data input (SDI)
VDDpower supply+2.4V to +3.6V
GNDGround reference+ 0 v
OxdaGround referenceMy two C master serial data, for connecting external sensors
FSYNCGround referenceFrame sync digital input. If not used, please connect to GND.
AccessoriesGround referenceMy two C serial clock master, for connecting external sensors
InternationalInterrupt signalInterrupt digital output (totem pole or open-drain)
CSChip selectionChip selection (SPI mode only)
AD0/
SDO
Address selectiontwo C slave address LSB (AD0):
low: 0B11000 0X68
high: 0B11001 0X69
SPI serial data output (SDO)
Video displayI/O pin power+1.71V to VDD

Jumper

The MPU-9250 tap has two jumper solder joints, SJ1, SJ2.

SJ1 is pre-soldered to short V DD V DDIO. This reduces the number of power supplies to a power supply that does not require an external jumper. If you need to provide different voltages for the core and IO, remove the solder on SJ1.

SJ2 is a bidirectional jumper, pre-welded to connect AD0 to ground. This sets the I - C address to 0x68. It also leaves the parathyroid hormone for AD0 disconnection and floating. If the mobile solder pad and the left pad to the intermediate connector, and then, AD0 parathyroid hormone needed to connect the high or low I select two C addresses.

Hardware connection

The MPU-9250 breakout board runs DC transmission on 3.3, so, 3.3V USB to UART bridge such as Basic Breakthrough-3.3V or Sparkfun Beefy 3-FTDI Basic Breakthrough can be used to carry out with the microcontroller Power and bridge communications. In this case, Arduino Pro Mini 328-3.3V/8MHz is selected, so no logic level conversion is required.


How to wire and connect the MPU-9250 IMU Breakout Module with Arduino:

Friction diagram of MPU-9450 connected with Arduino

I only need 4 connections for 2C communication.

The circuit board next to 0.1 has been disconnected

The smallest part of the breadboard compatible setting


In order to maintain the stability of the breadboard, the other four pins are soldered at v DDIO, AD0/SDO, CS, and the interior.

PCB and breadboard compatible external header welding

PCB and breadboard compatible external header welding

.

Below is the final setup for testing.

Settings for testing

Settings for testing

Library and sample code for the MPU-9250 IMU Breakout Module:

you can Download the Library of Accelerometer MPU-9250 IMU Breakout Module by Clicking Here.


this code for is a test code fro the Accelerometer MPU-9250 IMU Breakout Module so you can see if the module works and you can use is to write your own code by reading the comments to understand what's happening:

#include "quaternionFilters.h"
#include "MPU9250.h"

#define I2Cclock 400000
#define I2Cport Wire
#define MPU9250_ADDRESS MPU9250_ADDRESS_AD0   // Use either this line or the next to select which I2C address your device is using
//#define MPU9250_ADDRESS MPU9250_ADDRESS_AD1

MPU9250 myIMU0(MPU9250_ADDRESS_AD0, I2Cport, I2Cclock);
MPU9250 myIMU1(MPU9250_ADDRESS_AD1, I2Cport, I2Cclock);

 byte c = 0x00;
 byte d = 0x00;
 bool ledOn = true;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(38400);
  while(!Serial){};

  pinMode(13, OUTPUT);
  
}

void loop() {
  // put your main code here, to run repeatedly:

  c = myIMU0.readByte(MPU9250_ADDRESS_AD0, WHO_AM_I_MPU9250);
  d = myIMU1.readByte(MPU9250_ADDRESS_AD1, WHO_AM_I_MPU9250);

  Serial.print("Received AD0: 0x");
  Serial.print(c, HEX);
  Serial.print(", AD1: 0x");
  Serial.println(d, HEX);
  digitalWrite(13, ledOn);
  ledOn = !ledOn;
  delay(100);

}