Welcome | spec | C-PLOT | Support | Users | Contact
 



Motors
Counters
MCA
Interfaces

    Hardware reference : Multichannel Data Acquisition : Oxford/Tennelec/Nucleus PCA II, PCA-3, PCA Multiport

Oxford/Tennelec/Nucleus PCA II, PCA-3, PCA Multiport



Interface:
  • GPIB, ISA


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.

  • Top