| 	
		 10623 Roselle Street, San Diego, CA 92121   
					
					• 
					(858) 550-9559   
					• 
					FAX (858) 550-7322   
					• 
					
					MODEL PCI-DIO-24D(H)   
					USER MANUAL   
					FILE: MPCI-DIO-24DH.G1o   
				Warranty   
					Prior to shipment, ACCES equipment is thoroughly inspected and tested to applicable specifications.   
					However, should equipment failure occur, ACCES assures its customers that prompt service and support   
					will be available. All equipment originally manufactured by ACCES which is found to be defective will be   
					repaired or replaced subject to the following considerations.   
					Terms and Conditions   
					If a unit is suspected of failure, contact ACCES' Customer Service department. Be prepared to give the   
					unit model number, serial number, and a description of the failure symptom(s). We may suggest some   
					simple tests to confirm the failure. We will assign a Return Material Authorization (RMA) number which   
					must appear on the outer label of the return package. All units/components should be properly packed for   
					handling and returned with freight prepaid to the ACCES designated Service Center, and will be returned   
					to the customer's/user's site freight prepaid and invoiced.   
					Coverage   
					First Three Years: Returned unit/part will be repaired and/or replaced at ACCES option with no charge for   
					labor or parts not excluded by warranty. Warranty commences with equipment shipment.   
					Following Years: Throughout your equipment's lifetime, ACCES stands ready to provide on-site or in-plant   
					service at reasonable rates similar to those of other manufacturers in the industry.   
					Equipment Not Manufactured by ACCES   
					Equipment provided but not manufactured by ACCES is warranted and will be repaired according to the   
					terms and conditions of the respective equipment manufacturer's warranty.   
					General   
					Under this Warranty, liability of ACCES is limited to replacing, repairing or issuing credit (at ACCES   
					discretion) for any products which are proved to be defective during the warranty period. In no case is   
					ACCES liable for consequential or special damage arriving from use or misuse of our product. The   
					customer is responsible for all charges caused by modifications or additions to ACCES equipment not   
					approved in writing by ACCES or, if in ACCES opinion the equipment has been subjected to abnormal   
					use. "Abnormal use" for purposes of this warranty is defined as any use to which the equipment is   
					exposed other than that use specified or intended as evidenced by purchase or sales representation.   
					Other than the above, no other warranty, expressed or implied, shall apply to any and all such equipment   
					furnished or sold by ACCES.   
					Manual PCI-DIO-24DH   
					3 
				Table of Contents   
					Chapter 1: Introduction................................................................................................. 5   
					Specifications ............................................................................................................ 7   
					Figure 1-1: Card D or H Block Diagram .................................................................. 8   
					Chapter 2: Installation................................................................................................. 10   
					Chapter 3: Option Selection....................................................................................... 12   
					Figure 3-1: Option Selection Map version D.......................................................... 13   
					Figure 3-2: Option Selection Map version H ......................................................... 13   
					Chapter 4: Address Selection .................................................................................... 14   
					Chapter 5: Software .................................................................................................... 15   
					Chapter 6: Programming ............................................................................................ 16   
					Table 6-1: Address Assignment Table................................................................... 16   
					Table 6-2: Control Register Bit Assignment........................................................... 17   
					Chapter 7: 8254 Counter/Timer.................................................................................. 21   
					Chapter 8: Connector Pin Assignments.................................................................... 27   
					Table 8-1: 50-Pin Connector Pin Assignments...................................................... 27   
					
					Manual PCI-DIO-24DH   
					4 
				Chapter 1: Introduction   
					Features   
					• 
					• 
					• 
					• 
					• 
					• 
					• 
					• 
					24 Bits of Digital Input/Output.   
					All 24 I/O Lines Buffered on the Card.   
					I/O Buffers Can Be Tri-stated under Program Control.   
					Four and Eight Bit Ports Independently Selectable for I/O.   
					Pull-Ups on I/O Lines. Pull Down resistors may be installed at the factory (**per port 8 bit**)   
					Resettable fused +5V Supply Available to the User.   
					"H" version compatible with Industry Standard I/O Racks.   
					Three optional i8254 type (**9 16-bit converters**) counters.   
					Applications   
					• 
					• 
					• 
					• 
					• 
					• 
					• 
					• 
					• 
					Automatic Test Systems.   
					Laboratory Automation.   
					Robotics.   
					Machine Control.   
					Security Systems, Energy Management.   
					Relay Monitoring and Control.   
					Parallel Data Transfer to PC.   
					Sensing Switch Closures or TTL, DTL, CMOS Logic.   
					Driving Indicator Lights or Recorders.   
					Description   
					The card comes in two basic models. The difference between the two models is that I/O connections to   
					the D are via a standard 37-pin D-sub connector while I/O connections to the H are via a 50-pin   
					connector. The cards are 4.8 inches long and may be installed in any 5V PCI-bus slot in IBM and   
					compatible personal computers.   
					These cards provide 24 bits of parallel digital input/output on the PCI bus. These cards contain a type   
					8255-5 Programmable Peripheral Interface (PPI) chip. They can be programmed to accept inputs or to   
					provide outputs on three 8-bit ports designated Ports A, B, and C. Port C can be further divided into two   
					4-bit nibbles. The direction of each port is independent of other ports.   
					Also, bit 3 of Port C can be used as an internal interrupt to the computer if the Interrupt Select 0 jumper is   
					installed in the INT position. On the card, the EXT interrupt position is for factory testing. When bit C3   
					goes low (edge triggering) an interrupt is requested.   
					Each I/O line is buffered by a type 74ABT245B tristate buffer transceiver capable of sourcing 32 mA or   
					sinking 64mA. Pull-ups on the card assure that there are no erroneous outputs at power up until the card   
					is initialized by system software. The buffers are configured automatically by hardware logic for input or   
					Manual PCI-DIO-24DH   
					5 
					 
				output use according to direction assignment from a control register in the PPI. Further, if a jumper is   
					properly placed on the card, the tristate buffers may be enabled/disabled under program control. (See the   
					Option Selection section to follow.)   
					I/O wiring connections for the H card are via a 50-pin connector on the back plate of the card. Flat   
					insulation-displacement ribbon cables can be used to connect these cards to termination panels and relay   
					output cards. Also, the 50-pin connection provides compatibility with OPTO-22, Gordos, Potter &   
					Brumfield and Western Reserve Controls module mounting racks. Fused +5 VDC power is available on   
					the I/O connector at pin 49. The on-board fuse is rated at 0.5A at room temperature, and can be reset by   
					cycling computer power, or by removing the load.   
					I/O wiring connections for the D card are via a 37-pin D-sub connector on the back plate of the card. A   
					37-pin D-sub solder cup mating connector, or flat insulation-displacement ribbon cable can be used to   
					connect these cards to termination panels. The "D" version has a fused 5 volts available at connector pin   
					20. The on-board fuse is rated at 0.5A, and can be reset the same as the H version.   
					Manual PCI-DIO-24DH   
					6 
				Specifications   
					Digital Inputs (TTL Compatible)   
					• 
					• 
					• 
					Logic High:   
					Logic Low:   
					Load:   
					2.0 to 5.0 VDC   
					-0.5 to +0.8 VDC   
					±20 μA   
					Digital Outputs   
					• 
					• 
					Logic High:   
					Logic Low:   
					2.0 VDC min., source 32 ma   
					0.55 VDC max., sink 64 ma   
					Optional Counter/Timers   
					• 
					• 
					• 
					• 
					• 
					• 
					• 
					• 
					Type:   
					82C54 programmable interval counters (up to three)   
					Source 2.5 mA, sink 24 mA   
					Output drive:   
					Input Gate:   
					Clock:   
					TTL/CMOS compatible   
					On-board, 1 MHz crystal-controlled oscillator   
					Negative edge (falling edge)   
					Active Count Edge:   
					Minimum Clock Pulse Width:   
					30 ns high, 40 ns low   
					Timer Range:   
					Power Output:   
					16 bits (x3 per i8254)   
					Resettable 0.5A fused +5 VDC from computer bus   
					Power Required   
					• 
					Basic Unit:   
					+5 VDC at 170 mA typical if no current is drawn from   
					the auxiliary fused +5 VDC output   
					+5 VDC at 190 ma   
					• 
					• 
					• 
					With One Counter:   
					With Two Counters:   
					+5 VDC at 210 ma   
					With Three Counters: +5 VDC at 230 ma   
					Environmental   
					• 
					• 
					• 
					• 
					Operating Temperature Range: 0 °C. to 60 °C   
					Storage Temperature Range: -50 °C. to +120 °C   
					Humidity:   
					Size:   
					0 to 90% RH, non-condensing   
					4.8" Long (122 mm)   
					Manual PCI-DIO-24DH   
					7 
					 
				Optional Counter/Timers   
					These cards have options to include one, two, or three 82C54 counter(s) that each include three 16-bit   
					counter/timers factory configured in an optimal module for use as event counters, frequency output, pulse   
					width, and frequency measurement. See the Block Diagram which shows one 82C54 counter. If your card   
					has one or more of these optional counters, an -S01, -S02, or -S03 is appended to the model number for   
					one, two, or three counters respectively. For example, a 24-bit digital input/output card with a 50-pin   
					connector and two 82C54 counters is model H-S02.   
					Note   
					If you have a model D-S03, then the fused +5V power output is not available.   
					Manual PCI-DIO-24DH   
					9 
				Chapter 2: Installation   
					A printed Quick-Start Guide (QSG) is packed with the card for your convenience. If you’ve already   
					performed the steps from the QSG, you may find this chapter to be redundant and may skip forward to   
					begin developing your application.   
					The software provided with this card is on CD and must be installed onto your hard disk prior to use. To   
					do this, perform the following steps as appropriate for your operating system.   
					Configure Card Options via Jumper Selection   
					Before installing the card into your computer, carefully read Chapter 3: Option Selection of this manual,   
					then configure the card according to your requirements. Our Windows based setup program can be used   
					in conjunction with Chapter 3 to assist in configuring jumpers on the card, as well as provide additional   
					descriptions for usage of the various card options.   
					CD Software Installation   
					The following instructions assume the CD-ROM drive is drive “D”. Please substitute the appropriate drive   
					letter for your system as necessary.   
					DOS   
					1.   
					Place the CD into your CD-ROM drive.   
					2.   
					Type Bꢀ- to change the active drive to the CD-ROM drive.   
					3.   
					4.   
					Type GLQR?JJ- to run the install program.   
					Follow the on-screen prompts to install the software for this board.   
					WINDOWS   
					1.   
					2.   
					Place the CD into your CD-ROM drive.   
					The system should automatically run the install program. If the install program does not run   
					promptly, click START | RUN and type BꢀGLQR?JJ, click OK or press -.   
					3.   
					Follow the on-screen prompts to install the software for this board.   
					LINUX   
					1.   
					Please refer to linux.htm on the CD-ROM for information on installing under linux.   
					Caution! * ESDA single static discharge can damage your card and cause premature   
					failure! Please follow all reasonable precautions to prevent a static   
					discharge such as grounding yourself by touching any grounded   
					surface prior to touching the card.   
					Manual PCI-DIO-24DH   
					10   
					 
				Hardware Installation   
					1.   
					Make sure to set switches and jumpers from either the Option Selection section of this manual or   
					from the suggestions of SETUP.EXE.   
					2.   
					3.   
					4.   
					5.   
					Do not install card into the computer until the software has been fully installed.   
					Turn OFF computer power AND unplug AC power from the system.   
					Remove the computer cover.   
					Carefully install the card in an available 5V or 3.3V PCI expansion slot (you may need to remove   
					a backplate first).   
					6.   
					Inspect for proper fit of the card and tighten screws. Make sure that the card mounting bracket is   
					properly screwed into place and that there is a positive chassis ground.   
					Install an I/O cable onto the card’s bracket mounted connector.   
					Replace the computer cover and turn ON the computer which should auto-detect the card   
					(depending on the operating system) and automatically finish installing the drivers.   
					Run PCIfind.exe to complete installing the card into the registry (for Windows only) and to   
					determine the assigned resources.   
					7.   
					8.   
					9.   
					10.   
					Run one of the provided sample programs that was copied to the newly created card directory   
					(from the CD) to test and validate your installation.   
					The base address assigned by BIOS or the operating system can change each time new hardware is   
					installed into or removed from the computer. Please recheck PCIFind or Device Manager if the hardware   
					configuration is changed. Software you write can automatically determine the base address of the card   
					using a variety of methods depending on the operating system. In DOS, the PCI\SOURCE directory   
					shows the BIOS calls used to determine the address and IRQ assigned to installed PCI devices. In   
					Windows, the Windows sample programs demonstrate querying the registry entries (created by PCIFind   
					and NTIOPCI.SYS during boot-up) to determine this same information.   
					Manual PCI-DIO-24DH   
					11   
				Chapter 3: Option Selection   
					Refer to the setup programs on the CD provided with the card. Also, refer to the Block Diagram and the   
					Option Selection Map when reading this section of the manual.   
					Buffer Mode Jumper   
					A means of enabling or disabling (tristating) the 74ABT245B input/output buffers under program control is   
					provided at the jumper position labeled TST/BEN. When the jumper is in the BEN (Buffer Enable)   
					position, the I/O buffers are always enabled. When the jumper is in the TST (Tristate) position,   
					enabled/disabled state is controlled by a control register. See Chapter 6, Programming for a description.   
					Note   
					A jumper must be installed in EITHER the TST or the BEN position for the card to function.   
					Interrupt Mode Jumpers   
					Place the Interrupt Select 0 jumper in the INT position to select the Digital I/O interrupt.   
					Place the Interrupt Select 0 jumper in the EXT position to select the External Input interrupt.   
					Install the IRQD jumper to enable the Digital I/O or External Input interrupts.   
					Install the IRQT jumper to enable the Timer generated interrupt.   
					The foregoing are the only manual setups necessary to use these cards. Input/Output selection is done   
					via software by writing to a control register in the PPI as described in the Programming chapter of this   
					manual.   
					Optionally, the card may have been modified at the factory to convert the pull up resistors to pull down   
					resistors. The model number would then be similar to D S04 or H S04.   
					Manual PCI-DIO-24DH   
					12   
					 
				Chapter 4: Address Selection   
					These cards use one address space and occupy sixteen I/O locations. The S03 (which has 3 counters)   
					version takes up 32 I/O locations.   
					PCI architecture is Plug-and-Play. This means that the BIOS or Operating System determines the   
					resources assigned to PCI cards rather than the user selecting those resources with switches or jumpers.   
					As a result, you cannot set or change the card's base address or IRQ level. You can only determine what   
					the system has assigned.   
					To determine the base address that has been assigned, run the PCIFind.EXE utility program provided.   
					This utility will display a list of all of the cards detected on the PCI bus, the addresses assigned to each   
					function on each of the cards, and the respective IRQs (if any) allotted.   
					Alternatively, some operating systems (Windows95/98/2000) can be queried to determine which   
					resources were assigned. In these operating systems, you can use either PCINT or the Device Manager   
					utility from the System Properties Applet of the control panel. These cards are installed in the Data   
					Acquisition class of the Device Manager list. To display a list of the resources allocated, select the card,   
					click "Properties", and then select the "Resources Tab".   
					PCIFind uses the Vendor ID and the Device ID to search for your card, then reads the base address and   
					IRQ assigned. If you want to determine the base address and IRQ assigned, use the following   
					information. The Vendor ID for these cards is 494F. The device ID's are:   
					D version: 0C51   
					H version: 0C50   
					D w/Counters: 0E52   
					H w/Counters: 0E51   
					The PCI bus supports 64K of address space, your card's addresses may be located anywhere in the   
					0000 to FFFF hex range.   
					Manual PCI-DIO-24DH   
					14   
					 
				Chapter 5: Software   
					There are sample programs provided with the card in C, Pascal, QuickBASIC, and several Windows   
					languages. DOS samples are located in the DOS directory and Windows samples are located in the   
					WIN32 directory. The following paragraphs describe the setup program and the 16- and 32-bit utility   
					drivers.   
					SETUP.EXE   
					This program is supplied in the root or base directory as a tool for you to use in configuring jumpers on   
					the card. It is menu-driven and provides pictures of the card on the computer monitor. You make simple   
					keystrokes to select functions. The picture on the monitor then changes to show how the jumper should   
					be placed to effect your choices.   
					The setup program is a stand-alone program that can be run at any time. It does not require that the card   
					be plugged into the computer for any part of the setup. The program is self-explanatory with operation   
					instructions and on-line help.   
					To run this program, at the DOS prompt, enter SETUP.EXE followed by -.   
					Manual PCI-DIO-24DH   
					15   
					 
				Chapter 6: Programming   
					These cards are I/O-mapped devices that are easily configured from any language and any language can   
					easily perform digital I/O through the card's ports. This is especially true if the form of the data is byte or   
					word wide. All references to the I/O ports would be in absolute port addressing.   
					Developing Your Application Software   
					If you wish to gain a better understanding of the programs on diskette, then the information in the   
					following paragraphs will be of interest to you. Refer to the data sheets and 8255-5 specification in   
					Appendix A.   
					A total of 16 register locations are used by these cards. With all counters (S03), the total becomes 32   
					register locations.   
					Address   
					Port Assignment   
					PA Group 0   
					PB Group 0   
					PC Group 0   
					Control byte   
					Unused   
					Operation   
					Read/Write   
					Read/Write   
					Read/Write   
					Write Only   
					Base Address   
					Base Address +1   
					Base Address +2   
					Base Address +3   
					Base Address +4   
					Base Address +5   
					Base Address +6   
					Base Address +7   
					Base Address +8   
					Base Address +9   
					Base Address +C   
					Base Address +D   
					Base Address +E   
					Base Address +F   
					Unused   
					Unused   
					Unused   
					Unused   
					Unused   
					Enable/Disable Buffer   
					Disable Interrupts   
					Enable Interrupts   
					Clear Interrupt latch   
					Write Only   
					Write Only   
					Write Only   
					Write Only   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Read/Write   
					Base Address +10 Counter/Timer A0   
					Base Address +11 Counter/Timer A1   
					Base Address +12 Counter/Timer A2   
					Base Address +13 Counter/Timer A Control   
					Base Address +14 Counter/Timer B0   
					Base Address +15 Counter/Timer B1   
					Base Address +16 Counter/Timer B2   
					Base Address +17 Counter/Timer B Control   
					Base Address +18 Counter/Timer C0   
					Base Address +19 Counter/Timer C1   
					Base Address +1A Counter/Timer C2   
					Base Address +1B Counter/Timer C Control   
					Table 6-1: Address Assignment Table   
					Manual PCI-DIO-24DH   
					16   
					 
				These cards use an 8255-5 PPI to provide a total of 24 bits input/output capability. The card is designed   
					to use the PPI in Mode 0 wherein:   
					a.   
					b.   
					c.   
					d.   
					There are two 8-bit groups (A and B) and two 4-bit groups (C Hi and C Lo).   
					Any port can be configured as an input or an output.   
					Outputs are latched.   
					Inputs are not latched.   
					The PPI contains a Control Register. This write-only, 8-bit register is used to set the mode and direction of   
					the ports. At Power-Up or Reset, all I/O lines are set as inputs. The PPI should be configured during   
					initialization by writing to the Control Registers even if the ports are only going to be used as inputs.   
					Output buffers are automatically set by hardware according to the Control Register states. Note that   
					Control Register is located at base address +3 and bit assignments are as follows:   
					Bit   
					D0   
					Assignment   
					Port C Lo (C0-C3)   
					Port B   
					Code   
					1=Input, 0=Output   
					1=Input, 0=Output   
					1=Mode 1, 0=Mode 0   
					1=Input, 0=Output   
					1=Input, 0=Output   
					00=Mode 0, 01=Mode 1, 1X=Mode 2   
					1=Active   
					D1   
					D2   
					Mode Select   
					Port C Hi (C4-C7)   
					Port A   
					D3   
					D4   
					D5,D6   
					D7   
					Mode Select   
					Mode Set Flag   
					Table 6-2: Control Register Bit Assignment   
					Note   
					Mode 1 cannot be used by these cards without modification (Consult factory.). Thus, bits D2, D5, and D6   
					should always be set to "0". If your card has been modified for use in Mode 1, then there will be an   
					Addenda sheet in the front of this manual. These cards cannot be used in PPI Mode 2 because of byte &   
					nibble wide buffering .   
					Note   
					In Mode 0, do not use the control register byte for the individual bit control feature. The hardware uses the   
					I/O bits to control buffer direction on this card. The control register should only be used for setting up input   
					and output of the ports and enabling the buffer.   
					These cards provide a means to enable/disable the tristate I/O buffers under program control. If the   
					TST/BEN jumper on the card is installed in the BEN position, the I/O buffers are permanently enabled.   
					However, if that jumper is in the TST position, enable/disable of the buffers is software controlled via the   
					control register as follows:   
					a.   
					b.   
					The card is initialized in the input mode by the computer reset command.   
					When bit D7 of the Control Register is set high, direction of the three groups of the   
					associated PPI chip as well as the mode can be set. For example, a write to Base   
					Address +3 with data bit D7 high programs port direction at 0 ports A, B, and C. If, for   
					example, hex 80 is sent to Base Address +3, the Port 0 PPI will be configured in mode 0   
					with Groups A, B, and C as outputs.   
					At the same time, data bit D7 is also latched in a buffer controller for the associated PPI chip. A high state   
					disables the buffers and, thus, all four buffers will be put in the tristate mode; i.e. disabled.   
					Manual PCI-DIO-24DH   
					17   
					 
				c.   
					d.   
					Now, if any of the ports are to be set as outputs, you may set the values to that port with   
					the outputs still in the tristate condition. (If all ports are to be set as inputs, this step is not   
					necessary.)   
					If data bit D7 is low when the control byte is written, ONLY the associated buffer   
					controller is addressed. If, for example, a control byte of hex 80 has been sent as   
					previously described, and the data to be output are correct, and it is now desired to open   
					the three groups, then it is necessary to send a control byte of hex 00 to base address +3   
					to enable the Port 0 buffers. When you do this, the buffers will be enabled.   
					Note   
					All data bits except D7 must be the same for the two control bytes   
					Those buffers will now remain enabled until another control byte with data bit D7 high is sent to base   
					address +3.   
					Manual PCI-DIO-24DH   
					18   
				Programming Example (C)   
					The following program fragment in C language illustrates the foregoing:   
					const BASE_ADDRESS 0x300;   
					outportb(BASE_ADDRESS +3, 0x89); /*This instruction sets the mode to Mode 0, ports A and   
					B as output, and port C as input. Since bit D7 is high, the   
					output buffers are set to tristate condition. See item b.   
					above.*/   
					outportb(BASE_ADDRESS,0);   
					outportb(BASE_ADDRESS+1,0);   
					/*These instructions set the initial state of ports A and B   
					to all zeroes. Port C is not set because it is configured as   
					an input. See item c. above.*/   
					outportb(BASE_ADDRESS +3, 0x09); /*Enable the tristate output buffers by using the same   
					control byte used to configure the PPI, but now set bit   
					D7 low. See item d. above.*/   
					Programming Example (Basic)   
					The following example in BASIC is provided as a guide to assist you in developing your working software.   
					In this example, the card base address is 2D0 hex and the I/O lines of group 0 are to be setup as follows:   
					Port A   
					Port B   
					Port C Hi   
					Port C Lo   
					= 
					= 
					= 
					= 
					Input   
					Output   
					Input   
					Output   
					The first step is to configure the control register. Configure bits of the control register as:   
					D7   
					D6   
					D5   
					D4   
					D3   
					D2   
					D1   
					D0   
					1 
					0 
					0 
					1 
					1 
					0 
					0 
					0 
					Active Mode Set   
					Mode 0   
					Mode 0   
					Port A = input   
					Port C Hi = input   
					Mode 0   
					Port B = output   
					Port C Lo -= output   
					This corresponds to 98 hex. If the card address is 2D0 hex, use the BASIC OUT command to write to the   
					control register as follows:   
					10   
					20   
					BASEADDR=&H2D0   
					OUT BASEADDR+3,&H98   
					To read the inputs at Port A and the upper nybble of Port C:   
					30   
					40   
					X=INP(BASEADDR)'Read Port A   
					Y=INP(BASEADDR+2)/16'Read Port C Hi   
					To set outputs high (1) at Port B and the lower nybble of Port C:   
					50   
					60   
					OUT BASEADDR+1,&HFF'Turn on all Port B bits   
					OUT BASEADDR+2,&HF'Turn on all bits of Port C lower nybble   
					Manual PCI-DIO-24DH   
					19   
				Enabling/Disabling I/O Buffers   
					When using the tristate mode (Jumper in the TST position), the method to disable the I/O buffers involved   
					writing a control word to the Control Register at Base Address +3. This control word was required to have   
					bit D7 (the most significant bit) set. That meant that the PPI translated it as an "active mode set" and reset   
					the output data latches to "zero" on all output ports and the output buffers were disabled. However, if the   
					buffers are to be enabled at a later time, the output latches will be in a "zero" state. For example, if all the   
					outputs were 1's, they will now be 0's and the output buffers will be disabled. This problem can be   
					resolved as follows.   
					Two computer I/O bus addresses are available that permit you to enable or disable the I/O buffers at will,   
					without programming the PPI mode. Buffers are enabled/disabled at Base Address + C. To enable the   
					buffers and to set outputs to the desired state, you can write to Base + C with bit D7 low. If you wish to   
					subsequently disable the buffers, you can write to Base + C with bit D7 high. In this way you can   
					enable/disable the output buffers without programming the PPI mode.   
					Note   
					When writing a command byte to the card while the TST jumper is installed, the PPI output buffers are   
					disabled. Thus, when you desire to to change the mode, you must first set the new mode and then enable   
					the buffers. Enabling the buffers can be done at either Base Address +3 or Base Address +A.   
					Interrupts   
					The card has three sources of interrupts:   
					1.   
					A Digital I/O signal on Pin 9 for the H version (50 pin), or Pin 7 for the D version (37 pin).   
					The Digital I/O interrupt is Port C bit 3 and is enabled by installing jumpers IRQD and   
					INT. Port C bit 3, if set for an output, can be toggled under program control to generate   
					an interrupt.   
					2.   
					3.   
					An External TTL input signal on Pin 22 for the H version only. This interrupt is enabled by   
					installing jumpers IRQD and EXT. The H version of the card also has an active-low input   
					to disable interrupts on J1 pin 20.   
					An onboard Timer output signal from the first 82C54 output 2 (S01, S02, and S03   
					versions only). The Timer interrupt is enabled by installing jumpers IRQT and INT. This   
					feature allows a “clock tick interrupt”.   
					All interrupts are triggered on the rising edge of the signal source.   
					All interrupts are enabled through software by writing any value to Base+E, and disabled through software   
					by writing any value to Base+D.   
					All interrupts are cleared by writing any value to Base+F.   
					Refer to Chapter 3 for hardware enabling and disabling of interrupts. Refer to Table 6-1 for more on   
					software control.   
					Manual PCI-DIO-24DH   
					20   
				Chapter 7: 8254 Counter/Timer   
					These cards have the option of one, two, or three 82C54 counter(s) that each include three 16-bit   
					counter/timers factory configured in an optimal module for use as event counters, frequency output, pulse   
					width, and frequency measurement (See Block Diagram). Each counter can be programmed to any count   
					as low as 1 or 2, and up to 65,535, depending on the mode chosen. For those interested in more detailed   
					information, a full description can be found in the Intel (or equivalent manufacturer's) data sheet.   
					Operational Modes   
					The 8254 modes of operation are described in the following paragraphs to familiarize you with the   
					versatility and power of this device. For those interested in more detailed information, a full description of   
					the 8254 programmable interval timer can be found in the Intel (or equivalent manufacturers') data   
					sheets. The following conventions apply for use in describing operation of the 8254 :   
					Clock:   
					Trigger:   
					Counter Loading:   
					A positive pulse into the counter's clock input   
					A rising edge input to the counter's gate input   
					Programming a binary count into the counter   
					Mode 0: Pulse on Terminal Count   
					After the counter is loaded, the output is set low and will remain low until the counter decrements to zero.   
					The output then goes high and remains high until a new count is loaded into the counter. A trigger   
					enables the counter to start decrementing.   
					Mode 1: Retriggerable One-Shot   
					The output goes low on the clock pulse following a trigger to begin the one-shot pulse and goes high   
					when the counter reaches zero. Additional triggers result in reloading the count and starting the cycle   
					over. If a trigger occurs before the counter decrements to zero, a new count is loaded. This forms a   
					retriggerable one-shot. In mode 1, a low output pulse is provided with a period equal to the counter count-   
					down time.   
					Mode 2: Rate Generator   
					This mode provides a divide-by-N capability where N is the count loaded into the counter. When   
					triggered, the counter output goes low for one clock period after N counts, reloads the initial count, and   
					the cycle starts over. This mode is periodic, the same sequence is repeated indefinitely until the gate   
					input is brought low. This mode also works well as an alternative to mode 0 for event counting.   
					Mode 3: Square Wave Generator   
					This mode operates like mode 2. The output is high for half of the count and low for the other half. If the   
					count is even, then the output is a symmetrical square wave. If the count is odd, then the output is high   
					for (N+1)/2 counts and low for (N-1)/2 counts. Periodic triggering or frequency synthesis are two possible   
					applications for this mode. Note that in this mode, to achieve the square wave, the counter decrements by   
					two for the total loaded count, then reloads and decrements by two for the second part of the wave form.   
					Mode 4: Software Triggered Strobe   
					This mode sets the output high and, when the count is loaded, the counter begins to count down. When   
					the counter reaches zero, the output will go low for one input period. The counter must be reloaded to   
					repeat the cycle. A low gate input will inhibit the counter.   
					Mode 5: Hardware Triggered Strobe   
					In this mode, the counter will start counting after the rising edge of the trigger input and will go low for one   
					clock period when the terminal count is reached. The counter is retriggerable. The output will not go low   
					until the full count after the rising edge of the trigger.   
					Manual PCI-DIO-24DH   
					21   
					 
				Counter/Timer Registers   
					Base + 10 Write/Read: Counter#A0 When writing, this register is used to load a count value into the   
					counter. The transfer is either a single or double byte transfer, depending on the control byte written to   
					the counter control register at BASE ADDRESS +13. If a double byte transfer is used, then the least-   
					significant byte of the 16 bit value is written first, followed by the most significant byte. When reading, the   
					current count of the counter is read. The type of transfer is also set by the control byte.   
					Base + 11 Write/Read: Counter #A1 See description for Base + 10 Write/Read.   
					Base + 12 Write/Read: Counter #A2 See description for Base + 10 Write/Read.   
					Base + 13 Write: Counter Control Register The control byte specifies the counter to be programmed, the   
					counter mode, the type of read/write operation, and the modulus. The control byte format is as follows:   
					These cards contain a type 8254 programmable counter/timer that allows you to implement such   
					functions as a Real Time Clock, Event Counter, Digital One-Shot, Programmable Rate Generator, Binary   
					Rate Multiplier, Complex Wave Generator and/or a Motor Controller. The 8254 consists of three, 16-bit,   
					presettable, down counters. Each counter can be programmed to any count between 1 or 2 and 65,535 in   
					binary format depending on the mode chosen.   
					Manual PCI-DIO-24DH   
					22   
				Programming the 8254   
					The counters are programmed by writing a control byte into the counter control register. Refer to the   
					previous register map for the base addresses of the counters and the counter control register. The control   
					byte specifies the counter to be programmed, the counter mode, the type of read/write operation, and the   
					modulus. The control byte format is as follows:   
					B7   
					B6   
					B5   
					B4   
					B3 B2 B1 B0   
					SC1 SC0 RW1 RW0 M2 M1 M0 BCD   
					SC0-SC1: These bits select the counter that the control byte is destined for.   
					SC1 SC0 Function   
					0 
					0 
					1 
					1 
					0 
					1 
					0 
					1 
					Program Counter #0   
					Program Counter #1   
					Program Counter #2   
					Read/Write Cmd.*   
					* See section on Reading and Loading the Counters.   
					RW0-RW1: These bits select the read/write mode of the selected counter.   
					RW1 RW0 Counter Read/Write Function   
					0 
					0 
					1 
					1 
					0 
					1 
					0 
					1 
					Counter Latch Command   
					Read/Write LS Byte   
					Read/Write MS Byte   
					Read/Write LS Byte, then MS Byte   
					M0-M2: These bits set the operational mode of the selected counter.   
					Mode M2 M1 M0   
					0 
					1 
					2 
					3 
					4 
					5 
					0 
					0 
					X 
					X 
					1 
					1 
					0 
					0 
					1 
					1 
					0 
					0 
					0 
					1 
					0 
					1 
					0 
					1 
					BCD: Set the selected counter to count in binary (BCD = 0) or BCD (BCD = 1).   
					Manual PCI-DIO-24DH   
					23   
				Reading and Loading the Counters   
					If you attempt to read the counters on the fly when there is a high input frequency, you will most likely get   
					erroneous data. This is partly caused by carries rippling through the counter during the read operation.   
					Also, the low and high bytes are read sequentially rather than simultaneously and, thus, it is possible that   
					carries will be propagated from the low to the high byte during the read cycle.   
					To circumvent these problems, you can perform a counter-latch operation in advance of the read cycle.   
					To do this, load the RW1 and RW2 bits with zeroes. This instantly latches the count of the selected   
					counter (selected via the SC1 and SC0 bits) in a 16-bit hold register. (An alternative method of latching   
					counter(s) that has an additional advantage of operating simultaneously on several counters is through a   
					readback command to be discussed later.) A subsequent read operation on the selected counter returns   
					the held value. Latching is the best way to read a counter on the fly without disturbing the counting   
					process. You can only rely on directly read counter data if the counting process is suspended while   
					reading by bringing the gate low.   
					For each counter you must specify in advance the type of read or write operation that you intend to   
					perform. You have a choice of loading/reading (a) the high byte of the count, or (b) the low byte of the   
					count, or (c) the low byte followed by the high byte. This last is most generally used and is selected for   
					each counter by setting the RW1 and RW0 bits to ones. Subsequent read/load operations must be   
					performed in pairs in this sequence or the sequencing flip-flop in the 8254 chip will get out of step. The   
					readback command byte format is:   
					B7 B6 B5   
					B4 B3 B2 B1 B0   
					1 
					1 
					CNT STA C2 C1 C0   
					0 
					CNT:   
					When 0, latches the counters selected by bits C0-C2.   
					STA:   
					C0, C1, C2:   
					When 0, returns the status byte of counters selected by C0-C2.   
					When high, select a particular counter for readback. C0 selects Counter 0, C1   
					selects Counter 1, and C2 selects Counter 2.   
					You can perform two types of operations with the readback command. When CNT=0, the counters   
					selected by C2 through C0 are latched simultaneously. When STA=0, the counter status byte is read   
					when the counter I/O location is accessed. The counter status byte provides information about the current   
					output state of the selected counter and its configuration. The status byte returned if STA=0 is:   
					B7 B6   
					B5   
					B4 B3 B2 B1   
					B0   
					OUT NC RW1 RW2 M2 M1 M0 BCD   
					OUT:   
					NC:   
					Current state of counter output pin.   
					Null count. This indicates when the last count loaded into the counter register has   
					been loaded into the actual counter. The exact time of load depends on the configuration selected. Until   
					the count is loaded into the counter, it cannot be read.   
					RW1, RW0:   
					M2, M1, M0:   
					BCD:   
					Read/Write command.   
					Counter mode.   
					BCD = 0 is binary mode, otherwise counter is in BCD mode.   
					If both STA and CNT bits in the readback command byte are set low and the RW1 and RW0 bits have   
					both been previously set high in the counter control register (thus selecting two-byte reads), then reading   
					a selected counter address location will yield:   
					Manual PCI-DIO-24DH   
					24   
				1st Read:   
					2nd Read:   
					3rd Read:   
					Status byte   
					Low byte of latched data   
					High byte of latched data   
					After any latching operation on a counter, the contents of its hold register must be read before any   
					subsequent latches of that counter will have any effect. If a status latch command is issued before the   
					hold register is read, then the first read will read the status, not the latched value.   
					8254 Driver   
					A simple driver is provided to perform basic counter/timer operations on this card. Source code for the   
					driver and a sample program showing how to use the functions are located in the DOS\CSAMPLES   
					directory. The following functions are provided:   
					Frequency Measure   
					The Frequency Measure function of the 8254 Counter Driver has the ability to measure an unknown   
					frequency from 1KHz to 2MHz. This function requires as input the Base Address of the card. The   
					unknown frequency is applied to the CLOCK IN pin of the card. The function will return the frequency as a   
					long integer in Hz.   
					long frequency_measure(unsigned BaseAddress);   
					Event Counter   
					The Event Counter function has the ability to trace the number of events that have occurred. This function   
					requires the Base Address and an additional parameter that identifies which features should be   
					implemented on this call to the function. Each feature can be identified by its unique integer value.   
					Multiple features can be run in a single call to the function by ORing the respective integer values   
					together. Features will be executed in increasing integer order. The CLOCK IN pin of the card is the point   
					of application for the incoming events. (Note: This function is limited by the input speed of the 8254   
					counter, and slow signals are preferred. Further only 65,535 events are possible without a RESET.) The   
					function returns the number of events (based on priority) or 0 for those features that do not specify a   
					return value.   
					Features:   
					INITIALIZE   
					START   
					= 1;   
					= 2;   
					initialize the counter   
					begin counting   
					SINCESTART = 4;   
					return the number of events since the start   
					return the number of events since last check   
					SINCELAST   
					STOP   
					= 8;   
					= 16; stop counting events   
					RESET   
					= 32; reset number of events to 0   
					unsigned event_counter(unsigned BaseAddress, int feature);   
					Generate Frequency   
					The Generate Frequency function will generate a square wave (0 to +5V) with the desired frequency. The   
					Base Address of the card as well as the frequency are required as input to the function. The counter can   
					generate a frequency with a range of 1Hz to 250KHz. The square wave can be read on the CLOCK OUT   
					pin of the card.   
					void generatefrequency(unsigned BaseAddress, unsigned long frequency);   
					Manual PCI-DIO-24DH   
					25   
				Pulse Width   
					The Pulse Width function will measure the width of an applied event from its rise to its fall (effectively one   
					half the period). The Base Address of the card is required as input to the function. The signal should be   
					applied to the CLOCK IN pin of the card. Software latency will be affected by the operating system and   
					will set a limit on the precision of the measurement.   
					unsigned pulse_width(unsigned BaseAddress);   
					Manual PCI-DIO-24DH   
					26   
				Chapter 8: Connector Pin Assignments   
					The H card has a 50-pin connector provided on the back plate of these cards for I/O connections. The   
					mating connector is an AMP type 1-746285-0 or equivalent. Connector pin assignments are listed below.   
					Assignment   
					Pin Assignment   
					Pin   
					2 
					PC7   
					PC6   
					PC5   
					PC4   
					PC3   
					1 
					3 
					5 
					7 
					9 
					Counter A0 Freq In   
					Ctr A1 P.W.I. (Gate)   
					Counter A2 Freq Out   
					Counter B0 Freq in   
					Ctr B1 P.W.I. (Gate)   
					4 
					Port C Hi   
					6 
					8 
					10   
					PC2 11 Counter B2 Freq Out 12   
					Port C Lo   
					PC1 13 Counter C0 Freq In   
					PC0 15 Ctr C1 P.W.I. (Gate)   
					14   
					16   
					18   
					20   
					22   
					24   
					26   
					28   
					30   
					32   
					34   
					36   
					38   
					40   
					42   
					44   
					46   
					48   
					50   
					PB7   
					PB6   
					PB5   
					PB4   
					PB3   
					PB2   
					PB1   
					PB0   
					PA7   
					PA6   
					PA5   
					PA4   
					PA3   
					PA2   
					PA1   
					PA0   
					17 Ctr C2 Freq Out   
					19 Digital Int Disable   
					21 External Int Source   
					23   
					25   
					27   
					29   
					31   
					33   
					Port B   
					35   
					37   
					39   
					41   
					43   
					45   
					47   
					49   
					Even pins 24-50   
					are all Ground   
					Port A   
					Fused +5 VDC   
					Table 8-1: 50-Pin Connector Pin Assignments   
					Manual PCI-DIO-24DH   
					27   
					 
				The D card has a 37-pin D-sub connector provided on the back plate of these cards for I/O connections.   
					If all three counters are present, pin 20 is counter C2's frequency output. Otherwise, pin 20 is fused +5V   
					power.   
					Assignment   
					Ground   
					Pin   
					1 
					Assignment   
					Pin   
					Digital IRQ Disable   
					Port C 7 Hi   
					2 
					C2 Freq Out / Fused +5V 20   
					3 
					Ground   
					Port B 7   
					Port B 6   
					Port B 5   
					Port B 4   
					Port B 3   
					Port B 2   
					Port B 1   
					Port B 0   
					Port A 7   
					Port A 6   
					Port A 5   
					Port A 4   
					Port A 3   
					Port A 2   
					Port A 1   
					Port A 0   
					21   
					22   
					23   
					24   
					25   
					26   
					27   
					28   
					29   
					30   
					31   
					32   
					33   
					34   
					35   
					36   
					37   
					Port C 6 Hi   
					4 
					Port C 5 Hi   
					5 
					Port C 4 Hi   
					6 
					Port C 3 Lo   
					7 
					Port C 2 Lo   
					8 
					Port C 1 Lo   
					9 
					Port C 0 Lo   
					10   
					11   
					12   
					Counter A0 Freq In   
					Ctr A1 P.W.I. (Gate)   
					Counter A2 Freq Out 13   
					Counter B0 Freq in   
					Ctr B1 P.W.I. (Gate)   
					14   
					15   
					Counter B2 Freq Out 16   
					Counter C0 Freq In   
					Ctr C1 P.W.I. (Gate)   
					Ground   
					17   
					18   
					19   
					Table 8-2: 37-Pin D-Sub Connector Pin Assignments   
					Manual PCI-DIO-24DH   
					28   
					 
				Customer Comments   
					If you experience any problems with this manual or just want to give us some feedback, please email us   
					
					we can send you any manual updates.   
					10623 Roselle Street, San Diego CA 92121   
					Tel. (858)550-9559 FAX (858)550-7322   
					
					Manual PCI-DIO-24DH   
					29   
				 |