Post Go back to editing

Using 2 or 4 electrodes for 4-Wire, Bio-Isolated Impedance?

I beg an excuse for my stupid question.

It is about  4-Wire, Bio-Isolated Impedance Measurement Applications (described in AN-1302).

We want to build into a wrist held device this type of measurement. The SW is mostly ready but the HW is still open because is not clear (for stupid me) how to use and how to place these 4 electrodes

Let's have look at the following picture:

There are 2 opinions:

1) The 4 wires are used to eliminate the influence on the voltage drop in wires on the measurement results. Then UNKNOWN Z is the human body. That means for a wrist held device that only 2 (two) electrodes are required, and because it we would like to use Bio-Isolated Impedance the external capacitors (Ciso) and the OpAmp AD8226 are required. It is also unclear about Raccess resistors - should they be or not.

2) The 4 wires are connected to 4 (four) electrodes in contact with human skin. In this case the positioning of electrodes might be important. Before posting this question I did some Googling. It is obvious, I could not find the answer, but I saw implementations where the electrodes are in one line and the excitation electrodes are at the both ends while the measurement electrodes are placed in between.

In our setup the 4 electrodes are in the corners of a square with a side approx 12mm.

I have tried to calibrate the sensor using different resistors and 4 wires connected to 2 electrodes. This was working perfect. I tried to connect myself instead of UNKNOWN Z and got a magnitude between 20-40kOhm.

Then I attached the board with 4 electrodes on it to my skin and the magnitude in this case was in the range or below 1kOhm.

Now I am puzzled what to do? What is the right way to use the ADuMC350 for 4-wire Bio-Isolated Impedance Measurement Application???

We spent a lot of time trying to find the correct answer and now we are completely out of time,  i.e. as usual - having an answer is more than urgent! Help!!!

Best Regards,

Sergey 

