Post Go back to editing

EVAL-ADPD4100Z-PPG with noisy ECG signal

Category: Hardware
Product Number: EVALADPD4100Z-PPG, ADPD4100

Hello Analog Team,

I’m trying to acquire an ECG signal from EVAL-ADPD4100Z-PPG with a microcontroller RP2040 based (Raspberry Pi Pico), however I am receiving a very noisy signal which does not look like a ECG signal. The figure below shows the received ECG data:

The register configuration used was as suggested by the datasheet for small DC offset, with changes to use IN7/IN8 inputs.

#ADPD4100 ECG Measurement with small DC offset

0009 0080 # 32MHz oscillator trim

000B 02B2 # 1MHz oscillator trim

000D 0D05 # Sampling rate 300 Hz

000F 0006 # 1MHz low frequency oscillator

0010 0000 # Timeslot A enabled

0020 0202 # Float inputs 3&4 and 7&8 during sleep

0021 0008 # IN7/IN8 configured as a differential pair

 

# Timeslot configuration #

### Timeslot A - Sleep float mode ECG with multiple charge transfers

0100 0000 # Input resistor 500 Ω

0101 00E6 # skip preconditioning, bandpass filter bypassed

0102 7000 # IN7&IN8 differential pair to channel 1

0103 0000 # float during preconditioning

0104 02C1 # TIA gain 100k, Vref = 0.88V

0105 0000 # LEDs off

0106 0000 # LEDs off

0107 0102 # 2 pulses

0108 1000 # float mode, minimum period

010A 0203 # Integrator pulse width, bandpass filter powered down

010B 01A0 # Integrator pulse timing offset

010C 0210 # Modulation pulse width and offset

010D 0000 # Chopping mode disabled

010E 0000 # no ADC offset

010F 0000 # no ADC offset

0110 0003 # Configure number of bytes written to the registers

We also tested the setting for high DC offset, but no improvement in signal quality was observed.

Another test was performed utilizing the Microcontroller board EVAL-ADPDUCZ and Wavetool Evaluation Software, with the same configuration, but the problem persists. Below is a print of the signal obtained from the wavetool.

About the Hardware setup:

In the first test we had soldered two jumpers directly in IN7/IN8 ports pins of  EVAL-ADPD4100Z-PPG.

However, the ADPD4100/ADPD4101 datasheet recommends a 500 k resistor in series with each input, but the Evaluation board uses a 25 K resistor. So, we soldered 470 K resistors and electrodes taken from an AD8232 ECG Sensor Module Kit:

Even so, we did not have significant changes in the ECG signal.

Reading mode:

Initially, we tested the direct reading of the output registers associated with team slotA (SIGNAL1_L_A and SIGNAL1_H_A). On this occasion, the interruption of slot A was configured for GPIO2 of the ADPD. Secondly, we use the FIFO, directing the INT_FIFO_TH status bit to the interrupt. Both configurations presented the same noisy behavior for the signal.

Lastly, I tested the configuration mentioned in the topic ez.analog.com/.../eval-adpd4100z-ppg-3-3v-operation-noisy-signal from the ADI Engineer Zone. Also, unsuccessful. Below is the most recent verified configuration:

#ADPD4100 ECG Measurement with small DC offset

0009 0072

000B 02CA

000D 0D05 # Sampling rate 300 Hz

000F 0006 # 1MHz low frequency oscillator

0010 0000 # Timeslot A enabled

0014 8000 # FIFO int x

0020 0202 # Float inputs 3&4 and 7&8 during sleep

0021 0008 # IN7/IN8 configured as a differential pair

 

# Timeslot configuration #

### Timeslot A - Sleep float mode ECG with multiple charge transfers

0100 0000 # Input resistor 500 Ω

0101 00E6 # skip preconditioning, bandpass filter bypassed

0102 7000 # IN7&IN8 differential pair to channel 1

0103 0000 # float during preconditioning

0104 02C1 # TIA gain 100k, Vref = 0.88V

0105 0000 # LEDs off

0106 0000 # LEDs off

0107 0102 # 2 pulses

0108 1000 # float mode, minimum period

010A 0003

010B 01A0 # Integrator pulse timing offset

010C 0210 # Modulation pulse width and offset

010D 0000 # Chopping mode disabled

010E 0000 # no ADC offset

010F 0000 # no ADC offset

0110 0002 # Configure number of bytes written to the registers

# Interrupt Configuration #

0006 0002 # 2 bytes FIFO interrupt generation threshold

0022 0083 # gpio3 disabled, gpio2 = out normal, gpio0 = out invert

0024 0002 # Interrupt X on GPIO2

And the ECG signal obtained.

Note: we are using the same board to obtain a PPG signal and it is much better. Below is the PPG print:

My question is: am I making some configuration or hardware error that could be generating the noisy ECG signal?

I would appreciate any help from. Best Regards!