Jump to content
  • 0

PMODIA AD9533 Arduino


JustinLilard

Question

Hi,

I am using example code that I got from GitHub to try to read the impedance through Arduino. On the reference guide that digilent provides, there are a series of steps you have to take to calculate the correct impedance. All of those functions are already written, but I do not know how to calibrate the AD9533. I know it says something about a reference resistance, phase, etc., but I am unsure if I am supposed to put the reference resistance in between the SMA connectors and then once it has done a sweep to calculate the gain factor. Am I supposed to insert the reference resistor first, then take it out post-calibration? Am I then able to measure unknown resistance? Help please!

Best,

J

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

Hi @JustinLilard,

Which GitHub did you get the reference material for the Pmod IA from? I ask because most of the reference material that I have seen on other GitHubs usually have some sort of error in terms of the register manipulation for the AD9533.

With regards to using the Pmod IA (which is detailed further in this forum thread and this one), the calibration is performed by placing a known reference impedance between the two SMA connectors and then going through the calibration procedure. You need the reference impedance to be close to the unknown impedance value to ensure accurate measurements. After you have done the calibration procedure, remove the reference impedance and then you will be able to measure the unknown resistance value. This is explained a bit further in this specific response here.

Thanks,
JColvin

Link to comment
Share on other sites

Hi,

Thanks for your timely response. I used the library/code here https://github.com/mjmeli/arduino-ad5933 . Basically, the code in the setup block calibrates the PMODIA with an input of gain, phase, and reference resistor. The reference resistor, "REF_RESIST" is a global variable declared at the top of the ad5933-test file. I think the code works as is, but I'm not sure what to do on the hardware side. Should I put a reference resistance between the two SMA connectors, wait for calibration, and then put in something with an unknown impedance? I'm just unsure how the PMODIA AD9533 should look before/after calibration and how to get it to measure and unknown impedance. 
 

Thanks,

Link to comment
Share on other sites

Hi @JustinLilard,

I apologize for the delay.

The procedure on the physical side of things would be to place a reference resistance/impedance that is relatively close to the unknown impedance value between the two SMA connectors and perform the calibration procedure; this will let you calculate the gain factor. Knowing this gain factor will let you calculate future unknown impedances via the equation 1/(Gain Factor * Magnitude). Prettier versions of the equations on the PmodIA reference manual here: https://reference.digilentinc.com/reference/pmod/pmodia/reference-manual#calibrating_the_pmodia.

The tricky bit comes with selecting the current-to-voltage gain setting resistor, the output excitation voltage, and/or the PGA gain; if any of those are changed, the gain factor needs to be recalculated. You can preemptively select what settings those should be by checking if the following equation does not exceed the powered ADC within the PmodIA (3.0V):

Output Excitation Voltage Range * (Gain Setting Resistor/Unknown Impedence) * PGA Gain

When originally calculating the gain factor though, you need to select a set frequency to perform the impedance calculations. As noted on page 17 of the datasheet, the impedance profile changes with the frequency which can change fairly dramatically (depending on the resolution you need), so I would recommend doing a two point calibration that is described on page 18.

Let me know if you have any questions about this.

Thanks,
JColvin

Link to comment
Share on other sites

Hey @JustinLilard

Were you able to use the code you found on https://github.com/mjmeli/arduino-ad5933 ? I am continuously getting the prompt "Failed in initialization". I believe my connections are correct and the addresses in the .h file of the AD5933 are also correct. I am using Arduino UNO R3 as the host board.

Hi @JColvin

There is another library/code that I found on github ( https://github.com/WuMRC/drive ) in which AD5933 Z_logger seems to be working and generating data but the problem that I am facing is that during the frequency sweep my impedance values are close to the reference impedance I used to calibrate it and doesn't change at all no matter what the frequency is. I have the data from a network analyzer of the impedance and phase angle that I am trying to measure and the data that I am getting from this library/code doesn't seem to match with it at all. My reference impedance is 5.1k ohm at around 43 kHz.

Do you have any idea as to why am I stuck around the same value and also is the SEL supposed to be connected to the GND throughout the measurement or only till the calibration and calculation of the gain?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...