-->FG_ISG500
function [rep] = FG_ISG500(varargin)
Function Generator ISG500: Driver for Scilab >= 5.0
---------------------------------------------------
The ISG1200 12 MHz Functions Generator should also be supported.
MAIN DEVICE CHARACTERISTICS (See full datasheet from IeS manufacturer):
Frequency range : 10 mHz - 5 MHz
Function shapes : DC Sinus Triangle Square Slope+ Slope- TTL (Pulse)
Modulation:
Sweep (internal):
Range : 200 mHz - 100 KHz
Type : Linear or logarithmic
Periode : 20 ms - 20 s
AM : 0 - 100% BW= 0-20 kHz
internal: 500 Hz sinus
external: 1 Vrms = 100%
FM : 100 Hz - 5 MHz BW= 0-5 kHz
FSK: 100 Hz - 5 MHz BW= 0-100 kHz
PSK: 0 - 360° BW= 0-100 kHz
Output can be limited (for safety)
SERIAL COM: BEWARE: Please set RS-232 speed = 19200 bauds on the device:
Button MENU => Interface => RS232 => choix
LIMITATION: Only one ISG500 device can be driven from a computer
COMMANDS:
. Command names are case unsensitive
. Commands may be sent whatever is the output status for power (on|off)
. Every command (except 'close' & 'reset') needs an argument, making
a (command, argument) pair
. Multiple pairs (command, argument) can be processed in a once.
Then, commands are performed in the order to which they are provided.
. Commands only set the device. There is no command to query its status.
Possible (command, argument) pairs and signification are:
'open', portId : Open the serial communication
portId: serial port number (1,2,..) to be used
'reset' : Reset parameters to default values stored in set #0 (see
'recall').
'close' : Close serial communication for this device
'shape', 'sinus'|'triangle'|'square'|'DC'|'TTL'|'pulse'|'slope+'|'slope-' :
Set the shape of delivered signal.
Shape's name is case unsensitive.
'amplitude', A : Set the amplitude of delivered signal to A (decimal number).
in TTL mode : A = -10 -> 10 V
in other modes : A = 0 -> 20 V
In case of overvalue, amplitude is set to the nearest accepted
limit, and a warning message is displayed
'offset', val : Set the offset to val [V] (float number). Range = [-10, 10] V
'frequency', F : Set the main Frequency to F Hz.
F = 10 mHz - 5 MHz (0.01 -> 5e6)
F may be specified in normal or scientific notations.
'limit', 'on'|'off'|value [V] :
Enable | Disable | Set voltage limitation output for securing
the powered circuitry. Beware that setting a new value does
not automatically enable the limitation.
'rWidth', rW : Set the relative width [%] of square signal: range= [5, 95] %
rW = Relative duration of Vmax state / periode
'width', w : Set pulse duration [s]. At a given frequency F, the relative
pulse width rW is set to achieve the required pulse duration.
One should have w = rW.F , with 0.05 < rW < 0.90
'modulation', [ Type Source] : Start modulation mode of the specified Type and
Source, with possible values:
Type: 'SWP' | 'AM' | 'FM' | 'FSK' | 'PSK' | 'TTL'
SWP: Frequency Sweeping (vobulation)
AM: Amplitude Modulation
FM: Frequency Modulation
FSK: Frequency Shift Keying (Numerical FM)
PSK: Phase Shift Keying (Numerical Phase modulation)
TTL: Gate modulation (source parameter not required)
Source: 'int' | 'ext' (respectively: internal, or external)
External modulation can be performed when an external source
is connected to the device through its
"Modulation input" BNC connector.
Examples:
'modulation', ['FSK' 'int']: start FSK internal modulation
'modulation','stop': Stop running modulation & return
to fixed frequency delivery.
'modParam',arg : Set modulation parameters (without stopping any running
modulation).
Note: A running modulation must be stopped before changing its
parameters (else, parameters are not updated).
arg=['AM' modRate ] : Set modulation rate for AM modulation, in %.
modeRate must be a positive decimal number <= 100
specified as a string
arg=['FM' FM_shift] : Set the frequency shift for FM modulation.
FM_shift must be a string among the following (as shifts
specified in Hz):
'100'|'300'|'1K'|'3K'|'10K'|'30K'|'100K'|'300K'|'1M'
arg=[Type F_start F_end Periode ]: Set internal sweeping parameters
Type=0 : Linear variation of the frequency
Type=1 : Logarithmic variation of the frequency
F_start : Starting frequency [Hz]. in [0.2 Hz, 5 MHz]
F_end : Ending frequency [Hz]. in [0.2 Hz, 5 MHz]
Warning: Sweeping is performed with increasing frequencies
(so F_start & F_end are inverted if F_start > F_end)
Periode : Sweeping periode [s]. in [20 ms, 20 s]
The 4 parameters must be specified as numbers
arg=[ 'FSK' F2 ] : Set the second frequency F2 for FSK modulation.
F2 in Hz as a string
arg=[ 'PSK' phase ] : Set the phase shift [°] for PSK modulation.
phase must belong to [0 360[ ° and be specified in a string.
'store', nS : Store in the nSth set of parameters the current ones.
nS= 1->9 (integer)
'recall', nS : Set current parameters to their values stored in the nSth set
of params.
nS= 1->9 (integer). Set #0 is reserved for default params.
'Fmeter', flag : Set or unset the device as a frequency-meter
flag= %F | 'off'| 0: Set the device as a Functions Generator (default)
flag= %T | 'on' | any not null number: => device = Frequency-meter.
Frequency range: 100 mHz - 100 MHz.
Input: "Counter Input" BNC