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.

ADS1298ECG-FE

Other Parts Discussed in Thread: ADS1298, TMS320C5515, TMS320C5505, ADS1298R, TMS320VC5505, ADS1258

Hallo,

I have a question regarding the circuit diagram from the ADS1298 ECG FE. There is a Test circuit draw but not installed, in the sbau171.pdf on page 67. What was the reason for this Test circuit? Because I want to have a System to measure the ECG-Waveform with two electodes, one for left and one for the right arm, is it possible? If not, why?

I saw the system with the MSP430, but there is the resolution not enough.

It is possible to get a schematic from the MMB0 MODULAR EVM MOTHERBOARD REV C? It is also possible to get the firmware from the DSP5507 on the motherboard and from the ADS1298 at the FE?

It is possible to connect the ADS1298 FE with the a programmable motherbord TMS320C5505 or TMS320C5515? If yes, is it possible to use in addition the ADS1298ECG_FE Evaluation Software?

I thanks everybody for any information.

Best Regards,

Heinrich Reimer

  • Hi Heinrich,

    I believe Jaein Kim answered part of your question on the ADS1298.  The unpopulated circuitry was there as a test vehicle for developing the respiration circuitry in the ADS1298R version of the ADS1298.

    The schematic for the MMB0 can be found here:

    ftp://ftp.ti.com/pub/data_acquisition/ADCPro/Support/MMB0_Schematic.PDF

    The software that ships with the ADS1298ECG-FE hardware would not run directly on the TMS320VC5505 or the TMS320VC5515.  You can find some documentation and software that runs on those development boards here: http://code.google.com/p/c5505-ezdsp/ 

  • Hi Tom,

    Thank you very much for the links and informations.

    What do you mean with respiration circuitry?

    I have two options to measure the ECG-Signal. At first I have a TMS3205505 EVM with the ADS1258ECG-FE, but when I connect the boards with the PC and the Electrodes with the body, the application on the PC show nothing and the Display on the board show anything but not an ECG-Signal.

    The second option is the MMB0 Board with the ADS1298ECG-FE, I get very good signals but I haven´t the firmwares for the ADS1298 and the C5507.

    It is possible to get a programmable Board with the 1298ECG-FE and the 1298 PC Aplication Software?

    Regards,

    Heinrich Reimer

  • Hi Heinrich,

    Sorry for the delay here - both the TMX320C5505 and the  TMS320C5515 Evaluation Modules from Spectrum Digital appear to have a daughtercard interface which would support the ADS1298ECG-FE board.  There is an archive available here http://c5505-ezdsp.googlecode.com/files/ADS1298_ECGSystem_C5515EVM.zip that contains 'C' code (for the 5515) which should be closer to a true PC Application than the code associated with the MMB0 and ADS1298ECG-FE setup.  The MMB0 was not meant to be a development board, so there are no specific driver setups or SDK/CSL packages available for it.

  • H.R.

    I too have a TMS3205515 EVM with the ADS1258ECG-FE  (C5515 is very similar to C5505).  I think you will have trouble as I did if you try to run it with just two electrodes.  I was only able to get good signal when the RL (Right Leg) electrode was connected.  The RL electrode provides virtual ground and the circuit does not seem to function without it.  I think you should try using the RL, RA, LA, and LL leads all attached as well as putting V1 on the chest over the heart.  I was able to get good signal as well as seeing the heart rate displayed on the MDK PC Application.  You can get heart beats from the arms but the signal is probably not strong enough in the QRS wave to trigger the threshold in the EVM C5515 ECG software which is used in the heart rate calculation.  Once you have tried with this configuration (5 leads) you can experiment with different electrode positions but I think you will find that the MDK will not work without the RL electrode connected somewhere.  Also, the Vn electrode is output as (Vn - RA/3 - LA/3 - LL/3), so unless you have stable signals on RA, LA, and LL it seems likely that the Vn digital output will be unpredictable.

    If you don't get signals with the above configuration, try disconnecting the board, power cycle, and reconnect and reload the DSP software.   (We get 18 Warnings when we compile in CCSv4, if you get Errors, something is wrong.)  also, try loading the *.out file that came with the software (as opposed to the one you built with CCS).       If that works and yours doesn't, hmmm... we'll we've run into that too, and I think we solved it by re-installing everything from scratch.                                                              

    Other items of interest possibly:  We found that the the default notch filter was set to 50Hz in the ECG MDK DSP software.  We had a lot of what looked like 60Hz noise.  When I switched to the 60Hz notch filter (one line of code in a header file) we had better results, but still not satisfactory.  Further analysis revealed that the notch filter that came with the software had a notch at 62Hz (52 for the other filter) instead of at 60.  We recomputed the notch filter coefficients with the notch at 60 Hz and the result was a striking reduction in the 60Hz noise.

    Other suggestions (if you get this far): Make sure the electrodes are securely attached to the body and avoid disturbing them with either pressure or body movement as this will cause wild swings in the signals.  Movement of the electrode cables will also generate large interference signals, so hold them steady and don't let them "dangle" in the air.  Also avoid touching the board components (or any other metallic objects that might alter your electrical state, like your computer, refrigerator or bathroom plumbing) while connected to the electrodes because it can generate large interference signals.  If your signals go "off the chart" wait a while (10 to 20 seconds) and the DC filter should bring them back into range eventually. 

    That about sums up our experience with the C5515 EVM / ADS1258 ECG MDK combo to date.   Let me know if this helps any.  Currently I'm trying to work with the ADS 1282 / MMB0 combo and having trouble getting a connection.  Let me know if you have any suggestions.

  • Hi Eric,

    Thank you very much for your help!

    I get a new C5505 Board and now I get Signals. You are right, I get only good signals with the RL-electrode. Ok I understand, I need the RL-elektrode for a virtual ground, but I don´t understand why I have to connect the LL-electrode? I want to have only the Lead I (LA-RA) result.

    You write that the notch filter was set to 52Hz and not to 50Hz. Can you help me, how I can set the notch filter to 50Hz?

    Your Information are very good!

    Regards,

    Heinrich Reimer

  • Heinrich,

    Good to hear you are having some success.  I think you are right, in theory you should be able to see Lead I (LA-RA) without connecting LL (or V1, V2, V3, ....V6).  Give it a try, but I suggest taking all the other leads and coiling them up securely with a rubber band or tape to keep them from moving around or interfering electrically with the leads you are connecting.  I'm not an electrical engineer, so I'm not sure about the possible impact of disconnected leads on the hardware, so by all means try the LA, RA, RL combination and see if it works for you.

    For the 60Hz filter  (we use 60Hz in U.S.) I built one from scratch using Matlab FFT and IFFT and a little vector manipulation.  Matlab also has some filter design software but I don't have details on that. 

    In ECG_Globals.h there is a #define NOTCHFILTERSEL item.  setting the value of this to 1 selects the "60Hz" filter.  A value of zero is supposed to give you the "50Hz" filter, but as I discovered, the notch is at 52 instead of 50.

    In ECG_Filter_Co-efficients.c there is an array of 351 filter coefficients called CoeffBuf.  If you replace these coefficients with your own you will have replaced the notch filter used by the ECG software.  The actual filter logic is in ECG_SystemFunctions.c in a function called ECG_FilterProcess().  It essentially does a dot product of the coefficient vector (CoeffBuf) with the last 351 samples of the signal.  Then it  shifts right 15 bits to normalize the result.  (The sum of the filter coefficients is 2 to the 15th power).  If you plot the coefficients in Matlab and take the FFT of the coefficients and plot the result you can see the notch at 52 (assuming the plot axes are scaled properly).  The next step is to move the notch over a tad and then take the inverse FFT (IFFT) and you are almost home...  If you like I can generate the coefficients and send them to you.  The current filter I have is low pass filter (35Hz and below), but I could generate a 50Hz notch if it helps and send you the modified ECG_Filter_Coefficients.c file. 

    Well, gotta run, but let me know if I can help further. 

    Eric H.

  • Hello Eric,

    thank you for your graet help!

    Yes I need a 50Hz notch filter, because I´m from germany, that is also the reason for my bad English =).

    If you can genarete the coefficients and send me, I was very happy! Because I don´t understand, how I have to generate the coefficients.

    I tried to connect only the LA, RA and RL, but I get not the right result, only when I connect all four electrodes (LL, RL, LA, RA) I get a signal for Lead I. Now I not understand why, but I want to look in the code to get the reason. If anybody know the reason, I was happy to get the Information.

    Regards

    Heinrich Reimer

  • /*****************************************************************************
     * File Name : ECG_Filter_Co-efficients.c
     *
     * Description : The file contains the coefficients for Multi  band FIR LPF 
     * 			  used for filtering the DC Removed samples
     *
     * Modified:  12/26/2010 - Eric Hoffman added filter coefficients for revised 50Hz filter
     * 			 
     * Copyright (C) 2009 -2010 Texas Instruments Incorporated - http://www.ti.com/ 
     * 
     * 
     *  Redistribution and use in source and binary forms, with or without 
     *  modification, are permitted provided that the following conditions 
     *  are met:
     *
     *    Redistributions of source code must retain the above copyright 
     *    notice, this list of conditions and the following disclaimer.
     *
     *    Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the 
     *    documentation and/or other materials provided with the   
     *    distribution.
     *
     *    Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
     *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
     *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
     *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
     *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     *
    ******************************************************************************/
    
    
    #include "ECGGlobals.h"
    #include "tistdtypes.h"
    
    #define SPS 500
    #define UseHeinrichs50Hz
    //#define UseEricsLowPassFilter
    
    #pragma DATA_SECTION(Coeffbuf,".Coeff");
    /*   Q15 Multiplication Format  */
    #if (SPS == 500)		// SPS = 500
    #ifdef EricsLowPassFilter
    /* define Erics Lowpass filter coeffs (<35Hz is passed)*/
    Int16 CoeffBuf[FILTERORDER] =   {0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,	
    	1,
    	1,
    	1,
    	1,
    	0,
    	0,
    	-1,
    	-2,
    	-2,
    	-2,
    	-1,
    	0,
    	2,
    	3,
    	3,
    	3,
    	1,
    	0,
    	-2,
    	-3,
    	-4,
    	-3,
    	-2,
    	0,
    	2,
    	3,
    	4,
    	3,
    	2,
    	0,
    	-1,
    	-3,
    	-3,
    	-2,
    	-1,
    	0,
    	1,
    	1,
    	1,
    	0,
    	0,
    	0,
    	0,
    	1,
    	3,
    	3,
    	3,
    	2,
    	-1,
    	-4,
    	-7,
    	-8,
    	-7,
    	-4,
    	1,
    	7,
    	12,
    	14,
    	13,
    	7,
    	0,
    	-9,
    	-16,
    	-20,
    	-18,
    	-11,
    	-1,
    	10,
    	19,
    	24,
    	22,
    	15,
    	3,
    	-9,
    	-19,
    	-24,
    	-23,
    	-16,
    	-5,
    	7,
    	16,
    	20,
    	19,
    	13,
    	5,
    	-3,
    	-8,
    	-9,
    	-6,
    	-2,
    	0,
    	-1,
    	-5,
    	-12,
    	-18,
    	-19,
    	-13,
    	2,
    	22,
    	43,
    	57,
    	56,
    	38,
    	2,
    	-43,
    	-87,
    	-114,
    	-114,
    	-81,
    	-16,
    	66,
    	145,
    	198,
    	204,
    	152,
    	48,
    	-89,
    	-224,
    	-320,
    	-343,
    	-272,
    	-111,
    	109,
    	339,
    	515,
    	578,
    	489,
    	243,
    	-126,
    	-541,
    	-898,
    	-1086,
    	-1006,
    	-599,
    	136,
    	1141,
    	2299,
    	3452,	
    	4432,
    	5090,
    	5321,
    	5090,
    	4432,
    	3452,
    	2299,
    	1141,
    	136,
    	-599,
    	-1006,
    	-1086,
    	-898,
    	-541,
    	-126,
    	243,
    	489,
    	578,
    	515,
    	339,
    	109,
    	-111,
    	-272,
    	-343,
    	-320,
    	-224,
    	-89,
    	48,
    	152,
    	204,
    	198,
    	145,
    	66,
    	-16,
    	-81,
    	-114,
    	-114,
    	-87,
    	-43,
    	2,
    	38,
    	56,
    	57,
    	43,
    	22,
    	2,
    	-13,
    	-19,
    	-18,
    	-12,
    	-5,
    	-1,
    	0,
    	-2,
    	-6,
    	-9,
    	-8,
    	-3,
    	5,
    	13,
    	19,
    	20,
    	16,
    	7,
    	-5,
    	-16,
    	-23,
    	-24,
    	-19,
    	-9,
    	3,
    	15,
    	22,
    	24,
    	19,
    	10,
    	-1,
    	-11,
    	-18,
    	-20,
    	-16,
    	-9,
    	0,
    	7,
    	13,
    	14,
    	12,
    	7,
    	1,
    	-4,
    	-7,
    	-8,
    	-7,
    	-4,
    	-1,
    	2,
    	3,
    	3,
    	3,
    	1,
    	0,
    	0,
    	0,
    	0,
    	1,
    	1,
    	1,
    	0,
    	-1,
    	-2,
    	-3,
    	-3,
    	-1,
    	0,
    	2,
    	3,
    	4,
    	3,
    	2,
    	0,
    	-2,
    	-3,
    	-4,
    	-3,
    	-2,
    	0,
    	1,
    	3,
    	3,
    	3,
    	2,
    	0,
    	-1,
    	-2,
    	-2,
    	-2,
    	-1,
    	0,
    	0,
    	1,
    	1,
    	1,
    	1,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0,
    	0}; // Eric's Coefficients
    #else
    /* not using Erics filter */
    #if NOTCHFILTERSEL
    /* Coeff for TI's Notch @ 60Hz for 500SPS/60Hz Notch coeff13102008*/
    Int16 CoeffBuf[FILTERORDER] = {             2,
        12,
         5,
         1,
         2,
        -7,
       -13,
        -1,
         5,
         3,
         9,
        11,
        -6,
       -13,
        -5,
        -6,
        -4,
        14,
        16,
         1,
        -3,
        -4,
       -19,
       -14,
        11,
        13,
         8,
        16,
         3,
       -25,
       -20,
        -3,
        -4,
        11,
        35,
        16,
       -15,
       -12,
       -19,
       -32,
         2,
        38,
        22,
        13,
        15,
       -26,
       -54,
       -15,
        12,
        10,
        42,
        52,
       -13,
       -46,
       -25,
       -36,
       -26,
        51,
        71,
        15,
         4,
       -11,
       -79,
       -67,
        26,
        43,
        35,
        76,
        30,
       -83,
       -76,
       -24,
       -36,
        24,
       126,
        70,
       -30,
       -24,
       -63,
      -127,
       -18,
       107,
        67,
        54,
        78,
       -58,
      -167,
       -59,
        11,
        -3,
       117,
       173,
       -10,
      -107,
       -52,
      -116,
      -115,
       113,
       183,
        43,
        45,
        21,
      -197,
      -193,
        43,
        67,
        50,
       210,
       123,
      -174,
      -157,
       -44,
      -137,
        -7,
       286,
       168,
       -55,
        16,
       -87,
      -317,
       -82,
       211,
        83,
        92,
       249,
       -63,
      -350,
       -90,
        12,
      -123,
       187,
       401,
       -17,
      -185,
        22,
      -216,
      -342,
       198,
       343,
       -26,
       124,
       218,
      -368,
      -409,
       165,
        45,
      -123,
       445,
       355,
      -402,
      -199,
       151,
      -405,
      -234,
       656,
       250,
      -352,
       304,
       155,
      -862,
      -163,
       720,
      -269,
      -248,
      1063,
       -16,
     -1289,
       502,
       696,
     -1638,
       190,
      2737,
     -1859,
     -3066,
      9726,
     19385,
      9726,
     -3066,
     -1859,
      2737,
       190,
     -1638,
       696,
       502,
     -1289,
       -16,
      1063,
      -248,
      -269,
       720,
      -163,
      -862,
       155,
       304,
      -352,
       250,
       656,
      -234,
      -405,
       151,
      -199,
      -402,
       355,
       445,
      -123,
        45,
       165,
      -409,
      -368,
       218,
       124,
       -26,
       343,
       198,
      -342,
      -216,
        22,
      -185,
       -17,
       401,
       187,
      -123,
        12,
       -90,
      -350,
       -63,
       249,
        92,
        83,
       211,
       -82,
      -317,
       -87,
        16,
       -55,
       168,
       286,
        -7,
      -137,
       -44,
      -157,
      -174,
       123,
       210,
        50,
        67,
        43,
      -193,
      -197,
        21,
        45,
        43,
       183,
       113,
      -115,
      -116,
       -52,
      -107,
       -10,
       173,
       117,
        -3,
        11,
       -59,
      -167,
       -58,
        78,
        54,
        67,
       107,
       -18,
      -127,
       -63,
       -24,
       -30,
        70,
       126,
        24,
       -36,
       -24,
       -76,
       -83,
        30,
        76,
        35,
        43,
        26,
       -67,
       -79,
       -11,
         4,
        15,
        71,
        51,
       -26,
       -36,
       -25,
       -46,
       -13,
        52,
        42,
        10,
        12,
       -15,
       -54,
       -26,
        15,
        13,
        22,
        38,
         2,
       -32,
       -19,
       -12,
       -15,
        16,
        35,
        11,
        -4,
        -3,
       -20,
       -25,
         3,
        16,
         8,
        13,
        11,
       -14,
       -19,
        -4,
        -3,
         1,
        16,
        14,
        -4,
        -6,
        -5,
       -13,
        -6,
        11,
         9,
         3,
         5,
        -1,
       -13,
        -7,
         2,
         1,
         5,
        12,
         2
     };	//coeff
    
    #else
    #ifdef UseHeinrichs50Hz
    // Coeffs for Heinrichs 50 Hz notch @ 500SPS
    Int16 CoeffBuf[FILTERORDERR] = {3,0,-3,-6,-6,-4,0,4,6,6,4,1,-4,-8,-8,-5,0,5,9,10,7,1,-6,-11,-12,-9,-2,6,13,16,11,2,-9,-16,-18,-14,-5,8,20,25,18,3,-12,-
    
    22,-26,-22,-9,10,29,37,28,7,-16,-31,-37,-33,-15,13,39,51,40,13,-18,-42,-54,-47,-22,16,50,66,56,24,-18,-56,-75,-65,-
    
    29,20,61,81,75,41,-14,-72,-102,-87,-36,24,70,95,96,63,-7,-88,-132,-111,-45,26,77,110,120,88,1,-103,-160,-137,-
    
    58,24,85,128,146,109,8,-112,-180,-162,-84,11,97,158,173,118,7,-108,-179,-186,-129,-17,117,209,199,102,-8,-84,-145,-206,-
    
    207,-71,156,294,224,44,-51,-29,-56,-222,-339,-162,229,440,245,-91,-142,85,131,-234,-581,-330,383,732,260,-422,-
    
    367,358,618,-241,-1235,-810,924,1827,268,-2245,-1966,2965,9709,12864,9709,2965,-1966,-2245,268,1827,924,-810,-1235,-
    
    241,618,358,-367,-422,260,732,383,-330,-581,-234,131,85,-142,-91,245,440,229,-162,-339,-222,-56,-29,-51,44,224,294,156,-
    
    71,-207,-206,-145,-84,-8,102,199,209,117,-17,-129,-186,-179,-108,7,118,173,158,97,11,-84,-162,-180,-
    
    112,8,109,146,128,85,24,-58,-137,-160,-103,1,88,120,110,77,26,-45,-111,-132,-88,-7,63,96,95,70,24,-36,-87,-102,-72,-
    
    14,41,75,81,61,20,-29,-65,-75,-56,-18,24,56,66,50,16,-22,-47,-54,-42,-18,13,40,51,39,13,-15,-33,-37,-31,-
    
    16,7,28,37,29,10,-9,-22,-26,-22,-12,3,18,25,20,8,-5,-14,-18,-16,-9,2,11,16,13,6,-2,-9,-12,-11,-6,1,7,10,9,5,0,-5,-8,-8,-
    
    4,1,4,6,6,4,0,-4,-6,-6,-3,0,3};// 50Hz Notch Filter
    #else
    /* TI's Coeff for Notch @ 50Hz @ 500 SPS*/
    Int16 CoeffBuf[FILTERORDER] = {                -2,
        -2,
       -11,
        -9,
         3,
         4,
         3,
        12,
         9,
        -4,
        -5,
        -4,
       -13,
       -10,
         6,
         7,
         5,
        15,
        10,
        -9,
       -10,
        -7,
       -17,
       -10,
        13,
        13,
         9,
        20,
        10,
       -17,
       -18,
       -11,
       -22,
        -9,
        24,
        23,
        12,
        24,
         8,
       -31,
       -29,
       -14,
       -25,
        -5,
        41,
        35,
        14,
        26,
         1,
       -52,
       -42,
       -14,
       -25,
         4,
        65,
        49,
        12,
        23,
       -11,
       -79,
       -56,
        -8,
       -19,
        19,
        94,
        62,
         2,
        13,
       -28,
      -110,
       -67,
         7,
        -6,
        39,
       127,
        70,
       -19,
        -4,
       -50,
      -144,
       -71,
        35,
        15,
        62,
       160,
        69,
       -55,
       -28,
       -72,
      -175,
       -65,
        78,
        42,
        82,
       188,
        56,
      -105,
       -56,
       -90,
      -200,
       -45,
       136,
        70,
        95,
       209,
        29,
      -171,
       -82,
       -96,
      -216,
       -11,
       208,
        93,
        93,
       221,
       -11,
      -249,
      -100,
       -85,
      -224,
        36,
       292,
       102,
        70,
       226,
       -63,
      -338,
      -100,
       -49,
      -229,
        91,
       386,
        90,
        20,
       233,
      -119,
      -438,
       -71,
        18,
      -241,
       148,
       495,
        42,
       -66,
       259,
      -175,
      -561,
         0,
       128,
      -293,
       199,
       644,
       -63,
      -210,
       356,
      -221,
      -759,
       157,
       324,
      -477,
       238,
       946,
      -312,
      -509,
       734,
      -252,
     -1336,
       635,
       909,
     -1464,
       260,
      2705,
     -1944,
     -3135,
      9717,
     19411,
      9717,
     -3135,
     -1944,
      2705,
       260,
     -1464,
       909,
       635,
     -1336,
      -252,
       734,
      -509,
      -312,
       946,
       238,
      -477,
       324,
       157,
      -759,
      -221,
       356,
      -210,
       -63,
       644,
       199,
      -293,
       128,
         0,
      -561,
      -175,
       259,
       -66,
        42,
       495,
       148,
      -241,
        18,
       -71,
      -438,
      -119,
       233,
        20,
        90,
       386,
        91,
      -229,
       -49,
      -100,
      -338,
       -63,
       226,
        70,
       102,
       292,
        36,
      -224,
       -85,
      -100,
      -249,
       -11,
       221,
        93,
        93,
       208,
       -11,
      -216,
       -96,
       -82,
      -171,
        29,
       209,
        95,
        70,
       136,
       -45,
      -200,
       -90,
       -56,
      -105,
        56,
       188,
        82,
        42,
        78,
       -65,
      -175,
       -72,
       -28,
       -55,
        69,
       160,
        62,
        15,
        35,
       -71,
      -144,
       -50,
        -4,
       -19,
        70,
       127,
        39,
        -6,
         7,
       -67,
      -110,
       -28,
        13,
         2,
        62,
        94,
        19,
       -19,
        -8,
       -56,
       -79,
       -11,
        23,
        12,
        49,
        65,
         4,
       -25,
       -14,
       -42,
       -52,
         1,
        26,
        14,
        35,
        41,
        -5,
       -25,
       -14,
       -29,
       -31,
         8,
        24,
        12,
        23,
        24,
        -9,
       -22,
       -11,
       -18,
       -17,
        10,
        20,
         9,
        13,
        13,
       -10,
       -17,
        -7,
       -10,
        -9,
        10,
        15,
         5,
         7,
         6,
       -10,
       -13,
        -4,
        -5,
        -4,
         9,
        12,
         3,
         4,
         3,
        -9,
       -11,
        -2,
        -2
    
    };	//coeff
    #endif    // end use Heinrich else TI 50Hz
    #endif    // end use 60 Hz else use 50 Hz
    #endif    // end use Erics Lowpass else use notch filter
    #endif    // end if 500 sps
    
    
    Hello Heinrich,

    Heinrich, Happy Holidays! Sorry for the delay, the last few days have kept me away from the computer.  

     About the four electrode issue, if you find the reason let me know.  I am not sure whether it is in the software or in the design of the EVM  hardware.  I suppose it is possible that there is cross talk between the leads and if one of them is disconnected it could generate a large signal which somehow bleeds into the other channels and overpowers them with noise.  Just a theory without any proof.

    Anyway, back to territory where I am more competent... regarding the 50 Hz notch filter coefficients.  I have some coefficients for you to try out.  I will paste them here (below) and you can put them into your ECG_Filter_Co-efficients.c file, rebuild the project, reload the target with the new .out file and try it out.  (I have not tested these but I did do a compile and it compiled clean). 

    Also, in case it is more convenient for you, I will try to attach the coefficient .c file to this reply with the new coefficients already in place so you will not have to do any editing of files.  You can just download it into your project to replace the existing ECG_Filter_Co-efficients.c file.  Theattached  new one includes a #define UseHeinrichs50Hz line which you can comment out if you want to switch back to the original TI coefficients.  Make sure your NOTCHFILTERSEL variable in the ECGGlobals.h is set for the 50Hz filter  (you should see #define NOTCHFILTERSEL 0 in the .h file).  You will have to take the .txt off the file name.  I included it because the TI website would not upload it with only the .c on the end, so I added .txt to be able to upload it to this reply.

    Good luck and let me know how it works.  (One more thought before I sign off... if the signal you are looking for has very low frequency components, you may need to tune the DC filter somewhat as it could be partially filtering out your low frequency signals.  By "low" here I am refering to fractions of 1 Hertz..  Tuning the DC filter involves adjusting a single coefficient up or down.).

    Eric Hoffman

    Int16 CoeffBuf[FILTERORDERR] = {3,0,-3,-6,-6,-4,0,4,6,6,4,1,-4,-8,-8,-5,0,5,9,10,7,1,-6,-11,-12,-9,-2,6,13,16,11,2,-9,-16,-18,-14,-5,8,20,25,18,3,-12,

    -22,-26,-22,-9,10,29,37,28,7,-16,-31,-37,-33,-15,13,39,51,40,13,-18,-42,-54,-47,-22,16,50,66,56,24,-18,-56,-75,-65,-29,

    20,61,81,75,41,-14,-72,-102,-87,-36,24,70,95,96,63,-7,-88,-132,-111,-45,26,77,110,120,88,1,-103,-160,-137,-58,

    24,85,128,146,109,8,-112,-180,-162,-84,11,97,158,173,118,7,-108,-179,-186,-129,-17,117,209,199,102,-8,-84,-145,-206,-207,-71,

    156,294,224,44,-51,-29,-56,-222,-339,-162,229,440,245,-91,-142,85,131,-234,-581,-330,383,732,260,-422,

    -367,358,618,-241,-1235,-810,924,1827,268,-2245,-1966,2965,9709,12864,9709,2965,-1966,-2245,268,1827,924,-810,-1235,

    -241,618,358,-367,-422,260,732,383,-330,-581,-234,131,85,-142,-91,245,440,229,-162,-339,-222,-56,-29,-51,44,224,294,156,

    -71,-207,-206,-145,-84,-8,102,199,209,117,-17,-129,-186,-179,-108,7,118,173,158,97,11,-84,-162,-180,-

    112,8,109,146,128,85,24,-58,-137,-160,-103,1,88,120,110,77,26,-45,-111,-132,-88,-7,63,96,95,70,24,-36,-87,-102,-72,-14,

    41,75,81,61,20,-29,-65,-75,-56,-18,24,56,66,50,16,-22,-47,-54,-42,-18,13,40,51,39,13,-15,-33,-37,-31,-16,7,28,37,29,10,-9,-22,-26,-22,-12,

    3,18,25,20,8,-5,-14,-18,-16,-9,2,11,16,13,6,-2,-9,-12,-11,-6,1,7,10,9,5,0,-5,-8,-8,-4,

    1,4,6,6,4,0,-4,-6,-6,-3,0,3};// 50Hz Notch Filter 

  • Hello Eric,

    Thank you very much for your coefficients! It is very nice from you!

    I have test it, and it is really better!

    Now I work with the TMS320C5515 and the ADS1298-FE, I think it is a very good combination of the boards, I get good signals with this combination and your filter.

    Thank you very much!

    Best Regards

    Heinrich Reimer