Parents
  • Hi Mark,

     

    First of all – thank you very much for the replay!

    It is such a tough time for me so any helping hand is welcome!

     

    Let me explain the situation.

    There is a prove of concept project for a device connected via BT to a smartphone.

    The device is full with sensors, incl. PPG, ECG, Bio-Imp, Accelerometer etc.

    I have to make the FW for this embedded platform, another colleague – to investigate the sensors and a third person has to make the smartphone application.

    I was almost ready with the initial version of the FW when it came to the Bio-Impedance sensor. First of all, I had to connect it to the system using the SPI bus. Thanks to the examples provided by Analog Devices I managed it relatively fast.

     

    The next problem was the measurement itself.

    Initially I was not aware that it is required to stream data on a certain rate > 20Hz because the purpose of the bio-impedance sensor in our case is to detect the deviations due to the blood flow (it has another scientific name but I do not know it by heart).

     

    I had to learn more about the ADuCM350, sequencer etc to tune the measuring sequence and here you can help me with an advice:

    In my implementation I use a part of the script from the AD demo doing only the current and voltage measurement, but recently I came upon example from Engineering Zone (for example, the one you mentioned below) and found that in this examples the sequence includes also the calibration steps (the gray area blow is more or less the part used to do repeating measurements in my code)

     

    /* Sequence for 4-Wire Bio-Impedance measurement, performs 2 DFTs:  */
    /*     TIA (Current) and AN_A (Voltage)                               */
    uint32_t seq_afe_acmeasBioZ_4wire[] = {
        0x001D001A,   /* Safety word: bits 31:16 = command count, bits 7:0 = CRC                */
        0x84005818,   /* AFE_FIFO_CFG: DATA_FIFO_SOURCE_SEL = 10                                */
        0x8A000034,   /* AFE_WG_CFG: TYPE_SEL = 10                                              */
        0x98000000,   /* AFE_WG_CFG: SINE_FCW = 0 (placeholder, user programmable)              */
        0x9E000000,   /* AFE_WG_AMPLITUDE: SINE_AMPLITUDE = 0 (placeholder, user programmable)  */
        0x88000F00,   /* DAC_CFG: DAC_ATTEN_EN = 0                                              */
        0xA0000002,   /* AFE_ADC_CFG: MUX_SEL = 00010, GAIN_OFFS_SEL = 00 */
        /* RCAL */
        0x86008811,   /* DMUX_STATE = 1, PMUX_STATE = 1, NMUX_STATE = 8, TMUX_STATE = 8 */
        0x00000640,   /* Wait 100us */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1 */
        0x00000C80,   /* Wait 200us */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1 */
        0x00032340,   /* Wait 13ms */
        0x80024EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0 */
        /* TIA  */
        0x86007788,   /* DMUX_STATE = 8, PMUX_STATE = 8, NMUX_STATE = 7, TMUX_STATE = 7         */
        0x00000640,   /* Wait 100us */
        //0x0080E800,   /* Wait 528ms.                                                            */
                      /* This is the worst case settling time:                                  */
                      /* Rcm=10M, Ciso=22nF(20%tol) => settling time = 2*RC = 528 ms            */
                      /* This settling time is only required the first time the switches are    */
                      /* closed.                                                                */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1                                                */
        0x00000C80,   /* Wait 200us                                                             */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1                                   */
        0x00032340,   /* Wait 13ms ( -148us to stop at midscale)                                */
        0x80020EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0                                   */
        /* AN_A */
        0xA0000208,   /* AFE_ADC_CFG: AN_A, Use GAIN and OFFSET AUX                             */
        0x00000640,   /* Wait 100us                                                             */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1                                                */
        0x00000C80,   /* Wait 200us                                                             */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1                                   */
        0x00032340,   /* Wait 13ms                                                              */
        0x80020EF0,   /* AFE_CFG: WAVEGEN_EN, ADC_CONV_EN = 0, DFT_EN = 0                       */
        0x86000000,   /* DMUX_STATE = 0, PMUX_STATE = 0, NMUX_STATE = 0, TMUX_STATE = 0         */
        0x82000002,   /* AFE_SEQ_CFG: SEQ_EN = 0                                                */
    };

     

    What would be your advice – repeat the whole sequence (including toggling of the AFE switch) or set the switch and keep toggling the ADC mux?

     

    Anyhow, investing more and more time in understanding bio-Impedance measurements and in using ADuCM350 in particular, I was able to go through the simulation testing steps using  resistors and capacitors. It was working perfectly and here we came to the next problem, described in question about using 2 or 4 wires and about their location.

     

    Observations:

     

    1) E1- left index finger, E4 – left thumb, E2 – right index, E3 – right thumb   - Magnitude was approx.. 2.5k  after >10sec

    2) E4- left index finger, E3 – left thumb, E1 – right index, E2 – right thumb   - Magnitude was approx.. 2.5k  after >10sec

    3) Nothing connected – 256 Ohm (????)

    4) All 4 electrodes touching the skin on wrist – 20 - 30 Ohm.

    5) Connect E1&E2 and E3&E4, and using 2 wires connect to 2 electrodes (paper clips) fixed to the wrist

     

    Unfortunately, we are most interested in the case #4

     

    What am I doing wrong?

    I am going to repeat the measurements with the EVAL board to be sure it is not HW implementation error but I do not have the 4 Wire Bio Board with the USB connector so I am not sur how to connect it to my wrist.

     

     

    Thank you for your help!

    Have a nice day

    Sergey

     

