API Reference

Header file for MPU-925X driver.

Author

Ceyhun Şen

Typedefs

typedef enum mpu925x_clock mpu925x_clock
typedef enum mpu925x_orientation mpu925x_orientation
typedef enum mpu925x_accelerometer_scale mpu925x_accelerometer_scale
typedef enum mpu925x_gyroscope_scale mpu925x_gyroscope_scale
typedef enum mpu925x_magnetometer_measurement_mode mpu925x_magnetometer_measurement_mode
typedef enum mpu925x_magnetometer_bit_mode mpu925x_magnetometer_bit_mode
typedef struct mpu925x_t mpu925x_t

Enums

enum mpu925x_clock

Clock settings for MPU-925X.

Values:

enumerator mpu925x_internal_20_hz_clock
enumerator mpu925x_auto_select_pll
enum mpu925x_orientation

Orientation of the sensor.

Values:

enumerator mpu925x_x_plus
enumerator mpu925x_x_minus
enumerator mpu925x_y_plus
enumerator mpu925x_y_minus
enumerator mpu925x_z_plus
enumerator mpu925x_z_minus
enum mpu925x_accelerometer_scale

Accelerometer full-scale ranges.

Values:

enumerator mpu925x_2g
enumerator mpu925x_4g
enumerator mpu925x_8g
enumerator mpu925x_16g
enum mpu925x_gyroscope_scale

Gyroscope full-scale ranges for gyroscope.

Values:

enumerator mpu925x_250dps
enumerator mpu925x_500dps
enumerator mpu925x_1000dps
enumerator mpu925x_2000dps
enum mpu925x_magnetometer_measurement_mode

Measurement modes for AK8963.

Values:

enumerator mpu925x_power_down_mode
enumerator mpu925x_single_measurement_mode
enumerator mpu925x_continuous_measurement_mode_1
enumerator mpu925x_continuous_measurement_mode_2
enumerator mpu925x_external_trigger_measurement_mode
enumerator mpu925x_self_test_mode
enumerator mpu925x_fuse_rom_access_mode
enum mpu925x_magnetometer_bit_mode

Bit modes for AK8963.

Values:

enumerator mpu925x_14_bit
enumerator mpu925x_16_bit

Functions

uint8_t mpu925x_init(mpu925x_t *mpu925x, uint8_t ad0)

Initialize MPU-925X sensor.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • ad0 – Last bit of the slave address (depends on ad0 pin connection).

Returns

0 on success, 1 on failure on mpu925x, 2 on failure on AK8963.

void mpu925x_get_all_raw(mpu925x_t *mpu925x)

Get all raw sensor data at once.

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_all(mpu925x_t *mpu925x)

Get all sensor data at once.

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_acceleration_raw(mpu925x_t *mpu925x)

Get raw acceleration data.

See also

mpu925x_get_acceleration

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_acceleration(mpu925x_t *mpu925x)

Get acceleration in G’s.

See also

mpu925x_get_acceleration_raw

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_rotation_raw(mpu925x_t *mpu925x)

Get raw rotation data.

See also

mpu925x_get_rotation

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_rotation(mpu925x_t *mpu925x)

Get rotation in degrees per second.

See also

mpu925x_get_rotation_raw

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_magnetic_field_raw(mpu925x_t *mpu925x)

Get raw magnetic field data.

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_magnetic_field(mpu925x_t *mpu925x)

Get magnetic field in micro Gauss.

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_temperature_raw(mpu925x_t *mpu925x)

Get raw temperature data.

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_get_temperature(mpu925x_t *mpu925x)

Get temperature in celsius degree.

Parameters

mpu925x – MPU-925X struct pointer.

void mpu925x_set_sample_rate_divider(mpu925x_t *mpu925x, uint8_t sample_rate_divider)

Set sample rate divider.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • sample_rate_divider – Sample rate divider sentence.

void mpu925x_set_clock_source(mpu925x_t *mpu925x, mpu925x_clock clock)

Set clock source.

See also

mpu925x_clock

Parameters
  • mpu925x – MPU-925X struct pointer.

  • clock – Clock select option.

void mpu925x_set_accelerometer_scale(mpu925x_t *mpu925x, mpu925x_accelerometer_scale scale)

Set accelerometer full-scale range.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • scale – Accelerometer full-scale range to be set.

void mpu925x_set_accelerometer_dlpf(mpu925x_t *mpu925x, uint8_t a_fchoice, uint8_t dlpf)

Set accelerometer digital low pass filter setting.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • a_fchoice – Accelerometer fchoice bit.

  • dlpf – Digital low pass filter choice.

