!Template file for CAMAC 284 cards !Prepared by Rich Neswold ! ! 284 Pulsed Digital Output ! ! This card has three different "modes" of operation. This means there are ! up to three different ways to manipulate a device. In this document, each ! DABBEL property will be repeated up to three times to describe the en- ! coding for each mode. ! ! MODE 1 (MACA Replacement Style): ! ! Basic Control ! ! In this mode, two words of data are passed to the driver. The first ! word contains the house code. The second word contains a 16-bit mask, ! indicating which bits should be pulsed. Since the data contains a ! house code, which can be used to determine the crate, the crate field ! in the SSDN isn't used. ! ! Reading/Basic Status ! ! Returns the status of all 24 houses in a 24-word buffer. If a house ! returns an error, its position in the buffer is filled with an error ! code specified by the SSDN. The crate field isn't used, but the slot ! field is. ! ! MODE 2 ! ! Basic Control ! ! In this mode, the crate field is used to address a specific crate. ! One word is passed to the driver. The value of the data can be 1 ! through 16, to indicate which bit to pulse. ! ! Reading/Basic Status ! ! This returns the entire status of a 284 card in a specific crate ! and slot. The status, I believe, is the state of the 16 output bits. ! ! MODE 3 ! ! Basic Control ! ! In this mode, the crate field is used to address a specific crate. ! Two words are passed to the driver. The first word must be 0. The ! second word contains a 16-bit mask of which bits are pulsed. ! ! Reading/Basic Status ! ! This returns the status of a 284 card in a specific crate and slot. ! The status, I believe, is the state of the 16 output bits. ! !------------------------------------------------------------------------------ ADD X:XXXXXX ( ' ' , node , , 7FFFFFE ) \______/ \______________________/ \__/ \_______/ \_____/ dev name 24 character description node sibling con. mask --------------------- BASIC CONTROL --------------------- (MODE 1) SSDNHX BCNTRL (69FF/nn00/8000/0000) \/ slot number PRO BCNTRL ( 4, 4, ftd ) \/ FTD Since this module is a group of 16 bits, the various "commands", specified in PDB BCNTRL, depend heavily upon how the outputs are wired. The basic format for each of the commands is: mmmm00hh (hex layout) Where 'mmmm' is a 16-bit mask of the bits that are associated with the command. The 'hh' field determines the house code. PDB BCNTRL ( ??, ??, ??, ??, ??, ?? ) \/ \/ \/ \/ \/ \/ | | | | | neg command | | | | pos command | | | off command | | on command | reset command attribute definition mask (MODE 2) SSDNHX BCNTRL (69FF/nncc/0000/0000) \/\/ | crate number slot number PRO BCNTRL ( 2, 2, ftd ) \_/ FTD Since this module is a group of 16 bits, the various "commands", specified in PDB BCNTRL, depend heavily upon how the outputs are wired. The basic format for each of the commands is: 00bb (hex layout) Where 'bb' is 1 through 16, indicating which bit should be pulsed. PDB BCNTRL ( ??, ??, ??, ??, ??, ?? ) \/ \/ \/ \/ \/ \/ | | | | | neg command | | | | pos command | | | off command | | on command | reset command attribute definition mask (MODE 3) SSDNHX BCNTRL (69FF/nncc/0000/0000) \/\/ | crate number slot number PRO BCNTRL ( 4, 4, ftd ) \_/ FTD Since this module is a group of 16 bits, the various "commands", specified in PDB BCNTRL, depend heavily upon how the outputs are wired. The basic format for each of the commands is: mmmm0000 (hex layout) Where 'mmmm' is a 16-bit mask of the bits that are associated with the command. PDB BCNTRL ( ??, ??, ??, ??, ??, ?? ) \/ \/ \/ \/ \/ \/ | | | | | neg command | | | | pos command | | | off command | | on command | reset command attribute definition mask --------------------- BASIC STATUS --------------------- (MODE 1) SSDNHX BASTAT (69FF/nn00/8000/eeee) \/ \__/ | error code slot number PRO BASTAT ( 48, 48, ftd ) \_/ FTD This mode returns a buffer containing the status of each house. The PDB will be applied to each status. It is imperative that each module's outputs are wired identically! Since this module is a group of 16 bits, the various status fields, specified in PDB BASTAT, depend heavily upon how the outputs are wired. The basic format for each of the commands is: mmmm (hex layout) Where 'mmmm' is a 16-bit mask of the bits that are associated with the status. PDB BASTAT ( ??, ??, ??, ??, ??, ??, ?? ) \/ \/ \/ \/ \/ \/ \/ | | | | | | neg status | | | | | pos status | | | | off status | | | on status | | reset status | invert mask attribute definition mask (MODES 2 and 3) SSDNHX BASTAT (69FF/nncc/0000/0000) \/\/ | crate number slot number PRO BASTAT ( 2, 2, ftd ) \_/ FTD Since this module is a group of 16 bits, the various status fields, specified in PDB BASTAT, depend heavily upon how the outputs are wired. The basic format for each of the commands is: mmmm (hex layout) Where 'mmmm' is a 16-bit mask of the bits that are associated with the status. PDB BASTAT ( ??, ??, ??, ??, ??, ?? ) \/ \/ \/ \/ \/ \/ | | | | | pos status | | | | remote/local status | | | ready status | | on status | invert mask attribute definition mask --------------------- READING --------------------- (MODE 1) SSDNHX READNG (69FF/nn00/8000/eeee) \/ \__/ | error code slot number PRO READNG ( 48, 48, ftd ) \_/ FTD (MODES 2 and 3) SSDNHX READNG (69FF/nncc/0000/0000) \/\/ | crate number slot number PRO READNG ( 2, 2, ftd ) \_/ FTD --------------------- ALARMS --------------------- The designers of this CAMAC module made a decision that slightly complicates alarm definitions. Since all of the bit addressing is done through the data in the request packet, all the SSDNs for a given card are very similar. Since EMCs must be unique, steps must be taken to make the SSDNs unique. Throughout this document, the last two words of the SSDN were specified to be zero (except for the MSB of the third word). If the card is to have a digital alarm, then it is up to you to change these unused fields so that the SSDN, and hence the EMC, is unique. (MODE 1) EMX (02nn/ss00/8000/0000, 0000/0000/0000/0000) \/ \/ \______/ | | Must be unique for a given card | Slot number Node number of front-end SSDNHX DGALBL (69FF/nn00/8000/0000) \/ slot number PRO DGALBL ( 48, 20, fq, nv, mv, 2, de, le, 1, ai, ab, 0, tries, ev1, ev2 ) \/ \/ \/ \/ \/ \/ \/ \___/ \______/ | | | | | | | | events | | | | | | | tries needed | | | | | | beam abort | | | | | abort inhibit | | | | log event | | | display event | | mask value | nominal value frequency PRO DGALTX ( dgmask, condval, prior, text ) \____/ \_____/ \___/ \__/ | | | 24 character text string | | message priority (0 - 255) | condition value digital mask PRO EXTEXT ( 1, bit, col0, text0, col1, text1, ext_text ) \_/ \__/ \___/ \__/ \___/ \______/ | | | | | 24 chars of extended text | | | | 7 chars if bit is 1 | | | color if bit is 1 | | 7 chars if bit is 0 | color if bit is 0 bit number of respective bit (MODES 2 and 3) EMX (02nn/sscc/0000/0000, 0000/0000/0000/0000) \/ \/\/ \______/ | | | Must be unique for a given card | | Crate number | Slot number Node number of front-end SSDNHX DGALBL (69FF/nncc/0000/0000) \/\/ \_______/ | | Must be the same as the last two words of the EMC | crate number slot number Because one 284 card can control multiple pieces of hardware, there could be the situation that more than one device is using the 284 module. If this is the case, then both devices would have the same SSDN for Basic Status access. EMCs, however, need to be unique. To solve this problem, the last two words should contain values that aren't used by any other device associated with the card. PRO DGALBL ( 2, 20, fq, nv, mv, 2, de, le, 1, ai, ab, 0, tries, ev1, ev2 ) \/ \/ \/ \/ \/ \/ \/ \___/ \______/ | | | | | | | | events | | | | | | | tries needed | | | | | | beam abort | | | | | abort inhibit | | | | log event | | | display event | | mask value | nominal value frequency PRO DGALTX ( dgmask, condval, prior, text ) \____/ \_____/ \___/ \__/ | | | 24 character text string | | message priority (0 - 255) | condition value digital mask PRO EXTEXT ( 1, bit, col0, text0, col1, text1, ext_text ) \_/ \__/ \___/ \__/ \___/ \______/ | | | | | 24 chars of extended text | | | | 7 chars if bit is 1 | | | color if bit is 1 | | 7 chars if bit is 0 | color if bit is 0 bit number of respective bit