We are testing the squarewave voltammetry project for ADuCM355 from the GitHub repo (github.com/.../M355_SqrWaveVoltammetry) using a custom PCB design we have. The PCB follows the reference design from the datasheet and evaluation boards. We have two test setups with different RCAL values: one board has a 200ohm RCAL and another with 100KOhm.
Since the maximum measured current from the electrochemical sensor will be in the range of 50-100uA ,we have used an external test resistor of 5K between the WE & RE (CE shorted with RE) in both boards to emulate the scenario. The RTIA value was chosen as 6K and the Vramp is from 0-500mV. Rest of the parameters for the SWV used in the RampStructInit() function is as below:
AppSWVGetCfg(&pRampCfg); /* Step1: configure general parmaters */ pRampCfg->SeqStartAddr = 0x10; /* leave 16 commands for LFOSC calibration. */ pRampCfg->MaxSeqLen = 1024-0x10; /* 4kB/4 = 1024 */ pRampCfg->RcalVal = 200.0; /* 200 Ohm RCAL on EVAL-ADuCM355QSPZ */ pRampCfg->ADCRefVolt = 1820.0f; /* The real ADC reference voltage. Measure it from capacitor C12 with DMM. */ pRampCfg->FifoThresh = 480; /* Maximum value is 2kB/4-1 = 512-1. Set it to higher value to save power. */ pRampCfg->SysClkFreq = 16000000.0f; /* System clock is 16MHz by default */ pRampCfg->LFOSCClkFreq = LFOSCFreq; /* LFOSC frequency */ /* Step 2:Configure square wave signal parameters */ pRampCfg->RampStartVolt =0.0f; /* +0.0V */ pRampCfg->RampPeakVolt = +500.0f; /* +0.5V */ pRampCfg->VzeroStart = 1300.0f; /* 1.3V - from 1-1.3 its operating as ecpectedd, below that saturates*/ pRampCfg->VzeroPeak = 1300.0f; /* 1.3V - This values have some influence since on test at high v its saturating*/ pRampCfg->Frequency = 25; /* Frequency of square wave in Hz */ pRampCfg->SqrWvAmplitude = 50; /* Amplitude of square wave in mV */ pRampCfg->SqrWvRampIncrement = 5; /* Increment in mV: StepNumber = 2* ((RampPeak- RampStart)/RampIncrement)*/ pRampCfg->SampleDelay = 10.0f; /* 10ms. Time delay between DAC update and ADC sample. Unit is ms. Freq/4 (for safety instead of F/2*/ pRampCfg->LPTIARtiaSel = LPTIARTIA_6K; /* Maximum current decides RTIA value */
The issue that we are facing is that, the two boards are giving entirely different reading for the same setup(only RCAL different). Not only the measured current is different but also the noise level for the 200Ohm RCAL PCB is very high. Only 100K RCAL is giving more realistic value. See image below. We saw the comment in the source code that the RCAL should be similar to the RTIA values for accuracy. But didn't completely understand how the 100K RCAL is better than 200Ohm in this scenario where I am using 6K RTIA.
Could you please explain why this is happening and let us know the effects of RCAL for SWV? What is your recommendation for RCAL value in this case.