Post Go back to editing

AD5941 Potentiometry Basic Example and OCP Basic Example

Category: Software
Product Number: AD5940/41
Software Version: AD5940/41 API and Application Examples

Hello,

I had the following question.

In the Application Examples of AD5940/41 Git you can find a Basic Application Example for Amperometry, Cyclic Amperometry, Voltammetry and Cyclic Voltammetry.

But I couldn't find an Application Example for Potentiometry or/and Open Circuit Potential.

Is there any of the application examples of AD5940/41 or ADUCM355 which could be taken as a basis for a Pententiometric Measurement Application or/and an Open Circuit Potential measurement ?

The only thread which goes into the direction of this topic is this one:

https://ez.analog.com/data_converters/precision_adcs/f/q-a/542089/ad5940-open-circuit-potentiometry

But I dont fully get it.

Can anyone provide a guidance which one of the application examples would the best one to start to implement a Potentiometric or/and Open Circuit measurement ?

Many Greetings

Parents
  • As a last information, which could help: I use a standard electrochemical electrode configuration with an Working-Electrode attached to SE0, a Reference-Electrode attached to RE0 and a Counter-Electrode attached to CE0.

  • Hi,

    These switch configurations (2) and (3) are done for generating excitation output and doing current measurement. 

    2) SW switch configuration for excitation output at CE0, sensing at SE0 and reference feedback at RE0, is as below:

    If LPTIA is used for current measurement: 

    if(AppAMPCfg.ExtRtia == bTRUE)
    {
    lp_loop.LpAmpCfg.LpTiaRtia = LPTIARTIA_OPEN;
    lp_loop.LpAmpCfg.LpTiaSW = LPTIASW(9)|LPTIASW(2)|LPTIASW(4)|LPTIASW(5)|LPTIASW(12)|LPTIASW(13);
    }else
    {
    lp_loop.LpAmpCfg.LpTiaRtia = AppAMPCfg.LptiaRtiaSel;
    lp_loop.LpAmpCfg.LpTiaSW = LPTIASW(5)|LPTIASW(2)|LPTIASW(4)|LPTIASW(12)|LPTIASW(13);
    }

    If HSTIA is used for current measurement:

    if(AppSWVCfg.LPTIARtiaSel == LPTIARTIA_OPEN) /* User want to use external RTIA */
    lploop_cfg.LpAmpCfg.LpTiaSW = LPTIASW(13)|LPTIASW(2)|LPTIASW(4)|LPTIASW(5)|LPTIASW(9)/*|LPTIASW(10)*/; /* SW5/9 is closed to support external RTIA resistor */
    else
    lploop_cfg.LpAmpCfg.LpTiaSW = LPTIASW(13)|LPTIASW(2)|LPTIASW(4);

    HsLoopCfg.SWMatCfg.Dswitch = SWD_OPEN;
    HsLoopCfg.SWMatCfg.Pswitch = SWP_OPEN;
    HsLoopCfg.SWMatCfg.Nswitch = SWN_OPEN;
    HsLoopCfg.SWMatCfg.Tswitch = SWT_TRTIA|SWT_SE0LOAD;

    _________________________________________________________________________________________________________________________________________________

    3) LPDAC switch configuration :

    if LPTIA is used for current measurement:

    LpDacCfg.LpDacSW = LPDACSW_VBIAS2LPPA|LPDACSW_VBIAS2PIN|LPDACSW_VZERO2LPTIA|LPDACSW_VZERO2PIN;

    If HSTIA is used for current measurement:

    LpDacCfg.LpDacSW = LPDACSW_VBIAS2LPPA|LPDACSW_VBIAS2PIN|LPDACSW_VZERO2LPTIA|LPDACSW_VZERO2PIN|LPDACSW_VZERO2HSTIA;

    _________________________________________________________________________________________________________________________________________________

    ADC configuration for current measurement:-

    If LPTIA is used :

    - without low pass filtering:

        AD5940_ADCMuxCfgS(ADCMUXP_LPTIA0_P, ADCMUXN_LPTIA0_N);

    - with low pass filtering:

        AD5940_ADCMuxCfgS(ADCMUXP_AIN4, ADCMUXN_LPTIA0_N);

    If HSTIA is used:

       AD5940_ADCMuxCfgS(ADCMUXP_HSTIA_P, ADCMUXP_HSTIA_N);

    ADC configuration for OCP measurement:-

      AD5940_ADCMuxCfgS (ADCMUXP_VSE0 ,ADCMUXN_VZERO0); // for measurement of SE0 w.r.t. VZERO0

      AD5940_ADCMuxCfgS (ADCMUXP_VRE0 ,ADCMUXN_VZERO0); // for measurement of SE0 w.r.t. VZERO0

  • Hello Akila, thx for your detailed reply,

    If I'm getting things right, you the switch configurations you postesd are similar to the Configurations in the Code of the Amperometric and Chronoamperometric example.

    Im just a bit confused that your suggestion of ADCMUX-Switches config differs from that examples:

    Amperometric-Example on gitHub (with LP): 

    AD5940_ADCMuxCfgS (ADCMUXP_AIN4, ADCMUXN_VZERO0);

    Chrono-Amperometric-Example on gitHub (with LP): 

    AD5940_ADCMuxCfgS (ADCMUXP_LPTIA0_P, ADCMUXN_LPTIA0_N);

    The configuration in your post (with LP):

    AD5940_ADCMuxCfgS (ADCMUXP_AIN4, ADCMUXN_LPTIA0_N);

    Can you explain, what exactly is the difference between using ADCMUXN_VZERO0 and  ADCMUXN_LPTIA0_N for the ADCMUX_N_Input ?

    Also I'm wondering if it wouldn't be better to change the LPTIA-Switch configuration (LPTIASW(2) | LPTIASW(4) | LPTIASW(5) | LPTIASW(12) | LPTIASW(13)) of Amperometric Example, you suggested, slightly for Potentiometric measurement.

    For example wouldnt it be better to open LPTIASW(2) to prevent that a voltage output from the LPDAC (even if its output is 0) gets applied to the circuit while measuring OCP ?

    Many Greetings

    Laura

  • Hi,

     1)  ADCMUXN_LPTIA0_N refers to -ve input terminal of LPTIA. 

    As shown in above diagram, if LPTIA0 +VE input is connected to Vzero, 

    then,

    voltage at ADCMUXN_LPTIA0_N = voltage at ADCMUXN_VZERO0.

    Hence both can be used interchangeably here.

    2) Yes. Opening SW2 removes excitation output.

  • Hello Akila, thx for your reply.

    I've found one single example for OCP-Measurement with AD5940/41 on Github.

    (It's from a project called IMTEK-Freistat)

    In this project they choose the following configuration for measuring OCP:

    // They only close Switch 4 and 8 of the LPTIA-Circuit and leave all other switches open:
    LpAmpCfg.LpTiaSW = LPTIASW(8) | LPTIASW(4);
    
    // They set the Rtia and Rload value of the LPTIA-Circuit as follows and give the hint "Set Rtia and RtiaLoad to make inverting amplifier":
    LpAmpCfg.LpTiaRload = LPTIARLOAD_3K6;
    LpAmpCfg.LpTiaRtia = LPTIARTIA_8K;
    
    // They keep all switches from the LPDAC-Circuit open:
    LpDacCfg.LpDacSW= 0;
    
    // They set the two Inputs of the ADC to the positive and negative Input of the LPTIA simultaneously:
    ADCBaseCfg.ADCMuxN = ADCMUXN_LPTIA0_N;
    ADCBaseCfg.ADCMuxP = ADCMUXP_LPTIA0_P;

    Then they simply keep measuring the ADC-Output (without alternating between inputs) and take it as OCP-Value.

    If I'm getting things right, with the choosed values for the resistors, they create an inverting amplifier with a Gain of [ -(Rtia/Rload) = -(8k/3.6k) = 2.5 ] but i don't know in which way this is important because i thought you have to choose the Rtia-Value according to your desired current range and only choose a value for Rload-Value if the attached sensor does need this Rload and otherwise keep Rload at 0. Also I thought the Rtia is always an inverting amplifier independent of the attached resistor values. Also usually the positive Input of an Inverting ampliefier is tied to ground, but with this switch configuration its more like floating/undefined. So this is very confusing to me.

    This method seems very confusing to me, can it work ?

    If yes why ?

    Many Greetings

    Laura

  • Hi,

    LpAmpCfg.LpTiaSW = LPTIASW(8) | LPTIASW(4); 

    means,

    - SW6 connects -ve input of PA to +ve input of LPTIA

    - SW7 connects -ve input of LPTIA to SE0 via RLoad

    - All other switches are left open.

    Hence by this configuration,

    - CE0 is shorted to RE0.

    - By the transfer function of a -ve feedback amplifier:

            

    Rf = RTIA

    Rg = Rload

    Vin = VCE0 

    SE0 is assumed shorted to GND.

    Hence open circuit potential across CE0 and SE0  = VCE0 = Vin = Vout * (-Rload/Rtia)

  • Hi Laura, just following up on this discussion. Were you able to put together a script to measure OCP using the AD5940/ADUCM355? I'm trying to do the same thing with the eval board of the ADUCM355, it would be really helpful if you could share it. 

    Thank you!

  • Hi 

    Thank you very much for your helpful replies and your kind attention.

    I have followed all your answers regarding this Potentiometry/OCP topic. However, If the normal configuration for the switches is as depicted in Figure 23 of Page 38, as Laura shown:

    I don't really get why

    - SW6 connects -ve input of PA to +ve input of LPTIA

    as in the figure SW6 is shorting towards the LPDAC output rail instead, nor

    - CE0 is shorted to RE0.

    since neither SW2 nor SW10 are closed, for instance.

    Thank you very much!

Reply
  • Hi 

    Thank you very much for your helpful replies and your kind attention.

    I have followed all your answers regarding this Potentiometry/OCP topic. However, If the normal configuration for the switches is as depicted in Figure 23 of Page 38, as Laura shown:

    I don't really get why

    - SW6 connects -ve input of PA to +ve input of LPTIA

    as in the figure SW6 is shorting towards the LPDAC output rail instead, nor

    - CE0 is shorted to RE0.

    since neither SW2 nor SW10 are closed, for instance.

    Thank you very much!

Children
  • Hi,

    If SW6 is not closed in code (not mentioned in LpAmpCfg.LpTiaSW configuration setting), that means it connects -ve input of PA to +ve input of LPTIA.

    Thank you for your observation.

    Actually with the above configuration, OCP across RE0 and SE0 is measured.

    Open circuit potential across RE0 and SE0  = Vin = Vout * (-Rload/Rtia)

    As you have mentioned, if you want to measure OCP across CE0 and SE0, close SW2 also.