This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1198ECGFE-PDK: Testing problems

Part Number: ADS1198ECGFE-PDK
Other Parts Discussed in Thread: ADS1198

Hi Team,

Can you please help us with this inquiry from our customer.

I have the EVM ADS1198ECG-FE. I have an ECG simulator. I have downloaded the windows software to run with the EVM. I have connected the EVM to the simulator and have gotten everything working with the windows software. The ECG plots looked good on all 12 leads. I copied the register settings. So this was all good but I need to be able to run the part on my own board with my own processor. 

I disconnected the MMB0 board and connected 3.3v power and the SPI connections to my board. With my code I can read and write the registers. I can also send commands to the ADS1198. To test if I was getting valid data I setup the channels with various gain settings this way:

ADS_WriteRegister(CONFIG3,0xC1);

ADS_WriteRegister(LOFF,0x03);

ADS_WriteRegister(CH1SET,0x15); 

ADS_WriteRegister(CH2SET,0x25);

ADS_WriteRegister(CH3SET,0x35);

ADS_WriteRegister(CH4SET,0x45);

ADS_WriteRegister(CH5SET,0x05);

ADS_WriteRegister(CH6SET,0x05);

ADS_WriteRegister(CH7SET,0x55);

ADS_WriteRegister(CH8SET,0x65);

Then I connected a small differential voltage (around 0.13v) across the PACEOUT pins on J5. The reading I got for a gain of 1 matched the voltage I had across the pins. The other channels were as expected given the different gain settings. 

So this all worked.

So next I tried to read the ECG channels. I setup the registers this way:

ADS_WriteRegister(CONFIG1,0x05);

ADS_WriteRegister(CONFIG2,0x10);

ADS_WriteRegister(CONFIG3,0xDC);

ADS_WriteRegister(LOFF,0x03);

ADS_WriteRegister(CH1SET,0x00);

ADS_WriteRegister(CH2SET,0x00);

ADS_WriteRegister(CH3SET,0x00);

ADS_WriteRegister(CH4SET,0x00);

ADS_WriteRegister(CH5SET,0x00);

ADS_WriteRegister(CH6SET,0x00);

ADS_WriteRegister(CH7SET,0x00);

ADS_WriteRegister(CH8SET,0x00);

ADS_WriteRegister(BIAS_SENSP,0x00);

ADS_WriteRegister(BIAS_SENSN,0x00);

ADS_WriteRegister(LOFF_SENSP,0xFF);

ADS_WriteRegister(LOFF_SENSN,0x02);

ADS_WriteRegister(LOFF_FLIP,0x00);

ADS_WriteRegister(GPIO,0x00);

ADS_WriteRegister(PACE,0x00);

ADS_WriteRegister(CONFIG4,0x06);

ADS_WriteRegister(WCT1,0x0A);

ADS_WriteRegister(WCT2,0xE3);

The readings I get were just garbage. Just random noise. Very small voltages. 

Why would the test reading be valid and not the normal electrodes? What would the windows software be doing that I have missed? Please look at how I am setting the registers in either case.
Also, could you send me the proper settings (normal 12 lead setup) for the registers? 

Regards,

