Using the general input output of the SCU for TTL triggers
The SCU provides 2 groups of lemo inputs. At the stage of this writing only two of them are available
These can be used as input or output. The following variables allow different configurations:
These are enabled assiging one of the lines to them. The line is then reserved as input or output as required. The line must be activated by setting 0 to TOP:PC:TRIGGER_LINES:CONFIGURE!
The usage of the different variables is discussed below.
Enabling/Disabling the line
The different GIO can be assigned to the different functionality. One line can only be assigned to one functionality.
- The functionality is disabled by setting the variable to 0
- It is enabled by setting the variable to the line number to be used
The different variables must be set first, and then the command
must be executed by assinging some long value to it (e.g 0). This will then make the power converter evaluate the differnet variables and then make the required configuration. Please note the power converter program is picky that only one line is assigned to one of the input or output variables. If one line is assigned to more than one of the variables it will not give any proper information on the offening variable.
Enabling the next cycle
The power converter can run continuous cycles. Before each cycle is executed it can check a specified line, if it is active (TTL high). If so it will execute a single cycle. The line is specified using the variable
Triggering the start of the next cycle
This functionality is quite similar to the functionality above. But in this mode the power converter will wait until the line goes to TTL Low. Please be aware it is "level triggered". This means the program proceeds the following way:
- It will check if the line specified by
TOP:PC:TRIGGER_LINES:TRIGGER_CYCLE is TTL low
- If not it will poll this line periodically until it is TTL low up to a maximum time specified by
TOP:PC:TRIGGER_LINES:TIMEOUT. This value can be set up to 65 seconds. It's default is 1 second.
- During this polling no further line is checked!
Be aware that a delay of 25 μs or more can occur! The 25 μs are a good estimate of the minimum time required for reading one register value on the SCU hardware.
Flagging the cycle
When a line is assigned to
is set, the program will set this line to
- TTL low before the first pause of the cycle
- to TTL high before it executes the first ramp (change of current) of the cycle
If the first pause is zero, it will be low for roughly 25 μs.
Flagging the ramp
When a line is assigned to
the power converter will indicate when it is executing a ramp. Thus it will set the line
- to TTL high when it executes the ramp (change of current)
- to TTL low when it finished the ramp
If no delay was specified, the time of the low ramp is indicating the time that the power converter requires to
- read back the set value of the function generators
- read back the value of the ADC's
- check that these are appropriate
- calculate the parameters for the next ramp
If a delay is specified this time is added as well.
Adding new trigger lines
- add an appropriate variable to the
struct power_converter_ramp_t in
- implement appropriate get/set "methods" best in
- add these to
array trigger_nodes in
- add the handling in
power_converter_trigger_lines_scu.ic in function
- recompile all files in the folder pc by executing
- test it!
- send me a post card if the description works exactly as given here