I have designed a single-supply (3.3V) potentiostat that initiates electrochemical reactions, converts the generated electrochemical current into a voltage via a transimpedance amplifier (op-amp used was ADA4528), which then passes through a sallen-key low-pass filter and to an ADC pin on an mbed NXP LPC1768 development board. The ADC value is then sent to a PC and the current is back calculated and displayed in real-time on a graphical user interface. The circuit is similar in function to the one in the colorimeter CN-0363, which also uses ADA4528 as the transimpedance amplifier.
The feedback resistors tested were 16k, 160k, 1.6M and 16M. I've been using the Keithley 6221 current generator to test my board's function and applied currents that fall within the voltage output range of the op-amp for the different resistors. My system is very accurate till towards the end of the respective current range, after which I start losing gain. There is no discernible error for 16k, but for 160k and 1.6M, the gains started falling off at around 0.2V and 0.4V from the positive rail. The 16M was the worst at almost 1V from rail. I figure the gain loss is due to the limited output swing of the op-amp, when the internal transistors get out of the saturation region. However I do not know why different feedback resistors give different output swings, especially for a rail-to-rail op-amp like ADA4528.
I used the same 100pF capacitor to compensate all resistors, which based on calculations, is excessively overcompensating (though I should be operating at DC so this shouldn't be a problem?). However, I found out that when I put a 100nF capacitor with my 16M resistor, the feedback gain became very accurate, and the output swing was no longer restricted to 1V from rail. The side-effect was that there was noticeable "charging" due to a significant time constant.
To sum up:
- Why does the output swing change for the ADA4528 when different feedback resistors were used?
- Why did the 100nF capacitor "fix" the output swing limitation and gain loss issue of my 16M resistor?
Any help is appreciated! Thanks!