Post Go back to editing

AD5941

Category: Hardware
Product Number: AD5941

Hi I am using a NuceloF411 development board to connect an AD5941 to perform an experiment in amperometry. The board of the AD5941 was designed by me and the schematic of the circuit is in the attachment.  May I know which parameter in the code corresponds to WE,RE,CE if the three electrode system is used. And which one is the pin to measure the current。

dsp_cfg.ADCBaseCfg.ADCMuxN = ADCMUXN_VZERO0;
dsp_cfg.ADCBaseCfg.ADCMuxP = ADCMUXP_AIN2;Is it the code above that sets the pins for measuring CURRENT? The positive and negative pins are AIN2 AND VZERO?

  • Hi,

       If using the example here : ad5940-examples/examples/AD5940_Amperometric/Amperometric.c at master · analogdevicesinc/ad5940-examples · GitHub,

         lines 183 to 191 set the switches shown in image below:

    ...

    These switch settings tell which electrode (WE, CE, RE) is connected where.

    In default example, current input from SE0 is measured by ADC.

    ADC takes input from 

    dsp_cfg.ADCBaseCfg.ADCMuxN  and
    dsp_cfg.ADCBaseCfg.ADCMuxP

  • Thanks.But I did't see the image you said.

    I find this code from the example : 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);
    },these switch settings tell which electrode  is connected where .Is the image below what you want to upload?

    As you said in the code in the example, the pin to measure the current is SE0, but the code for the ADC is as follows,dsp_cfg.ADCBaseCfg.ADCMuxN = ADCMUXN_VZERO0;
    dsp_cfg.ADCBaseCfg.ADCMuxP = ADCMUXP_AIN4; is this a conflict?   As I know in the code, setting the voltage on Vzero is equal to setting the voltage on SE0.

    If I use the example code, how would I connect my three electrodes, is it RE0,SE0,CE0 in the diagram?If RE0 is used as the reference electrode ,but the voltage is not set in the code, so is the voltage of CE0, only the voltage of VZERO and BIAS are set in the code. Which pins should I use as reference and counter electrodes? From the code VZERO and BIAS look more like reference  electrode and counter electrode.Looking forward to your reply

  • Hi,

     The image is Figure 22 of AD5940 datasheet.

    In the example code, since SW2 is closed and

    lp_loop.LpDacCfg.LpDacVzeroMux = LPDACVZERO_6BIT;
    lp_loop.LpDacCfg.LpDacVbiasMux = LPDACVBIAS_12BIT; ,

    voltage at CE0 = VBias output =  SensorBias + Vzero 

    Voltage at RE0 = Input reference voltage from load (It is an input and hence not set by code)

    Since SW7 is connected to SE0 via Rload and SW6 is connected to Vzero output of LPDAC,

    Voltage at SE0 = close to Vzero because of high gain of LPTIA in Figure 22. 

    Yes. With default code, you may connect the three electrodes of load to CE0, RE0 and SE0 of AD5940.

  • Thanks for your reply.There's something I don't quite understand.In the code, it shows here that the positive and negative interfaces of the ADC are AIN4 and VZERO, indicating that the current measurement should be AIN4, and the pin you are referring to for the current measurement is SE0.dsp_cfg.ADCBaseCfg.ADCMuxN = ADCMUXN_VZERO0;
    dsp_cfg.ADCBaseCfg.ADCMuxP = ADCMUXP_AIN4

    In amperometry in electrochemistry, a constant potential difference needs to be realized, there needs to be a constant potential difference between the reference and working electrodes. According to what you have said,

    voltage at CE0 = VBias output =  SensorBias + Vzero

    Voltage at SE0 = close to Vzero 

    Voltage at RE0 = Input reference voltage from load (It is an input and hence not set by code)

    In the amperometric method of electrochemistry, the voltage at the reference electrode is known and constant, but according to you the voltage at RE here is uncertain and surprisingly an input, I don't quite understand it, please help explain!

    Looking forward to your reply!

  • SE0 input is given to LPTIA for converting current to voltage. LPTIA's output is AIN4 which is given to ADC mux.

    As shown in figure below, constant potential is given across CE and SE. Input current is measured at SE. RE is feedback from load for reference.

  •  As the manual says, the voltage on RE0,CE0 is Vbias, which doesn't agree with what you said

  • Previously you have said voltage at CE0 = VBias output = SensorBias + Vzero, but when I actually measure, only the voltage on SE0 meets the code set, the voltage on CE0 is not controllable, may I ask where is the problem, I look forward to your reply!

  • lines 53 to 55/*LPDAC Configure */
    .Vzero = 1100, /* Sets voltage on SE0 and LPTIA */
    .SensorBias = 500, /* Sets voltage between RE0 and SE0 */

    The comments to the code state that SensorBias is setting the bias voltage between RE0 and SE0, and if the voltage on both RE0 and CE0 is what Vbias says according to the manual, then the comments to the code are correct. But they don't match the explanation you gave. In addition to this, after I downloaded the code to the chip, the voltages I measured on RE and CE did not match what the manual says, only the voltage on SE meets what the manual says and is equal to Vzero. I am very confused and look forward to your reply!

  • Can you see in the block diagram that RE0 is an input to PA(Potentiostat amplifier). Feedback is given as input.  

    CE0 is an output from PA. 

    Voltage at CE and RE are maintained equal to VBias because PA acts as voltage follower.

    With default Amperometry code in github on Eval-AD5940ELCZ board,

    For pAMPCfg->SensorBias = 0

    CE0 w.r.t. gnd is 1.16V as captured below:

    For pAMPCfg->SensorBias = 500

    CE0 w.r.t. gnd is 1.65V as captured below:

    For pAMPCfg->SensorBias = 800

    CE0 w.r.t. gnd is 1.9V as captured below:

  • Thank you for your reply.

    I can see  in the block diagram that RE0 is an input to PA, I use the AD5941, you use the Eval-AD5940ELCZ board, can the default Amperometry code be downloaded directly on AD5941 and work properly? If so, there may be some problems with my circuit design.

    Looking forward to your reply!