Pmod IA Reference Manual

The Pmod IA is now retired and no longer for sale in our store.

The Digilent Pmod IA (Revision A) is an impedance analyzer built around the Analog Devices AD5933 12-bit Impedance Converter.

Download This Reference Manual


  • Impedance analyzer with 12-bit impedance converter
  • Measure impedance values ranging from 100Ω to 10 MΩ.
  • Programmable frequency sweep
  • Programmable gain amplifier
  • Optional external clock generation
  • 2×4-pin port with I²C interface

Functional Description

The Pmod IA utilizes Analog Devices AD5933 with its on-board frequency generator and analog-to-digital converter (ADC) to be able to excite an external unknown impedance at a known frequency. This known frequency is sent out through one of the SMA connectors. The frequency response is captured by the other SMA connector and sent to the ADC and a discrete Fourier transform (DFT) is performed on sampled data, storing the real and imaginary parts of the solution in the on-chip data registers. The magnitude of the unknown impedance as well as the relative phase of the impedance at each point in the generated frequency sweep can be calculated from these two data words.

Interfacing with the Pmod

The Pmod IA communicates with the host board via the I²C protocol. Users can initiate communication with the Pmod IA by issuing a start condition and its 7-bit slave address of 0001101 (0x0D) and then a write bit (0) or a read bit (1). Upon receiving an Acknowledge bit back from the PmodIA, communication can continue. The Unknown impedance is connected between the two SMA connectors.

Calibrating the PmodIA

Before any useful calculations can occur, users must first calculate the gain factor associated with the Pmod IA. To do this, users need first set the AD5933 into standby mode and the PGA gain to 1, choose an output excitation voltage and calibration frequency, and choose a known calibration impedance value such as 200 kΩ to place between the two SMA connectors. The default Master Clock Rate (MCLK) that is used internally by the Pmod IA is 16.776 MHz.

The 24-bit value that represents the desired calibration frequency can be determined from the equation below:

PmodIA Frequency Calculation

Once the desired frequency is programmed into the Pmod IA Start Frequency Register, users may issue the “Initialize with Start Frequency” command to allow the frequency generator to reach steady state. The amount of time to wait for the frequency generator to reach steady state is based upon the users personal preference. Once that time period has passed, users may issue a “Start Frequency Sweep” command. The internal ADC will sample the measured impedance after a set number of settling time cycles have passed and store the processed result in the Real and Imaginary Data registers.

Naturally, some time is required for the DFT to be performed on the received data. Users can continuously poll the Status register to determine when the DFT is complete or can wait a calculated amount of time based on the number of Settling Time cycles before confirming the DFT is complete. If bit D2 is at a logic level high voltage state, this indicates that the DFT is complete and the data present in the Real and Imaginary data registers are valid, allowing users to perform a block read on the two 16-bit registers. The equation used to calculate the settling time is provided below:

Settling Time Calculation

Once the data has been obtained, the gain factor can be calculated as follows:

Magnitude Calculation

Gain Factor Calculation

Once the gain factor has been determined, any other unknown impedance can then be calculated by the following equation:

Impedance Calculation

The calculated gain factor will remain valid for as long as the following parameters are not changed:

  • Current-to-voltage gain setting resistor (unlikely to change unless the resistor is physically removed from the Pmod)
  • Output Excitation voltage
  • PGA gain

Performing a Frequency Sweep

Users can also perform a frequency sweep on an unknown impedance by programming an initial start frequency by the method described in the Calibration section and choosing the increment step size as well as the number of steps to take. The increment step size is represented by a 24-bit code stored in the Frequency Increment register and can be calculated by the following equation:

Step Increment Calculation

The number of increments is set by programming the binary value into the conveniently named Number of Increments register where bits D15-D9 are don't cares and bits D8-D0 is the 9-bit word representing the desired number of steps to be taken.

Once the steps have been defined, users may issue the Start Frequency Sweep command to begin the frequency sweep. After the status register confirms that the data present in the real and imaginary data registers are valid, users may issue an Increment Frequency command to go to the next set point within their frequency sweep or may issue a Repeat Frequency command to have the Pmod resend the current frequency value through the unknown impedance. This allows the user to average successive readings. Bit D2 will be set within the Status register when the all of the steps in the frequency sweep have been taken.

Common Registers and Commands

A table of commonly used register addresses and commands is provided below:

Register Addresses Parameter
0x80, 0x81 Control register
0x82, 0x83, 0x84 Start frequency code
0x85, 0x86, 0x87 Frequency Increment code
0x88, 0x89 Number of Steps in Sweep
0x8A, 0x8B Number of Settling Time Cycles
0x8F Status Register
0x94, 0x95 Real Data Register
0x96, 0x97 Imaginary Data Register
1011 0000 Address Pointer Command
1010 0001 Block Read Command
1010 0000 Block Write Command

Pinout Description Table

Pins Signal Description
1, 5 SCL Serial Clock
2, 6 SDA Serial Data
3, 7 GND Power Supply Ground
4, 8 VCC Positive Power Supply (3.3/5V)
SEL Logic High Logic high selects 20 Ohm gain setting resistor
SEL Logic Low Logic low selects 100k Ohm gain setting resistor

More detailed information about communicating with the PmodIA including sample data streams and detailed register information can be found in our user guide. Users that just want to get the Pmod up and running though are free to use our example code.

Any external power applied to the PmodIA must be within 2.7V and 5.5V; however, it is recommended that Pmod is operated at 3.3V.

Physical Dimensions

The pins on the pin header are spaced 100 mil apart. The PCB is 1.6 inches long on the sides parallel to the pins on the pin header and 0.8 inches long on the sides perpendicular to the pin header.

Additional Information

The schematics of the Pmod IA are available here. Additional information about the Impedance Converter including communication modes and specific timings of the chip can be found by checking out its datasheet here.

More specific information about how to use the Pmod IA can be found by checking out our user guide. Example code demonstrating how to get information from the Pmod IA can be found here.

If you have any questions or comments about the Pmod IA, feel free to post them under the appropriate section (“Add-on Boards”) of the Digilent Forum.