Ejemplo n.º 1
0
def measureVoltage(val, compVoltage, autoRange, rangeValue, state, nplc):
    try:
        keithley = Keithley2461("keithley", KEITHLEY_IP_ADDRESS,
                                KEITHLEY_SOCKET_PORT,
                                KEITHLEY_COMMAND_TERMINATOR)
        keithley.communicator.configure()
        keithley.reset()
        keithley.sourceFunction('CURR')
        keithley.sourceValue('CURR', val)
        keithley.sourceVoltageLimit(compVoltage)
        keithley.senseFunction('VOLT')
        if autoRange:
            keithley.senseAutoRange('VOLT', 'ON')
        else:
            keithley.senseAutoRange('VOLT', 'OFF')
            keithley.senseFunctionRange('VOLT', rangeValue)
        keithley.senseVoltRsen(state)
        voltage = keithley.readVoltage(nplc)
        keithley.closeConnection()
        return voltage
    except Exception as e:
        raise e
    finally:
        if not Keithley2461.isConnectionClosed():
            keithley.closeConnection()
Ejemplo n.º 2
0
def generatePulseAndMeasureFromKeithley(pulseLevel, pulseWidth, timeDelay,
                                        numberOfPulses, nplc):
    try:
        keithley = Keithley2461("keithley", KEITHLEY_IP_ADDRESS,
                                KEITHLEY_SOCKET_PORT,
                                KEITHLEY_COMMAND_TERMINATOR)
        keithley.communicator.configure()
        keithley.reset()
        keithley.sourceFunction('CURR')
        keithley.senseFunction('VOLT')
        keithley.senseFunctionNPLC('VOLT', nplc)
        keithley.senseAutoRange('VOLT', 'ON')
        keithley.sourcePulseTrain('CURR', pulseLevel, pulseWidth,
                                  numberOfPulses, 'ON', timeDelay)
        keithley.startPulse()
        keithley.wait()
        print "sleep %f" % (
            (pulseWidth + timeDelay) * numberOfPulses * 3 + 0.1)
        sleep((pulseWidth + timeDelay) * numberOfPulses * 3 + 0.1)
        data = keithley.readTraceData(numberOfPulses)
        keithley.closeConnection()
        return data
    except Exception as e:
        raise e
    finally:
        if not Keithley2461.isConnectionClosed():
            keithley.closeConnection()
Ejemplo n.º 3
0
def measureResistance(count):
    try:
        keithley = Keithley2461("keithley", KEITHLEY_IP_ADDRESS,
                                KEITHLEY_SOCKET_PORT,
                                KEITHLEY_COMMAND_TERMINATOR)
        keithley.communicator.configure()
        keithley.reset()
        keithley.sourceFunction('CURR')
        keithley.senseFunction('RES')
        keithley.senseAutoRange('RES', 'ON')
        keithley.senseResistanceCompensated('ON')
        resistance = keithley.readResistance(count)
        keithley.closeConnection()
        return resistance
    except Exception as e:
        raise e
    finally:
        if not Keithley2461.isConnectionClosed():
            keithley.closeConnection()
Ejemplo n.º 4
0
def generateVoltagePulseFromKeithley(pulseLevel, pulseWidth, timeDelay, numberOfPulses):
    try:
        keithley = Keithley2461("keithley", KEITHLEY_IP_ADDRESS, KEITHLEY_SOCKET_PORT, KEITHLEY_COMMAND_TERMINATOR)
        keithley.communicator.configure()
        keithley.reset()
        keithley.sourceFunction('VOLT')
        keithley.senseFunction('CURR')
        keithley.senseAutoRange('CURR', 'ON')
        keithley.sourcePulseTrain('VOLT', pulseLevel, pulseWidth, numberOfPulses, 'OFF', timeDelay)
        keithley.startPulse()
        keithley.wait()
        print "sleep %f" % ((pulseWidth+timeDelay)*numberOfPulses*3+0.1)
        sleep((pulseWidth+timeDelay)*numberOfPulses*3+0.1)
    except Exception as e:
        raise e
    finally:
        keithley.closeConnection()
Ejemplo n.º 5
0
def generatePulseLinearSweepFromKeithley(sourceFunc, senseFunc, stop, pulseWidth, timeDelay, numberOfPulses):
    try:
        keithley = Keithley2461("keithley", KEITHLEY_IP_ADDRESS, KEITHLEY_SOCKET_PORT, KEITHLEY_COMMAND_TERMINATOR)
        keithley.communicator.configure()
        keithley.reset()
        keithley.sourceFunction(sourceFunc)
        keithley.senseFunction(senseFunc)
        keithley.senseAutoRange(senseFunc, 'ON')
        keithley.sourcePulseLinearSweep(sourceFunc, stop, pulseWidth, timeDelay, numberOfPulses)
        keithley.startPulse()
        keithley.wait()
        print "sleep %f" % ((pulseWidth+timeDelay)*numberOfPulses*3+0.1)
        sleep((pulseWidth+timeDelay)*numberOfPulses*3+0.1)
    except Exception as e:
        raise e
    finally:
        keithley.closeConnection()