How to Configure the Optimal Settings for the Best PPG and ECG Performance in the MAX86150

Abstract

The MAX86150 enables synchronized PPG and ECG measurements with integrated optical components and a low-noise analog front end. This application note provides sample code that highlights the important register settings to achieve the best PPG and ECG performance.

Introduction

The MAX86150 enables biosensing with synchronized photoplethysmogram (PPG) and electrocardiogram (ECG) measurements. It is a fully integrated module with internal LEDs, a photodetector, and a low-noise analog front end. A standard I2C-compatible interface can communicate with the module.

Optimal Settings for PPG and ECG Measurements

The MAX86150 is fully configurable through software registers, and the digital output data is stored in a 32-deep FIFO within the device. The FIFO allows the MAX86150 to be connected to a microcontroller or a processor on a shared bus. Refer to the MAX86150 data sheet for a detailed description of the full register settings.

The sample code in this application note highlights some of the important register settings to achieve the best PPG and ECG performance. The sample code can be implemented in the firmware driver level or entered sequentially line by line using a standard I2C communicator.

The five important register settings to configure are as follows:

  • Configure the FIFO settings: Enable the FIFO and allow the FIFO to be read.
  • Enable the PPG and ECG modes: Enable PPG and ECG functions.
  • Configure the acquisition settings for the best PPG performance: Depending on the human physiology, LED power, and LED pulse width, the ADC count detection range can be adjusted to ensure good signal to noise while avoiding overexposure on the human subjects or unnecessary power consumption. The sampling rate can also be adjusted depending on the use case.
  • Configure the acquisition settings for the best ECG performance: Adjust the sampling frequency and amplifier gain settings depending on the use case.
  • Configure the AFE settings for the best ECG performance: These settings should be implemented prior to all ECG measurements.

Configure the FIFO Settings

{0x02, 0x80}; // 0x80 for A_FULL_EN
{0x0D, 0x01}, // Reset part
{0x0D, 0x04}, // Enable FIFO
{0x08, 0x1F}, // 0x1F for FIFO_ROLLS_ON_FULL to 1 and lost old samples when FIFO is full, Read FIFO data when there are 17 samples

Enable the PPG and ECG Modes

{0x09, 0x21}, // LED1 in slot 1 and LED2 in slot 2
{0x0A, 0x09}, // ECG in slot 3

Configure the Acquisition Settings for the Best PPG Performance

{0x11, 0x55}, // LED1 current setting, optimal setting can vary depending on human physiology
{0x12, 0x55}, // LED2 current setting, optimal setting can vary depending on human physiology
{0x0E, 0xD3}, // 0xD3 for PPG_ADC_RGE= 32µA, PPG_SR = 100Hz, PPG_LED_PW = 400µs, actual sample rate can vary depending on the use case
{0x0F, 0x18}, // 0x18 for 20µs delay from the rising edge of the LED to the start of integration

Configure the Acquisition Settings for the Best ECG Performance

{0x3C, 0x03}, //0x03 for ECG_ADC_OSR = 200Hz, actual sample rate can vary depending on the use case
{0x3E, 0x0D}, // 0x0D for PGA_ECG_Gain = 8, and IA_Gain = 9.5, total gain = 76 V/V being the most accurate gain setting

Configure the AFE Settings for the Best ECG Performance

{0xFF, 0x54}, // series of code to set appropriate AFE settings, to be executed in sequential order
{0xFF, 0x4D},
{0xCE, 0x0A},
{0xCF, 0x18},
{0xFF, 0x00}, // Complete