54.2. Using wienercamac

The Wiener CC32 module addressing is controlled by jumpers on that module's circuit board. We have chosen and addressing standard that allows for up to 8 Wiener VC32/CC32 modules in a VME crate. Each of these modules is a CAMAC branch that has a single crate installed, crate 0.

The jumpers JA13 through JA23 define the base address for the module. Eachj jumper represents an address bit. If the jumper is in, the corresponding address bit is 0. If out, 1. The table below shows the address conventions we use for these modules:

Table 54-1. Wiener CC32 addressing convention

Branchja23ja22ja21ja20ja19ja18ja17ja16ja15ja14ja13base addreess
0outinininininininininin0x800000
1outininininininoutininin0x810000
2outinininininoutinininin0x820000
3outinininininoutoutininin0x830000
4outinininininoutinininin0x840000
5outinininininoutinoutinin0x850000
6outinininininoutoutininin0x860000
7outinininininoutoutoutinin0x870000

The commands in the package are loosely based on a subset of the ESONE CAMAC function standard (IEEE 785). In that standard, the unit of address is a single CAMAC module. The cdreg produces a handle to a module which is then used in subsequent commands that operate on that module. Extensions to the standard include commands that allow you to get the graded lam register values, sense and control the inhibit and determine if the crate is online.

While the ESONE block transfer functions are supported, connecting a LAM to a script is not. The example below enables the LAM on a module in Slot 15 of the first controler in VME crate 0.

Example 54-1. Enabling a module Lam with wienercamac


# Load the package.

lappend auto_path [file join $env(DAQROOT) TclLibs]
package require wienercamac

#  Initialize the crate and uninhibit it

wienercamac::C 0 0
wienercamac::Z 0 0
wienercamac::Inhibit 0 0 false

# Make the module handle:

set module [wienercamac::cdreg 0 0 15]

# F26 at any subaddress normally enables LAM:

wienercamac::cssa $module 26 0