MX Foundation 4
Synchronization signal chaining

MAXT devices can be synchronized with each other, except for FlexMAX devices that can only be synchronized with each other, by using the sync in/sync out connectivity. This daisy chain allows time correlation across all devices with an accuracy of less than 100 nanoseconds.

When daisy-chaining Flex PCIe or FlexMAX devices, nothing special must be done by the application, everything is automatically handled by MX Foundation.

For Ethernet and USB devices or PCIe devices synchronized with Ethernet or USB devices, application initialization must be made to manage the order of device initialization. Here are the steps the application must performed at initialization and each time a device needs to be reset:

1- Initialize MX Foundation library on all devices with mxfSystemInit() or mxfSystemResourcesInit().
2- Unload MX Foundation library on all devices with mxfSystemTerminate().
3- Initialize MX Foundation library on master device with mxfSystemInit() or mxfSystemResourcesInit().
4- Initialize MX Foundation library on slave devices with mxfSystemResourcesInit().

These steps will ensure the proper initialization and synchronization of the timer on all devices.

From MXF version 4.4.2, a new mxfSystemsInit() function allows to correctly initialize all devices in one function call by passing the handle of all servers.

For termination, these two steps must be performed in order:

1- Terminate MX Foundation library on slave devices with mxfSystemTerminate().
2- Terminate MX Foundation library on master device with mxfSystemTerminate().

From MXF version 4.4.2, a new mxfSystemsTerminate() function allows to correctly terminate all devices in one function call by passing the handle of all servers.

For auto-run devices, a mechanism to communicate the state of the different steps between devices should be done by the applications to perform the steps in the right order.

MXF_DEVICE_INFO.master field can be used to know if the device is master or slave.

Another possibility to synchronize devices is to used an IRIG-B digital signal as input on all devices and use IRIG-B timebase in the application. The time correlation across all devices with be a little less accurate than sync in/sync out connectivity, but could be sufficient for many cases. If no IRIG-B digital source is available, Flex IRIG-B generator can be used.

If more than one master device is found on a system, the MAXT_ERROR_MANY_MASTER error will be returned at initialization. This error can be ignored if the time correlation between the devices is not important.

Here is how to daisy-chain multiple MAXT devices:

500series_sync.png
MAXPXIe 500 and MAXPCIe 502 Daisy chain
Updated 10/23/2023