Sensorian  1.0
C API Reference Guide Library
MPL3115A2.h File Reference

MPL3115A2 driver header. More...

#include <stdint.h>

Go to the source code of this file.

Macros

#define TRUE   1
 
#define FALSE   0
 
#define MPL3115A2_ADDRESS   0x60
 The I2C address of the MPL3115A2 barometer altimeter sensor. More...
 
#define STATUS   0x00
 
#define OUT_P_MSB   0x01
 
#define OUT_P_CSB   0x02
 
#define OUT_P_LSB   0x03
 
#define OUT_T_MSB   0x04
 
#define OUT_T_LSB   0x05
 
#define DR_STATUS   0x06
 
#define OUT_P_DELTA_MSB   0x07
 
#define OUT_P_DELTA_CSB   0x08
 
#define OUT_P_DELTA_LSB   0x09
 
#define OUT_T_DELTA_MSB   0x0A
 
#define OUT_T_DELTA_LSB   0x0B
 
#define WHO_AM_I   0x0C
 
#define F_STATUS   0x0D
 
#define F_DATA   0x0E
 
#define F_SETUP   0x0F
 
#define TIME_DLY   0x10
 
#define SYSMOD   0x11
 
#define INT_SOURCE   0x12
 
#define PT_DATA_CFG   0x13
 
#define BAR_IN_MSB   0x14
 
#define BAR_IN_LSB   0x15
 
#define P_TGT_MSB   0x16
 
#define P_TGT_LSB   0x17
 
#define T_TGT   0x18
 
#define P_WND_MSB   0x19
 
#define P_WND_LSB   0x1A
 
#define T_WND   0x1B
 
#define P_MIN_MSB   0x1C
 
#define P_MIN_CSB   0x1D
 
#define P_MIN_LSB   0x1E
 
#define T_MIN_MSB   0x1F
 
#define T_MIN_LSB   0x20
 
#define P_MAX_MSB   0x21
 
#define P_MAX_CSB   0x22
 
#define P_MAX_LSB   0x23
 
#define T_MAX_MSB   0x24
 
#define T_MAX_LSB   0x25
 
#define CTRL_REG1   0x26
 
#define CTRL_REG2   0x27
 
#define CTRL_REG3   0x28
 
#define CTRL_REG4   0x29
 
#define CTRL_REG5   0x2A
 
#define OFF_P   0x2B
 
#define OFF_T   0x2C
 
#define OFF_H   0x2D
 
#define PTOW   0x80
 
#define POW   0x40
 
#define TOW   0x20
 
#define PTDR   0x08
 
#define PDR   0x04
 
#define TDR   0x02
 
#define ALT   0x80
 
#define RAW   0x40
 
#define OS2   0x20
 
#define OS1   0x10
 
#define OS0   0x08
 
#define RST   0x04
 
#define OST   0x02
 
#define SBYB   0x01
 
#define OS_1   0x00
 
#define OS_2   OS0
 
#define OS_4   OS1
 
#define OS_8   OS1 | OS0
 
#define OS_16   OS2
 
#define OS_32   OS2 | OS0
 
#define OS_64   OS2 | OS1
 
#define OS_128   OS2 | OS1 | OS0
 
#define BAR_MASK   0x80
 
#define ALT_MASK   0xEF
 
#define ACTIVE_MASK   0xF1
 
#define STANDBY_MASK   0xFE
 
#define ALARM_SEL   0x20
 
#define LOAD_OUTPUT   0x10
 
#define ST3   0x08
 
#define ST2   0x04
 
#define ST1   0x02
 
#define ST0   0x01
 
#define CLEAR_ST   0xF0
 
#define IPOL1   0x10
 
#define PP_OD1   0x08
 
#define IPOL2   0x02
 
#define PP_OD2   0x01
 
#define INT_EN_DRDY   0x80
 
#define INT_EN_FIFO   0x40
 
#define INT_EN_PW   0x20
 
#define INT_EN_TW   0x10
 
#define INT_EN_PTH   0x08
 
#define INT_EN_TTH   0x04
 
#define INT_EN_PCHG   0x02
 
#define INT_EN_TCHG   0x01
 
#define INT_EN_CLEAR   0x00
 
#define INT_CFG_DRDY   0x80
 
#define INT_CFG_FIFO   0x40
 
#define INT_CFG_PW   0x20
 
#define INT_CFG_TW   0x10
 
#define INT_CFG_PTH   0x08
 
#define INT_CFG_TTH   0x04
 
#define INT_CFG_PCHG   0x02
 
#define INT_CFG_TCHG   0x01
 
