SpikeGLX maintains a table of NI clock sources in the file
_Calibration\calibrated_sample_rates_nidq.iniThe entries in this table have the form:
Name : Set_rate=Measured_rate
Name: This is just a label you provide to help
you recognize different sources you might use in your lab. We expect you
might pick a name like Whisper if you are using a
Janelia-built Whisper multiplexer, or Internal if electing
to use program the NI device’s own internal Ctr0 clock. We now
auto-generate a suggestion for your convenience.
Set_rate: This is the rate that is used to program a clock, for example, a Whisper’s clock is nominally 25000 Hz, or you might set 25000 Hz to program the NI internal clock.
Measured_rate: Until you have done a calibration
the measured rate is initialized to be the Set_rate. When
you use the SpikeGLX calibration features, the measured rate is updated
with a more accurate measurement result. In any case, the
Measured_rate is used as the best available estimator of
the true sampling rate for the device.
How fast can the device go?
S-series (61xx) and some X-series (63xx) devices support simultaneous sampling, which means that each AI channel has its own amplifier and ADC, so can digitize samples independently and in parallel. These devices can sample at their maximum advertised rate at any channel count.
By contrast, M-series (62xx) and some X-series devices have a single
amplifier/ADC pipeline that is shared by all AI channels. The inputs are
switched into the digitizer in a serial fashion, one at a time. The
maximum rate these multiplexing devices can go is the
advertised sample rate R0 divided by the number of
channels: R0/nchan.
The shortest time it takes to digitize a sample is the
convert period which is 1/R0. However, when
multiplexed inputs are switched it takes a small amount of time to allow
charge from the previous sample to dissipate and the amplifier to settle
to the new nominal charge level. The NI data sheet for your device will
list the settle time (W) required to achieve a desired accuracy level
for the voltage measurement. Enter the value from the data sheet into
the ‘Settle microsecs’ box. For example, for the 6221, 7 us are required
to reach the +/- 1 bit level. NI suggests adding a little margin to be
safe (SpikeGLX multiplies your input W by 1.4). That makes the
safe rate = [1/(1/R0 + 1.4e-6 * W)]/nchan.
If you’ve configured a multiplexing device to acquire from several channels but some of the listed inputs are unused/floating, then you will see ghost signals on the unused channels. This happens because the high impedance ADC input still sees residual charge from the last connected channel; and if the next channel in the multiplexing sequence isn’t connected to anything, that charge has nowhere to go, so it gets digitized again and assigned to the current channel. To avoid ghosts:
What sample rate can I actually program?
Digitizing hardware needs to be driven by a square wave: a
clock source that can be generated by another external
device or by the internal pulse counter (Ctr0) on-board the
NI device.
External Source
If using an external clock, its rate is what it is. We allow you to directly set that value into the rate box.
Internal Source
When the internal source is selected, we program its rate by defining
a task that counts a specified number of whole pulses of the device’s
master timebase. That is, realizable rates are limited to:
timebase/integer. In this case, you must enter the integer
and we put the result into the rate box.
SpikeGLX restricts rates to the range: [100,1M] Hz.
fin