Post Go back to editing

ADUCM355 CV and SWV behave differently when external Rtia is selected

Hello,

I have been testing both the Cyclic Voltammetry and Square Wave Voltammetry codes lately. I have noticed that for both codes, the desired ramps are generated and can be seen in the oscilloscope (voltage between shorted CE-RE and WE).

However, when I modify the code to:

pRampCfg->LPTIARtiaSel = LPTIARTIA_OPEN; 

to use an external resistor, the CV code is producing the desired ramps, but in the case of SWV it is either generating a constant -1 V voltage, a constant 0 V voltage or the desired ramp (between -0.5 V and 0.5 V). The initial voltage just after pushing the reset button on the board is around -1.25 V in all cases and lasts around 1 second before the oscilloscope displays one of the aforementioned voltages. Please see the figures below.

-1 V constant value

0 V constant value

Desired ramp

Do you know why it is behaving like this?

Thank you,

Jimar.

Parents
  • Hi Akila,

    Thank you for your response. 

    Yes, the external RTIA is connected across RC0_0 and RC0_1. It is working well for the CV example.

    Then I check LPTIACON0 bits before selecting the switches. The value is 17408 which equals to 100010000000000. Hence bits[9:5] are cleared.

    To end with the right switches are selected, same as seen in the example:

    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 */

    However, I am not seeing the ramp being applied in all attempts. I suspect there may be a bug in the code for the LPTIARTIA_OPEN option.

    Note: the reason I think there may be a bug is also because I see the ramp being generated in all cases if I add the bolded line.

    if(AppSWVCfg.LPTIARtiaSel == LPTIARTIA_OPEN) /* Internal RTIA is opened. User wants to use external RTIA resistor */
    {
    AppSWVRtiaCal();
    AppSWVCfg.RtiaValue.Magnitude = AppSWVCfg.ExternalRtiaValue;
    AppSWVCfg.RtiaValue.Phase = 0;

    }

    I know what I did is wrong, but since I was seeing the ramp in all cases when internal RTIA was selected which means AppSWVRtiaCal is performed, I wanted to see if the presence of AppSWVRtiaCal that had any effect on ramp generation, and it does.

    Thank you.

Reply
  • Hi Akila,

    Thank you for your response. 

    Yes, the external RTIA is connected across RC0_0 and RC0_1. It is working well for the CV example.

    Then I check LPTIACON0 bits before selecting the switches. The value is 17408 which equals to 100010000000000. Hence bits[9:5] are cleared.

    To end with the right switches are selected, same as seen in the example:

    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 */

    However, I am not seeing the ramp being applied in all attempts. I suspect there may be a bug in the code for the LPTIARTIA_OPEN option.

    Note: the reason I think there may be a bug is also because I see the ramp being generated in all cases if I add the bolded line.

    if(AppSWVCfg.LPTIARtiaSel == LPTIARTIA_OPEN) /* Internal RTIA is opened. User wants to use external RTIA resistor */
    {
    AppSWVRtiaCal();
    AppSWVCfg.RtiaValue.Magnitude = AppSWVCfg.ExternalRtiaValue;
    AppSWVCfg.RtiaValue.Phase = 0;

    }

    I know what I did is wrong, but since I was seeing the ramp in all cases when internal RTIA was selected which means AppSWVRtiaCal is performed, I wanted to see if the presence of AppSWVRtiaCal that had any effect on ramp generation, and it does.

    Thank you.

Children