Reply
  • Hi Mark,

     

    First of all – thank you very much for the replay!

    It is such a tough time for me so any helping hand is welcome!

     

    Let me explain the situation.

    There is a prove of concept project for a device connected via BT to a smartphone.

    The device is full with sensors, incl. PPG, ECG, Bio-Imp, Accelerometer etc.

    I have to make the FW for this embedded platform, another colleague – to investigate the sensors and a third person has to make the smartphone application.

    I was almost ready with the initial version of the FW when it came to the Bio-Impedance sensor. First of all, I had to connect it to the system using the SPI bus. Thanks to the examples provided by Analog Devices I managed it relatively fast.

     

    The next problem was the measurement itself.

    Initially I was not aware that it is required to stream data on a certain rate > 20Hz because the purpose of the bio-impedance sensor in our case is to detect the deviations due to the blood flow (it has another scientific name but I do not know it by heart).

     

    I had to learn more about the ADuCM350, sequencer etc to tune the measuring sequence and here you can help me with an advice:

    In my implementation I use a part of the script from the AD demo doing only the current and voltage measurement, but recently I came upon example from Engineering Zone (for example, the one you mentioned below) and found that in this examples the sequence includes also the calibration steps (the gray area blow is more or less the part used to do repeating measurements in my code)

     

    /* Sequence for 4-Wire Bio-Impedance measurement, performs 2 DFTs:  */
    /*     TIA (Current) and AN_A (Voltage)                               */
    uint32_t seq_afe_acmeasBioZ_4wire[] = {
        0x001D001A,   /* Safety word: bits 31:16 = command count, bits 7:0 = CRC                */
        0x84005818,   /* AFE_FIFO_CFG: DATA_FIFO_SOURCE_SEL = 10                                */
        0x8A000034,   /* AFE_WG_CFG: TYPE_SEL = 10                                              */
        0x98000000,   /* AFE_WG_CFG: SINE_FCW = 0 (placeholder, user programmable)              */
        0x9E000000,   /* AFE_WG_AMPLITUDE: SINE_AMPLITUDE = 0 (placeholder, user programmable)  */
        0x88000F00,   /* DAC_CFG: DAC_ATTEN_EN = 0                                              */
        0xA0000002,   /* AFE_ADC_CFG: MUX_SEL = 00010, GAIN_OFFS_SEL = 00 */
        /* RCAL */
        0x86008811,   /* DMUX_STATE = 1, PMUX_STATE = 1, NMUX_STATE = 8, TMUX_STATE = 8 */
        0x00000640,   /* Wait 100us */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1 */
        0x00000C80,   /* Wait 200us */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1 */
        0x00032340,   /* Wait 13ms */
        0x80024EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0 */
        /* TIA  */
        0x86007788,   /* DMUX_STATE = 8, PMUX_STATE = 8, NMUX_STATE = 7, TMUX_STATE = 7         */
        0x00000640,   /* Wait 100us */
        //0x0080E800,   /* Wait 528ms.                                                            */
                      /* This is the worst case settling time:                                  */
                      /* Rcm=10M, Ciso=22nF(20%tol) => settling time = 2*RC = 528 ms            */
                      /* This settling time is only required the first time the switches are    */
                      /* closed.                                                                */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1                                                */
        0x00000C80,   /* Wait 200us                                                             */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1                                   */
        0x00032340,   /* Wait 13ms ( -148us to stop at midscale)                                */
        0x80020EF0,   /* AFE_CFG: ADC_CONV_EN = 0, DFT_EN = 0                                   */
        /* AN_A */
        0xA0000208,   /* AFE_ADC_CFG: AN_A, Use GAIN and OFFSET AUX                             */
        0x00000640,   /* Wait 100us                                                             */
        0x80024EF0,   /* AFE_CFG: WAVEGEN_EN = 1                                                */
        0x00000C80,   /* Wait 200us                                                             */
        0x8002CFF0,   /* AFE_CFG: ADC_CONV_EN = 1, DFT_EN = 1                                   */
        0x00032340,   /* Wait 13ms                                                              */
        0x80020EF0,   /* AFE_CFG: WAVEGEN_EN, ADC_CONV_EN = 0, DFT_EN = 0                       */
        0x86000000,   /* DMUX_STATE = 0, PMUX_STATE = 0, NMUX_STATE = 0, TMUX_STATE = 0         */
        0x82000002,   /* AFE_SEQ_CFG: SEQ_EN = 0                                                */
    };

     

    What would be your advice – repeat the whole sequence (including toggling of the AFE switch) or set the switch and keep toggling the ADC mux?

     

    Anyhow, investing more and more time in understanding bio-Impedance measurements and in using ADuCM350 in particular, I was able to go through the simulation testing steps using  resistors and capacitors. It was working perfectly and here we came to the next problem, described in question about using 2 or 4 wires and about their location.

     

    Observations:

     

    1) E1- left index finger, E4 – left thumb, E2 – right index, E3 – right thumb   - Magnitude was approx.. 2.5k  after >10sec

    2) E4- left index finger, E3 – left thumb, E1 – right index, E2 – right thumb   - Magnitude was approx.. 2.5k  after >10sec

    3) Nothing connected – 256 Ohm (????)

    4) All 4 electrodes touching the skin on wrist – 20 - 30 Ohm.

    5) Connect E1&E2 and E3&E4, and using 2 wires connect to 2 electrodes (paper clips) fixed to the wrist

     

    Unfortunately, we are most interested in the case #4

     

    What am I doing wrong?

    I am going to repeat the measurements with the EVAL board to be sure it is not HW implementation error but I do not have the 4 Wire Bio Board with the USB connector so I am not sur how to connect it to my wrist.

     

     

    Thank you for your help!

    Have a nice day

    Sergey

     

Children
No Data