Post Go back to editing

Maximum Sensitivity + Noise Mitigation for AD5940

Category: Hardware
Product Number: AD5940

Hello,

I am working in the current range of about 0 - 500 nA.

I am seeking a Limit of Detection of 10-20 nA upon making analyte additions using the Amperometric + AD5940main firmware.

Does anybody have any suggestions on how to achieve the maximum sensitivity with as little noise? As of now, I am using the max gain (512k) with rload of 3k6. I have enabled I believe notch filters in the Amperometric.c file but if someone can point to exactly where in the code that is that would be great verification that I did it correctly. I'm afraid a gain of 512k isn't sufficient and perhaps an external TIA will be needed assuming the current range is still regarded as 0.9V/RTIA. 

But if there is anything else I can do to improve the sensitivity of the AD5940 please let me know. 

Thanks! 

Parents
  • Hi,

    1Notch filter is configured inside AppAMPSeqCfgGen() function:

    static AD5940Err AppAMPSeqCfgGen(void)

    ................

    ................

    dsp_cfg.ADCFilterCfg.BpNotch = bFALSE;

    ......................

    memset(&dsp_cfg.StatCfg, 0, sizeof(dsp_cfg.StatCfg)); /* Don't care about Statistic */
    AD5940_DSPCfgS(&dsp_cfg);

    ....................

    }

    For increasing sensitivity:

    1) You may increase ADC PGA gain 

    .ADCPgaGain = ADCPGA_1P5


    * @brief ADC PGA Selection
    * @note Only gain 1.5 is factory calibrated.
    * @{
    */
    #define ADCPGA_1 0 /**< ADC PGA Gain of 1 */
    #define ADCPGA_1P5 1 /**< ADC PGA Gain of 1.5 */
    #define ADCPGA_2 2 /**< ADC PGA Gain of 2 */
    #define ADCPGA_4 3 /**< ADC PGA Gain of 4 */
    #define ADCPGA_9 4 /**< ADC PGA Gain of 9 */

    2) You may also set value of Rload  which is in series with sensing electrode input.

    pAMPCfg->LptiaRtiaSel = LPTIARTIA_1K;
    pAMPCfg->LpTiaRl = LPTIARLOAD_10R

    * @brief LPTIA Rload Selection
    * @{
    */
    #define LPTIARLOAD_SHORT 0 /**< 0Ohm Rload */
    #define LPTIARLOAD_10R 1 /**< 10Ohm Rload */
    #define LPTIARLOAD_30R 2 /**< Rload resistor 30Ohm */
    #define LPTIARLOAD_50R 3 /**< Rload resistor 50Ohm */
    #define LPTIARLOAD_100R 4 /**< Rload resistor 100Ohm */
    #define LPTIARLOAD_1K6 5 /**< Only available when RTIA setting >= 2KOHM */
    #define LPTIARLOAD_3K1 6 /**< Only available when RTIA setting >= 4KOHM */
    #define LPTIARLOAD_3K6 7 /**< Only available when RTIA setting >= 4KOHM */
    /** @} */

  • Hi - 

    I have already stated that I am using an LPTIARLOAD_3K6 or LPTIARLOAD_3K1. Using highest RLOAD is what makes the most sense to me when achieving maximum sensitivity but please correct me if I'm wrong.

    For the PGA gain - they make it clear in the comments that Only gain 1.5 is factory calibrated... is using other than 1.5 OK to use? I am using PGA gain 9 and the ADC seems to be ok.

    Is there anything else in this section of Amperometric.c file that's beneficial for the notch ? bolded is what I enabled to true ( you mentioned above). 

    Akila - do you recommend using an external TIA (1 mega or 2 megaohm) to achieve such a low sensitivity? Please advise. Such external gains need to be in parallel with a 100 nF external capacitor correct?

    dsp_cfg.ADCFilterCfg.BpSinc3 = bFALSE;
    dsp_cfg.ADCFilterCfg.BpNotch = bTRUE;
    dsp_cfg.ADCFilterCfg.Sinc2NotchEnable = bTRUE;

    memset(&dsp_cfg.StatCfg, 0, sizeof(dsp_cfg.StatCfg)); /* Don't care about Statistic */
    AD5940_DSPCfgS(&dsp_cfg);

    sw_cfg.Dswitch = 0;
    sw_cfg.Pswitch = 0;
    sw_cfg.Nswitch = 0;
    sw_cfg.Tswitch = 0;
    AD5940_SWMatrixCfgS(&sw_cfg);

    /* Enable all of them. They are automatically turned off during hibernate mode to save power */
    AD5940_AFECtrlS(AFECTRL_HPREFPWR|AFECTRL_SINC2NOTCH, bTRUE);
    AD5940_AFECtrlS(AFECTRL_SINC2NOTCH, bTRUE);
    AD5940_SEQGpioCtrlS(0/*AGPIO_Pin6|AGPIO_Pin5|AGPIO_Pin1*/); //GP6->endSeq, GP5 -> AD8233=OFF, GP1->

Reply
  • Hi - 

    I have already stated that I am using an LPTIARLOAD_3K6 or LPTIARLOAD_3K1. Using highest RLOAD is what makes the most sense to me when achieving maximum sensitivity but please correct me if I'm wrong.

    For the PGA gain - they make it clear in the comments that Only gain 1.5 is factory calibrated... is using other than 1.5 OK to use? I am using PGA gain 9 and the ADC seems to be ok.

    Is there anything else in this section of Amperometric.c file that's beneficial for the notch ? bolded is what I enabled to true ( you mentioned above). 

    Akila - do you recommend using an external TIA (1 mega or 2 megaohm) to achieve such a low sensitivity? Please advise. Such external gains need to be in parallel with a 100 nF external capacitor correct?

    dsp_cfg.ADCFilterCfg.BpSinc3 = bFALSE;
    dsp_cfg.ADCFilterCfg.BpNotch = bTRUE;
    dsp_cfg.ADCFilterCfg.Sinc2NotchEnable = bTRUE;

    memset(&dsp_cfg.StatCfg, 0, sizeof(dsp_cfg.StatCfg)); /* Don't care about Statistic */
    AD5940_DSPCfgS(&dsp_cfg);

    sw_cfg.Dswitch = 0;
    sw_cfg.Pswitch = 0;
    sw_cfg.Nswitch = 0;
    sw_cfg.Tswitch = 0;
    AD5940_SWMatrixCfgS(&sw_cfg);

    /* Enable all of them. They are automatically turned off during hibernate mode to save power */
    AD5940_AFECtrlS(AFECTRL_HPREFPWR|AFECTRL_SINC2NOTCH, bTRUE);
    AD5940_AFECtrlS(AFECTRL_SINC2NOTCH, bTRUE);
    AD5940_SEQGpioCtrlS(0/*AGPIO_Pin6|AGPIO_Pin5|AGPIO_Pin1*/); //GP6->endSeq, GP5 -> AD8233=OFF, GP1->

Children