void mpu925x_accelerometer_offset_cancellation(mpu925x_t *mpu925x, uint16_t sampling_amount)

Get and set accelerometer offset cancellation values.

See also

mpu925x_get_accelerometer_offset

See also

mpu925x_set_accelerometer_offset

Parameters
  • mpu925x – MPU-925X struct pointer.

  • sampling_amount – Sampling amount for acceleration values.

void mpu925x_get_accelerometer_offset(mpu925x_t *mpu925x, uint16_t sampling_amount, int16_t *offset)

Get accelerometer offset cancellation value.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • sampling_amount – Sampling amount for acceleration values.

  • offset – 3d array which will hold accelerometer offset cancellation values.

void mpu925x_set_accelerometer_offset(mpu925x_t *mpu925x, int16_t *offset)

Set accelerometer offset cancellation value.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • offset – 3d array which holds accelerometer offset cancellation values.

void mpu925x_set_gyroscope_scale(mpu925x_t *mpu925x, mpu925x_gyroscope_scale scale)

Set gyroscope full-scale range.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • scale – Gyroscope full-scale range to be set.

void mpu925x_set_gyroscope_dlpf(mpu925x_t *mpu925x, uint8_t a_fchoice, uint8_t dlpf)

Set gyroscope digital low pass filter setting.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • g_fchoice – Gyroscope f_choice bits.

  • dlpf – Digital low pass filter setting.

void mpu925x_gyroscope_offset_cancellation(mpu925x_t *mpu925x, uint16_t sampling_amount)

Get and set gyroscope offset cancellation values.

See also

mpu925x_get_gyroscope_offset

See also

mpu925x_set_gyroscope_offset

Parameters
  • mpu925x – MPU-925X struct pointer.

  • sampling_amount – Sampling amount for rotation values.

void mpu925x_get_gyroscope_offset(mpu925x_t *mpu925x, uint16_t sampling_amount, int16_t *offset)

Get gyroscope offset cancellation values.

See also

mpu925x_set_gyroscope_offset

Parameters
  • mpu925x – MPU-925X struct pointer.

  • sampling_amount – Sampling amount for rotation values.

  • offset – 3d array which holds gyroscope offset cancellation values.

void mpu925x_set_gyroscope_offset(mpu925x_t *mpu925x, int16_t *offset)

Set gyroscope offset cancellation values.

See also

mpu925x_get_gyroscope_offset

Parameters
  • mpu925x – MPU-925X struct pointer.

  • offset – 3d array which holds gyroscope offset cancellation values.

void mpu925x_set_magnetometer_measurement_mode(mpu925x_t *mpu925x, mpu925x_magnetometer_measurement_mode measurement_mode)

Set magnetometer measurement mode.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • measurement_mode – Measurement mode for magnetometer to be set.

void mpu925x_set_magnetometer_bit_mode(mpu925x_t *mpu925x, mpu925x_magnetometer_bit_mode bit_mode)

Set magnetometer bit mode.

Parameters
  • mpu925x – MPU-925X struct pointer.

  • bit_mode – Bit mode for magnetometer to be set.

struct mpu925x_t
#include <mpu925x.h>

Main struct for MPU-925X driver.

This structs includes sensor data, driver settings and master specific handle, bus and delay function pointers.

Public Members

struct mpu925x_t::sensor_data sensor_data
struct mpu925x_t::settings settings
struct mpu925x_t::master_specific master_specific
struct master_specific
#include <mpu925x.h>

Holds master specific pointers.

Public Members

uint8_t (*bus_read)(struct mpu925x_t *mpu925x, uint8_t slave_address, uint8_t reg, uint8_t *buffer, uint8_t size)
uint8_t (*bus_write)(struct mpu925x_t *mpu925x, uint8_t slave_address, uint8_t reg, uint8_t *buffer, uint8_t size)
void (*delay_ms)(struct mpu925x_t *mpu925x, uint32_t delay)
void *bus_handle
struct sensor_data
#include <mpu925x.h>

Holds sensor data.

Public Members

int16_t acceleration_raw[3]
int16_t rotation_raw[3]
int16_t magnet_raw[3]
int16_t temperature_raw
float acceleration[3]
float rotation[3]
float magnetic_field[3]
float temperature
struct settings
#include <mpu925x.h>

Holds sensor settings.

Public Members

mpu925x_orientation orientation
mpu925x_accelerometer_scale accelerometer_scale
mpu925x_gyroscope_scale gyroscope_scale
mpu925x_magnetometer_measurement_mode measurement_mode
mpu925x_magnetometer_bit_mode bit_mode
float acceleration_lsb
float gyroscope_lsb
float magnetometer_lsb
float magnetometer_coefficient[3]
uint8_t address