#define INT_CFG_CLEAR   0x00
 
#define INT2   0
 
#define INT1   1
 
#define DISABLED   0x00
 
#define CIRCULAR   0x40
 
#define FULL_STOP   0x80
 
#define F_MODE   DISABLED
 
#define DREM   0x04
 
#define PDEFE   0x02
 
#define TDEFE   0x01
 
#define SRC_DRDY   0x80
 
#define SRC_FIFO   0x40
 
#define SRC_PW   0x20
 
#define SRC_TW   0x10
 
#define SRC_PTH   0x08
 
#define SRC_TTH   0x04
 
#define SRC_PCHG   0x02
 
#define SRC_TCHG   0x01
 

Enumerations

enum  unitsType {
  PSI, INHG, MMHG, PSI,
  INHG, MMHG, PSI, INHG,
  MMHG
}
 
enum  OverSample_t {
  SR1 = OS_1, SR2 = OS_2, SR3 = OS_4, SR4 = OS_8,
  SR5 = OS_16, SR6 = OS_32, SR7 = OS_64, SR8 = OS_128,
  SR1 = OS_1, SR2 = OS_2, SR3 = OS_4, SR4 = OS_8,
  SR5 = OS_16, SR6 = OS_32, SR7 = OS_64, SR8 = OS_128,
  SR1 = OS_1, SR2 = OS_2, SR3 = OS_4, SR4 = OS_8,
  SR5 = OS_16, SR6 = OS_32, SR7 = OS_64, SR8 = OS_128
}
 

Functions

void MPL3115A2_Initialize (void)
 Initialize the sensor and enable interrupts. More...
 
unsigned char MPL3115A2_ID (void)
 Returns the Factory Chip ID. More...
 
unsigned char MPL3115A2_GetMode (void)
 Return a bool value indicating wheather the sensor is in Active or Standby mode. More...
 
void MPL3115A2_StandbyMode (void)
 Puts the sensor in standby mode, the user must do this in order to modify the major control registers. More...
 
void MPL3115A2_ActiveMode (void)
 Puts the sensor in active mode, needed is the sensor is in standby mode. More...
 
void MPL3115A2_AltimeterMode (void)
 Sets the mode to Altimeter. More...
 
float MPL3115A2_ReadAltitude (void)
 Returns the number of meters above sea level,Returns -1 if no new data is available. More...
 
void MPL3115A2_SetAltimeterOffset (unsigned char H_Offset)
 Set the altimeter offset correction. More...
 
void MPL3115A2_BarometerMode (void)
 Configure the sensor in Barometer mode. More...
 
void MPL3115A2_SetPressureOffset (unsigned char P_Offset)
 Set the pressure offset correction. More...
 
float MPL3115A2_GetMinimumPressure (void)
 Get minimum stored pressure. More...
 
float MPL3115A2_GetMaximumPressure (void)
 Get maximum stored pressure. More...
 
unsigned int MPL3115A2_ReadBarometicPressureInput (void)
 Returns barometric pressure input used for calculating altitude. More...
 
float MPL3115A2_ReadBarometricPressure (void)
 Reads the current pressure in Pa. More...
 
float MPL3115A2_ReadPressure (unitsType units)
 Get a barometric pressure reading. More...
 
void MPL3115A2_SetPressureAlarmThreshold (unsigned int thresh)
 Configure alarm threshold. More...
 
void MPL3115A2_SetPressureTargetWindow (unsigned int target, unsigned int window)
 Configure alarm target and window. More...
 
float MPL3115A2_ReadTemperature (void)
 Get a temperature reading from the sensor. More...
 
float MPL3115A2_GetMinimumTemperature (void)
 Get minimum recorded temperature reading. More...
 
float MPL3115A2_GetMaximumTemperature (void)
 Get maximum recorded temperature reading. More...
 
void MPL3115A2_SetTempTargetWindow (unsigned int target, unsigned int window)
 Configures the temperature target and window for the interrupts. More...
 
void MPL3115A2_SetTemperatureThreshold (unsigned char thresh)
 Configure the temeperature threshold. More...
 
void MPL3115A2_SetTempOffset (char T_Offset)
 Used to correct the measured sensor temeperature by a particular offset. More...
 
void MPL3115A2_OutputSampleRate (unsigned char)
 Configures the output sample rate.The higher the oversample rate the greater the time between data samples. More...
 
void MPL3115A2_SetAcquisitionTimeStep (unsigned char)
 Set the acquisition time step in seconds. More...
 
void MPL3115A2_EnableEventFlags (void)
 Enables the pressure and temp measurement event flags so that we can test against them. This is recommended during setup. More...
 
