Hello, I am trying to calibrate the AD5933 and even though I have went through all the postings in this site, I am still having trouble getting the correct values.
Measurement range of interest: 1000 ohms to 10 Kohm.
Vdd = 3.3;
Zmin = 1000;
Zmax = 10000;
Vdc_offset = 1.48; Vpp = 1.98 % Range 1
GAIN = 1;
Vpk = Vdc_offset + Vpp/2;
Vpk = 2.4700
Rfb = ((Vdd/2 - 0.2) * Zmin) / (Vpk + Vdd/2 - Vdc_offset) * (1/GAIN)
Rfb = 549.2424
Rcal = (Zmax + Zmin) / 3 = 3.6667e+03
Then I place a 3.58K resistor (closest value I could get) between Ad5933 pins 5 and 6 so as to run a calibration routine.
Ref_Resistor = 3580 ;
Then I read from AD5933 and get:
With these readings I calculate the Gain:
Magnitude = sqrt(R^2 + I^2)
Magnitude = 1.7483e+03
Gain = (1/Ref_Resistor)/Magnitude
Gain = 1.5977e-07
Finally, when trying different resistors so as to check whether the device is measuring correctly I obtain the following for a frequency of 50Khz. I am only interested in measuring bioimpedance at 50 kHz
For Z = 3580:
R=-909/I=1496 Phase =-0.00 Mag =1750.51 |Zreal|=-909.00 |Zimag|=1496.00 |Z|=3575.52
For Z = 1k:
R=-2828/I=4610 Phase =-0.00 Mag =5408.30 |Zreal|=-2828.00 |Zimag|=4610.00 |Z|=1157.30
For Z = 10k:
R=-335/I=555 Phase =-0.00 Mag =648.27 |Zreal|=-335.00 |Zimag|=555.00 |Z|=9654.97
I get a considerable error, then I wonder what could be wrong. ?
Thanks in advance for your help.
For starters, the results are not that terrible: 15-16% of lower end and 5-6% on higher end. Are you using high-precision resistors in your tests? Perhaps you could improve your accuracy by not following the PR texts. From the first principles Zmax is infinity since you can run your measurements connecting nothing as your impedance under test (open circuit) and still get the response from the chip. The formula for "optimal" Rcal yields nothing useful as your Zmax can be infinity (in reality it is not infinity but an impedance of a small parasitic capacitance between VIN and VOUT pins of the AD5933 and whatever traces are leading to those pins).
From practical point of view, at your settings you should use Rfb given by the formula (no need to be that precise, truncate to lower available value) and use Rcal equal to the lowest impedance from your range. This way you are utilizing nearly entire dynamic range of the built-in ADC while calibrating and thus achieving most accurate value for Gain you need to use for calculating the unknown impedance under test. No reason to worry what your Zmax may or may not be.
When you calibrate with the resistor Rcal given to you by the formula you are utilizing only about 1/6 of the ADC dynamic range, so the accuracy of your Gain is not the highest.
I could calibrate the system succesfully within the range 100 ohms to 5.5K, which is my range of interest. I am trying to set a 4 electrode system but when trying to read tissue impedance I get wrong readings. I saw in "BIO-IMPEDANCE CIRCUIT DESIGN FOR BODY WORNSYSTEMS", that it is suggested a circuit to avoid electrode polarization also in AN-1302. But this circuit is meant to be used with AducM350. I wonder if it could be used with AD5933 as well.
Good to hear! If you can measure your resistors correctly it should be possible to use the circuit you are referring to with the AD5933. Not knowing more details about your circuit it is hard to figure out what might be wrong, like do you use any AFE or just bare AD5933 chip in your measurements?
First thing to check is whether your DC operating point is OK. The best start would be to check if the voltage waveform on the AD5933 RFB pin is a well-formed sine wave without any distortion or clipping at the power supply voltage rails (if you have access to an oscilloscope) throughout your calibration and measurement. Better yet if this waveform DC baseline is sitting at Vdd/2. If not - it should be possible to trace the signal along the chain towards the VOUT pin and see where things might have gone off tracks.