Page 4.7
BRIC
INTEGRATED PXI MATRIX SYSTEM WITH BIRST™ (40-562B)
pickering
SECTION 4 - PROGRAMMING GUIDE
PROGRAMMING THE MODULE - INDEPENDENT ISOLATION VERSION
Independent isolation versions of the 40-562B are identified by an “ii” suffix (e.g. 40-562B-121-154x8-ii). For all
configurations of this version, the entire matrix is treated as a single programming sub-unit designated as Sub-Unit
1, and the isolation switches of all sub-matrix cards are contained in a single sub-unit designated as Sub-Unit 2.
Therefore, to create an X to X signal path between sub-matrix cards, four switches have to be individually enabled.
For example, if we want to connect X1 to X30, first crosspoints X1,Y1 (sub-matrix card 1) and X30,Y1 (sub-matrix
card 2) are enabled. Then the Y1 isolation switches are enabled on both cards to complete the connection by
routing the signal via the backplane. The sub-unit usage is summarized in Table 4.1 and Figure 4.5.
The following examples give some simple code fragments using the Direct IO driver, and the VISA driver. Channel
naming for the IVI compliant driver is shown in Table 4.2 and Table 4.3.
TABLE 4.1 - 40-562B Matrix (Independent Isolation Version)
- Sub-unit Allocations
Sub-unit
Description
1
Matrix - 22x8 for each sub-matrix fitted (396x8 for a fully populated BRIC12)
2
Backplane Isolation Switches - 8 for each sub-matrix fitted (144 for a fully populated BRIC12)
Setting an X to Y Signal Path Using The Direct I/O Driver or VISA Driver:
Using the Pickering Direct I/O driver:
DWORD sub_unit = 1; //Matrix
PIL_ClearSub(CardNo, sub_unit); //Clear all crosspoints to off state
PIL_OpCrosspoint(CardNo, sub_unit, 3, 2, 1); //Set crosspoint x2, y3
DWORD sub_unit = 2; //Backplane Isolation Switches
PIL_OpBit(CardNo, sub_unit, 3, 1); //Route y3 to the backplane
DWORD sub_unit = 1; //Matrix
PIL_OpCrosspoint(CardNo, sub_unit, 3, 2, 0); //Release crosspoint x2, y3
DWORD sub_unit = 2; //Backplane Isolation Switches
PIL_OpBit(CardNo, sub_unit, 3, 0); //Disconnect y3 from the backplane
Using the VISA driver:
ViUInt32 sub_unit = 1; //Matrix
pipx40_clearSub(vi, sub_unit); //Clear all crosspoints off state
pipx40_setCrosspointState (vi, 1, 3, 2, VI_ON); //Set crosspoint x2, y3
ViUInt32 sub_unit = 2; //Backplane Isolation Switches
pipx40_setChannelState(vi, sub_unit, 3, VI_ON); //Route y3 to the backplane
ViUInt32 sub_unit = 1; //Matrix
pipx40_setCrosspointState (vi, sub_unit, 3, 2, VI_OFF); //Release x2, y3
ViUInt32 sub_unit = 2; //Backplane Isolation Switches
pipx40_setChannelState(vi, sub_unit, 3, VI_OFF); //Disconnect y3 from backplane