The setup order for the different synchronization options | Synchronization (Option) |
|
|
Example for data writing
SpcSetData (hDrv[0], 0, 0, 1024, pData[0]);
SpcSetData (hDrv[1], 0, 0, 1024, pData[1]);
SpcSetData (hDrv[2], 0, 0, 1024, pData[2]);
(4) Define the board(s) for trigger master
At least one board must be set as the trigger master to get synchronization running. Every one of the synchronized boards can be programmed for beeing the trigger master device.
Register | Value | Direction | Description |
| |
SPC_COMMAND | 0 | r/w | Command register of the board | ||
| SPC_SYNCTRIGGERMASTER | 101 | Defines the according board as the triggermaster. | ||
Example of board #2 set as trigger master |
|
|
| ||
|
|
|
|
|
|
SpcSetParam (hDrv[2], SPC_COMMAND, | SPC_SYNCTRIGGERMASTER); | // Set board 2 to trigger master | |||
|
|
|
|
|
|
(4a) Define synchronization OR trigger
If you use synchronization with the starhub option you can even set up more than one board as the trigger master. The boards will be com- bined by a logical OR and therefore the boards will be started if any of the trigger masters has detected a trigger event.
The synchronization
If you set up the boards for the synchronization OR trigger all boards that are set as trigger master must be programmed to the same trigger- mode. If the boards are using different trigger modes this will result in a time shift between the boards. It is of course possible to set different edges or different trigger levels on the channels.
It is only possible to use the synchronization OR trigger if the board carrying the starhub
To find out what board is carrying the starhub
Example of setting up three boards to be trigger master
SpcSetParam (hDrv[0], SPC_COMMAND, | SPC_SYNCTRIGGERMASTER); | // Set board 0 | to trigger master | ||||||
SpcSetParam | (hDrv[1], | SPC_COMMAND, | SPC_SYNCTRIGGERMASTER); | // Set | board | 1 | to | trigger | master |
SpcSetParam | (hDrv[2], | SPC_COMMAND, | SPC_SYNCTRIGGERMASTER); | // Set | board | 2 | to | trigger | master |
(5) Define the remaining boards as trigger slaves
As you can set more than one board as the trigger master (starhub option only) you have to tell the driver additionally which of the boards are working as trigger slaves.
Register | Value | Direction | Description | |
SPC_COMMAND | 0 | r/w | Command register of the board | |
| SPC_SYNCTRIGGERSLAVE | 111 | Defines the according board as the trigger slave. |
Each of the synchronized boards must be set up either as a trigger master or as a trigger slave to get the synchronization option working correctly. Therefore it does not matter if you use the cascading or starhub option.
It is assumed that only one of the three boards (board 2 in this case) is set up as trigger master, as described in (3)
SpcSetParam | (hDrv[0], | SPC_COMMAND, | SPC_SYNCTRIGGERSLAVE); | // | Setting | all the other boards to |
SpcSetParam | (hDrv[1], | SPC_COMMAND, | SPC_SYNCTRIGGERSLAVE); | // | trigger | slave is a must ! |
|
|
|
|
|
|
|
It sometimes might be necessary to exclude one or more boards from the synchronization trigger. An example for this solution is that one or more output boards are used for continuously generating test patterns, while one or more acqusition boards are triggering for test results or error conditions. Therefore it is possible to exclude a board from the triggerbus so that only a synchronization for clock is done and the ac- cording boards are just using the trigger events they have detected on their own.
Register | Value | Direction | Description |
SPC_NOTRIGSYNC | 200040 | r/w | If activated the dedicated board will use its own trigger modes instead of the synchronization trigger. |
|
|
|
|
92 | MC.31xx Manual |