Library for MAX30101 SpO2 and heart rate sensor
Dependents: HeartRate HeartRate proj final_project_ee119 ... more
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 &) |
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.
enum LedChannels_e |
Number of LED channels used.
Definition at line 117 of file MAX30101.h.
enum NumSamplesAveraged_e |
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.
enum Registers_e |
MAX30101 Register Map.
Definition at line 81 of file MAX30101.h.
enum SampleRate_e |
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.
Generated on Wed Jul 13 2022 02:50:32 by 1.7.2