Library for MAX30101 SpO2 and heart rate sensor

Dependents:   HeartRate HeartRate proj final_project_ee119 ... more

Embed: (wiki syntax)

« Back to documentation index

MAX30101 Class Reference

Library for the MAX30101
The MAX30101 is an integrated pulse oximetry and heart-rate monitor module. More...

#include <MAX30101.h>

Data Structures

union  FIFO_Configuration_u
 FIFO Configuration BitField. More...
union  InterruptBitField_u
 Interrupt Status/Enable BitField. More...
union  ModeConfiguration_u
 Mode Configuration BitField. More...
union  ModeControlReg_u
 Multi-LED Mode Control Register BitField. More...
union  SpO2Configuration_u
 SpO2 Configuration BitField. More...

Public Types

enum  Registers_e
 

MAX30101 Register Map.

More...
enum  OpModes_e
 

MAX30101 Operational Modes.

More...
enum  LedChannels_e
 

Number of LED channels used.

More...
enum  NumSamplesAveraged_e
 

Number of samples averaged per FIFO sample, set in FIFO config.

More...
enum  ADCRange_e
 

ADC Range, set in SpO2 config.

More...
enum  SampleRate_e
 

Sample rate, set in SpO2 config.

More...

Public Member Functions

 MAX30101 (I2C &i2c)
 Constructor using reference to I2C object.
 ~MAX30101 ()
 Destructor.
int32_t enableInterrupts (const InterruptBitField_u data)
 Writes appropriate bits to Interrupt Enable 1 and 2.
int32_t getInterruptStatus (InterruptBitField_u &data)
 Reads interrupt status flags from Interrupt Status 1 and 2.
int32_t setFIFOConfiguration (const FIFO_Configuration_u config)
 Writes FIFO configuration register with given data.
int32_t getFIFOConfiguration (FIFO_Configuration_u &config)
 Reads FIFO configuration register.
int32_t setModeConfiguration (const ModeConfiguration_u config)
 Writes Mode configuration register with given data.
int32_t getModeConfiguration (ModeConfiguration_u &config)
 Reads Mode configuration register.
int32_t setSpO2Configuration (const SpO2Configuration_u config)
 Writes SpO2 configuration register with given data.
int32_t getSpO2Configuration (SpO2Configuration_u &config)
 Reads SpO2 configuration register.
int32_t setLEDPulseAmplitude (Registers_e reg, const uint8_t amp)
 Writes LEDx/Prox Pulse Amplitude register with given data.
int32_t getLEDPulseAmplitude (Registers_e reg, uint8_t &amp)
 Reads LEDx/Prox Pulse Amplitude register.
int32_t setMultiLEDModeControl (Registers_e reg, const ModeControlReg_u data)
 Writes Multi-LED Mode Control Register.
int32_t getMultiLEDModeControl (Registers_e reg, ModeControlReg_u &data)
 Reads Multi-LED Mode Control Register.
int32_t getDieTemperature (uint16_t &data)
 Gets raw die temperature, interrupt must be enabled.
int32_t getDieTemperatureC (float &data)
 Gets die temperature in celsius, interrupt must be enabled.
float celsius2fahrenheit (float c)
 Converts celsius to Fahrenheit.
int32_t setProxIntThreshold (const uint8_t data)
 Writes Proximity Interrupt Threshold Register.
int32_t getProxIntThreshold (uint8_t &data)
 Reads Proximity Interrupt Threshold Register.
int32_t readFIFO (LedChannels_e numLeds, uint8_t *data, uint16_t &readBytes)
 Attempts to read FIFO.

Static Public Attributes

static const uint8_t I2C_ADRS = 0x57
 7-bit slave address
static const uint8_t I2C_W_ADRS = 0xAE
 8-bit write address
static const uint8_t I2C_R_ADRS = 0xAF
 8-bit read address
static const uint16_t MAX_FIFO_BYTES = 288
 Max # Bytes in FIFO.
static const uint8_t BYTES_PER_CH = 3
 # of bytes per LED channel

Protected Member Functions

int32_t writeRegister (Registers_e reg, uint8_t value)
 Write register of device.