void MPL3115A2_ToggleOneShot (void)
 Causes the sensor to immediately take another reading , needed to sample faster than 1Hz. More...
 
void MPL3115A2_ClearInterrupts (void)
 Clear any existing interrupts. More...
 
void MPL3115A2_ConfigureInterruptPin (unsigned char intrrpt, unsigned char pin)
 Configure Interrupt pins. More...
 
void MPL3115A2_ConfigurePressureInterrupt (void)
 Configure Pressure Interrupt. More...
 
void MPL3115A2_ConfigureAltitudeInterrupt (void)
 Configure altitude interrupt pin. More...
 
unsigned char MPL3115A2_ReadByte (char reg)
 Read byte value from register. More...
 
void MPL3115A2_ReadByteArray (char reg, char *buffer, unsigned int length)
 Read byte value from register. More...
 
void MPL3115A2_WriteByte (char reg, char value)
 Write a single byte to the register. More...
 
void MPL3115A2_WriteByteArray (char reg, char *buffer, unsigned int length)
 Writes an array of bytes to the sensor. More...
 

Detailed Description

MPL3115A2 driver header.

Author
D.Qendri
Date
30 April 2015

Definition in file MPL3115A2.h.

Macro Definition Documentation

#define ACTIVE_MASK   0xF1

Definition at line 120 of file MPL3115A2.h.

#define ALARM_SEL   0x20

Definition at line 124 of file MPL3115A2.h.

#define ALT   0x80

Definition at line 99 of file MPL3115A2.h.

#define ALT_MASK   0xEF

Definition at line 119 of file MPL3115A2.h.

#define BAR_IN_LSB   0x15

Definition at line 63 of file MPL3115A2.h.

#define BAR_IN_MSB   0x14

Definition at line 62 of file MPL3115A2.h.

#define BAR_MASK   0x80

Definition at line 118 of file MPL3115A2.h.

#define CIRCULAR   0x40

Definition at line 167 of file MPL3115A2.h.

#define CLEAR_ST   0xF0

Definition at line 130 of file MPL3115A2.h.

#define CTRL_REG1   0x26

Definition at line 80 of file MPL3115A2.h.

#define CTRL_REG2   0x27

Definition at line 81 of file MPL3115A2.h.

#define CTRL_REG3   0x28

Definition at line 82 of file MPL3115A2.h.

#define CTRL_REG4   0x29

Definition at line 83 of file MPL3115A2.h.

#define CTRL_REG5   0x2A

Definition at line 84 of file MPL3115A2.h.

#define DISABLED   0x00

Definition at line 166 of file MPL3115A2.h.

#define DR_STATUS   0x06

Definition at line 48 of file MPL3115A2.h.

#define DREM   0x04

Definition at line 171 of file MPL3115A2.h.

#define F_DATA   0x0E

Definition at line 56 of file MPL3115A2.h.

#define F_MODE   DISABLED

Definition at line 169 of file MPL3115A2.h.

#define F_SETUP   0x0F

Definition at line 57 of file MPL3115A2.h.

#define F_STATUS   0x0D

Definition at line 55 of file MPL3115A2.h.

#define FALSE   0

Definition at line 35 of file MPL3115A2.h.

#define FULL_STOP   0x80

Definition at line 168 of file MPL3115A2.h.

#define INT1   1

Definition at line 163 of file MPL3115A2.h.

#define INT2   0

Definition at line 162 of file MPL3115A2.h.

#define INT_CFG_CLEAR   0x00

Definition at line 160 of file MPL3115A2.h.

#define INT_CFG_DRDY   0x80

Definition at line 151 of file MPL3115A2.h.

#define INT_CFG_FIFO   0x40

Definition at line 152 of file MPL3115A2.h.

#define INT_CFG_PCHG   0x02

Definition at line 157 of file MPL3115A2.h.

#define INT_CFG_PTH   0x08

Definition at line 155 of file MPL3115A2.h.

#define INT_CFG_PW   0x20

Definition at line 153 of file MPL3115A2.h.

#define INT_CFG_TCHG   0x01

Definition at line 158 of file MPL3115A2.h.

#define INT_CFG_TTH   0x04

Definition at line 156 of file MPL3115A2.h.

#define INT_CFG_TW   0x10

Definition at line 154 of file MPL3115A2.h.

#define INT_EN_CLEAR   0x00

Definition at line 147 of file MPL3115A2.h.

#define INT_EN_DRDY   0x80

Definition at line 139 of file MPL3115A2.h.

#define INT_EN_FIFO   0x40

Definition at line 140 of file MPL3115A2.h.

