psi_probecard

PSIProbecard class for probe cards to measure voltage on RD53B quad-chip modules.

The instrument is connected to a coldbox and controlled over tessie and MQTT.

Classes

PSIProbecard(*args, **kwargs)

PSIProbecard

class icicle.psi_probecard.PSIProbecard(*args, **kwargs)

Bases: MQTTInstrument

__init__(resource, **kwargs)

must be explicitly specified - failing to do so will result in an error since the Multiton metaclass on VisaInstrument masks this default value for resource.

Parameters:
  • resource – VISA Resource address. TCPIP[channel]::<host>::<port>::SOCKET

  • **username – username for the mqtt server (default=””)

  • **password – password for the mqtt server (default=””)

  • **init – whether to initialize the coldbox (default=False)

  • **sim – whether to simulate the instrument (default=False)

  • **ssl – whether to use ssl (default=False)

DEFAULT_PIN_MAP = {0: 'VIN', 1: 'VOFS', 2: 'VDDA_ROC0', 3: 'VDDD_ROC0', 4: 'VDDA_ROC1', 5: 'VDDD_ROC1', 6: 'VDDA_ROC2', 7: 'VDDD_ROC2', 8: 'VDDA_ROC3', 9: 'VDDD_ROC3'}
MEASURE_TYPES = {'VOLTAGE': 'Differential voltage on pin, provided via coldbox'}
MONITOR_SLEEP = 1

Frequency of monitor

class MeasureChannel(instrument, channel, measure_type, unit='')

Bases: MeasureChannel

MeasureChannel implementation for probecard.

get_channel_name()
Returns:

pin name

Return type:

str

property read: float

returns the pin value last measured. this will not remeasure the pin value. mostly used, when an array of pins is read out.

this function is not included in measurechannel_cli, is not accessible from the command line.

Returns:

pin value from last measurement

Return type:

float

property status: bool
Returns:

status of instrument

Return type:

bool

property value: float
Returns:

pin value at measurement

Return type:

float

QUERY_LATENCY = 1

MQTT maximum query latency

READ_LATENCY = 10

MQTT maximum read latency

get_pin_map() dict
Returns:

pin map of the board

Return type:

dict

get_probecard() int
Returns:

position of the probecard in the coldbox

Return type:

int

identify() str
Returns:

position of the probecard and host and port of the coldbox.

Return type:

str

monitor(**kwargs) None

monitoring the pin voltages. :param **repetition: number of repetitions. runs forever if not provided or 0. :param **monitor_sleep: time between queries. if not provided, default is used. :print: current measurement block.

off() bool

“fake” entry point to keep common interface. this instrument does not have settings to turn on/off except for physically pulling the plug. this function is not actively used.

on() bool

“fake” entry point to keep common interface. this instrument does not have settings to turn on/off except for physically pulling the plug. this function is not actively used.

query(setting, **kwargs) float
Parameters:
  • setting – the name of the pin, needs to be in pin_map.

  • **force_query – require query or read from cache (default=False).

Returns:

pin value at measurement

Return type:

float

query_all(**kwargs) dict

returns the value for all pins that are in use as a dictionary. :param **force_query: require query or read from cache (default=False). :return: pin values at measurement :rtype: dict

set() float

“fake” entry point to keep common interface. this device cannot set values. this function is not actively used.

status() bool
Returns:

status of the board

Return type:

bool

update(msg) None

callback for MQTT messages. Inherited from MQTTInstrument. Saves values received to the cache and updates timestamps :param msg: msg from MQTT broker.

validate_channel(channel, **kwargs) bool

check if an output exists on this device. :param channel: channel number to validate as an output. :param **raise_exception: raise exception or return bool (default=True). :return: whether channel exists or not :rtype: bool