Part Number: ADS1298
Subject
ADS1298 ECG signal takes ~30 seconds to stabilize on human subject, random straight-line output, and lead-off detection issues
Description
Hello TI Support Team,
We are developing a Resting ECG system using the ADS1298 with a TI CC2652 MCU over SPI.
We are currently in the final production/testing phase and are facing three major issues with the ADS1298 ECG acquisition. We would appreciate your support in reviewing our configuration and helping us identify the root cause.
Hardware / System
- ADC: TI ADS1298
- MCU: TI CC2652
- Interface: SPI
- Application: Resting ECG
- Number of channels: 8
- Data rate: 250 SPS LP
- Current PGA gain: 6
- Testing methods:
- ECG simulator
- Human subject
Issue 1 — Different ECG Stabilization Time
When we test the system using an ECG simulator, the ECG output becomes stable in approximately 10 seconds.
However, when we connect the system to a human subject, the ECG output takes approximately 30 seconds to become stable.
We would like to understand why there is such a significant difference between simulator and human-body testing.
We would like to know whether there is a recommended ADS1298 configuration or startup sequence for achieving faster and more repeatable ECG settling with human electrodes.
Issue 2 — Random Straight-Line ECG Output
We are also seeing a straight-line ECG output.
With the ECG simulator, we can observe a straight-line condition where the expected ECG waveform does not appear/recover correctly.
With a human subject, the straight-line condition occurs randomly.
The issue is not consistently reproducible at the same time, which makes it difficult to identify the source.
We would like TI's guidance on how to determine whether this is caused by:
- ADS1298 ADC/input configuration
- Channel configuration
- PGA saturation
- Input common-mode violation
- Electrode connection/impedance
- RLD instability
- WCT configuration
- Lead-off circuitry
- ADS1298 internal state
- DRDY handling
- ADC data-frame readout
- Incorrect 24-bit ADC data interpretation
- Power/grounding or analog interference
One important question we would like to clarify is:
If the ECG output becomes a straight line, what ADS1298 registers/status signals should we monitor to determine whether the problem originates inside the ADS1298/analog input or in the SPI/MCU data acquisition path?
We can provide raw ADC data, SPI captures, register dumps, and oscilloscope/logic-analyzer captures if required.
Issue 3 — Lead Detection / Lead-Off Detection
We also need to verify the lead detection/lead-off detection functionality of the ADS1298.
Our current configuration uses:
LOFF = 0xFB
LOFF_SENSP = 0xFF
LOFF_SENSN = 0x06
LOFF_STATN = 0x00
We would like TI to review whether these settings are appropriate for our ECG electrode configuration.
We need reliable detection of:
Electrode connected
↓
Lead detected
Electrode disconnected
↓
Lead-off detected
Electrode reconnected
↓
Lead detected again
We would also like guidance on:
- Correct LOFF current configuration
- Correct LOFF frequency configuration
- Correct lead-off threshold configuration
- Correct
LOFF_SENSP/LOFF_SENSNconfiguration - Correct interpretation of
LOFF_STATN - Recommended lead-off configuration for human ECG
- Whether lead-off detection can affect ECG signal quality or stabilization
- Whether lead-off current injection can contribute to the random flatline behavior
- Recommended method for validating lead detection with an ECG simulator versus a human subject
Current ADS1298 Configuration
Our current configuration is approximately:
adc_send_command(SDATAC);
uint8_t channelGain = 0x60; // Gain 12
CHnSET_VAL = adc_wreg_verify(CHnSET, 0x03);
CH1SET_VAL = adc_wreg_verify(CH1SET, channelGain);
CH2SET_VAL = adc_wreg_verify(CH2SET, channelGain);
CH3SET_VAL = adc_wreg_verify(CH3SET, channelGain);
CH4SET_VAL = adc_wreg_verify(CH4SET, channelGain);
CH5SET_VAL = adc_wreg_verify(CH5SET, channelGain);
CH6SET_VAL = adc_wreg_verify(CH6SET, channelGain);
CH7SET_VAL = adc_wreg_verify(CH7SET, channelGain);
CH8SET_VAL = adc_wreg_verify(CH8SET, channelGain);
adc_wreg_verify(CONFIG1, 0x06); // 250 SPS
adc_wreg_verify(CONFIG2, 0x40);
adc_wreg(LOFF, 0xFB);
adc_wreg(RLD_SENSP, 0x00);
adc_wreg(RLD_SENSN, 0x00);
adc_wreg(LOFF_SENSP, 0xFF);
adc_wreg(LOFF_SENSN, 0x06);
LOFF_STATN_VAL = adc_wreg_verify(LOFF_STATN, 0x00);
CONFIG4_VAL = adc_wreg_verify(CONFIG4, 0x22);
WCT1_VAL = adc_wreg_verify(WCT1, 0x0A);
WCT2_VAL = adc_wreg_verify(WCT2, 0xDC);
CONFIG3_VAL = adc_wreg_verify(CONFIG3, 0xDC);
Questions for TI Support
Could you please help us with the following:
- Is our current ADS1298 register configuration appropriate for a human Resting ECG application?
- Is there anything in the configuration that could explain the ~30-second settling time with human electrodes?
- Are there known ADS1298 conditions that can result in a zero/straight-line ADC output?
- What registers/status bits should we monitor when the flatline occurs?
- What is the recommended procedure to distinguish an analog-input problem from an ADS1298/SPI/MCU data-readout problem?
- Is our current RLD/WCT configuration appropriate?
- Is our current lead-off configuration correct?
- Can the lead-off function interfere with ECG acquisition or cause signal instability?
- Are there recommended startup/reset/configuration delays or command sequences that we should follow?
- Are there any ADS1298 errata or known limitations relevant to these symptoms?
Information We Can Provide
If required, we can provide:
- Complete ADS1298 register readback
- CC2652 SPI driver/source code
- DRDY timing captures
- Raw 24-bit ADS1298 ADC data
- ECG simulator configuration
- Power-supply measurements
- Schematic of the ADS1298 analog front end
- PCB layout information
- Electrode configuration
- Waveforms captured during the flatline event
LOFF_STATNvalues during connected/disconnected conditions
We would appreciate TI's guidance on the recommended debug procedure and any register/configuration changes that should be evaluated.
Thank you.