PC215E PROGRAMMABLE DIGITAL INPUT/OUTPUT AND COUNTER/TIMER BOARD This Instruction Manual is supplied with the PC215E to provide the user with sufficient information to utilise the purchased product in a proper and efficient manner. The information contained has been reviewed and is believed to be accurate and reliable, however Amplicon Liveline Limited accepts no responsibility for any problems caused by errors or omissions. Specifications and instructions are subject to change without notice.
DECLARATION OF CONFORMITY AMPLICON LIVELINE LIMITED CENTENARY INDUSTRIAL ESTATE HOLLINGDEAN ROAD BRIGHTON BN2 4AW UK We declare that the product(s) described in this Instruction Manual perform in conformity with the following standards or standardisation documents: Electro Magnetic Compatibility (EMC): EMC Directive 89/336/EEC LVD Directive 73/23/EEC CE Directive 93/68/EEC Jim Hicks, I.
PROGRAMMABLE DIGITAL I/O AND COUNTER/TIMER BOARD TABLE OF CONTENTS 1. INTRODUCTION .......................................................................................................1 1.1 1.2 1.2.1 1.2.2 1.3 1.4 1.5 1.5.1 1.6 1.7 1.8 1.8.1 1.8.
.2.10 4.2.11 4.2.12 Voltage Controlled Oscillator Switch Matrix 8-Bit Bi-Directional Bus 5. STRUCTURE AND ASSIGNMENTS OF THE REGISTERS ..................................23 5.1 5.2 5.2.1 5.2.2 5.2.3 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.3.8 5.3.9 5.3.10 5.3.11 5.3.12 5.3.13 5.3.14 5.3.15 5.3.16 5.3.17 5.3.18 5.3.19 5.3.20 5.3.21 5.3.
6.6.12 6.7 6.8 6.8.1 6.8.2 6.9 6.
1. INTRODUCTION 1.1 The Amplicon 200 Series The Amplicon 200 Series of Personal Computer based data acquisition products provides very high performance, affordable hardware with comprehensive software support. The 200 Series is designed for users requiring fast or complex data input/output to the host PC and comprises a range of boards and software to handle most analog and digital signal types. When a large scale system is required, multiple boards can be added from the 200 Series without conflict.
1.2.
PC212E 78 way Connector Kit 12 Counters 24 Lines Digital I/O OR EX 213 24 O/P OR PC214E EX233 78 way termination and/or 3x37 way distribution 3 Counters 48 Lines Digital I/O OR PC215E AND /OR 78-78 way Cable 6 Counters 48 Lines Digital I/O 24 I/P AND /OR OR EX 230 PC218E 18 Counters 37-37 way Cable OR PC272E EX 221 72 Lines Digital I/O OR AND /OR PC36AT OR OR 37 way Connector Kit Existing 37 way termination assy Figure 1 - Product Configurator Block Diagram Page 3 16 I/P 8 O/P 37-
1.4 Features of the PC215E • Six 16-bit, 10 MHz counter/timers, each with six programmable counter modes • Crystal clock/divider with 5 rates, independently software-selectable for each counter/timer clock input • Independent software-selectable clock and gate inputs for each counter/timer • 48 programmable digital I/O lines, with three operating modes • Six software-selectable interrupt sources - two timer output and four digital I/O 1.
A7 A6 A5 A4 A3 A2 A1 A0 C7 C6 C5 C4 C3 C2 C1 C0 B7 B6 B5 B4 B3 B2 B1 B0 A7 A6 A5 A4 A3 A2 A1 A0 C7 C6 C5 C4 C3 C2 C1 C0 B7 B6 B5 B4 B3 B2 B1 B0 Port A 82C55 PPI - X Board Crystal Clock Generator (5 source frequencies) Port C Port B Port A 82C55 PPI - Y Port C Port B Z1 I/P CLK0 GAT0 OUT0 CLK1 GAT1 OUT1 CLK2 GAT2 OUT2 /OUT0 CLK0 GAT0 OUT0 CLK1 GAT1 OUT1 CLK2 GAT2 OUT2 /OUT0 CTR 0 Counter Connection Registers Z1 and Z2 CTR 1 CTR 2 CTR 0 CTR 1 CTR 2 82C54 Ctr/Tmr Z1 82C54 Ctr/Tmr Z2 Z2 I/P Int
1.5.1.3 DOS Library A DOS library for Microsoft and Borland C/C++ is supplied, which has exactly the same functionality as the Windows DLL. Four example 'C' programs are also provided, and these can be recompiled with either Microsoft C/C++ or Borland C++. 1.5.1.4 LABTECH NOTEBOOK Drivers A LABTECH NOTEBOOKpro driver is provided with template files for each of the boards in the family. 1.
1.8 Contacting Amplicon Liveline Limited for Support or Service The PC215E board is produced by Amplicon Liveline Limited and maintenance is available throughout the supported life of the product. 1.8.1 Technical Support Should this product appear defective, please check the information in this manual and any 'Help' or 'READ.ME' files appropriate to the program in use to ensure that the product is being correctly applied.
2. GETTING STARTED 2.1 General Information The PC215E software diskette contains six ready-to-run executable programs, three for DOS and three for Windows. These programs allow the user to perform I/O operations on the PC215E immediately after installing the board and software onto a PC. 2.2 Installing the Board ENSURE THAT THE POWER TO THE COMPUTER IS SWITCHED OFF BEFORE INSTALLING OR REMOVING ANY EXPANSION BOARD. OBSERVE HANDLING PRECAUTIONS NOTED IN SECTION 1.6.
2.5 Software Installation To install the PC215E software onto your hard disk, insert disk 1 into drive A: and select ‘File|Run...’ from the Windows Program Manager, or, if you are using Windows 95, select ‘Run...’ from the Start menu. In the dialogue box that follows, type A:\SETUP The PC215E software installation program will now run. Follow the instructions on the screen to complete the installation. See section 6 ‘Programming The PC215E’ for information on running the software. 2.
SW1 '1' ON ON '0' OFF '1' OFF '0' 1 2 3 4 5 6 7 8 800 400 200 100 80 Most Significant Digit 40 20 Middle Digit 10 ! Least Significant Default Figure 3 - DIL Switch Selection for Base Address 2.6.2 PC I/O Map The standard PC/AT I/O map assignments are listed below. I/O addresses 00016 to 0FF16 are reserved for the PC system board use and I/O addresses 10016 to 3FF16 are available on the I/O channel.
PC215E Jumper 1 IRQ Name Interrupt Number — — — 3 — 5 — 7 — 9 10 11 12 — — 15 0 1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 8 9 A B C D E F 70 71 72 73 74 75 76 77 Timer ) Not available on the Keyboard ) Bus Connectors Int 8 - 15 COM or SDLC COM or SDLC LPT Floppy Disk LPT Real Time Clock Re-directed to IRQ2 Unassigned Unassigned Unassigned Co-processor Hard Disk Unassigned IRQ J1 3 Usage Description 5 7 9 10 11 12 15 Figure 4 - Jumper for IRQ Level Selection
3. MAKING THE CONNECTIONS 3.1 The Input/Output Connector These input/output connections are made through the connector protruding from the PC adaptor slot corresponding to the chosen board position. For completeness of connection information, the standard PC back-plane bus connections are also shown in paragraph 3.6.
Please note that the counter/timer clock and gate input sources are selected in software. if you select one of the five internal frequencies or the Z1EXTCLK input as the clock source to a counter/timer, you must ensure that no external signal is connected to the counter/timer's CLK I/O pin on SK1. In this case, the internal signal selected will be available as an output signal on the CLK I/O pin..
3.3 Use of Shielded Cables In order to maintain compliance with the EMC directive, 89/336/EEC, it is mandatory that the final system integrator uses good quality screened cables for external connections. It is up to the final system integrator to ensure that compliance with the Directive is maintained. Amplicon Liveline offers a series of good quality screened cables for this purpose. Please contact our sales staff. 3.
62 Pin Connector S O L D E R S I D E Ground + Reset +5 Volts +IRQ2/9* -5 Volts +DRQ2 -12 Volts -0WS +12 Volts Ground -SMEMW -SMEMR -IOW -IOR -DACK3 +DRQ3 -DACK1 +DRQ1 -DACK0 CLK +IRQ7 +IRQ6 +IRQ5 +IRQ4 +IRQ3 -DACK2 +T/C +BALE +5 Volts OSC Ground < < < B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26 B27 B28 B29 B30 B31 > < > < < < < < < < < < < < < < < < < < < < < < < < < < > > > > > > > > > > > > > > > A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15
4. USING THE PC215E This chapter describes the various operations associated with implementing the user’s application. Programming and usage operations are discussed and include references to the various register operations and software library functions required for each application. Details of the registers and software are given in chapters 5 and 6 respectively.
4.2.1 Differential Counter Two timer/counters can be used to form a Differential Counter pair from which the ratio of, or the difference between, the two count values is derived. See section 6.6.5 "Differential Counter Functions". The function TCsetDiffCounters allows you to specify the two timer/counters to be used as a differential pair. The function registers the timer/counter pair as being 'in use' and unavailable for any other application.
MARK SPACE tM tS 1 / freq msratio = tM / (tM + tS) where msratio = mark to space ratio tM = mark time (seconds). tS = space time (seconds). freq = output frequency (Hz) Note: the 82C54 timer/counters outputs are switched to the low level by the next clock after the gate trigger, possibly causing the mark-to-space ratio to become distorted by one or two clock pulses. This will become more apparent at higher frequencies. 4.2.
4.2.6 Frequency/Period Measurement Another use for the pulse generation capabilities of the 82C54 is for one counter/timer to provide a precise GATE signal during which a second timer/counter counts an external event. In mode 0, a high level on the gate input validates counting, and a low level invalidates it (i.e. counting stops). Also a low-to-high transition on the gate input causes the initial count value to be relatched into the counting element. Section 6.6.
selected to either 1, 4, 8, 12, 16 or 24 bits by calling function DIOsetChanWidth (see section 6.6.10.3 for more details). The PPI Port(s) used by the digital input channel must be programmed as input by calling function DIOsetMode for each port (see section 6.6.10.2 "Configure a Digital I/O Port for Input or Output - DIOsetMode").
4.2.11 Switch Matrix The high number of digital I/O channels available on the PC215E board lends itself to a switch matrix scanner implementation. The status of a matrix of switches can be obtained by sending test patterns into the matrix, and then reading status patterns back from the matrix. Section 6.6.11 describes functions which allows either PPIX, or both PPIX and PPIY to be used as such a device.
4.2.12 8-Bit Bi-Directional Bus In mode 2 it is possible for an 82C55 PPI device to transfer data in two directions through a single 8-bit port. In this mode, Port C handles the necessary control signals, Port A becomes the 8-bit bi-directional port, and Port B is free to be programmed (with Group B) for basic input or basic output operation.
5. STRUCTURE AND ASSIGNMENTS OF THE REGISTERS The set of demonstration programs and routines provided with the PC215E allows the user access to all the operational functions of the board. However, in some circumstances, the user may wish to program the application at the lowest level using input/output instructions. This section provides the necessary information on the accessible registers. 5.1 Register Assignments The PC215E registers occupy 32 consecutive address locations in the I/O space.
ADDRESS Description Write/Read Bits Group BA + 00 BA + 01 BA + 02 BA + 03 BA + 04 BA + 05 BA + 06 BA + 07 BA + 08 BA + 09 BA + 0A BA + 0B BA + 0C BA + 0D BA + 0E BA + 0F BA + 10 BA + 11 BA + 12 BA + 13 BA + 14 BA + 15 BA + 16 BA + 17 BA + 18 BA + 19 BA + 1A BA + 1B BA + 1C BA + 1D BA + 1E BA + 1F PPI X Port A PPI X Port B PPI X Port C PPI X Control Write/Read Write/Read Write/Read Write/Read 8 8 8 8 PPI Y Port A PPI Y Port B PPI Y Port C PPI Y Control Write/Read Write/Read Write/Read Write/Read 8
5.3.1 Programmable Peripheral Interface PPI-X Data Register Port A This eight bit register writes to and reads from port A of the 82C55 Programmable Peripheral Interface PPI-X. All input/output lines PA0 to PA7 of this device are available to the user on connector SK1 as digital I/O.
5.3.2 Programmable Peripheral Interface PPI-X Data Register Port B This eight bit register writes to and reads from port B of the 82C55 Programmable Peripheral Interface PPI-X. All input/output lines PB0 to PB7 of this device are available to the user on connector SK1 as digital I/O.
5.3.3 Programmable Peripheral Interface PPI-X Data Register Port C This eight bit register writes to and reads from port C of the 82C55 Programmable Peripheral Interface PPI-X. All input/output lines PC0 to PC7 of this device are available to the user on connector SK1 as digital I/O.
5.3.4 Programmable Peripheral Interface PPI-X Command Register This is the command register for the PPI and can be used to set the operational mode of the three digital I/O ports or to manipulate the bits of port C. Register Offset Write and/or Read Register Width 0316 Write 8 bits Register Title Mnemonic 82C55 Programmable Peripheral Interface PPI-X Command Register PPI-X CMD FUNCTION Provides a command word to define the operation of the PPI-X ports A, B and C.
Mode 2 provides strobed bi-directional operation using port A as the bi-directional data bus. Port C3 to C7 bits are used for interrupts and handshaking bus flow control similar to mode 1. NOTE: Port B and port C0 to C2 bits may be defined as mode 0 or 1, input or output in conjunction with port A in mode 2.
Command Word for Bit Set/Reset Format 7 6 5 4 3 2 1 0 Bit Set/Reset 0 = Reset 1 = Set X X X Don't Care COMMAND SELECT Port C Bit Select Bit Set/Reset Flag 0 = Active 0 0 0 0 1 1 0 0 2 0 1 0 3 1 1 0 4 0 0 1 5 1 0 1 6 0 1 1 7 1 B0 1 B1 1 B2 5.3.5 Programmable Peripheral Interface PPI-Y Data Register Port A This eight bit register writes to and reads from port A of the 82C55 Programmable Peripheral Interface PPI-Y.
BIT ASSIGNMENTS The bit layout of the PPI-Y port A data register is shown below. 7 6 5 4 3 2 1 0 PPI-Y Port A Digital I/O Data Bits Digital I/O SK1 Pin Connections PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 SK1 29 SK1 48 SK1 9 SK1 67 SK1 28 SK1 47 SK1 8 SK1 66 5.3.6 Programmable Peripheral Interface PPI-Y Data Register Port B This eight bit register writes to and reads from port B of the 82C55 Programmable Peripheral Interface PPI-Y.
BIT ASSIGNMENTS The bit layout of the PPI-Y port B data register is shown below. 7 6 5 4 3 2 1 0 PPI-Y Port B Digital I/O Data Bits Digital I/O SK1 Pin Connections PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 SK1 72 SK1 33 SK1 52 SK1 13 SK1 71 SK1 32 SK1 51 SK1 12 5.3.7 Programmable Peripheral Interface PPI-Y Data Register Port C This eight bit register writes to and reads from port C of the 82C55 Programmable Peripheral Interface PPI-Y.
The modes and programming of PPI operations are outlined in chapters 4 and 6 with the Digital I/O connections shown in chapter 3. BIT ASSIGNMENTS The bit layout of the PPI-Y port C data register is shown below. 7 6 5 4 3 2 1 0 PPI-Y Port C Lower Byte Data Bits PPI-Y Port C Upper Byte Data Bits SK1 Pin Connections PC4 PC5 PC6 PC7 SK1 70 SK1 31 SK1 50 SK1 11 SK1 30 SK1 49 SK1 10 SK1 68 PC0 PC1 PC2 PC3 5.3.
Mode 0 provides basic input and output operations through each of the ports A, B and C. Output data bits are latched and input data follows the signals applied to the I/O lines. No handshaking is needed. • • • • 16 different configurations in mode 0 Two 8 bit ports and two 4 bit ports Inputs are not latched Outputs are latched Mode 1 provides strobed input and output operations with data transferred through port A or B and handshaking through port C.
Command Word for Mode Definition Format 7 6 5 4 3 2 1 0 GROUP B Port C (Lower) COMMAND SELECT e Set Flag 1 = Active 0 = Output 1 = Input Port B 0 = Output 1 = Input Mode Selection 0 = Mode 0 1 = Mode 1 GROUP A Port C (Upper) 0 = Output 1 = Input Port A 0 = Output 1 = Input Mode Selection 00 = Mode 0 01 = Mode 1 1X = Mode 2 Command Word for Bit Set/Reset Format 7 6 5 4 3 2 1 0 Bit Set/Reset 0 = Reset 1 = Set X X X Don't Care COMMAND SELECT Port C Bit Select Bit Set/Reset Flag 0
FUNCTION The Z1 Counter 0 Data Register is used to write and read 8 bit data to the 82C54 Z1 counter/timer 0. The counter is normally configured for 16 bit operation and to ensure validity of the data it is important to always write/read two bytes to the register, least significant byte first. Please note that the 16-bit count values written to this register are not latched into the counting element until the next clock pulse (assuming the gate input is high).
5.3.10 Z1 Counter 1 Data Register The 82C54 Programmable Timer Counter Z1 provides three 16 bit counter/timers which can be independently programmed to operate in any one of six modes with BCD or Binary count functions. The register definition for Z1 Counter 1 Data is as follows.
BIT ASSIGNMENTS The bit layout of the Z1 counter 1 data register is shown below. 7 6 5 4 3 2 1 0 Z1 16 BIT COUNTER 1 DATA BIT First Byte (Least Significant) Second Byte (Most Significant) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5.3.11 Z1 Counter 2 Data Register The 82C54 Programmable Timer Counter Z1 provides three 16 bit counter/timers which can be independently programmed to operate in any one of six modes with BCD or Binary count functions.
Further information on programming the 82C54 Programmable Counter/Timer is given in chapters 4 and 6. BIT ASSIGNMENTS The bit layout of the Z1 counter 2 data register is shown below. 7 6 5 4 3 2 1 0 Z1 16 BIT COUNTER 2 DATA BIT First Byte (Least Significant) Second Byte (Most Significant) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5.3.12 Counter/Timer Z1 Control Register The Z1 control register provides the means to configure the three sixteen bit counter/timers of the 82C54 Z1.
As the control register and each counter have separate addresses (offsets 0, 1, 2 and 3) and each control word specifies the counter it applies to (bits 6 and 7) no special instruction sequence is required. When a control word is written to a counter, all control logic is reset and OUT goes to a known initial state depending on the mode selected.
5.3.13 Z1 Counter/Timer Status Register This status register provides the means to interrogate the three sixteen bit counter/timers of the 82C54 Z1. An outline of its operation is given here, but reference should be made to the 82C54 device manufacturers’ data sheets in the appendix before programming of the counter is attempted. The Z1 counter Status Register is a READ register.
Bits 5…0 Counter's programmed Mode exactly as written in the last Mode Control Word Bit 6 State of the addressed counter element 0 1 Bit 7 Count available for reading Null Count State of the addressed counter OUT pin 0 1 OUT pin is '0' OUT pin is '1' 5.3.14 Z2 Counter 0 Data Register The 82C54 Programmable Timer Counter Z2 provides three 16 bit counter/timers which can be independently programmed to operate in any one of six modes with BCD or Binary count functions.
Further information on programming the 82C54 Programmable Counter/Timer is given in chapters 4 and 6. BIT ASSIGNMENTS The bit layout of the Z2 counter 0 data register is shown below. 7 6 5 4 3 2 1 0 Z2 16 BIT COUNTER 0 DATA BIT First Byte (Least Significant) Second Byte (Most Significant) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5.3.
The output of counter 1 is available on the user socket, SK1 pin 58, and also as a possible clock source for counter 2. The gate input to counter 1 can be selected as VCC (permanently enabled), GND (permanently disabled), the inverted output of Z1 Counter 2, or an external gate signal on SK1 pin 19. This gate selection is made by writing to the Group Z Gate Connection Register described in Section 5.3.20. Further information on programming the 82C54 Programmable Counter/Timer is given in chapters 4 and 6.
FUNCTION The Z2 Counter 2 Data Register is used to write and read 8 bit data to the 82C54 Z2 counter/timer 2. The counter is normally configured for 16 bit operation and to ensure validity of the data. It is important to always write/read two bytes to the register, least significant byte first. Please note that the 16-bit count values written to this register are not latched into the counting element until the next clock pulse (assuming the gate input is high).
Register Offset Write and/or Read Register Width Register Title Mnemonic 1716 Write 8 bits 82C54 Z2 Counter/Timer Control Register Z2 CTC FUNCTION Provides a control word to define the operation of the Z2 counters 0, 1 and 2. The programming procedure for the 82C54 is flexible, but the following two conventions must be followed: • For each counter, the control word must be written before the initial count is loaded. • The initial count must follow the count format specified in the control word.
7 6 5 4 3 2 1 RWM1 RWM0 0 0 1 1 0 1 0 1 0 BCD Binary or BCD 0 1 Binary Count (16 Bits) BCD Count (4 Digits) Read/Write Mode CM2 CM1 CM0 Count Mode Count Latch Command Low Byte Only High Byte Only Low Byte then High Byte 0 0 X X 1 1 0 0 1 1 0 0 0 1 0 1 0 1 Mode 0 Mode 1 Mode 2 Mode 3 Mode 4 Mode 5 SC1 SC0 Select Counter or MLC 0 0 1 1 0 1 0 1 Counter 0 Counter 1 Counter 2 Multiple Latch Command 5.3.
Counter Latch Command 7 6 5 4 3 2 1 Read-back Command 0 7 Bits 3 to 0 = Don’t care Bits 5 and 4 = 0 Designates Counter Latch Command Bits 7 and 6 00 = Counter 0 01 = Counter 1 10 = Counter 2 11 = Read-back Command 6 5 4 3 2 1 0 Bit 0 = 0 Bit 1 = Select Counter 0 Bit 2 = Select Counter 1 Bit 3 = Select Counter 2 Bit 4 = /Latch Status of Selected Counter(s) Bit 5 = /Latch Count of Selected Counter(s) Bits 6 and 7 = 1 Designates Read-back Command BIT ASSIGNMENTS Bit layout of the counter/ti
5.3.19 Group Z Clock Connection Register This is the register that can be used to select the counter/timer clock sources for the six counter/timers on the PC215E board. Register Offset Write and/or Read Register Width Register Title Mnemonic 1A16 Write 8 bits Group Z Counter/timer Clock Selection Register ZCLK_SCE FUNCTION Individually selects one of the eight possible Counter/Timer clock sources for each of the six counter/timers on the PC215E board.
5.3.20 Group Z Gate Connection Register This is the register that can be used to select the counter/timer gate input sources for the six counter/timers on the PC215E board. Register Offset Write and/or Read Register Width Register Title Mnemonic 1D16 Write 8 bits Group Z Counter/timer Gate Selection Register ZGAT_SCE FUNCTION Individually selects one of the four possible Counter/Timer gate input signal sources for each of the six counter/timers on the PC215E board.
5.3.21 Interrupt Source Selection Register This is the register that can be used to select one or more interrupt source for the PC215E board. Register Offset Write and/or Read Register Width 1E16 Write 8 bits Register Title Mnemonic Interrupt Source Selection Register INT_SCE FUNCTION Selects one or more of the six PC215E interrupt sources. The selected source(s) will then have the ability to drive the board’s interrupt request level, as selected on jumper J1. See Section 2.6.
BIT ASSIGNMENTS Bit layouts of the Interrupt Source register is shown below. 7 6 5 4 3 2 1 0 PPI X Port C bit 0 PPI X Port C bit 3 reserved PPI Y Port C bit 0 PPI Y Port C bit 3 Z1 OUT1 Z2 OUT1 5.3.22 Interrupt Status Register This is the register that can be used to determine the status of the PC215E board’s interrupt source(s).
The Six Interrupt Sources The six sources are as follows: 1. 2. 3. 4. 5. 6. PPI X Port C bit 0 digital input/output PPI X Port C bit 3 digital input/output PPI Y Port C bit 0 digital input/output PPI Y Port C bit 3 digital input/output Z1 Counter 1 output Z2 Counter 1 output BIT ASSIGNMENTS Bit layouts of the Interrupt Source register is shown below.
6. PROGRAMMING THE PC215E The distribution diskette supplied with the PC215E contains a Windows setup program, which installs the software onto the user's hard disk drive, and creates a new Windows program group containing shortcuts to the executable programs and help files. This software includes: Executable programs for immediate use Three Windows and three DOS programs ready to run from an icon or the DOS prompt, providing examples of programming the PC215E, using the Windows/DOS library functions.
6.3 Windows DLL and Examples The PC215E DLL is a 16-bit Windows programmer's interface to the PC215E board. Provided that the compiler/interpreter supports Windows, i.e. uses the Windows calling conventions, all the functions can be called by software written in any language. For C/C++ language applications, the software includes a ready prepared header file, DIO_TC.H which covers all function definitions and declared constants. Similarly for Visual Basic there is a module DIO_TC.
6.4.1 Borland C++ User Information 1) Ensure that the library DIO_TC.C and the header file DIO_TC.H are in a directory where the compiler can locate them. Failure to find these files may cause ‘unresolved external’ compilation errors. 2) At the beginning of the application program, add the following line: #include "DIO_TC.H" 3) Add the file DIO_TC.C to the project list in the environment and use the MAKE command to compile and link. 6.4.2 Microsoft C/C++ User Information 1) Ensure that the library DIO_TC.
• Double-click on the empty Form1 design window to bring up the code window for the Form_Load() subroutine. At runtime, this routine will get called when the program first starts up. • Type the following lines into the Form_Load() subroutine: hBoard = ERRSUPPORT Load REGISTER REGISTER.Show modal Unload REGISTER These lines of code will cause the Board Registration dialog box to pop up so that the PC215E board can be registered with the DLL.
6.6 Windows and DOS Library Functions Details are given of each of the functions provided in the supplied Windows Dynamic Link Library (DLL) and DOS 'C' Library. 6.6.1 Initialisation Functions 6.6.1.1 Register a Board with the Library - registerBoard Registers a board with the library. This function returns a Board Handle (positive integer) which must be used in all subsequent calls to library functions for this board. No more than eight boards can be registered at any one time.
6.6.1.2 Get the Name of a Board - getBoardModel Returns the model name of a registered board. i = getBoardModel (h) where h Integer: Board's handle as issued by the registerBoard function. Returns Integer: Board’s model number. Possible values are:214: Amplicon PC214E 215: Amplicon PC215E 272: Amplicon PC272E 212: Amplicon PC212E 218: Amplicon PC218E or ERRHANDLE Prior Calls registerBoard See Also 6.6.1.
6.6.2 Interrupt Control Functions 6.6.2.1 Enable a Board's Interrupt Source(s) - setIntMask Enables or disables one or more of a board’s interrupt sources, by writing a mask byte to the board's Interrupt Mask register. For the PC215E, PC212E, PC218E and PC272E boards, any number of the interrupt sources can be enabled (a single interrupt is generated, but the interrupt service routine interrogates each source in turn and, if asserted, services that interrupt).
6.6.2.3 Enable a Board's Interrupts- enableInterrupts Enables the interrupt level registered for a board, by unmasking the corresponding bit in the Interrupt Mask register (IMR) of the 82C59 Programmable Interrupt Controller (PIC) on the host computer. The interrupt sources un-masked by a previous call to the setIntMask function are now enabled. See section 2.6.4 for details of the interrupt sources. i = enableInterrupts (h) where h Integer: Board handle as issued by the registerBoard function.
6.6.3 Data Buffer Functions 6.6.3.1 Allocate an Integer Data Buffer - allocateIntegerBuf Creates a data buffer, by allocating a block of memory of integer data. The function returns a Buffer Handle (positive integer). Up to four integer data buffers can be created. The Buffer Handle must be used in any subsequent function calls to identify that particular data buffer.
6.6.3.3 Free up an Integer Data Buffer - freeIntegerBuf Frees a block of memory previously allocated for the given data buffer by the allocateIntegerBuf function. i = freeIntegerBuf (b) where b Integer: buffer handle as issued by the allocateIntegerBuf function. Returns Integer: OK or ERRBUFFER Prior Calls registerBoard allocateIntegerBuf See Also 6.6.3.
6.6.3.5 Read Data from an Integer Buffer - readIntegerBuf Reads a data item from an integer buffer, which is returned via a user-supplied pointer. The pointer must reference an integer variable. i = readIntegerBuf (b, item, p) where b Integer: buffer handle, as issued by the allocateIntegerBuf function item Long: index of the data item in the buffer.
6.6.3.7 Write Data to an Integer Buffer - writeIntegerBuf Writes a single integer data item to an integer data buffer. i = writeIntegerBuf (b, item, data) where b Integer: buffer handle item Long: index of item in buffer data Integer: data value Returns Integer: OK or ERRBUFFER ERRRANGE ERRDATA Prior Calls registerBoard allocateIntegerBuf See Also 6.6.3.8 Write Data to a Long Integer Buffer - writeLongBuf Writes a single long integer data item to a long data buffer.
6.6.3.9 Copy a block of Data to an Integer Buffer - copyToIntegerBuf Copies a block of integer data to an integer buffer. i = copyToIntegerBuf (b, start, nItems, p) where b Integer: buffer handle as issued by the allocateBuf function. start Long: index of the starting item in the buffer. nItems Long: number of items to copy. p Pointer: pointer to the beginning of the memory block to copy.
6.6.3.11 Copy a Block of Integer Data from an Integer Buffer - copyFromIntegerBuf Copies a segment of an integer data buffer to a block of memory. i = copyFromIntegerBuf (b, start, nIems, p) where b Integer: buffer handle as issued by the allocateBuf function. start Long: index of the starting item in the buffer. nItems Long: number of items to copy. p Pointer: pointer to the beginning of the integer memory block to which data is to be copied.
6.6.3.13 Query Number of Interrupt Operations to date on a Buffer - getIntItem This function can be called for any data buffer currently being used for Event Recorder or BiDirectional Bus data. In these two cases, data is read from or written to the buffer when the relevant interrupt occurs. This function returns the index within the specified buffer of the data item to be read or written to on the next relevant interrupt, giving an indication of how much of the buffer contains valid data.
6.6.4 Timer/Counter Functions 6.6.4.1 Test if Timer/Counter is free - TCisAvailable Checks if a particular timer/counter channel is currently available on a board. A counter/timer may not be available for one of two reasons: 1. the counter/timer is not provided by the board specified, or 2. the counter/timer is being used by some other function. i = TCisAvailable(h, chip, chan) where h Integer. Board handle as previously issued by the registerBoard function. chip Integer.
6.6.4.2 Free-up Timer/Counter - TCfreeResource Frees a timer/counter channel previously reserved for use by one of the following functions: TCsetMonoShot TCgenerateFreq TCmultiplyFreq TCdivideFreq N.B.: TCmultiplyFreq and TCdivideFreq use 2 timer/counters, so TCfreeResource should be called twice when you’ve finished this these two functions. i = TCfreeResource(h, chip, chan) where h Integer. Board handle as issued by the registerBoard function. chip Integer. Address offset of the timer/counter chip.
6.6.4.3 Connect Timer/Counter Clock Source - TCsetClock Configures a timer/counter clock input source. i = TCsetClock(h, chip, chan, clk) where h Integer. Board handle as issued by the registerBoard function. chip Integer. Address offset of the timer/counter chip. One of the following pre-defined constants may be used: X1 = 0 X2 = 4 Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20 chan Integer. Timer/counter channel number within the chip (0, 1 or 2). clk Integer. Clock source.
6.6.4.4 Connect Timer/Counter Gate Source - TCsetGate Configures a timer/counter gate input source. i = TCsetGate(h, chip, chan, gat) where h Integer. Board handle as issued by the registerBoard function. chip Integer. Address offset of the timer/counter chip. One of the following pre-defined constants may be used: X1 = 0 X2 = 4 Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20 chan Integer. Timer/counter channel number within the chip (0, 1 or 2). gat Integer. Gate source.
6.6.4.5 Configure Timer/Counter Mode - TCsetMode Sets a timer counter to one of its five available modes of operation. Reading and loading of count values by LSB followed by MSB is selected, as is a 16-bit binary count. i = TCsetMode (h, chip, chan, mde) where h Integer: Board handle as issued by the registerBoard function. chip Integer. Address offset of the timer/counter chip. One of the following pre-defined constants may be used: X1 = 0 X2 = 4 Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20 chan Integer.
6.6.4.6 Read Timer/Counter Status - TCgetStatus Returns the mode and status of a timer/counter by performing a read-back operation on the channel. i = TCgetStatus (h, chip, chan) where h Integer. Board handle as issued by the registerBoard function. chip Integer. Address offset of the timer/counter chip. One of the following pre-defined constants may be used: X1 = 0 X2 = 4 Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20 chan Integer. Timer/counter channel number within the chip (0, 1 or 2).
6.6.4.7 Set Timer Count Value - TCsetCount Sends a 16-bit count value to a timer/counter. i = TCsetCount (h, chip, chan, count) where h Integer. Board handle as issued by the registerBoard function. chip Integer. Address offset of the timer/counter chip. One of the following pre-defined constants may be used: X1 = 0 X2 = 4 Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20 chan Integer. Timer/counter channel number within the chip (0, 1 or 2). count Long Integer. 16-bit Count value.
6.6.4.8 Read Timer's current Count Value - TCgetCount Latches and reads a timer/counter's 16-bit count value, using the read-back command. i = TCgetCount (h, chip, chan, count) where h Integer. Board handle as issued by the registerBoard function. chip Integer. Address offset of the timer/counter chip. One of the following pre-defined constants may be used: X1 = 0 X2 = 4 Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20 chan Integer. Timer/counter channel number within the chip (0, 1 or 2). count Pointer to Long.
6.6.4.9 Read Timer's current Up-Count - TCgetUpCount Latches and reads a timer counter value, in the same way as TCgetCount, but returns the actual number of clock pulses received, rather than the count value. Note that the 82C54 timers count down to zero from the initial count value, so this function returns ((initial count) (current count)). Only counter modes 2 or 3 should be used with this function. i = TCgetUpCount (h, chip, chan, count) where h Integer.
6.6.5 Differential Counter Functions 6.6.5.1 Setup Differential Counter Pair - TCsetDiffCounters Sets up two counter/timers for a differential count operation. If the gate sources specified are both GAT_VCC, counting will start immediately. Otherwise the user must provide the gate signals or set the gates high by a call to TCsetGate. See section 4.2.1 for more details on the Differential Counter application. i = TCsetDiffCounters (h, chip1, chan1, clk1, gat1, chip2, chan2, clk2, gat2) where h Integer.
Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20. chan2 Integer. Timer/counter #2 channel number within the chip (0, 1 or 2). clk2 Integer. Timer #2 clock source. Use one of the following pre-defined constants:CLK_CLK = 0: CLK(chan#1) - external i/p CLK_10MHZ = 1: 10 MHz CLK_1MHZ = 2: 1 MHz CLK_100KHZ = 3: 100 kHz CLK_10KHZ = 4: 10 kHz CLK_1KHZ = 5: 1 kHz CLK_OUTN_1 = 6: OUT(chan#1-1) CLK_EXT = 7: EXTCLK(chip) - external i/p gat2 Integer. Timer #2 gate source.
6.6.5.2 Read Differential Count - TCgetDiffCount Returns the difference between the count values of the two counters specified in the TCsetDiffCounters function. i = TCgetDiffCount (h, hD, diff) where h Integer. Board handle as issued by the registerBoard function. hD Integer. Differential counter handle as issued by the TCsetDiffCounters function. diff Pointer to Long.
6.6.5.4 Free Differential Counter Pair - TCfreeDiffCounters Frees the counter/timers associated with a differential pair, as setup by function TCsetDifferentialCounters. Call this function when finished with the differential counter. i = TCfreeDiffCounters (h, hD) where h Integer. Board handle as issued by function registerBoard. hD Integer. Differential counter handle as issued by the TCsetDiffCounters function.
6.6.6 Frequency Generation Functions 6.6.6.1 Send Monostable Pulse - TCsetMonoShot Creates a single pulse of specified duration on the output of a timer/counter, using the timer’s ‘Hardware Retriggerable One-Shot’ mode. In this mode, the timer output will go low for the duration specified on the clock pulse following a gate trigger. Subsequent gate triggers will retrigger the pulse. See section 4.2.2 for more details on the Monostable application.
6.6.6.2 Generate Astable Multivibrator Waveform - TCsetAstable Generates a clock signal of specified frequency and mark-to-space ratio. This is implemented on two counters, both in mode 1 (digital one-shot). One counter counts the mark time and the other counts the space time. The outputs of each counter/timer control the gate of the other, so that when the mark times-out, the space counter is triggerred and vice versa. N.B.
6.6.6.3 Free-up Astable Multi-vibrator Counter/Timers - TCfreeAstable Frees the two timer counters used for an astable multi-vibrator, as setup by the TCsetAstable function. i = TCfreeAstable (h, hA) where h Integer. Board handle as issued by the registerBoard function. hA Integer. Astable multi-vibrator handle as issued by function TCsetAstable. Returns Integer: OK or ERRHANDLE ERRDATA Prior Calls registerBoard TCsetAstable See Also 6.6.7 Millisecond Stopwatch Functions 6.6.7.
6.6.7.2 Start a Millisecond Stopwatch - TCstartStopwatch Starts a stopwatch which has been previously setup by the TCsetStopwatch function. i = TCstartStopwatch (h, hS) where h Integer. Board handle as issued by the registerBoard function. hS Integer. Handle to stopwatch as issued by the TCsetStopwatch function. Returns Integer: OK or ERRHANDLE ERRCHAN Prior Calls registerBoard TCsetStopwatch See Also TCgetElapsedTime TCfreeStopwatch 6.6.7.
6.6.7.4 Prepare an Event Time Recorder - TCsetEventRecorder Sets up an event recorder which records the times of positive edges on a PPI Port C bit 0 digital input (DI) line. The times recorded are the elapsed time since the given stopwatch was started). This is performed by using a stopwatch, previously setup by a call to TCsetStopwatch, and enabling the DI line to generate an interrupt.
6.6.7.5 Free-up Event Recorder Timer and Digital Input Channels - TCfreeEventRecorder Frees up the event recorder handle. This function is necessary so that the interrupt service routine can decide whether a PPI Port C0 interrupt is an event recorder, or some other userdefined task. i = TCfreeEventRecorder (h, hE) where h Integer. Board handle as issued by function registerBoard. hE Integer. Event recorder handle as issue by function TCsetEventRecorder.
6.6.7.7 Free-up Stopwatch Counter/Timers - TCfreeStopwatch Frees the timer/counters used by a stopwatch, as previously setup by TCsetStopwatch. Call this function when the stopwatch is no longer required. i = TCfreeStopwatch (h, hS) where h Integer. Board handle as issued by the registerBoard function. hS Integer. Stopwatch handle as issued by function TCsetStopwatch.
6.6.8 Frequency Input and Output Functions 6.6.8.1 Measure Period of an External Signal - TCgetExtPeriod Returns the period of an external signal, measured in microseconds. The external signal must be connected to the clock input of the timer channel specified in the chan argument. See section 4.2.6 for more details on the Frequency/Period Measurement application. i = TCgetExtPeriod (h, chip, chan, fPtr) where h Integer. Board handle as issued by function registerBoard. chip Integer.
6.6.8.2 Measure Frequency of an External Signal - TCgetExtFreq Returns the frequency of an external signal, in Hertz. The external signal must be connected to the clock input of the timer specified in the chan argument. See section 4.2.6 for more details on the Frequency/Period Measurement application. i = TCgetExtFreq (h, chip, chan, fPtr) where h Integer. Board handle as issued by function registerBoard. chip Integer. Address offset of timer/counter chip.
6.6.8.3 Generate a Frequency - TCgenerateFreq Generates a square wave of specified frequency on a single timer/counter. See section 4.2.7 for more details on the Frequency Generation application. i = TCgenerateFreq (h, chip, chan, freq) where h Integer. Board handle as issued by the function registerBoard. chip Integer. Address offset of timer/counter chip. One of the following pre-defined constants may be used: X1 = 0 X2 = 4 Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20. chan Integer.
6.6.8.4 Generate an Accurate Frequency - TCgenerateAccFreq Generates a square wave frequency accurate to 0.1% using two cascaded timer/counters. See section 4.2.7 for more details on the Frequency Generation application. i = TCgenerateAccFreq (h, chip, chan, freq) where h Integer. Board handle as issued by function registerBoard. chip Integer. Address offset of timer/counter chip #2. One of the following pre-defined constants may be used: X1 = 0 X2 = 4 Y1 = 8 Y2 = 12 Z1 = 16 Z2 = 20. chan Integer.
6.6.8.5 Multiply an External Frequency - TCmultiplyFreq Measures an external signal’s frequency, then generates another signal whose frequency is the external frequency multiplied by a specified number. N.B. this function is not on-going, and must be called at a regular interval to keep the generated frequency tracking the external signal. Note that the output signal will be a square wave. See section 4.2.8 for more details on the Frequency Multiplication application.
6.6.8.6 Divide an External Frequency - TCdivideFreq Measures an external signal’s frequency, then generates another signal whose frequency is the external frequency divided by a specified number. N.B. this function is not on-going, and must be called at a regular interval to keep the generated frequency tracking the external signal. Note the output signal will be a square wave. i = TCdivideFreq (h, ipChip, ipChan, opChip, opChan, divisor) where h Integer. Board handle as issued by function registerBoard.
6.6.9 Digitally- and Voltage-Controlled Oscillator Functions 6.6.9.1 Prepare a Digitally-Controlled Oscillator - TCsetDCO Implements a digitally controlled oscillator (DCO) which periodically reads a data value from a digital input channel and generates an external frequency based on the value. The digital input channel can be 1, 4, 8, 12, 16, or 24-bits wide, as specified by a previous call to function DIOsetChanWidth.
MaxF Float. Frequency corresponding to the maximum digital input data value, which itself depends on the channel width specified in DIOsetChanWidth Returns Integer: Positive handle to DCO.
6.6.9.2 Prepare a Voltage-Controlled Oscillator - TCsetVCO Implements a voltage controlled oscillator which periodically reads a voltage from an analog input channel and generates an external frequency based on the value. The analog input channel can be from an Amplicon PC226E, PC30AT, PC26AT or PC27E data acquisition board. Please ensure the board is configured for a 10V unipolar input range (or 4V unipolar, for the PC27E). See section 4.2.
the update ticks. freq0V Float. Output frequency, in Hertz, corresponding to 0.0 Volts on the analog input channel. freq10V Float. Output frequency, in Hertz, corresponding to +10.0 Volts on the analog input channel (or +4.0 Volts if using a PC27E). Returns Integer: Positive handle to VCO. Use this handle to call TCfreeDCO when finished. or ERRHANDLE ERRCHAN ERRDATA ERRRANGE ERRPC226 Prior Calls registerBoard See Also TCsetDCO enableInterrupts TCfreeDCO 6.6.9.
6.6.10 Digital Input/Output Functions 6.6.10.1 Test if Digital I/O Chip is Free - DIOisAvailable Checks if a particular Digital I/O (DIO) chip is available on a board. A DIO chip may not be available for one of two reasons: 1. the DIO chip is not provided by the board specified, or 2. the DIO chip is being used by some other function. i = DIOisAvailable (h, chip) where h Integer. Board handle as issued by function registerBoard. chip Integer. Address offset of the DIO chip.
6.6.10.2 Configure a Digital I/O Port for Input or Output - DIOsetMode Sets up a digital I/O port for basic input or output. i = DIOsetMode (h, chip, port, isInput) where h Integer. Board handle as issued by function registerBoard. chip Integer. Address offset of the DIO chip. Use one of the following pre-defined constants:PPIX = 0 PPIY = 8 PPIZ = 16 port Integer. DIO port within the chip. Port C is split into two 4-bit nibbles, which can be programmed independently.
6.6.10.3 Re-define Channel Width within a Digital I/O Chip - DIOsetChanWidth Redefines the number of bits per DIO channel to be used in subsequent calls to the DIOsetData and DIOgetData functions. The default channel width is 8-bits, and this can be changed to 1, 4, 8, 12, 16, or 24. After calling this function, the chan argument in the DIOsetData and DIOgetData functions refers to the group of bits of width numBits, starting at Port A bit 0.
6.6.10.4 Send Digital Output Data - DIOsetData Writes a data value to a DIO channel. It is assumed that the channel has already been set as an output by a call to function DIOsetMode. i = DIOsetData (h, chip, chan, data) where h Integer. Board handle as issued by function registerBoard. chip Integer. Address offset of the DIO chip. Use one of the following pre-defined constants:PPIX = 0 PPIY = 8 PPIZ = 16 chan Integer. DIO channel.
6.6.10.5 Read Digital Input Data - DIOgetData Reads a data value from a DIO channel. It is assumed that the channel has already been set as an input by a call to function DIOsetMode. i = DIOgetData (h, chip, chan, data) where h Integer. Board handle as issued by function registerBoard. chip Integer. Address offset of the DIO chip. Use one of the following pre-defined constants:PPIX = 0 PPIY = 8 PPIZ = 16 chan Integer. DIO channel.
6.6.11 Switch Scanner Matrix Functions 6.6.11.1 Setup a Switch Scanner Matrix - DIOsetSwitchMatrix Sets up one, two or three 82C55 DIO chips as a switch matrix scanning device. The order of the matrix specified can be 12 (for a 12 X 12 matrix scanning 144 switches, using PPIX), 24 (for a 24 X 24 matrix scanning 576 switches, using PPIX and PPIY), or 36 (for a 36 X 36 matrix scanning 1296 switches, using PPIX, PPIY and PPIZ).
6.6.11.2 Query Status of a Switch within the Scan Matrix - DIOgetSwitchStatus Queries the status of a particular switch in the switch matrix setup by the DIOsetSwitchMatrix function. The grid reference of the switch is given, and the function performs a test on that switch and returns 1 for switch on (closed) or 0 for switch off (open). i = DIOgetSwitchStatus (h, xcoord, ycoord) where h Integer. Board handle as issued by function registerBoard. xcoord Integer.
6.6.12 Bi-Directional Data Bus Functions 6.6.12.1 Prepare an 8-bit Bi-Directional Data Bus - DIOsetBiDirectionalBus Programs Group A of a DIO chip for Mode 2 ‘Strobe bi-directional bus I/O operation’. Group B (Port B and Port C-lower) are not used in the bi-directional bus, and are programmed by this function for Mode 0 input or output as specified in the isPBip and isPCLip arguments. They can be accessed in the normal way using the DIOsetData and DIOgetData functions.
6.6.12.2 Free-up Bi-Directional Data Bus Digital I/O Chip - DIOfreeBiDirectionalBus Frees up the DIO chip used by the given Bi-Directional bus handle. i = DIOfreeBiDirectionalBus (h, hI) where h Integer. Board handle as issued by function registerBoard. hI Integer. Bi directional bus handle as issued by function DIOsetBiDirectionalBus. Returns Integer: OK or ERRHANDLE ERRCHAN Prior Calls registerBoard DIOsetBiDirectionalBus disableInterrupts See Also 6.
6.8 PC215E Interface Guide For LABTECH NOTEBOOK The LABTECH NOTEBOOK drivers supplied by Amplicon on the PC215E distribution diskette are specifically designed to interface the PC215E hardware to the LABTECH NOTEBOOK Data Acquisition and Analysis software package. The appropriate drivers to support the functionality of the board are provided with all Amplicon 200 Series products.
6.8.1 Channel Assignments: Digital Input/Output channels: Channel 0 Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 PPIX Port A PPIX Port B PPIX Port C PPIY Port A PPIY Port B PPIY Port C Frequency Output channel: Channel 0 Channel 1 Z1 Counter 2 Z2 Counter 2 Counter Input channel: Channel 0 Channel 1 Z1 Counter 0 Z2 Counter 0 Frequency Measurement channel: Channel 0 Channel 1 Z1 Counter 0 Z2 Counter 0 6.8.
6.9 Guide to User Programming When developing an application specific program, it is advised that the supplied dynamic link library functions are used for Windows applications and extracts are taken from the DOS examples. However if there are good reasons for writing low level code then a study of the source code supplied will be of assistance. For programming at register level, reference should to be made to section 5 describing the function and assignments of each I/O register in the PC215E. 6.
APPENDICES APPENDIX A - GLOSSARY OF TERMS The following glossary explains some terms used in this manual and in data acquisition and control applications. Active Filter: An electronic filter that combines active circuit devices with passive circuit elements such as resistors and capacitors. Active filters typically have characteristics that closely match ideal filters. ADC (A/D): Analog to Digital converter. q.v.
Common Mode Rejection Ratio (CMR): A measure of the equipment's ability to reject common mode interference. Usually expressed in decibels as the ratio between the common mode voltage and the error in the reading due to this common mode voltage. Common Mode Voltage: In a differential measurement system, the common mode voltage usually represents an interfering signal. The common mode voltage is the average of the voltages on the two input signal lines with respect to ground level of the measuring system.
Interface: A shared boundary defined by common physical interconnection characteristics, signal characteristics and meanings of interchanged signals. Interrupt: A computer signal indicating that the CPU should suspend its current task to service a designated activity. I/O Address: A method that allows the CPU to distinguish between different boards and I/O functions in a system. See Base Address. Latch: A device to store the state of a digital signal until it is changed by another external command signal.
Software: The non-physical parts of a computer system that includes computer programs such as the operating system, high level languages, applications program etc. Spike: A transient disturbance of an electrical circuit. Stability: The ability of an instrument or sensor to maintain a consistent output when a consistent input is applied.
APPENDIX B PC215E CIRCUIT LAYOUT DRAWING A PCB layout drawing of the PC215E Board is given below. A full set of circuit drawings is available upon request. B.1 PC215E Assembly Detail A short description of each user setting and indicator is given in the following table.