Danilo

  • Hi,

    Some suggestions to customers,

    1. since they already tried and proof of concept and validate the registers settings on the EVM and all worked before, please ask them to try the registers settings they found valid&work before first.

    2. they could try the internal test signals to see whether it reads the internal test signal properly.

    3. Could customer explain more detail why they "Then I connected a small differential voltage (around 0.13v) across the PACEOUT pins on J5. The reading I got for a gain of 1 matched the voltage I had across the pins. " And, what do they mean by "The other channels were as expected given the different gain settings. "?

    ------------------------------------

    We cannot provide settings for the registers as different customers have many different setups, connections, configurations, hardwares, etc, all those could contribute to difference results and there could be many different combinations, so customers will need to do tests&experiments, data collection&analysis and V&V to figure it out before making decisions.

    Thanks

  • Hi Chien Chun,

    Thank you for your response. Please see the feedback of our customer below.

    1. since they already tried and proof of concept and validate the registers settings on the EVM and all worked before, please ask them to try the registers settings they found valid&work before first. 

    Ans. Yes, I did try the register settings from the EVM software. I did not get a valid signal.

    2. they could try the internal test signals to see whether it reads the internal test signal properly.

    Ans.  I will try that next.

    3. Could customer explain more detail why they "Then I connected a small differential voltage (around 0.13v) across the PACEOUT pins on J5. The reading I got for a gain of 1 matched the voltage I had across the pins. " And, what do they mean by "The other channels were as expected given the different gain settings. "? 

    Ans. I set the registers to convert the external paceout voltage on ALL of the channels but each channel had a different gain setting. This was to determine that all the channels were reading a voltage that I could measure with a voltmeter. And that the gain settings were correct.

    I keep thinking that the EVM software is providing gain and filtering to the signal. There is only a gain of 6 (default) on the part. The signal that is sent from the ECG simulator is 1 mV max. I validated my test voltage on paceout, but my test voltage was over 100 mV.  

    Can you say what the EVM software is doing with the ECG signal? I have to do a similar thing with a portable wearable application for home use.  No windows software.

    Regard,

    Danilo

  • Hi,

    1. For "since they already tried and proof of concept and validate the registers settings on the EVM and all worked before, please ask them to try the registers settings they found valid&work before first. 

    "Ans. Yes, I did try the register settings from the EVM software. I did not get a valid signal."

    Comments:

    The above statement conflicts with what they reported at very beginning of this thread  " I have connected the EVM to the simulator and have gotten everything working with the windows software. The ECG plots looked good on all 12 leads. I copied the register settings. So this was all good "

    Could they clarify?


    Could they explain more what they mean "did not get a valid signal"?


    They may want to work on/with EVM first to see&understand&compare what registers settings have they changed from the default that makes the signal invalid.

    -----------------------------------------------------------------------------------------------

    2. For, "they could try the internal test signals to see whether it reads the internal test signal properly."

    Yes, please try this on both EVM and their own setup.

    ----------------------------------

    3. Please ask them whether they have a ECG simulator.  It's recommended to use a ECG simulator to test first.

    E.g. Why and how did they generate and  "Then I connected a small differential voltage (around 0.13v)" ?

    ECG signal is usually in mV range and Are they trying to generate&inject 130mV to the ADS? it might be too high. 

    What are they trying to achieve/do when they are doing above?

    ---------------------------------------------

    4. For, "Can you say what the EVM software is doing with the ECG signal? "

    GUI is requesting the digitized signal from ADS and show/display in the GUI.

    --------------------------------------------------

    Thanks

    Thanks

  • Hi Chien Chun,

    Please see the response of our customer below.

    The steps were:

    1. Ran the EVM with Windows software, determined the ECG, and test signals were as expected.
    2. Disconnected the MMB0 board. 
    3. Connected the ADS1x98ECG-FE printed circuit board (PCB) to a 3.3v power supply. 
    4. Connected the ADS1x98ECG-FE printed circuit board (PCB) SPI signals to a microcontroller SPI signals.
    5. Wrote a SDATAC command from the microcontroller to the ADS1198.
    6. Wrote and read the ADS1198 registers with the microcontroller using embedded software.
    7. Wrote a RDATAC command from the microcontroller to the ADS1198.
    8. Started getting DRDY signals from the ADS1198.
    9. Read status (3bytes) then 16bit ADC values from the ADS1198. 
    10. Read 8x500 (sample rate 500sps) ECG 16bit  ADC values with the microcontroller.
    11. Converted the 16 bit 2's complement values from the ADS1198 to float values and saved them to a CSV file.
    12. Loaded the CSV file into MATLAB and plotted the data.
    13. The MATLAB plots did not correspond to any ECG signal.
    Regards,
    Danilo
  • Hi,

    Thanks.

    Let's insert some checking and steps after the Step 4 from the list.

    --------------------------------------------------------

    4.1

    Do they ever RESET the device after power up?

    Please follow datasheet page 65 POWER-UP SEQUENCING

    Once succeed, follow datasheet page 35 SPI COMMAND DEFINITIONS and page 38 RREG: Read From Register
    to read register value back

    Table 9. Command Definitions

    RREG Read n nnnn registers starting at address rrrr

    e.g. they could start with 

    Try to read the ID: ID Control Register (Factory-Programmed, Read-Only) Address = 00h  per datasheet page 40

    and see if they could read the ID register's 2 LSB  = 10 = 8-channel ADS1198.

    4.2

    if above succeeded

    Try to read entire register map back and see if the values match with the registers' reset values e.g. page 30 Table 10. Register Assignments

    ----------------------------------------------------------------------------------

    if above succeeded

    4.3 For, "they could try the internal test signals to see whether it reads the internal test signal properly."

    Yes, please try this on both EVM and their own setup.

    ---------------------------------------------------------------

    Thanks