:CALibrate Subsystem
Flex Apps:
FlexDCA
FlexRT
FlexPLL
Use FlexPLL's Calibrate subsystem commands to calibrate:
- Receiver's clock-recovery module or DCA-M module. This includes vertical and clock recovery calibrations. (
:CALibrate:MODule
commands) - Test setup's Response calibration. (
:CALibrate:RESPonse
commands)
If needed, FlexPLL automatically starts a module calibration before starting a Response Calibration. The receiver's clock recovery does not need to be locked when performing the calibrations. When a Response calibration completes, FlexPLL automatically locks the receiver's clock recovery.
The following two Python functions are an example of running a calibration using remote control. It is part of a complete example script that configures the test setup and returns a scalar measurement.
Copy
example function for module and response calibration
def module_cal(FlexPLL):
""" """
if FlexPLL.query(':CAL:MOD:STATus?') == 'CALIBRATED':
print('\nModule calibration is valid.')
return True
FlexPLL.write(':CAL:MOD:ENABled ENABled')
print('\nModule Calibration')
print('Disconnect all inputs from Receiver.')
input('Press any key to continue...')
print('Module cal is running. Please wait...')
FlexPLL.write(':CAL:MOD:STARt')
FlexPLL.query(':CALibrate:SDONe?') # mod cal complete?
FlexPLL.query(':CALibrate:CONTinue;*OPC?')
if FlexPLL.query(':CAL:MOD:STATus?') == 'UNCALIBRATED':
print('\nModule calibration failed')
FlexPLL.write(':CALibrate:CANCel')
return False
else:
print('\nModule calibration is valid.')
FlexPLL.write(':CALibrate:CONTinue')
return True
def response_cal(FlexPLL):
""" """
if FlexPLL.query(':CAL:RESP:CDATa:STATus?') == 'CORR':
print('Response calibration is valid.')
return True
FlexPLL.write(':JSOurce:OENable ON')
print('Connect the Source directly to the Receiver input.')
input('Press any key to continue...')
print('\nResponse calibration is running...')
FlexPLL.write(':CAL:RESPonse:STARt')
FlexPLL.query(':CAL:RESPonse:SDONe?') # dismiss cal instruction dialog
FlexPLL.write(':CAL:RESPonse:CONTinue')
FlexPLL.query(':CAL:RESPonse:SDONe?;*OPC?') # wait for cal to complete
FlexPLL.write(':CAL:RESP:CONT;*OPC?') # Dismiss cal completed dialog
if FlexPLL.query(':CAL:RESPonse:CDATa:STATus?') == 'CORR':
FlexPLL.write(':CAL:RESPonse:ENABle ON')
print('\nResponse Calibration completed.')
print('\nConnect your DUT to start making JTF measurements.')
input('Press any key to continue...')
return True
else:
print('Response calibration failed')
return False