I have been trying to get the impedance values using AD5933 but I keep getting wrong results. I have been comparing the result with my AD5399EBZ evaluation board. My circuit is same as the evaluation board but I am not getting the desired results. I have read the manuals AN-1252 and UG-364 and I think that I did my steps accordingly but my results are different from AD5399EBZ board. For calibration, I selected R_unknown=100k and R_fb=100k values in Evaluation board circuit and my circuit and calculated Gain factor. The results are that Evaluation board GainFactor = 1.029e-9 and my circuit GainFactor = 4.46e-6. When I changed R_unknown = 90k/300k in evaluaton board results are okay but in my board they show 100k. My circuit implementation is provided below.
Pin #1 in AD5399 namely EXT_OUT's function is not provided in datasheet. so I have left them out.
Pin #2 and #3 are also left out. What is the function of these 3 pins ?
When calculating impedance for 100k ohm, I compared the real and imaginary values for my board and evaluation board. The result are:
my real = -1, imag = -2/-3
evaluation board real = 3332, imag = -9081
Apart from switching to increment frequency, all other steps are done according to to flowchart in Evaluation board manual but results are wildly different.
My frequency setting are
starting frequency = 30000, delta frequency = 2, number of increment = 1, Number of settling time cycles = 15. I calculated for only starting frequency.
My pseudo code is as follow:
if (CALIBRATION_SWITCH_PRESS)
{
set gain = x1 , 2V p-p (address = 0x80, value = 0x01)
select external frequency (address = 0x81, value = 0x08)
set to stand by mode (address = 0x80, value = 0xB0 | 0x01)
init with start frequency (address = 0x80, value = 0x10 | 0x01)
start frequency sweep (address = 0x80, value = 0x20 | 0x01)
wait until ( status & 0x02 == 1 )
repeat frequency
wait until ( status & 0x02 == 1 )
read real and imaginary data
GainFactor = 1 / ( 100k * sqrt ( real*real + imag*imag ))
}
if (MEASURE_SWITCH_PRESS)
{
set gain = x1 , 2V p-p (address = 0x80, value = 0x01)
select external frequency (address = 0x81, value = 0x08)
set to stand by mode (address = 0x80, value = 0xB0 | 0x01)
init with start frequency (address = 0x80, value = 0x10 | 0x01)
start frequency sweep (address = 0x80, value = 0x20 | 0x01)
wait until ( status & 0x02 == 1 )
repeat frequency
wait until ( status & 0x02 == 1 )
read real and imaginary data
R_unknown = 1 / ( GainFactor * sqrt ( real*real + imag*imag ) )
}

