MAX30101 Register Map
Map of MAX30101 I2C registers.
- Author
Davide Marzorati
Defines
-
MAX30101_FIFO_CONF_REGISTER
FIFO Configuration register.
This register allows to configure the FIFO behaviour.
It is structured as follows:
B7
B6
B5
B4
B3
B2
B1
B0
SMP_AVG[2:0]
FIFO_ROL_LOVER_EN
FIFO_A_FULL[3:0]
Bits 7:5: Sample Averaging (SMP_AVE)
To reduce the amount of data throughput, adjacent samples (in each individual channel) can be averaged and decimated on the chip by setting this register.
Bit 4: FIFO Rolls on Full (FIFO_ROLLOVER_EN)SMP_AVG[2:0]
NO. OF SAMPLES AVG PER SAMPLE
000
1 (no averaging)
001
2
010
4
011
8
100
16
101
32
110
32
111
32
This bit controls the behavior of the FIFO when the FIFO becomes completely filled with data. If FIFO_ROLLOVER_EN is set (1), the FIFO Address rolls over to zero and the FIFO continues to fill with new data. If the bit is not set (0), then the FIFO is not updated until FIFO_DATA is read or the WRITE/READ pointer positions are changed.
Bits 3:0: FIFO Almost Full Value (FIFO_A_FULL)
This register sets the number of data samples (3 bytes/sample) remaining in the FIFO when the interrupt is issued. For example, if this field is set to 0x0, the interrupt is issued when there is 0 data samples remaining in the FIFO (all 32 FIFO words have unread data). Furthermore, if this field is set to 0xF, the interrupt is issued when 15 data samples are remaining in the FIFO (17 FIFO data samples have unread data).
FIFO_A_FULL[3:0]
EMPTY DATA SAMPLES WHEN<br>INTERRUPT IS ISSUED
UNREAD DATA SAMPLES IN FIFO<br>WHEN INTERRUPT IS ISSUED
0x0h
0
32
0x1h
1
31
0x2h
2
30
0x3h
3
29
..
..
..
0xFh
15
17
-
MAX30101_MODE_CONF_REGISTER
MAX30101 Mode configuration register.
This register is structured as follows:
B7
B6
B5
B4
B3
B2
B1
B0
SHDN
RESET
-
-
-
MODE[2:0]
Bit 7: Shutdown Control (SHDN)
The part can be put into a power-save mode by setting this bit to one. While in power-save mode, all registers retain their values, and write/read operations function as normal. All interrupts are cleared to zero in this mode.
Bit 6: Reset Control (RESET)
When the RESET bit is set to one, all configuration, threshold, and data registers are reset to their power-on-state through a power-on reset. The RESET bit is cleared automatically back to zero after the reset sequence is completed. Note: Setting the RESET bit does not trigger a PWR_RDY interrupt event.
Bits 2:0: Mode Control
These bits set the operating state of the MAX30101. Changing modes does not change any other setting, nor does it erase any previously stored data inside the data registers.
MODE[2:0]
MODE
ACTIVE LED CHANNELS
000
Do not use
001
Do not use
010
Heart Rate mode
Red only
011
SpO2 mode
Red and IR
100-110
Do not use
111
Multi-LED mode
Green, RED, and/or IR
-
MAX30101_SPO2_CONF_REGISTER
Sp02 Configuration register.
This register configures the sensor for SpO2 mode.
It is structured as follows:
B7
B6
B5
B4
B3
B2
B1
B0
-
SPO2_ADC_RGE[1:0]
SPO2_SR[2:0]
LED_PW[1:0]
Bits 6:5: SpO2 ADC Range Control This register sets the SpO2 sensor ADC’s full-scale range:
SPO2_ADC_RGE[1:0]
LSB SIZE (pA)
FULL SCALE (nA)
00
7.81
2048
01
15.63
4096
02
31.25
8192
03
62.5
16384
Bits 4:2: SpO2 Sample Rate Control
These bits define the effective sampling rate with one sample consisting of one IR pulse/conversion, one RED pulse/ conversion, and one GREEN pulse/conversion. The sample rate and pulse-width are related in that the sample rate sets an upper bound on the pulse-width time. If the user selects a sample rate that is too high for the selected LED_PW setting, the highest possible sample rate is programmed instead into the register.
SPO2_SR[2:0]
SAMPLES PER SECOND
000
50
001
100
010
200
011
400
101
800
110
1600
111
3200
Bits 1:0: LED Pulse Width Control and ADC Resolution These bits set the LED pulse width (the IR, Red, and Green have the same pulse width), and, therefore, indirectly sets the integration time of the ADC in each sample. The ADC resolution is directly related to the integration time.
LED_PW[1:0]
PULSE WIDTH (uS)
ADC RESOLUTION (bits)
00
69 (68.95)
15
01
118 (117.78)
16
10
215 (215.44)
17
11
411 (410.75)
18
-
MAX30101_LED1_PA_REGISTER
MAX30101 LED1 Pulse Amplitude register.
This register allows to configure the pulse amplitude for LED1. The register is structured as follows:
B7
B6
B5
B4
B3
B2
B1
B0
LED1_PA[7:0]
The pulse amplitude is determined by the followint table:
LEDx_PA[7:0]
TYPICAL LED CURRENT (mA)
0x00h
0.0
0x01h
0.2
0x02h
0.4
…
…
0x0fh
3.0
…
…
0x1fh
6.2
…
…
0x3fh
12.6
…
…
0x7fh
25.4
…
…
0xFFh
51.0
-
MAX30101_LED2_PA_REGISTER
MAX30101 LED2 Pulse Amplitude register.
Please refer to led_pa for the configuration of this register.
-
MAX30101_LED3_PA_REGISTER
MAX30101 LED3 Pulse Amplitude register.
Please refer to led_pa for the configuration of this register.
-
MAX30101_LED4_PA_REGISTER
MAX30101 LED4 Pulse Amplitude register.
Please refer to led_pa for the configuration of this register.
-
MAX30101_MULTI_LED_1_REGISTER
MAX30101 Multi-LED Mode Configuration register - 1.
In multi-LED mode, each sample is split into up to four time slots, SLOT1 through SLOT4. #MAX30101_MULTI_LED_1 and #MAX30101_MULTI_LED_2 control registers determine which LED is active in each time slot, making for a very flexible configuration. Each slot generates a 3-byte output into the FIFO. One sample comprises all active slots, for example if SLOT1 and SLOT2 are non-zero, then one sample is 2 x 3 = 6 bytes. If SLOT1 through SLOT3 are all non-zero, then one sample is 3 x 3 = 9 bytes. The slots should be enabled in order (i.e., SLOT1 should not be disabled if SLOT2 or SLOT3 are enabled). Both LED3 and LED4 are wired to Green LED. Green LED sinks current out of #MAX30101_LED3_PA and #MAX30101_LED4_PA configuration in Multi-LED Mode and SLOTx[2:0] = 011.
The register is structured as follows:
B7
B6
B5
B4
B3
B2
B1
B0
-
SLOT2[2:0]
-
SLOT1[2:0]
The settings for #MAX30101_MULTI_LED_1 and #MAX30101_MULTI_LED_2 registers allows to setup the following Multi-LED modes:
SLOTx[2:0] Setting
WHICH LED IS ACTIVE
LED PULSE AMPLITUDE SETTING
000
None (time slot is disabled)
N/A (Off)
001
LED1 (RED)
#MAX30101_LED1_PA
010
LED2 (IR)
#MAX30101_LED2_PA
011*
LED3 (GREEN)
#MAX30101_LED3_PA[7:0]
LED4 (GREEN)
#MAX30101_LED4_PA[7:0]
100
None
N/A (Off)
101
RESERVED
RESERVED
110
RESERVED
RESERVED
111
RESERVED
RESERVED
-
MAX30101_MULTI_LED_2_REGISTER
MAX30101 Multi-LED Mode Configuration register - 2.
Please refer to #MAX30101_MULTI_LED_1 for the explanation of the register. The register is structured as follows:
B7
B6
B5
B4
B3
B2
B1
B0
-
SLOT2[2:0]
-
SLOT1[2:0]
-
MAX30101_TEMP_INT_REGISTER
MAX30101 Temperature Integer register.
The on-board temperature ADC output is split into two registers, one to store the integer temperature and one to store the fraction. * Both should be read when reading the temperature data, and the equation below shows how to add the two registers together:
.This register stores the integer temperature data in 2’s complement format, where each bit corresponds to 1°C.
B7
B6
B5
B4
B3
B2
B1
B0
TINT[7:0]
REGISTER VALUE (hex)
TEMPERATURE (°C)
0x00
0
0x01
+1
…
…
0x7e
+126
0x7f
+127
0x80
-128
0x81
-127
…
…
0xFE
-2
0xFF
-1
-
MAX30101_TEMP_FRACT_REGISTER
MAX30101 Temperature Fraction register.
This register stores the fractional temperature data in increments of 0.0625°C. If this fractional temperature is paired with a negative integer, it still adds as a positive fractional value (e.g., -128°C + 0.5°C = -127.5°C). This register is structured as follows:
B7
B6
B5
B4
B3
B2
B1
B0
-
-
-
-
TFRAC[3:0]
-
MAX30101_TEMP_CONF_REGISTER
MAX30101 Temperature Configuration register..
This register has only one bit which is used to trigger temperature measurements. This is a self-clearing bit which, when set, initiates a single temperature reading from the temperature sensor. This bit clears automatically back to zero at the conclusion of the temperature reading when the bit is set to one. This register is structured as follows:
B7
B6
B5
B4
B3
B2
B1
B0
-
-
-
-
-
-
-
TEMP_EN
-
MAX30101_REVISION_ID_REGISTER
MAX30101 Revision ID register.
This register holds the value for the revision ID number of the MAX30101.
-
MAX30101_PART_ID_REGISTER
MAX30101 Part ID Register.
This register holds the value for the revision ID number of the MAX30101: the expected value to be read is 0x15.