int32_t readRegister (Registers_e reg, uint8_t &value)
 Read register of device.

Detailed Description

Library for the MAX30101
The MAX30101 is an integrated pulse oximetry and heart-rate monitor module.

It includes internal LEDs, photodetectors, optical elements, and low-noise electronics with ambient light rejection. The MAX30101 provides a complete system solution to ease the design-in process for mobile and wearable devices.

 #include "mbed.h"
 #include "max32630fthr.h"
 #include "MAX30101.h"
 
 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);

 //Get I2C instance
 I2C i2cBus(P3_4, P3_5);

 //Get temp sensor instance
 MAX30101 op_sensor(i2cBus); //Constructor takes 7-bit slave adrs

 int main(void) 
 {
     //use sensor
 }

Definition at line 65 of file MAX30101.h.


Member Enumeration Documentation

enum ADCRange_e

ADC Range, set in SpO2 config.

Definition at line 136 of file MAX30101.h.

Number of LED channels used.

Definition at line 117 of file MAX30101.h.

Number of samples averaged per FIFO sample, set in FIFO config.

Definition at line 125 of file MAX30101.h.

enum OpModes_e

MAX30101 Operational Modes.

Definition at line 109 of file MAX30101.h.

MAX30101 Register Map.

Definition at line 81 of file MAX30101.h.

Sample rate, set in SpO2 config.

Definition at line 155 of file MAX30101.h.


Constructor & Destructor Documentation

MAX30101 ( I2C &  i2c )

Constructor using reference to I2C object.

Parameters:
i2c- Reference to I2C object

Definition at line 39 of file MAX30101.cpp.

~MAX30101 (  )

Destructor.

Definition at line 47 of file MAX30101.cpp.


Member Function Documentation

float celsius2fahrenheit ( float  c )

Converts celsius to Fahrenheit.

Parameters:
c- Temperature in celsius
Returns:
Temperature in Fahrenheit

Definition at line 237 of file MAX30101.cpp.

int32_t enableInterrupts ( const InterruptBitField_u  data )

Writes appropriate bits to Interrupt Enable 1 and 2.

Parameters:
data- Interrupts to enable
Returns:
0 on success, non 0 otherwise

Definition at line 54 of file MAX30101.cpp.

int32_t getDieTemperature ( uint16_t &  data )

Gets raw die temperature, interrupt must be enabled.

Parameters:
[out]data- Raw die temperature on success
Returns:
0 on success, non 0 otherwise

Definition at line 156 of file MAX30101.cpp.

int32_t getDieTemperatureC ( float &  data )

Gets die temperature in celsius, interrupt must be enabled.

Parameters:
[out]data- Die temperature in celsius on success
Returns:
0 on success, non 0 otherwise

Definition at line 215 of file MAX30101.cpp.

int32_t getFIFOConfiguration ( FIFO_Configuration_u config )

Reads FIFO configuration register.

Parameters:
[out]config- FIFO Configuration on success
Returns:
0 on success, non 0 otherwise

Definition at line 93 of file MAX30101.cpp.

int32_t getInterruptStatus ( InterruptBitField_u data )

Reads interrupt status flags from Interrupt Status 1 and 2.

Parameters:
[out]data- Contains interrupts status flags on success.
Returns:
0 on success, non 0 otherwise

Definition at line 66 of file MAX30101.cpp.

int32_t getLEDPulseAmplitude ( Registers_e  reg,
uint8_t &  amp 
)

Reads LEDx/Prox Pulse Amplitude register.

Parameters:
reg- LEDx/Prox Pulse Amplitude register to read
[out]amp- LED pulse amplitude on success
Returns:
0 on success, non 0 otherwise

Definition at line 135 of file MAX30101.cpp.

int32_t getModeConfiguration ( ModeConfiguration_u config )

Reads Mode configuration register.

Parameters:
[out]config- Mode Configuration on success
Returns:
0 on success, non 0 otherwise

Definition at line 107 of file MAX30101.cpp.

int32_t getMultiLEDModeControl ( Registers_e  reg,
ModeControlReg_u data 
)

Reads Multi-LED Mode Control Register.

