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.

ADS1299: No change in signal output

Part Number: ADS1299

Hello,

I'm having trouble using the ADS1299 to obtain an EMG signal. I've soldered it onto a PCB according to the data sheet and double checked if the VREFP - VREFN = 0.5V, but when I turn it on and just run my fingers through the pins, i get absolutely no change in signal output. It's like there is some other noise artifact that is dominating the signal but I don't know what to do from here. Any help is appreciated. 

Below is a schematic of my hardware setup:

This is what the signal looks like over 8 channels when using 24x gain, bias signal generation, SRB1 disabled, and SRB2 enabled.The values are scaled to uV using Table 7 in the datasheet. Electrodes aren't connected to anything, just occasionally running my fingers on them during data collection but i'm seeing absolutely no changes in the signal, just this:

-1270.5625,-1275.5022,-1270.8531,-1276.2175,-1268.2156,-1273.1106,-1271.0767,-1273.0883
-1270.5178,-1275.4799,-1270.7413,-1276.128,-1268.2603,-1273.1553,-1271.0095,-1273.0659
-1270.4731,-1275.4799,-1270.6295,-1276.0164,-1268.3049,-1273.1553,-1270.9872,-1273.0659
-1270.5625,-1275.5022,-1270.6967,-1276.1505,-1268.3497,-1273.0883,-1270.9872,-1273.1106
-1270.5625,-1275.4128,-1270.8083,-1276.1505,-1268.2826,-1273.0212,-1270.9425,-1273.0659
-1270.6072,-1275.3235,-1270.652,-1276.128,-1268.1709,-1273.0883,-1270.9648,-1273.0659
-1270.5625,-1275.301,-1270.6743,-1276.1952,-1268.2156,-1273.1776,-1271.0095,-1272.9766
-1270.6072,-1275.234,-1270.7413,-1276.1057,-1268.2826,-1273.0659,-1270.9648,-1272.9766
-1270.5848,-1275.301,-1270.8083,-1276.0834,-1268.1709,-1273.0883,-1270.8755,-1273.0436
-1270.6295,-1275.4128,-1270.9202,-1276.1729,-1268.2603,-1273.1329,-1270.9202,-1273.0883
-1270.6295,-1275.3458,-1270.8307,-1276.1952,-1268.1709,-1273.0659,-1271.0095,-1273.1329
-1270.6072,-1275.3458,-1270.8083,-1276.1952,-1268.2603,-1272.9989,-1271.0767,-1273.0883
-1270.5178,-1275.4128,-1270.719,-1276.1729,-1268.2156,-1273.0436,-1270.9648,-1272.9766
-1270.5178,-1275.301,-1270.6743,-1276.1057,-1268.1486,-1273.0212,-1270.8307,-1272.9541
-1270.6072,-1275.2563,-1270.7413,-1276.1057,-1268.2156,-1272.9989,-1270.8531,-1273.0659
-1270.6072,-1275.3235,-1270.8083,-1276.1057,-1268.1932,-1273.1776,-1270.8755,-1273.0883
-1270.5178,-1275.3235,-1270.6967,-1276.2175,-1268.2156,-1273.1106,-1270.9425,-1273.0659
-1270.6072,-1275.301,-1270.6743,-1276.1729,-1268.3274,-1273.1106,-1271.0767,-1273.0883
-1270.5178,-1275.234,-1270.8307,-1276.061,-1268.2826,-1273.1329,-1271.0095,-1273.0883
-1270.5402,-1275.301,-1270.7413,-1276.1057,-1268.3497,-1273.0436,-1271.0095,-1273.0883
-1270.6072,-1275.301,-1270.6072,-1276.0834,-1268.2156,-1273.0883,-1271.0767,-1273.0659
-1270.4731,-1275.301,-1270.7413,-1276.0834,-1268.1709,-1273.0212,-1270.8531,-1273.0659

  • Hello Ala,

    Leaving the inputs floating is not a valid measurement setup for an ADC. You will need to connect a signal to the inputs for the ADC to measure a valid result. One way to do this easily is to configure the inputs to measure an internal short by changing the MUXn[2:0] bits of the CHnSET registers to 001. The resulting output should correspond to a voltage close to 0 V.

    Brian
  • Hi Brian,

    Thanks for the suggestion! But I've tried doing this as well but there is still no change in the signal (i.e. It does not deviate from ~0uV) when i run my fingers on the pins.

    EDIT: I've also tried changing the MUXn[2:0] bits of the CHnSET registers to 001 and still no difference. 

  • Hello Ala,

    Please provide your full register settings.

    Brian
  • Hi Brian,

    Below are my full register settings. 

    ADS_ID, 0x00, 0x3E, 0, 0, 1, 1, 1, 1, 1, 0

    CONFIG1, 0x01, 0x96, 1, 0, 0, 1, 0, 1, 1, 0
    CONFIG2, 0x02, 0xC0, 1, 1, 0, 0, 0, 0, 0, 0
    CONFIG3, 0x03, 0xEC, 1, 1, 1, 0, 1, 1, 0, 0
    LOFF, 0x04, 0x02, 0, 0, 0, 0, 0, 0, 1, 0


    CH1SET, 0x05, 0x48, 0, 1, 0, 0, 1, 0, 0, 0
    CH2SET, 0x06, 0x48, 0, 1, 0, 0, 1, 0, 0, 0
    CH3SET, 0x07, 0x48, 0, 1, 0, 0, 1, 0, 0, 0
    CH4SET, 0x08, 0x48, 0, 1, 0, 0, 1, 0, 0, 0
    CH5SET, 0x09, 0x48, 0, 1, 0, 0, 1, 0, 0, 0
    CH6SET, 0x0A, 0x48, 0, 1, 0, 0, 1, 0, 0, 0
    CH7SET, 0x0B, 0x48, 0, 1, 0, 0, 1, 0, 0, 0
    CH8SET, 0x0C, 0x48, 0, 1, 0, 0, 1, 0, 0, 0
    BIAS_SENSP, 0x0D, 0xFF, 1, 1, 1, 1, 1, 1, 1, 1
    BIAS_SENSN, 0x0E, 0xFF, 1, 1, 1, 1, 1, 1, 1, 1
    LOFF_SENSP, 0x0F, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
    LOFF_SENSN, 0x10, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
    LOFF_FLIP, 0x11, 0x00, 0, 0, 0, 0, 0, 0, 0, 0

    LOFF_STATP, 0x12, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
    LOFF_STATN, 0x13, 0x00, 0, 0, 0, 0, 0, 0, 0, 0

    GPIO, 0x14, 0x0F, 0, 0, 0, 0, 1, 1, 1, 1
    MISC1, 0x15, 0x00, 0, 0, 0, 0, 0, 0, 0, 0
    MISC2, 0x16, 0x00, 0, 0, 0, 0, 0, 0, 0, 0

    CONFIG4, 0x17, 0x00, 0, 0, 0, 0, 0, 0, 0, 0

    Again, appreciate all your help. 

  • Hello Ala,

    From what I can tell, when you short the inputs together using the internal short mode, you measure back a voltage near 80 uV, which is near the offset error for this device. That seems normal.

    If you were to change the MUXn[2:0] bits in the CHnSET registers to 101, are you able to see a 1 Hz square wave?

    Brian
  • Hi Brian,

    Yeah when I try to generate a test signal and set MUXn[2:0] bits in the CHnSET registers, i can see a square wave like normal. I believe this means the ADS is working properly and my code is correct, perhaps the problem is in the path between the pins and the ADS? 

    Cheers,

    Ala

  • Ala,

    I do not think there is a problem. The input short measurement seems to be accurate. Touching the inputs with your fingers does not provide the ADC with a active driven signal, so I do not think you can interpret that as unexpected behavior. What happens when you apply a valid signal to the inputs?

    Brian
  • Brian,

    I've tried collecting EKG and EMG signals using the SRB2 and channel 1, there has still been no change in the signal even when i press the electrode or flex a muscle, below is the output i got for that:

    0.0,95290.67,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,94625.055,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,94971.84,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,94650.875,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95634.08,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95735.24,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,96366.26,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95250.97,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95399.39,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95862.2,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95861.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95879.52,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,96562.75,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95958.61,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95120.93,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,94616.67,0.0,0.0,0.0,0.0,0.0,0.0,0.0
    0.0,95602.92,0.0,0.0,0.0,0.0,0.0,0.0,0.0
  • Actually Brian, I've just poked the board with a multimeter and it looks like VCAP1 is -1.3.. According to the datasheet it should be 1.1.. I'm not sure how the board is booting up in this case because it should be waiting for it to become 1.1 to continue the boot up process, no? I'm referring to the flowchart on page 62 of the datasheet.
  • Hello Ala,

    With respect to which rail are you measuring VCAP1? It will be 1.2 V with respect to AVSS once the device is powered up. If AVSS = -2.5 V with respect to ground, then VCAp1 should be -2.5 + 1.2 = -1.3 V with respect to ground.

    GOing back to your measurements, have you provided bias to the patient using a ground electrode? The ground electrode (called "right leg" in ECG) can be connected to the BIASOUT pin on the ADS1299.

    Brian
  • Hi Brian,

    I initially measured VCAP1 with respect to ground but I know now that is incorrect. I've measured it with respect to AVSS and I got ~1.2V. 

    With respect to the patient, I've tried disabling SRBx using BIAS connected to their elbow and channel one connected to their forearm muscle (flexors), and the result is still the same. I've also tried disabling BIAS and using SRB2 with the same setup on the patient and still, result is the same. During data collection I had the patient flex their muscle periodically so I can see if there's a change in the signal, but there is still nothing. 

    Below is a picture of the plot i got for it (using a 60Hz notch filter and a 1-15Hz bandpass filter), and the FFT plot. 

    The above plot is just the uV over approx. 5 seconds. It remains this way and does not respond to any muscle flexes by the patient. 

    For reference, this is the raw data, I disabled all the channels except for channel 1. The first column is just a meta-data field that is always 0, it is not related to the ADS1299 output. 

    SDconverted-2017-06-27_11-21-42.txt

  • FINAL UPDATE: Turns out our ADS1299 was burned (we may have accidentally burned it when soldering or something). We've printed a new PCB and soldered a brand new ADS1299 onto it and we are getting reliable data. 

    Thanks for the help Brian! It is appreciated. 

    Ala