#define INT_EN_PCHG   0x02

Definition at line 145 of file MPL3115A2.h.

#define INT_EN_PTH   0x08

Definition at line 143 of file MPL3115A2.h.

#define INT_EN_PW   0x20

Definition at line 141 of file MPL3115A2.h.

#define INT_EN_TCHG   0x01

Definition at line 146 of file MPL3115A2.h.

#define INT_EN_TTH   0x04

Definition at line 144 of file MPL3115A2.h.

#define INT_EN_TW   0x10

Definition at line 142 of file MPL3115A2.h.

#define INT_SOURCE   0x12

Definition at line 60 of file MPL3115A2.h.

#define IPOL1   0x10

Definition at line 133 of file MPL3115A2.h.

#define IPOL2   0x02

Definition at line 135 of file MPL3115A2.h.

#define LOAD_OUTPUT   0x10

Definition at line 125 of file MPL3115A2.h.

#define MPL3115A2_ADDRESS   0x60

The I2C address of the MPL3115A2 barometer altimeter sensor.

Definition at line 40 of file MPL3115A2.h.

#define OFF_H   0x2D

Definition at line 87 of file MPL3115A2.h.

#define OFF_P   0x2B

Definition at line 85 of file MPL3115A2.h.

#define OFF_T   0x2C

Definition at line 86 of file MPL3115A2.h.

#define OS0   0x08

Definition at line 103 of file MPL3115A2.h.

#define OS1   0x10

Definition at line 102 of file MPL3115A2.h.

#define OS2   0x20

Definition at line 101 of file MPL3115A2.h.

#define OS_1   0x00

Definition at line 109 of file MPL3115A2.h.

#define OS_128   OS2 | OS1 | OS0

Definition at line 116 of file MPL3115A2.h.

#define OS_16   OS2

Definition at line 113 of file MPL3115A2.h.

#define OS_2   OS0

Definition at line 110 of file MPL3115A2.h.

#define OS_32   OS2 | OS0

Definition at line 114 of file MPL3115A2.h.

#define OS_4   OS1

Definition at line 111 of file MPL3115A2.h.

#define OS_64   OS2 | OS1

Definition at line 115 of file MPL3115A2.h.

#define OS_8   OS1 | OS0

Definition at line 112 of file MPL3115A2.h.

#define OST   0x02

Definition at line 105 of file MPL3115A2.h.

#define OUT_P_CSB   0x02

Definition at line 44 of file MPL3115A2.h.

#define OUT_P_DELTA_CSB   0x08

Definition at line 50 of file MPL3115A2.h.

#define OUT_P_DELTA_LSB   0x09

Definition at line 51 of file MPL3115A2.h.

#define OUT_P_DELTA_MSB   0x07

Definition at line 49 of file MPL3115A2.h.

#define OUT_P_LSB   0x03

Definition at line 45 of file MPL3115A2.h.

#define OUT_P_MSB   0x01

Definition at line 43 of file MPL3115A2.h.

#define OUT_T_DELTA_LSB   0x0B

Definition at line 53 of file MPL3115A2.h.

#define OUT_T_DELTA_MSB   0x0A

Definition at line 52 of file MPL3115A2.h.

#define OUT_T_LSB   0x05

Definition at line 47 of file MPL3115A2.h.

#define OUT_T_MSB   0x04

Definition at line 46 of file MPL3115A2.h.

#define P_MAX_CSB   0x22

Definition at line 76 of file MPL3115A2.h.

#define P_MAX_LSB   0x23

Definition at line 77 of file MPL3115A2.h.

#define P_MAX_MSB   0x21

Definition at line 75 of file MPL3115A2.h.

#define P_MIN_CSB   0x1D

Definition at line 71 of file MPL3115A2.h.

#define P_MIN_LSB   0x1E

Definition at line 72 of file MPL3115A2.h.

#define P_MIN_MSB   0x1C

Definition at line 70 of file MPL3115A2.h.

#define P_TGT_LSB   0x17

Definition at line 65 of file MPL3115A2.h.

#define P_TGT_MSB   0x16

Definition at line 64 of file MPL3115A2.h.

#define P_WND_LSB   0x1A

Definition at line 68 of file MPL3115A2.h.

#define P_WND_MSB   0x19

Definition at line 67 of file MPL3115A2.h.

#define PDEFE   0x02

Definition at line 172 of file MPL3115A2.h.

#define PDR   0x04

Definition at line 94 of file MPL3115A2.h.

#define POW   0x40

Definition at line 91 of file MPL3115A2.h.

#define PP_OD1   0x08

