Oxford/Tennelec/Nucleus PCA II, PCA-3, PCA Multiport
Interface:
config file
PC_PCAII = device_name base_address INTR|POLL
PC_PCA3 = base_address
GP_PCA_M = gpib_address
edconf:
DEVICES screen
MCA-like DEVICE ADDR <>MODE <>TYPE
YES 0x1e0 POLL The Nucleus PCA II MCA Board
YES /dev/pca 0x1e0 INTR The Nucleus PCA II MCA Board
YES 0x210 The Nucleus PCA-3 MCA Board
YES 7 The Nucleus PCA Multport (GPIB)
The PCA II and PCA-3 are ISA (PC card) multichannel analyzers.
The PCA Multiport is a standalone MCA that spec currently
supports using GPIB. The PCA-3 and PCA Multiport both support
counting to live-time and real-time presets and both return
dead-time information. The PCA II only supports presets and
dead-time corrections when used in conjunction with a CSS provided
driver, which is only available on selected PC UNIX platforms.
Otherwise, the PCA II can be used in user-level I/O mode, with the
timing performed by some other hardware timer or the software clock.
The PCA-3 and PCA Multiport come with 16384 channels, while the
PCA II only supports up to 8192 channels. When acquiring data, the
channels can be partioned into groups of 256, 512, 1024, ... channels
up to a single group that contains all the channels. Thus, the PCA-3
and PCA Multiport allows a maximum of 64 groups of 256 channels,
32 groups of 512 channels, etc. The maximum number of groups on
the PCA II depends on the amount of memory installed on the board.
See the drivers/README file in the spec distribution for
information on installing the PCA II driver.
If using the interrupt-driven mode, note the following: Apparently,
the PCA II doesn't trigger an interrupt on some PC mother boards.
This problem can be fixed by changing the value of the resistor
labeled R12 on the "PCA2 Memory Card" circuit diagram. This resistor
is located near the lower left corner of the main board when viewed
from the component side with the connector fingers pointing down and
the input BNC to the right. R12 is about a centimeter down and to
the left of the U26 IC. The circuit diagram indicates the resistor's
value is 2K, however the boards seem to be shipped with a 1K resistor
(brown-black-red stripes). Soldering a second 1K resistor alongside
R12 and in parallel electrically will lower the resistance to 0.5K,
which seems to work.
(This modification was suggested by the manufacturer.)
Description:
 |
Description for all Multichannel Data Acquisition devices.
Function Reference:
mca_get(arr)-
Gets data from the currently selected
MCA-type device, and transfers it to
the data array
arr .
The native data type is
ulong .
mca_get(g, e)-
Gets data from the currently selected
MCA-type device, and transfers it to
element
e
of data group g .
Use of arrays rather than data groups is recommended.
The mca_par() function controls the board's behavior
as follows:
mca_par("disable", arg)-
If
arg is 1, prevents the MCA from being started
and stopped by the standard counting functions tcount()
and mcount() . If arg is 0, the
MCA will be started and stopped with the standard counting functions
(which is the default behavior).
mca_par("clear")-
clears the channel of the current group.
mca_par("run")-
programs the board with the current parameters and starts
acquisition. Note that the
tcount() and
mcount() functions, as used in the various counting
macros will also start PCA II acquisition.
mca_par("halt")-
stops acquisition. Note that the PCA II will also be halted when the
tcount() and
mcount() functions, as used in the various counting
macros, complete their count intervals or are aborted.
mca_par("group_size")-
returns the current group size.
mca_par("group_size", size)-
sets the group size to
size . Legal values are 256,
512, 1024, 2048, 4096 and 8192. Values above 1024 may not be
legal if insufficient memory is installed on the board.
mca_par("select_group")-
returns the currently active group. Groups are numbered starting
at zero.
mca_par("select_group", group)-
set the active group to
group . The number of
possible groups is given by the total number of channels on
the board divided by the group size. If the group
passed to the function is greater than the maximum number of
groups (based on the current group size and total number of
channels), the current group selected is group modulus
the maximum number of groups.
mca_par("pha")-
selects pulse-height analysis mode on the board.
mca_par("gain")-
returns the current gain value used in pulse-height analysis mode.
mca_par("gain", value)-
sets the pulse-height analysis gain to
value .
Legal values are 256, 512, 1024, 2048, 4096 and 8192.
mca_par("offset")-
returns the current channel offset used in pulsed-eight analysis mode.
mca_par("offset", value)-
sets the pulse-height analysis offset to
value .
Legal values are multiples of 256 from 0 to 7936.
mca_par("mcs")-
selects multichannel scaling mode on the board.
mca_par("dwell")-
returns the current multichannel scaling dwell time.
mca_par("dwell", value)-
set the multichannel scaling dwell time. Allowed values are
numbers between 1e-6 and 60 seconds with mantissa
of 1, 2, 4 or 8. A value of -1 selects external dwell.
If
value isn't an allowed value, it is rounded
to the nearest allowed value.
mca_par("mode")-
returns two if the board is in PHA live-time mode,
one if the board is in PHA real-time mode and
zero if the board is in MCS mode.
mca_par("readone", channel)-
returns the contents of channel number
channel .
mca_par("chan#")-
returns the contents of channel number
# . The
channel number is with respect to the current group.
mca_par("chan#", value)-
sets channel
# to value. The
channel number is with respect to the current group.
The following mca_par() functions are only valid
when the board is used with the interrrupt-driven driver.
mca_par("preset")-
in PHA mode, returns the current live-time or real-time preset
value in seconds.
mca_par("preset", value)-
in PHA mode, sets the current live-time or real-time preset
value to
value seconds.
mca_par("passes")-
in MCS mode, returns the number of preset passes.
mca_par("passes", value)-
in MCS mode, sets the number of preset passes to
value .
mca_par("live")-
in PHA mode, selects live-time counting.
mca_par("real")-
in PHA mode, selects real-time counting.
mca_par("dead")-
in PHA mode, returns the percent dead time, if accumulating in
live-time mode.
mca_par("elapsed_live")-
in PHA mode, returns the elapsed live time in seconds.
mca_par("elapsed_real")-
in PHA mode, returns the elapsed real time in seconds.
mca_par("elapsed_passes")-
in MCS mode, returns the elapsed number of passes.
----
mca_sel("?")-
Lists the configured MCA devices and indicates which
device is currently selected for the
mca_get() ,
mca_put() and mca_par() functions with an
asterisk. Also displays the MCA
device number for use with the mca_sget() ,
mca_sput() and mca_spar() functions and displays
whether the presence test found the unit unresponsive or if the
user has disabled the unit. Returns the total number of
MCA devices recognized in the config file.
|