Hi, everybody!

I'm using the AD5933 with AFE to measure impedance (sourcing current and sensing voltage) and I've some problems at the calibration point. The impedance range is 10-100 Ohm.

The gain through my system is: (Vout/R)*Z*(Rfb/Rs)*PGA

where Vout is the output excitation voltage in range 1 (so 2Vpp), R is the resistor used to get the constant current using a Howland circuit (the value is 1kOhm because I need 1mAp), Z is the unknown impedance, Rfb is the gain setting resistor, Rs is connected to Vin pin to convert the voltage (Vout*Z/R) into current (as AD5933 measure currents at the input) and PGA is the settable gain (x1).

I read on the datasheet that I have to calibrate the AD5933 with a unity gain; in fact in the example where the gain through the system is: Vout*(Rfb/Z)*PGA , they choose Rfb=Zcal. Then, for the measurements, they increase the value of Rfb to improve the dynamic range of the input signal to the receive side of AD5933, keeping in mind to not increase it too much in order to prevent AD5933 saturation.

In my case, to get a unity gain I choose Zcal=Rs=47Ohm and R=Rfb=1kOhm. Then for the measurements, Rfb remain 1k Ohm and Rs=68Ohm, so I have Rfb/Rs=14,7 and the maximum voltage value at the ADC will be 1,47V; the ADC wouldn't saturate.

It doesn't work!!! I thought it might be the range chosen so I change with range 4 (200mVpp). Consequently R=Rfb=100, PGA=5 and Rs=33Ohm. But it doesn't work too!!! When I measure Z=56Ohm it gives back 22Ohm! When I measure Z=47Ohm it gives back 60Ohm!

I don't know what to do more!! I can't understand where I'm wrong... Please help!!!

C1 should be able to block any DC bias from VOUT and 0x05DC settling cycles should be enough for any transients to level off. I would double-check whether values R and I are valid, bytes are not swapped, etc... If you remove R18 at your frequencies both I and R should have very low (ideally 0) values in amplitude, like 5-10 or so max - is that the case?