Parameters:
reg- Multi-LED Mode Control register 1 or 2
[out]data- Data read from register on success
Returns:
0 on success, non 0 otherwise

Definition at line 149 of file MAX30101.cpp.

int32_t getProxIntThreshold ( uint8_t &  data )

Reads Proximity Interrupt Threshold Register.

Parameters:
data- Data read on success
Returns:
0 on success, non 0 otherwise

Definition at line 251 of file MAX30101.cpp.

int32_t getSpO2Configuration ( SpO2Configuration_u config )

Reads SpO2 configuration register.

Parameters:
[out]config- SpO2 Configuration on success
Returns:
0 on success, non 0 otherwise

Definition at line 121 of file MAX30101.cpp.

int32_t readFIFO ( LedChannels_e  numLeds,
uint8_t *  data,
uint16_t &  readBytes 
)

Attempts to read FIFO.

Parameters:
numLeds- Number of LED channels used; 0 < numLeds < 4
data- pointer to buffer for holding read data
[out]readBytes- number of bytes read from fifo
Returns:
0 on success, non 0 otherwise

Definition at line 258 of file MAX30101.cpp.

int32_t readRegister ( Registers_e  reg,
uint8_t &  value 
) [protected]

Read register of device.

Parameters:
reg- Register address
[out]value- Read data on success
Returns:
0 on success, non-zero on failure

Definition at line 318 of file MAX30101.cpp.

int32_t setFIFOConfiguration ( const FIFO_Configuration_u  config )

Writes FIFO configuration register with given data.

Parameters:
config- FIFO Configuration
Returns:
0 on success, non 0 otherwise

Definition at line 86 of file MAX30101.cpp.

int32_t setLEDPulseAmplitude ( Registers_e  reg,
const uint8_t  amp 
)

Writes LEDx/Prox Pulse Amplitude register with given data.

Parameters:
reg- LEDx/Prox Pulse Amplitude register to write
amp- LED pulse amplitude
Returns:
0 on success, non 0 otherwise

Definition at line 128 of file MAX30101.cpp.

int32_t setModeConfiguration ( const ModeConfiguration_u  config )

Writes Mode configuration register with given data.

Parameters:
config- Mode Configuration
Returns:
0 on success, non 0 otherwise

Definition at line 100 of file MAX30101.cpp.

int32_t setMultiLEDModeControl ( Registers_e  reg,
const ModeControlReg_u  data 
)

Writes Multi-LED Mode Control Register.

Parameters:
reg- Multi-LED Mode Control register 1 or 2
data- Data to write to register
Returns:
0 on success, non 0 otherwise

Definition at line 142 of file MAX30101.cpp.

int32_t setProxIntThreshold ( const uint8_t  data )

Writes Proximity Interrupt Threshold Register.

Parameters:
data- Data to write to register
Returns:
0 on success, non 0 otherwise

Definition at line 244 of file MAX30101.cpp.

int32_t setSpO2Configuration ( const SpO2Configuration_u  config )

Writes SpO2 configuration register with given data.

Parameters:
config- SpO2 Configuration
Returns:
0 on success, non 0 otherwise

Definition at line 114 of file MAX30101.cpp.

int32_t writeRegister ( Registers_e  reg,
uint8_t  value 
) [protected]

Write register of device.

Parameters:
reg- Register address
value- Value to write
Returns:
0 on success, non-zero on failure

Definition at line 309 of file MAX30101.cpp.


Field Documentation

const uint8_t BYTES_PER_CH = 3 [static]

# of bytes per LED channel

Definition at line 78 of file MAX30101.h.

const uint8_t I2C_ADRS = 0x57 [static]

7-bit slave address

Definition at line 70 of file MAX30101.h.

const uint8_t I2C_R_ADRS = 0xAF [static]

8-bit read address

Definition at line 74 of file MAX30101.h.

const uint8_t I2C_W_ADRS = 0xAE [static]

8-bit write address

Definition at line 72 of file MAX30101.h.

const uint16_t MAX_FIFO_BYTES = 288 [static]

Max # Bytes in FIFO.

Definition at line 76 of file MAX30101.h.