Working with Multiple i2x0/i60x Controllers REFERENCE > ADVANCED TECHNIQUES >
One can attach up to eight i240/i60x controllers to a computer to increase total system throughput. For example,
four i240 controllers (where each is attached to a separate i4xx Card Cage or i100 box) can digitize 16 total channels
at 41Ks/sec/channel; or 32 channels at 20.5K each. In this example, each controller runs at 166Ks/sec/controller
and the entire system runs at 664Ks/sec/system.
When working with multiple controllers, the meaning of the "network number" becomes more important,
since it selects a particular network in the Data Tree from which to operate.
To digitize simultaneously from multiple controllers, one must select channels for
digitizing in the Network page (any channel combination across all controllers), and
then press the Start button in the Record page.
Multiple i240/i60x USB Controllers attach to 1 USB Hub
One can attach up to eight
USB controllers to a USB ≥ 2.0 High Speed hub,
and then attach that hub directly to a computer. In this case, it is recommended that no other USB device attach to that hub.
To improve communication speed between hub and computer, one would attach a USB ≥ 3.0 HUB to a computer's USB ≥ 3.0 connector. If working with multiple i240/i60x controllers, please make sure you are working with instruNet software ≥ v3.7.
Multiple Controllers Do Not Digitize At Exact Same Sample Rate
Each i2x0/i60x controller has it's own crystal oscillator that paces the collection of samples from
that controller. One can expect these to be different by as much as 5 uSec per 1 second of digitizing (5ppm maximum, 1ppm typical).
This means that if you digitize the same signal for 1 second from multiple controllers; and you synchronize the
1st point of the digitization via Trigger
(to make it accurate to +-10uSec); then the last point of the
digitization from each controller will vary in time by as much as +-5uSec between the first controller and the other controllers.
Put differently, if the 1st controller sample rate is X, then the sample rate of the other controllers
will be at most (X * 1.000005), even though the sample rate field in the
software is commanding all controllers to digitize at the same rate (due to inaccuracy of i2x0 crystal oscillator IC).
For example, if you digitize 10k seconds (~3 hours) at 100s/sec/ch (10K * 100 = 1M points) with multiple controllers, then then last point (i.e. point number 1M) of waves from the two controllers might differ in time by as much as 50mSec (0.000005 * 1M = 5 points, 5 points at 100s/sec corresponds to 50mSec).
To see this, digitize the same waveform with two controllers (e.g. 100M points, 1 scan),
and then look at how these are shifted in time at the end of the digitization.
Synchronising Sample Rate
One sets the sample rate (samples-per-second-per-channel) in the Record page Setup dialog and
do their best to achieve this rate. If you ask for a very fast rate (e.g. 100ks/sec/ch) and one i20x/i60x controller
can achieve this (e.g. 1 channel at 100ks/sec/ch) and the 2nd controller is running slower
(e.g. 10 channels at 10ks/sec/ch), then the Setup
dialog will display "100k" (i.e. the fastest). If one then selects
Digitize Channels Report under the Setup menu,
they will see the actual sample rate for each channel. To encourage all channels to run at the same rate,
set the Setup sample rate to the lowest seen in the Digitize Channels Report (e.g. tell the 1 channel in controller #1 to run at 10k).
Due to internal clocks and integer math, it is sometimes not possible for all channels to run at
the exact same rate. In this case, one has several options:
Analysis software uses the actual sample rate for each channel
as specified in exported data (e.g. sample rate row in "Excel Waveform Data.txt" file).
Change channel settings slightly and try again.
Change requested sample rate and search for one that
produces the same rate for all channels.
To evalulate a setup in instruNet World software, click the Start button, wait several seconds, click the Stop button, and select Digitize Channels Report in the Setup menu. To evalulate a DASYLab setup, Execute for several seconds, Stop, click any instruNet input
icon, click the instruNet World button, and then then select Digitize Channels Report in the Setup menu
Digitizing without Trigger
When you start digitizing from multiple i2x0/i60x controllers
with Trigger turned OFF,
the Windows computer commands each controller to begin digitizing with approximately 1.0 mSec of time
between each command. This means that the waves digitized from each controller will offset in time approximately 1.0 mSec
between the 1st controller and 2nd controller, 1.0 mSec between the 2nd and 3rd, and so forth and so on.
Digitizing with Trigger
To reduce the start time between multiple i2x0/i60x controllers from approximatley 1mSec to less than 10uSec, one can
set up all controllers to trigger from the same external trigger signal. This might or might not be convenient
since it involves setting up an additional external signal.
Notice that each controller has its own Trigger settings (as opposed to one Trigger dialog box for entire computer).
This is because each controller operates independently (i.e. each has its own processor that manages
its own data acquisition task). To access a Trigger
dialog for a specific network, press the Trigger button in the Setup Dialog, and
then select a specific network in the Network popup menu.
Setting the Trigger with multiple controllers is a little tricky since one controller
cannot physically see the trigger signal attached to other controllers, and each controller
has no way of sending messages to its colleagues in a short period of time. To make
the digitizing from all networks trigger off the same signal, one must attach the trigger
signal to one channel from each network, and set up the Trigger dialogs for each network to
trigger off that one channel in each of their respective networks.
For example, to trigger from the i4xx/i60x Ch29 Uio25_28
Din channel (4 bits interpreted as 0 to 15 value),
one must specify this channel as the trigger source, set the Threhold to 7.5, and attach the trigger signal to UIO28.
When UIO28 is high (i.e. 2V to 5V) Ch29 is read as a 4bit value between 8 and 15, and when UIO28 is held low (i.e. 0V to 0.8V)
Ch29 is read as a 4bit value between 0 and 7.