LIS3MDL 3-axis magnetometer

Device driver for the LIS3MDL 3-axis magnetometer.

This driver provides [S]ensor [A]ctuator [U]ber [L]ayer capabilities.

enum lis3mdl_xy_mode_t
LIS3MDL_XY_MODE_LOW = 0x00
Low-power mode.
LIS3MDL_XY_MODE_MEDIUM = 0x20
Medium-performance mode.
LIS3MDL_XY_MODE_HIGH = 0x40
High-performance mode.
LIS3MDL_XY_MODE_ULTRA = 0x60
Ultra-High-performance mode.
enum lis3mdl_z_mode_t
LIS3MDL_Z_MODE_LOW = 0x00
Low-power mode.
LIS3MDL_Z_MODE_MEDIUM = 0x04
Medium-performance mode.
LIS3MDL_Z_MODE_HIGH = 0x08
High-performance mode.
LIS3MDL_Z_MODE_ULTRA = 0x0C
Ultra-High-performance mode.
enum lis3mdl_odr_t
LIS3MDL_ODR_0_625Hz = 0x00
0.625Hz
LIS3MDL_ODR_1_25Hz = 0x04
1.250Hz
LIS3MDL_ODR_2_5Hz = 0x08
5.000Hz
LIS3MDL_ODR_10Hz = 0x10
10.000Hz
LIS3DML_ODR_20HZ = 0x14
20.000Hz
LIS3DML_ODR_40HZ = 0x18
40.000Hz
LIS3MDL_ODR_80HZ = 0x1C
80.000Hz
enum lis3mdl_scale_t
LIS3MDL_SCALE_4G = 0x00
+- 4 gauss
LIS3MDL_SCALE_8G = 0x20
+- 8 gauss
LIS3MDL_SCALE_12G = 0x40
+- 12 gauss
LIS3MDL_SCALE_16G = 0x60
+- 16 gauss
enum lis3mdl_op_t
LIS3MDL_OP_CONT_CONV = 0x00
Continous-conversion mode.
LIS3MDL_OP_SNGL_CONV = 0x01
Single-conversion mode.
LIS3MDL_OP_PDOWN = 0x11
Power-down mode.
int lis3mdl_init(lis3mdl_t * dev, const lis3mdl_params_t * params)

Initialize a new LIS3DML device.

Parameters

dev:device descriptor of LIS3MDL
params:initialization parameters

Return values

  • 0 on success
  • -1 on error
void lis3mdl_read_mag(const lis3mdl_t * dev, lis3mdl_3d_data_t * data)

Reads the magnometer value of LIS3MDL.

Parameters

dev:device descriptor of LIS3MDL
data:measured magnetometer data

void lis3mdl_read_temp(const lis3mdl_t * dev, int16_t * value)

Reads the temperature value of LIS3MDL.

Parameters

dev:device descriptor of LIS3MDL
value:measured temperature in degree celsius

void lis3mdl_enable(const lis3mdl_t * dev)

Enable the LIS3MDL device.

Parameters

dev:device descriptor of LIS3MDL

void lis3mdl_disable(const lis3mdl_t * dev)

Disable the LIS3MDL device.

Parameters

dev:device descriptor of LIS3MDL

struct lis3mdl_3d_data_t

3d data container of the LIS3MDL sensor

int16_t x_axis

Magnometer data from x-axis.

int16_t y_axis

Magnometer data from y_axis.

int16_t z_axis

Magnometer data from z_axis.

struct lis3mdl_params_t

Device initialization parameters.

i2c.h::i2c_t i2c

I2C device.

uint8_t addr

Magnometer I2C address.

lis3mdl.h::lis3mdl_xy_mode_t xy_mode

Power mode of x- and y-axis.

lis3mdl.h::lis3mdl_z_mode_t z_mode

Power mode of z-axis.

lis3mdl.h::lis3mdl_odr_t odr

Output data rate.

lis3mdl.h::lis3mdl_scale_t scale

Scale factor.

lis3mdl.h::lis3mdl_op_t op_mode

Operation mode.

struct lis3mdl_t

Device descriptor for LIS3MDL sensor.

lis3mdl_params_t params

Initialization parameters.