Definition at line 134 of file MPL3115A2.h.

#define PP_OD2   0x01

Definition at line 136 of file MPL3115A2.h.

#define PT_DATA_CFG   0x13

Definition at line 61 of file MPL3115A2.h.

#define PTDR   0x08

Definition at line 93 of file MPL3115A2.h.

#define PTOW   0x80

Definition at line 90 of file MPL3115A2.h.

#define RAW   0x40

Definition at line 100 of file MPL3115A2.h.

#define RST   0x04

Definition at line 104 of file MPL3115A2.h.

#define SBYB   0x01

Definition at line 106 of file MPL3115A2.h.

#define SRC_DRDY   0x80

Definition at line 177 of file MPL3115A2.h.

#define SRC_FIFO   0x40

Definition at line 178 of file MPL3115A2.h.

#define SRC_PCHG   0x02

Definition at line 183 of file MPL3115A2.h.

#define SRC_PTH   0x08

Definition at line 181 of file MPL3115A2.h.

#define SRC_PW   0x20

Definition at line 179 of file MPL3115A2.h.

#define SRC_TCHG   0x01

Definition at line 184 of file MPL3115A2.h.

#define SRC_TTH   0x04

Definition at line 182 of file MPL3115A2.h.

#define SRC_TW   0x10

Definition at line 180 of file MPL3115A2.h.

#define ST0   0x01

Definition at line 129 of file MPL3115A2.h.

#define ST1   0x02

Definition at line 128 of file MPL3115A2.h.

#define ST2   0x04

Definition at line 127 of file MPL3115A2.h.

#define ST3   0x08

Definition at line 126 of file MPL3115A2.h.

#define STANDBY_MASK   0xFE

Definition at line 121 of file MPL3115A2.h.

#define STATUS   0x00

Definition at line 42 of file MPL3115A2.h.

#define SYSMOD   0x11

Definition at line 59 of file MPL3115A2.h.

#define T_MAX_LSB   0x25

Definition at line 79 of file MPL3115A2.h.

#define T_MAX_MSB   0x24

Definition at line 78 of file MPL3115A2.h.

#define T_MIN_LSB   0x20

Definition at line 74 of file MPL3115A2.h.

#define T_MIN_MSB   0x1F

Definition at line 73 of file MPL3115A2.h.

#define T_TGT   0x18

Definition at line 66 of file MPL3115A2.h.

#define T_WND   0x1B

Definition at line 69 of file MPL3115A2.h.

#define TDEFE   0x01

Definition at line 173 of file MPL3115A2.h.

#define TDR   0x02

Definition at line 95 of file MPL3115A2.h.

#define TIME_DLY   0x10

Definition at line 58 of file MPL3115A2.h.

#define TOW   0x20

Definition at line 92 of file MPL3115A2.h.

#define TRUE   1

Definition at line 34 of file MPL3115A2.h.

#define WHO_AM_I   0x0C

Definition at line 54 of file MPL3115A2.h.

Enumeration Type Documentation

Enumerator
SR1 
SR2 
SR3 
SR4 
SR5 
SR6 
SR7 
SR8 
SR1 
SR2 
SR3 
SR4 
SR5 
SR6 
SR7 
SR8 
SR1 
SR2 
SR3 
SR4 
SR5 
SR6 
SR7 
SR8 

Definition at line 192 of file MPL3115A2.h.

enum unitsType
Enumerator
PSI 
INHG 
MMHG 
PSI 
INHG 
MMHG 
PSI 
INHG 
MMHG 

Definition at line 188 of file MPL3115A2.h.

Function Documentation

unsigned char MPL3115A2_ReadByte ( char  reg)

Read byte value from register.

Parameters
regRegister to read value form
Returns
value Register value

Definition at line 467 of file MPL3115A2.c.

void MPL3115A2_ReadByteArray ( char  reg,
char *  buffer,
unsigned int  length 
)

Read byte value from register.

Parameters
regRegister to read value form
*bufferArray buffer to be written
lengthLength of buffer array
Returns
value Register value

Definition at line 479 of file MPL3115A2.c.

void MPL3115A2_WriteByte ( char  reg,
char  value 
)

Write a single byte to the register.

Parameters
regregister address
valuevalue to write onto register
Returns
none

Definition at line 490 of file MPL3115A2.c.

void MPL3115A2_WriteByteArray ( char  reg,
char *  buffer,
unsigned int  length 
)

Writes an array of bytes to the sensor.

Parameters
regRegister to read value form
*bufferArray buffer to be written
lengthLength of buffer array
Returns
none

Definition at line 502 of file MPL3115A2.c.