skrf.vi.vna.hp.HP8510C
- class skrf.vi.vna.hp.HP8510C(address, backend='@py', **kwargs)[source]
HP 8510 driver that is capable of compound sweeps, segmented sweeps, and fast binary transfers. These features make this venerable old instrument much more pleasant to use in the 21st century. Likely works with “A” and “B” versions of the instrument as well.
Compound sweeps occur automatically when the user requests a sweep larger than what the instrument natively supports (51/101/201/401/801pts). This driver takes multiple shorter sweeps and stitches them together.
Segmented sweeps occur automatically when the user requests a short or irregularly spaced sweep (see “Advanced Example” below). The 8510 actually does support sweeps other than 51/101/201/401/801pts, but only in a separate mode (segmented sweep mode) and with significant restrictions. This driver knows how to handle segmented sweep mode to get what it wants.
Examples
Basic one-port:
vna = skrf.vi.vna.hp.HP8510C(address='TCPIP::ad007-right.lan::gpib0,16::INSTR', backend='@py') vna.set_frequency_sweep(2e9,3e9,201) vna.get_snp_network(ports=(1,))
Basic two-port:
vna = skrf.vi.vna.hp.HP8510C(address='TCPIP::ad007-right.lan::gpib0,16::INSTR', backend='@py') vna.set_frequency_sweep(2e9,3e9,201) vna.get_snp_network(ports=(1,2))
Intermediate example – note that 1001 point sweeps are not natively supported by the instrument; this driver takes multiple sweeps and stitches the results together.
vna = skrf.vi.vna.hp.HP8510C(address='TCPIP::ad007-right.lan::gpib0,16::INSTR', backend='@py') vna.set_frequency_sweep(2e9,3e9,1001) vna.get_snp_network(ports=(1,2))
Advanced example. The driver is handed a bucket of frequencies containing two separate bands mashed together. Behind the scenes it will construct a sweep plan consisting of one native sweep and one segmented sweep, perform both, and stitch the results together – but all the user need worry about is constructing the request and interpreting the results.
vna = skrf.vi.vna.hp.HP8510C(address='TCPIP::ad007-right.lan::gpib0,16::INSTR', backend='@py') freq_block_1 = np.linspace(1e9,2e9,801) freq_block_2 = [10e9,11e9,12e9] freqs = np.concatenate((freq_block_1, freq_block_2)) vna.frequency = skrf.Frequency.from_f(freqs) vna.get_snp_network(ports=(1,2))
Attributes
Averaging factor for AVERON |
|
Error from OUTPERRO |
|
Start frequency [hz] |
|
Stop frequency [hz] |
|
Frequencies of compound sweep |
|
Instrument ID string |
|
True iff sweep mode is continuous. |
|
Maximum frequency supported by instrument |
|
Minimum frequency supported by instrument |
|
Number of points in compound sweep (if programmed) or non-compound sweep |
|
Methods
Like ask_for_values, but use FORM2 binary transfer, much faster than ASCII. |
|
Create a property for the instrument. |
|
MAIN METHOD for obtaining S parameters, like get_snp_network((1,)) or get_snp_network((1,2)). |
|
Returns (forward_one_port,reverse_one_port) switch terms. |
|
Performs a single sweep OR COMPOUND SWEEP and returns Network data. |
|
Preset instrument. |
|
Ramp (fast, not synthesized) sweep. |
|
Step (slow, synthesized) sweep + logic to handle lots of npoint. |
|
Interprets units and calls set_frequency_step |
|
Returns (forward_one_port,reverse_one_port) switch terms. |
|
Performs a single sweep OR COMPOUND SWEEP and returns Network data. |
|
Fetches status bytes respecting max_wait_seconds even if it must tank a few timeouts along the way. |
|