JAnderson419 / PyMeasRF

A Python module for executing a variety of RF device measurements
MIT License
5 stars 1 forks source link

Keysight N5221A PNA support? #16

Open 0xCoto opened 3 years ago

0xCoto commented 3 years ago

Hi there, I am not very familiar with this API. Just wanted to ask, could the code be applicable to the Keysight N5221A PNA model, or is it not supported? My goal is to simply fetch s2p data from the VNA.

JAnderson419 commented 3 years ago

Thanks for reaching out. I believe that PNA uses the same unified PNA firmware as the n5225a I developed this code for. I specifically was on firmware 9.3.x if I remember correctly (I am traveling at the moment). The code in this repository can trigger PNA measurements and set up a number of sweep/measurement parameters, allowing you to measure a device across a range of powers or dc biases, but it currently saves the data to a folder on the PNA, which the user can copy to a flash drive later. If you want to transfer the sweeps over lan/gpib it could be done but isn't implemented currently. An alternative if you are looking to just fetch single measurements from the PNA could be datagrabber.py in the excellent scikit-rf library. It is a nice gui that might work better for one-off measurements, if you are not trying to automate collection of data from many sweeps.

0xCoto commented 3 years ago

The code in this repository can trigger PNA measurements and set up a number of sweep/measurement parameters, allowing you to measure a device across a range of powers or dc biases, but it currently saves the data to a folder on the PNA

That should be a good start, thanks! Do you have a specific script I should try running while having my computer connected to my PNA (using an Ethernet cable, i.e. LAN)?

JAnderson419 commented 3 years ago

If you are looking for a lower level function, you could test the PNA S-parameter measurement code to make sure it runs on your instrument. With the diversity of available PNA configurations, there may be an assumption I made related to the hardware path that is not true for your instrument - it is hard to test these things since I don't physically have many PNAs of different configuration. If something does come up, it should be possible to generalize the code for your use case if you are running similar firmware.

For measurement routines, you could look at sParmDC.py if you are hoping to iterate over biases (with an SMU). The rftTest function involves setup of SMUs for biasing as well as the PNA for measurement, and includes logic for a DC IV sweep as well as the rf measurement. The RF measurement portion calls pnaSMU.SParmMeas, which consists of recursive loops for controlling DC biasing between RF measurement triggers (including customizable delays before RF sweep for DC settling and after RF sweep for device cooling).