The information contained in this manual is believed to be accurate and reliable. However, the manufacturer assumes no responsibility for its use; nor for any infringements of patents or other rights
of third parties that may result from its use. No license is granted by implication or otherwise under
any patent rights of the manufacturer.
THE MANUFACTURER SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES RELATED TO THE USE OF THIS PRODUCT. THIS PRODUCT IS NOT DESIGNED WITH COMPONENTS OF A LEVEL OF RELIABILITY THAT IS
SUITED FOR USE IN LIFE SUPPORT OR CRITICAL APPLICATIONS.
Note:
DriverLINX, SSTNET, and LabOBJX are registered trademarks and DriverLINX/VB is a trademark of Scientific Software Tools, Inc.
Microsoft and Windows are registered trademarks and Visual C++ and Visual Basic are trademarks of Microsoft Corporation.
Borland is a registered trademark and Borland C++, Delphi, and Turbo Pascal are trademarks of
Borland International, Inc.
IBM is a registered trademark of International Business Machines Corporation.
Acrobat is a registered trademark of Adobe Systems Incorporated.
All other brand and product names are trademarks or registered trademarks of their respective
companies.
All rights reserved. Reproduction or adaptation of any part of this documentation
beyond that permitted by Section 117 of the 1979 United States Copyright Act
without permission of the Copyright owner is unlawful.
WARRANTY
Hardware
Keithley Instruments, Inc. warrants that, for a period of one (1) year from the date of shipment (3 years for Models 2000,
2001, 2002, 2010 and 2700), the Keithley Hardware product will be free from defects in materials or workmanship. This
warranty will be honored provided the defect has not been caused by use of the Keithley Hardware not in accordance with
the instructions for the product. This warranty shall be null and void upon: (1) any modification of Keithley Hardware that
is made by other than Keithley and not approved in writing by Keithley or (2) operation of the Keithley Hardware outside
of the environmental specifications therefore.
Upon receiving notification of a defect in the Keithley Hardware during the warranty period, Keithley will, at its option,
either repair or replace such Keithley Hardware. During the first ninety days of the warranty period, Keithley will, at its
option, supply the necessary on site labor to return the product to the condition prior to the notification of a defect. Failure
to notify Keithley of a defect during the warranty shall relieve Keithley of its obligations and liabilities under this
warranty.
Other Hardware
The portion of the product that is not manufactured by Keithley (Other Hardware) shall not be covered by this warranty,
and Keithley shall have no duty of obligation to enforce any manufacturers' warranties on behalf of the customer. On those
other manufacturers’ products that Keithley purchases for resale, Keithley shall have no duty of obligation to enforce any
manufacturers’ warranties on behalf of the customer.
Software
Keithley warrants that for a period of one (1) year from date of shipment, the Keithley produced portion of the software or
firmware (Keithley Software) will conform in all material respects with the published specifications provided such Keithley
Software is used on the product for which it is intended and otherwise in accordance with the instructions therefore.
Keithley does not warrant that operation of the Keithley Software will be uninterrupted or error-free and/or that the Keithley
Software will be adequate for the customer's intended application and/or use. This warranty shall be null and void upon any
modification of the Keithley Software that is made by other than Keithley and not approved in writing by Keithley.
If Keithley receives notification of a Keithley Software nonconformity that is covered by this warranty during the warranty
period, Keithley will review the conditions described in such notice. Such notice must state the published specification(s)
to which the Keithley Software fails to conform and the manner in which the Keithley Software fails to conform to such
published specification(s) with sufficient specificity to permit Keithley to correct such nonconformity. If Keithley determines that the Keithley Software does not conform with the published specifications, Keithley will, at its option, provide
either the programming services necessary to correct such nonconformity or develop a program change to bypass such
nonconformity in the Keithley Software. Failure to notify Keithley of a nonconformity during the warranty shall relieve
Keithley of its obligations and liabilities under this warranty.
Other Software
OEM software that is not produced by Keithley (Other Software) shall not be covered by this warranty, and Keithley shall
have no duty or obligation to enforce any OEM's warranties on behalf of the customer.
Other Items
Keithley warrants the following items for 90 days from the date of shipment: probes, cables, rechargeable batteries, diskettes,
and documentation.
Items not Covered under Warranty
This warranty does not apply to fuses, non-rechargeable batteries, damage from battery leakage, or problems arising from
normal wear or failure to follow instructions.
Limitation of Warranty
This warranty does not apply to defects resulting from product modification made by Purchaser without Keithley's express
written consent, or by misuse of any product or part.
Disclaimer of Warranties
EXCEPT FOR THE EXPRESS WARRANTIES ABOVE KEITHLEY DISCLAIMS ALL OTHER WARRANTIES,
EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. KEITHLEY DISCLAIMS ALL WARRANTIES WITH
RESPECT TO THE OTHER HARDWARE AND OTHER SOFTWARE.
Limitation of Liability
KEITHLEY INSTRUMENTS SHALL IN NO EVENT, REGARDLESS OF CAUSE, ASSUME RESPONSIBILITY FOR
OR BE LIABLE FOR: (1) ECONOMICAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, SPECIAL, PUNITIVE OR
EXEMPLARY DAMAGES, WHETHER CLAIMED UNDER CONTRACT, TORT OR ANY OTHER LEGAL THEORY,
(2) LOSS OF OR DAMAGE TO THE CUSTOMER'S DATA OR PROGRAMMING, OR (3) PENALTIES OR PENALTY
CLAUSES OF ANY DESCRIPTION OR INDEMNIFICATION OF THE CUSTOMER OR OTHERS FOR COSTS, DAMAGES, OR EXPENSES RELATED TO THE GOODS OR SERVICES PROVIDED UNDER THIS WARRANTY.
The print history shown below lists the printing dates of all Revisions and Addenda
created for this manual. The Revision Level letter increases alphabetically as the manual undergoes subsequent updates. Addenda, which are released between Revisions,
contain important change information that the user should incorporate immediately
into the manual. Addenda are numbered sequentially. When a new Revision is created,
all Addenda associated with the previous Revision of the manual are incorporated into
the new Revision of the manual. Each new Revision includes a revised copy of this
print history page.
Revision A (Part Number 64230) ...................................................................................... July 1991
Revision B (Part Number 64230) ...................................................................................... July 1999
Revision C (Part Number 64230) .................................................................................... April 2001
All Keithley product names are trademarks or registered trademarks of Keithley Instruments, Inc.
Other brand names are trademarks or registered trademarks of their respective holders.
S
The following safety precautions should be observed before using this product and any associated instrumentation.
Although some instruments and accessories would normally be used with non-hazardous voltages, there are situations
where hazardous conditions may be present.
This product is intended for use by qualified personnel who recognize shock hazards and are familiar with the safety
precautions required to avoid possible injury. Read and follow all installation, operation, and maintenance information
carefully before using the product. Refer to the manual for complete product specifications.
If the product is used in a manner not specified, the protection provided by the product may be impaired.
The types of product users are:
Responsible body is the individual or group responsible for the use and maintenance of equipment, for ensuring that
the equipment is operated within its specifications and operating limits, and for ensuring that operators are adequately
trained.
Operators use the product for its intended function. They must be trained in electrical safety procedures and proper use
of the instrument. They must be protected from electric shock and contact with hazardous live circuits.
Maintenance personnel perform routine procedures on the product to keep it operating properly, for example, setting
the line voltage or replacing consumable materials. Maintenance procedures are described in the manual. The procedures explicitly state if the operator may perform them. Otherwise, they should be performed only by service personnel.
Service personnel are trained to work on live circuits, and perform safe installations and repairs of products. Only
properly trained service personnel may perform installation and service procedures.
Keithley products are designed for use with electrical signals that are rated Installation Category I and Installation
Category II, as described in the International Electrotechnical Commission (IEC) Standard IEC 60664. Most measurement, control, and data I/O signals are Installation Category I and must not be directly connected to mains voltage
or to voltage sources with high transient over-voltages. Installation Category II connections require protection for high
transient over-voltages often associated with local AC mains connections. Assume all measurement, control, and data
I/O connections are for connection to Category I sources unless otherwise marked or described in the Manual.
Exercise extreme caution when a shock hazard is present. Lethal voltage may be present on cable connector jacks or
test fixtures. The American National Standards Institute (ANSI) states that a shock hazard exists when voltage levels
greater than 30V RMS, 42.4V peak, or 60VDC are present.
age is present in any unknown circuit before measuring.
Operators of this product must be protected from electric shock at all times. The responsible body must ensure that
operators are prevented access and/or insulated from every connection point. In some cases, connections must be exposed to potential human contact. Product operators in these circumstances must be trained to protect themselves from
the risk of electric shock. If the circuit is capable of operating at or above 1000 volts,
may be exposed.
Do not connect switching cards directly to unlimited power circuits. They are intended to be used with impedance
limited sources. NEVER connect switching cards directly to AC mains. When connecting sources to switching cards,
install protective devices to limit fault current and voltage to the card.
Before operating an instrument, make sure the line cord is connected to a properly grounded power receptacle. Inspect
the connecting cables, test leads, and jumpers for possible wear, cracks, or breaks before each use.
afety Precautions
A good safety practice is to expect that hazardous volt-
no conductive part of the circuit
5/02
When installing equipment where access to the main power cord is restricted, such as rack mounting, a separate main
input power disconnect device must be provided, in close proximity to the equipment and within easy reach of the
operator.
For maximum safety, do not touch the product, test cables, or any other instruments while power is applied to the circuit under test. ALWAYS remove power from the entire test system and discharge any capacitors before: connecting
or disconnecting cables or jumpers, installing or removing switching cards, or making internal changes, such as installing or removing jumpers.
Do not touch any object that could provide a current path to the common side of the circuit under test or power line (earth)
ground. Always make measurements with dry hands while standing on a dry, insulated surface capable of withstanding the
voltage being measured.
The instrument and accessories must be used in accordance with its specifications and operating instructions or the
safety of the equipment may be impaired.
Do not exceed the maximum signal levels of the instruments and accessories, as defined in the specifications and operating information, and as shown on the instrument or test fixture panels, or switching card.
When fuses are used in a product, replace with same type and rating for continued protection against fire hazard.
Chassis connections must only be used as shield connections for measuring circuits, NOT as safety earth ground connections.
If you are using a test fixture, keep the lid closed while power is applied to the device under test. Safe operation requires the use of a lid interlock.
If or is present, connect it to safety earth ground using the wire recommended in the user documentation.
!
The symbol on an instrument indicates that the user should refer to the operating instructions located in the manual.
The symbol on an instrument shows that it can source or measure 1000 volts or more, including the combined
effect of normal and common mode voltages. Use standard safety precautions to avoid personal contact with these
voltages.
The
WARNING
associated information very carefully before performing the indicated procedure.
The
CAUTION
the warranty.
Instrumentation and accessories shall not be connected to humans.
Before performing any maintenance, disconnect the line cord and all test cables.
To maintain protection from electric shock and fire, replacement components in mains circuits, including the power
transformer, test leads, and input jacks, must be purchased from Keithley Instruments. Standard fuses, with applicable
national safety approvals, may be used if the rating and type are the same. Other components that are not safety related
may be purchased from other suppliers as long as they are equivalent to the original component. (Note that selected parts
should be purchased only through Keithley Instruments to maintain accuracy and functionality of the product.) If you
are unsure about the applicability of a replacement component, call a Keithley Instruments office for information.
To clean an instrument, use a damp cloth or mild, water based cleaner. Clean the exterior of the instrument only. Do
not apply cleaner directly to the instrument or allow liquids to enter or spill on the instrument. Products that consist
of a circuit board with no case or chassis (e.g., data acquisition board for installation into a computer) should never
require cleaning if handled according to instructions. If the board becomes contaminated and operation is affected,
the board should be returned to the factory for proper cleaning/servicing.
heading in a manual explains dangers that might result in personal injury or death. Always read the
heading in a manual explains hazards that could damage the instrument. Such damage may invalidate
Table of Contents
1Introduction
General description .................................................................... 1-2
Table 5-1Mode 0 control words and port directions ............................. 5-3
6Troubleshooting
Table 6-1Troubleshooting information ................................................. 6-3
1
Introduction
1-2Introduction
General description
Figure 1-1
PIO-24 block diagram
PC Bus
D0
Data
D7
A0
Address
A9
IOR/
IOW/
IRQ2
Interrupt
IRQ7
P
O
W
E
R
Data Bus
Buffer
Address
Decoder
Interrupt
Selector
Level
Address
Selector
Switch
Direction
Control
L
A
T
C
H
Rear Connector
D
R
I
V
E
R
B
U
F
F
E
R
PA
PB
PC
Interrupt Input
Interrupt Enable
+5V
-5V
+12V
-12V
Common
Digital I/O
24 Lines of
Referring to the block diagram, the PIO-24 is a high-current, 24-line, parallel, digital I/O interface board for the IBM PC or PC-compatible. The board emulates an
8255 Programmable Peripheral Interface Control Word MODE 0. (While the Keithley
PIO-12 also uses an 8255 Programmable Peripheral Interface chip, it drives much less
current than the PIO-24.)
The PIO-24 and computer with DriverLINX software requires:
•an IBM PC or compatible AT (386, or Pentium CPU) with minimum of 2 MB
of memory
•at least one floppy disk drive, and one fixed disk drive
•Microsoft Windows 95/98, or Windows NT 4.0 or higher
•a compiler supporting Microsoft Windows development
•a mouse is highly recommended.
Introduction1-3
The following software is available for operating PIO-24 boards:
•
PIO-24 standard software package
— Shipped with PIO-24 boards.
Includes DriverLINX for Microsoft Windows 95/98 or Windows NT and
function libraries for writing application programs under Windows in a highlevel language such as Microsoft Visual C++, Microsoft Visual Basic; Borland
Delphi support files; utility programs; and language-specific example
programs.
•
DriverLINX
— the high-performance real-time data-acquisition device driv-
ers for Windows application development including:
DriverLINX API DLLs and drivers supporting the PIO-24 hardware
•
•
AIO Panel —
A DriverLINX program that verifies the installation and
configuration of DriverLINX to your PIO-24 board and demonstrates
several virtual bench-top instruments
•
Learn DriverLINX —
an interactive learning and demonstration program
for DriverLINX that includes a Digital Storage Oscilloscope
on DriverLINX installation and configuration; analog and digital I/O programming; counter/timer programming; technical reference; and information specific to the PIO-24
hardware
.
The major features of PIO-24 board are as follows:
•Three TTL/CMOS-compatible, digital I/O ports: PA, PB, and PC. PA and PB
are both byte wide (8-bit) and are usable as inputs or outputs. PC is also byte
wide but is adaptable for use as two separate 4-bit ports: PC Lower and PC
Upper, each of which is usable as an input or output.
•An interrupt input channel with a corresponding interrupt-enable line. Interrupts can be directed to any of six interrupt levels available on the PC Bus.
PIO-24 interrupts are unlatched and edge-sensitive.
•The PIO-24 performs a 10-bit I/O address decode and communicates with the
PC Bus as an 8-bit peripheral. The address map uses four consecutive I/O
addresses. Multiple PIO-24s may be installed in a computer at different Base
Addresses.
•+5V, +12V, and -12V power levels from the PC supplies are provided on the
rear connector. The 37-pin D connector of the PIO-24 is pin-compatible with
the PIO-12 and is usable with all the accessories of the PIO-12.
1-4Introduction
Product change notice
A component change was implemented in March 1999, reducing the input load
current of the PIO-24 digital I/O card for improved consistency. The input load current on the newly designed board is now
specification of
drive current, such as the ERB-24, were accidentally being turned on when power
was first applied to the PIO-24. The specific change involved changing parts U3, U6,
and U9, the digital input latches. The older design used 74LS373 octal tri-state
latches, which had a higher input load current than the 74HCT373 parts that are now
being used. In existing designs using the PIO-24, this reduction in input load current
will generally cause no problems. However, if the existing design depends on this
input load current being near the -450µA limit, this change is important. The reduction in input load current reduces the possibility of the input state being driven high if
the input is floating. Figure 1-2 shows an application monitoring a contact switch that
would be a problem as a result of the new design, and Figure 1-3 shows the correct
implementation of this application that would work with either design.
Figure 1-2
Poor implementation of monitoring a digital input
≤
-450µA. This change was made because some devices having low
≤
-2µA, which continues to meet the product
<450uA
R=unknown
PIO-24
In Figure 1-2, the digital input would probably float high with an older design
board because of the higher input load current. When the switch is closed, the input
will be pulled low. While this would work on an older design of the PIO-24, this is a
poor implementation because the input load current can vary from one board to the
next. In the case of a new design board, this would not work because of the lower load
current.
Figure 1-3
Better implementation of monitoring a digital input
PIO-24
In Figure 1-3, the digital input is guaranteed to be pulled high because of the 10k
ohm resistor. This implementation would work on both the old and new design of the
PIO-24 and is the preferred implementation to avoid dependence on a specific level of
input load current.
Introduction1-5
+5 Volts
10k ohm
Applications
Applications for the PIO-24 include all parallel digital I/O activities such as
communicating with peripherals, operating relays, reading switch inputs, etc.
Keithley Instruments applications engineers welcome inquiries into installation,
operation, and applications of the PIO-24. To inquire, dial (440) 248-0400 and ask for
technical support.
Accessories
Accessory products available for the PIO-24 include the SFC-37 Mating Connector, the C-1800 Flat Cable, the STA-U Screw Connector Panel, and the mechanical
and solid-state relay board Models ERB-24, ERA-01, SRA-01, and SSIO-24.
1-6Introduction
Specifications
Table 1-1
Specifications
ParametersMinimumMaximum
LOGIC INPUTS & OUTPUTS
Input low voltage-0.5+0.8V
Input high voltage2.05.0V
Input low load current PA, PB & PC--0.4mA
Input Load High Current PA, PB, PC-70µa
INTERRUPT ENABLE/-20µa
INTERRUPT-20µa
Output low voltage PA, PB, PC
(Isink = 64mA)
Output high voltage PA, PB, PC:
Bus Loading Power Consumption400mA typ. @ +5V
ENVIRONMENTAL
Operating Temperature Range:0˚ to 70˚C
Storage Temperature Range:-40˚ to 100˚C
Humidity:0 to 90%
Size:Half Slot
--0.9mA
-0.55V
Isource = 15mA2.0V
Isource = 3mA2.7V
Noncondensing
Connections
Figure 1-4 shows a rear view of the 37-pin D male I/O connector. The mating con-
nector is a 37-pin D female (Part No. SFC-37).
Figure 1-4
I/O connector, rear view
Introduction1-7
Dig. Com.
Dig. Com.
+12V
Dig. Com.
Dig. Com.
PC Power SuppliesPB Port
Dig. Com.
Interrupt Enable
Interrupt Input
+5V
-12V
-5V
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
19
18
17
16
15
14
13
12
11
10
37
PA0
36
PA1
35
PA2
34
PA3
33
PA4
32
PA5
31
PA6
30
PA7
29
PC0
28
27
26
25
24
23
22
21
20
PC1
PC2
PC3
PC4
PC5
PC6
PC7
Dig. Com.
+5V
9
8
7
6
5
4
3
2
1
PA PortPC Port
UpperLower
2
Installation
2-2Installation
General
This chapter contains instructions for installing the PIO-24. The chapter begins
with procedures for unpacking and inspection and follows with descriptions of the
options and methods for setting all configurable parameters. Hardware installation is
the final topic.
Unpacking and inspecting
After removing the wrapped board from its outer shipping carton, proceed as
follows:
1.Place one hand firmly on a metal portion of the computer chassis (the computer must be turned OFF and grounded) to discharge static electricity from
the package and your body, thereby preventing damage to board components.
2.Carefully unwrap the board from its antistatic wrapping material.
3.Inspect the board for signs of damage. If any damage is apparent, return the
board to the factory.
4.Check the contents of your package against its packing list to be sure the order
is complete. Report any missing items immediately.
You may find it advisable to retain the packing material in case the board must be
returned to the factory.
Switch and jumper settings
The PIO-24 contains a switch for setting Base Address and jumper pads for selecting Interrupt Level and board location. Each is shown in Figure 2-1 and described in
the following subsections.
Figure 2-1
Switch and jumper layout
Installation2-3
INTERRUPT LEVEL
234567X
BASE ADDRESS
98765432
ON
12345678
Base address switch
The Base Address switch is preset at the factory for 300 Hex, as shown in
Figure 2-2.
Figure 2-2
Diagram of the base address switch (S2)
12345678
ON
SLOT
J8
Address
Line
Address Line Values:
A9
A8
A7
A6
A5
A4
A3
A2
Decimal Hex
512
256
128
64
32
16
8
4
Switch settings indicate a value of
512 + 256 = 768 Decimal
or
200 + 100 = 300 Hex
200
100
80
40
20
10
8
4
2-4Installation
The factory-preset Base Address of 300 Hex is within the address range shown in
the following table as
without conflict, thereby eliminating any need for address selection and configuration. However, if you have a need to change the Base Address from its preset value,
you must select an address within a range of 200 to 3FC Hex (512 to 1020 Decimal).
In addition, the address must be on a 4-byte boundary and must not conflict with
addresses already in use for other devices. As an aid to selecting a usable 3-digit Hex
number, Table 2-1 is an industry-standard I/O address map for the full 000 to 3FF
range.
Table 2-1
I/O address map
Hex RangeUsageHex RangeUsage
000 to 1FFInternal system380 to 38CSDLC comm.
200 to 20FGame380 to 389Binary comm. 2
210 to 217Expansion unit3A0 to 3A9Binary comm. 1
220 to 24FReserved3B0 to 3BFMono dsp/LPT1:
278 to 27FReserved3C0 to 3CFReserved
2F0 to 2F7LPT2:3D0 to 3DFColor graphics
2F8 to 2FFCOM2:3E0 to 3E7Reserved
300 to 31FPrototype card3F0 to 3F7Floppy disk
320 to 32FHard disk3F8 to 3FFCOM1:
387 to 37FLPT1:
Reserved
. This default value will function in most computers
J8 slot jumper
This jumper pad offers two selections: J8 Slot or Off, as shown in Figure 2-1.
Placing a jumper on the upper pins enables the board to occupy the J8 slot of an IBM
PC-XT (the J8 slot is rightmost on the PC-XT motherboard). Placing the jumper on
the lower two pins simply turns this option off.
Interrupt level selection
You may select one of six Interrupt Levels (IRQ2 to IRQ7) from the PC Bus, or
you may disable the Interrupt Levels. Each choice is jumper-selectable on a pad
located as shown in Figure 2-1. Postions 2 to 7 on the pad correspond to IRQ2 to
IRQ7, respectively. Position X disables the Interrupt Levels.
Installing and configuring
DriverLINX for PIO-24 boards
Installation2-5
IMPORTANT
IMPORTANT
As a precaution against a system crash the first time you install
and test any new hardware, you should exit all other programs
and, if you use a disk cache, disable write caching. If the system does crash and you’re using disk compression software or
a disk cache utility, and as a precaution after any crash, run
the utility that checks the directory structures.
Before you begin installing any hardware or software for the
PIO-24, read the
Guide
and the
Keithley PIO Series
DriverLINX software. They are accessed from the DriverLINX
CD-ROM after you have installed Adobe Acrobat.
Before installing DriverLINX
1.Inventory your PIO-24 board’s configuration settings.
2.Determine the resources your PIO-24 board requires.
3.Inventory your computer’s resources already allocated to other installed
devices.
4.Determine whether your computer has sufficient resources for your PIO-24
board.
5.Determine whether your PIO-24 board can use your computer’s free
resources.
6.Set any jumpers/switches to configure your PIO-24 board to use your computer’s free resources.
7.Set any other jumpers/switches to configure your PIO-24 board the way you
want the board to operate.
8.Install your PIO-24 board into an appropriate free slot in your computer.
DriverLINX Installation and Configuration
Using DriverLINX with your Hardware—
manuals that are packaged with the
2-6Installation
Selecting the DriverLINX components to install
Installing DriverLINX
For your convenience in installing and un-installing just the DriverLINX components you need, the DriverLINX CD Browser will assist you in selecting the components to install:
•
Install Drivers
for configuring your hardware and running third-party data-acquisition applications that require DriverLINX.
•
Install Interfaces
programs that you will need to develop custom applications for DriverLINX
using C/C++, Visual Basic, Delphi, and LabVIEW.
•
Install Documentation
mentation for DriverLINX that you can read, search, and print using the
Adobe Acrobat Reader.
•
Install Acrobat
Reader for the DriverLINX electronic documentation.
1.Insert the DriverLINX CD-ROM into your computer’s CD-ROM Drive.
2.Start the DriverLINX setup program. On most systems, wait a few seconds for
automatic start-up. Otherwise, run the setup.exe program from the CD-ROM.
3.The DriverLINX CD-ROM Browser Map window appears on the screen.
Click ‘Install Drivers,’ and follow the series of on-screen instructions.
— This required component installs only the files you need
— This optional component installs the files and example
— This optional component installs electronic docu-
— This optional component installs the Adobe Acrobat
NOTE
To display an explanation of a menu option on the DriverLINX CD browser
map that appears next and on subsequent setup screens, place the mouse
pointer over the menu item. A star next to a menu item means that the
was selected previously.
4.Select ‘Read Me First,’ and follow the instructions.
5.Select ‘Install Documentation.’ If you do not have Adobe Acrobat installed on
your computer, install it by selecting ‘Install Adobe Acrobat.’
6.Open the manuals appropriate to the PIO-24 installation and read them before
installing your PIO-24 board or configuring DriverLINX:
•Installation and Configuration
•Using DriverLINX with Your Hardware—Keithley PIO Series
•DriverLINX Technical Reference Manual
•DriverLINX Digital I/O Programming Guide
•DriverLINX Analog I/O Programming Guide
•DriverLINX Counter/Timer Programming Guide
•Appendix, I/O Port, Interrupt, and DMA Channel Usage
•Other manuals appropriate to your installation.
item
Configuration with DriverLINX
Follow the DriverLINX on-screen instructions for installation of drivers and
interfaces. Refer to the
DriverLINX with Your Hardware—Keithley PIO Series manuals.
DriverLINX Installation and Configuration Guide and Using
Installation2-7
NOTE
specify the base address and interrupt level by setting switches on the board.
Be sure to note and follow all programming differences between installations for Windows NT and Windows 95/98.
Before you configure DriverLINX for operation with the PIO-24 board, you must
Hardware installation
WARNING
1.Turn off power to the PC and all attached equipment.
2.Remove the cover of the PC as follows: First remove the cover-mounting
screws from the rear panel of the computer. Then, slide the cover of the computer about 3/4 of the way forward. Finally, tilt the cover upwards and
remove.
3.Choose an available option slot. Loosen and remove the screw at the top of the
blank adapter plate. Then slide the plate up and out to remove.
4.Hold the PIO-24 board in one hand placing your other hand on any metallic
part of the PC/AT chassis (but not on any components). This will safely discharge any static electricity from your body.
5.Make sure the board switches have been properly set (refer to the preceding
section).
6.Align the board connector with the desired accessory slot and with the corresponding rear-panel slot. Gently press the board downward into the socket.
Secure the board in place by inserting the rear-panel adapter-plate screw.
7.Replace the computer's cover. Tilt the cover up and slide it onto the system's
base, making sure the front of the cover is under the rail along the front of the
frame. Replace the mounting screws.
8.Plug in all cords and cables. Turn the power to the computer back on.
Any attempt to insert or remove a board with the computer power
on could damage your computer.
You are now ready to make any necessary system connections.
2-8Installation
Using power from the PIO-24
Power from the PC's internal supply is available on the PIO-24 rear connector. In
the applications this board is likely to see, the availability of PC internal power is a
convenience. However, you are advised
avoid the following conditions:
1.Short circuits, overloads, or the application of other external voltages. All of
these conditions may damage the PC system board and result in costly repairs.
The PC power supply is designed to shutdown on a short circuit, but you
should not rely on this characteristic.
2.A power draw in excess of the capacity of the PC power supply and its internal loads (see
connector and trace width limitations, Keithley recommends that you limit
power draw to 1A from the +5V and +12V supplies (if available). The -12V
and -5V supplies are capable of much lower loads.
In situations where the PIO-24 is used with a dedicated peripheral (for example, a
switch pad) and the cabling and design loads are fixed, you may find it more feasible
to use the PIO-24 power outputs. In most other cases, however, you are advised to
power external devices from their own supplies.
IBM PC Technical Reference Manual
not
to use PC's power unless you can safely
). Because of PC board
NOTE
NOTE
set appropriately and that you have noted the switch settings so that you can match
these settings when you program the configuration using DriverLINX. Refer to the
DriverLINX Installation and Configuration Guide
Hardware—Keithley PIO Series
installing boards.
Typically, base addresses between 300h and 370h are available for use.
However, keep in mind that a network board, a sound board, a CD-ROM,
or other data acquisition board may use a base address within this space.
DriverLINX allows you to set base addresses between 200h and 3FCh. If
you are using your PIO-24 board, you must make sure that the four adjacent I/O addresses, needed for the PIO-24, are not used by other devices in
the computer.
If switches on the board are changed after the software has been installed,
the software will need to be reconfigured.
Before installing a PIO-24 board in your computer, make sure that the switches are
and
Using DriverLINX with Your
manuals.
Refer to the documentation provided with your computer for more information on
3
I/O Address Map
3-2I/O Address Map
General
The PIO-24 uses four locations in I/O address space as shown in Table 3-1. Note
that the PIO-24 requires a full block of four I/O addresses.
Table 3-1
PIO-24 locations
LocationFunctionType
Base Address +0PA PortRead/Write
Base Address +1PB PortRead/Write
Base Address +2PC PortRead/Write
Base Address +3ControlWrite only
4
Configuring DriverLINX
4-2Configuring DriverLINX
General
After you have successfully installed the PIO-24 board in your computer, start
Windows to run DriverLINX. For detailed instructions on installing DriverLINX, see
the documentation provided on the DriverLINX CD-ROM; especially the
DriverLINX Installation and Configuration Guide and Using DriverLINX with Your
Hardware—Keithley PIO Series manuals.
NOTEBe sure to note and follow differences in programming between Windows
NT and Windows 95/98 as appropriate for your system.
Run “Learn DriverLINX” (LearnDL.exe) from the DriverLINX program group to
tell DriverLINX how you configured your PIO-24 board and to verify that everything
is properly installed and configured.
1.Start Windows as you normally would and select the Program Manager window. Install DriverLINX if you have not previously done so.
2.Either select the “Learn DriverLINX” icon created when you installed DriverLINX or enter “<drive>:/DRVLNX/LEARNDL” in the Command Line edit
box. The command line edit box is activated by selecting the Run... option.
<drive> is the letter of the hard disk drive where DriverLINX is installed.
3.Immediately after loading Learn DL, the Open DriverLINX DLL dialog box
appears. Select the name of the hardware-specific DLL from the list for your
PIO-24 board. The name is an abbreviation of the board’s model number.
4.From the main menu bar of Learn DL, select the Device menu and choose
Select....
5.Select the Logical Device you wish to configure and then click on the OK
button (return).
6.Again select the Device menu and then choose the Configure... option to display the Device Configuration Dialog Box.
7.From the Model list, select the model name for the PIO-24 board you are
configuring.
8.If the value displayed in the Address edit box is not correct, type the correct
value into the box. You may enter the address in decimal or hexadecimal using
the c-notation for hex, (that is, 768 decimal = 0x300 hexadecimal).
Configuring DriverLINX4-3
9.Choose the correct options for the Analog, Digital, and Counter/Timer Sections by first clicking on the appropriate radio button in the middle of the dialog box and then completing the group of dialog fields in the lower third of the
dialog box. Be sure to click on both the Input and Output radio buttons for the
Analog and Digital groups to see all the dialog fields.
10.After you have made your selections, save the configuration parameters by
clicking on the OK button. This will create or update the configuration for
DriverLINX.
11.Repeat the preceding steps, starting at step 5, for each Logical Device you
wish to configure.
You can use DriverLINX to verify board operation:
1.To physically initialize the PIO-24, select Device/Initialize from the main
menu in Learn DriverLINX.
2.The first time the PIO-24 is initialized, or after a configuration change,
DriverLINX runs a diagnostic program to verify the operation and accuracy of
the configuration settings.
After you install the PIO-24 board and configure DriverLINX for the desired
PIO-24 configuration, you can attach an accessory board and wire the appropriate signals to the board. Before writing your application program, you can test the functions
of the PIO-24 board using the DriverLINX AIO Panel.
4-4Configuring DriverLINX
I/O bit tests
General information
1.Start the AIO Panel as follows:
a.In the Start menu, click Programs.
b. Find the DriverLINX ➧ Test Panels folder, under which you should find
the AIO Panel entry.
c.Click on the AIO Panel entry. The Analog I/O Panel should appear,
similar to the example in Figure 4-1. (If you have other DriverLINX
devices installed in addition to the digital input/output card you are test-
ing, they will also be listed. In that case, select the desired digital I/O
card and the proper device number before proceeding.)
Figure 4-1
An AIO Panel example
NOTEThe “Driver Selection” column will show the actual DriverLINX driver(s)
you have installed.
2.On the AIO Control Panel, click the DIO tab.
Figure 4-2
DIO channel tab example
Configuring DriverLINX4-5
NOTEThe on-screen digital I/O controller works as follows:
•Channels 0 to 15 refer to the 8-bit general-purpose registers of your
digital input-output card. (Depending on which card is used, the number of valid 8-bit registers will vary.) Bits displayed on the Digital Input Panel and the Digital Output Panel are numbered 0-7 for
every channel. Refer elsewhere in this manual for a description of the
available ports and their direction.
•Invalid channels and settings appear as dark gray squares. For
example:
- Non-existent channels always appear as dark gray squares.
- Channels configured as inputs will appear as dark gray squares on
the output panel.
4-6Configuring DriverLINX
•Valid channels and settings appear as white squares when OFF and
•The two-digit numeric displays under Input Bits and Output Bits
•To configure a valid channel either for input or output, use the Digital
•To turn ON output-channel bits, use the Digital Output Panel. First
•To read an input-channel bit, use the Digital Input Panel. First select
green squares when ON. (When the manual is printed in black and
white, valid channels and settings appear as white squares when OFF
and as light gray squares when ON.)
show the hexadecimal values of the adjacent bit patterns.
Channel Configuration Panel. Click on either the Input or Output
square below the channel number. Note: this selection will be disabled
for channels which are fixed as input or output by hardware design.
select the channel number of the bits to be turned on by clicking on the
appropriate square under Channels. Then, turn ON a bit by clicking
the appropriate square under Output Bits. Turn OFF a bit in the same
way.
the channel number to be checked by clicking the appropriate square
under Channels. Then, read the numbered bit under Input Bits. OFF
input bits appear as black dots and ON input bits appear as green
dots. (When the manual is printed in black and white, OFF input bits
appear as black dots and ON input bits appear as light gray dots.)
3.Under Digital I/O Configuration Panel, configure channels as shown in
Figure 4-3. (Actual channels available will vary according to your hardware.)
Figure 4-3
Configuring the digital I/O channels as inputs and outputs
KEITHLEY
Channel Configuration
123456789101112131415
0
Input
Output
NOTEFor clarity when the manual is printed in black and white, the control col-
ors in Figure 4-3 and subsequent drawings will be shown as follows:
Color on Actual
Illustration
BLACKDARK GRAYInvalid
WHITELIGHT GRAYOFF
GRAYGREENON
Digital I/O Configuration Panel
PanelFunction
4.In the Digital Output Panel under Channels, click on a channel (here, channel 0) as shown in Figure 4-4.
Figure 4-4
Configuring channel 0 for output bit pattern A
Configuring DriverLINX4-7
KEITHLEY
Channels
1234567
0
89101112131415
5.In the Digital Output Panel under Output Bits, set the bits of the channel as
desired as shown in Figure 4-4. (Click on each bit position to turn it ON or
OFF.)
6.In the Digital Input Panel under Channels, click on a channel to select it and
display the logical state of its input lines.
Output set test
The output set test checks whether logic levels measured at all output pins agree
with output bit patterns set by software, using a DriverLINX graphical interface (AIO
Panel).
NOTEThis test is performed without user circuits being connected to the outputs.
Perform the output set test as follows:
Digital Output Panel
Output Bits
76543210
55
1.Ready the following equipment:
•A digital voltmeter (DVM) or a digital multimeter (DMM) set to measure
voltages, or a logic probe capable of reading TTL logic levels.
•A suitable accessory and cable for the board being tested.
2.Turn OFF the host computer.
3.Connect the cable and accessory to your board.
4.Turn ON the host computer and boot Windows 95/98/NT.
5.Click the Windows 95/98/NT Start tab.
4-8Configuring DriverLINX
6.Start the AIO Panel as follows:
a.In the
b. Find the
the
c.Click on the
similar to the example in Figure 4-5. (If you have other DriverLINX
devices installed in addition to the digital input/output card you are testing, they will also be listed. In that case, select the desired digital I/O
card and the proper device number before proceeding.)
Figure 4-5
An AIO Panel example
Start menu, click Programs.
DriverLINX ➧ Test Panels folder, under which you should find
AIO Panel entry.
AIO Panel entry. The Analog I/O Panel should appear,
7.On the AIO Panel, click the DIO tab.
NOTETo read an input-channel bit, use the Digital Input Panel. First, select the
channel number to be checked by clicking the appropriate square under
Channels. Then, read the numbered bit under Input Bits. OFF input bits
appear as black dots and ON input bits appear as green dots. (When the
manual is printed in black and white, OFF input bits appear as black dots
and ON input bits appear as light gray dots.) Further information about
this panel, how to make changes, and how to interpret displays, is given in
“I/O Bit Tests” of this section.
8.Under Digital I/O Configuration Panel, configure the output channels to be
tested as shown in Figure 4-6. (Actual output channels available will vary
according to your hardware.)
Figure 4-6
Configuring the digital I/O channels as inputs and outputs
Configuring DriverLINX4-9
KEITHLEY
Channel Configuration
123456789101112131415
0
Input
Output
NOTEIn Figure 4-6 and subsequent drawings of digital I/O controller panels, the
squares below invalid channels are colored black instead of dark gray—for
clarity when the manual is printed in black and white.
9.In the Digital Output Panel under Channels, click on an output channel
(channel 0 in this example) as shown in Figure 4-7.
Figure 4-7
Configuring channel 0 for output bit pattern A
KEITHLEY
Channels
1234567
0
89101112131415
Digital I/O Configuration Panel
Digital Output Panel
Output Bits
76543210
55
10.In the Digital Output Panel under Output Bits, set the bits of channel 0 for
bit pattern A as shown in Figure 4-7.
4-10Configuring DriverLINX
11.Measure the voltage between signal ground and each bit of the output port
with a DMM or DVM. Make measurements at the cabled mating connector of
your accessory.
12.Each bit set to ON in the
corresponding I/O terminal, reading typically about 4 volts (minimum of 2.2
volts) at a DMM/DVM. Each bit set to OFF in the
logic-low signal at the corresponding I/O terminal, reading typically about
0 volts (maximum of 0.8 volts) at a DMM/DVM. Do one of the following:
NOTEThe typical values shown are valid for boards with TTL compatible out-
puts. For boards with relay outputs (REL-16, PDISO-8, and PIO-32) the
output will be a relay contact closure. For boards with open collector outputs (PIO-HV) use a pull up resistor to an appropriate voltage to detect
output state. Refer to the hardware description in this user’s guide for more
details on the output’s electrical specification.
•If the bit patterns set on the AIO Panel do not agree with the logic levels
measured at the I/O terminals, the board is not functioning properly. Stop
here, and determine why.
•If the bit patterns set on the
sured at the I/O terminals, then repeat steps 9, 10, and 11 for remaining
output channels.
13.In the
test (channel
AIO Panel should output a logic-high signal at the
AIO Panel should output a
AIO Panel agree with the logic levels mea-
Digital Output Panel under Channels, click on the output channel to
in this example) as shown in Figure 4-8.
0
Figure 4-8
Configuring channel 0 for output bit pattern B
KEITHLEY
Channels
1234567
0
89101112131415
14.In the
Digital Output Panel under Output Bits, set the bits of channel 0 for
bit pattern B as shown in Figure 4-8.
15.Measure the voltage between signal ground and each bit of the output port
with a DMM or DVM. Make measurements at the STA-50 terminals or the
cabled mating connector that is connected to the selected CONN-3160-D1
50-pin connector.
Digital Output Panel
Output Bits
76 5 432 1 0
AA
Configuring DriverLINX4-11
16.Again, each bit set to ON in the AIO Panel should output a logic-high signal
at the corresponding I/O terminal, reading typically about 4 volts (minimum
of 2.2 volts) at a DMM/DVM. Each bit set to OFF in the AIO Panel should
output a logic-low signal at the corresponding I/O terminal, reading typically
about 0 volts (maximum of 0.8 volts) at a DMM/DVM.
NOTEThe typical values shown are valid for boards with TTL compatible out-
puts. For boards with relay outputs (REL-16, PDISO-8, and PIO-32) the
output will be a relay contact closure. For boards with open collector outputs (PIO-HV) use a pull up resistor to an appropriate voltage to detect
output state. Refer to the hardware description in this user’s guide for more
details on the output’s electrical specification.
•If the bit patterns set on the AIO Panel do not agree with the logic levels
measured at the I/O terminals, the board is not functioning properly. Stop
here, and determine why.
•If the bit patterns set on the AIO Panel do agree with the logic levels
measured at the I/O terminals, and you have performed an output set test
for all ports, the board is functioning properly.
17.Repeat steps 13, 14, and 15 for additional output channels.
Input read test
A similar test of input circuitry can be performed by applying an input signal of
suitable type to each input line and verifying that the appropriate input indicator
changes state. Refer to the hardware description in this user’s guide for more details
on the input’s electrical specifications.
5
Programming
5-2Programming
General
whenever the PC Bus RESET line is asserted, all ports are initially set up in the Input
Mode.
set by the Control Register. The PC Port can also be used as a byte-wide port, or it can
be split into two ports of four bits (nibble wide). The PC0-3 Lines are known as PC-Lower, and the PC4-7 Lines as PC-Upper. Directions of the PC Upper and Lower
ports are independently programmable. Detailed port descriptions are as follows:
The PIO-24 emulates the Intel 8255 PPI Control Word Mode 0. On power up or
The PA and PB Ports are byte-wide, and the direction of all lines within a port is
•Port A — Consists of one 8-bit data output latch/buffer and one 8-bit data
input latch.
•Port B — Consists of one 8-bit data output latch/buffer and one 8-bit data
input buffer.
•Port C — Consists of one 8-bit data output latch/buffer and one 8-bit data
input buffer. This port can be divided into two 4-bit ports under the Mode
Control.
Control Byte
At power-up or after a system reset, all PIO-24 lines are configured as inputs. The
Control Byte is an 8-bit (byte) hexadecimal number used to configure the direction of
the PIO-24 ports: PA, PB, PC (lines 0-3) and PC (4-7). The controlling PIO-24 software program must output the Control Byte to the PIO-24 to change the directions
(input or output) of the ports. It is important to note that there is one byte to control
four ports and that when a port is initialized as an output port its lines are in a reset
state. The Control Byte is output to the PIO-24 address location at base address+3.
Programming5-3
To simplify your selection of a Control Byte to match your choice of port directions, use Table 5-1. This chart summarizes information from the Intel Peripheral Data book on control words and their port directions for Mode 0.
Table 5-1
Mode 0 control words and port directions
Port C
Control BytePort APort B
80h
81h
82h
83h
88h
89h
8Ah
8Bh
90h
91h
92h
93h
98h
99h
9Ah
9Bh
When a port is programmed as an output, you can return the data that is present on
the output lines by reading the same location. Note that this reflects the actual state of
the output lines: if one or more is shorted, you are actually reading back the state of
the output lines.
Out
Out
Out
Out
Out
Out
Out
Out
In
In
In
In
In
In
In
In
Out
Out
In
In
Out
Out
In
In
Out
Out
In
In
Out
Out
In
In
(0 - 3)
Out
In
Out
In
Out
In
Out
In
Out
In
Out
In
Out
In
Out
In
Port C
(4 - 7)
Out
Out
Out
Out
In
In
In
In
Out
Out
Out
Out
In
In
In
In
Selecting an application programming interface
The PIO Series supports two different device driver interfaces to best match your
programming needs. The supported driver interfaces are:
•DriverLINX — An interface that is hardware and operating system indepen-
dent and supports multi-tasking, multi-threading applications.
•Direct I/O — An interface that is operating system independent and supports
single-tasking, single-threaded access to an Intel 8255-like function call
interface.
5-4Programming
DriverLINX interface
interface be used. The DriverLINX interface has the following advantages:
For maximum portability and versatility, it is recommended that the DriverLINX
•Hardware independence — DriverLINX supports ISA, PCMCIA, and PCI
digital I/O boards with a common interface as well as digital ports on analog
I/O and counter/timer boards.
•Operating system independence — DriverLINX supports Windows 95/98
and Windows NT with a common interface.
•Shared hardware access — DriverLINX allows multiple processes or
threads to cooperatively share hardware resources.
•Multi-tasking, multi-threading support — DriverLINX provides the syn-
chronization and coordination for multi-tasking, multi-threading applications
to safely access shared hardware resources.
•Portability — DriverLINX supports older and newer hardware with a
common interface for 16- and 32-bit applications on Windows 95/98 and
Windows NT.
•Versatility — DriverLINX supports a wide variety of programming styles
and languages including C/C++, Visual Basic, Delphi, and LabVIEW.
•Background I/O — DriverLINX supports background I/O using interrupts or
other techniques so your application can overlap processing and data
acquisition.
•Full hardware support — DriverLINX supports all the hardware’s features.
The DriverLINX interface has a few disadvantages compared to the alternative
interfaces:
•Software modifications — Existing applications will require rewriting to use
DriverLINX.
•No direct hardware access — Before Windows NT, Microsoft discouraged,
but nevertheless allowed, direct application program access to hardware.
•Speed of single-value I/O — Applications, especially those ported from
DOS, that depend on rapid software polling of I/O ports will notice that the
operating system time cost for multi-tasking, multithreading synchronization
is higher than direct hardware access.
While writing your application to use a multi-product (portable application programming interface is the best long-term solution) you should consider the alternative
API only for special purpose or short-term needs.
Direct I/O application programming interface
The Direct I/O interface uses the methods of an ActiveX Automation object to
access the PIO hardware. This interface has the following advantages:
•Operating system independence — Both Windows 95/98 and Windows NT
support this interface.
•Intel 8255 emulation — This interface uses the I/O address map and pro-
gramming protocols of Intel’s 8255 chip.
•Fast hardware access — This interface provides the fastest access to the
hardware registers of the two interfaces.
•Versatility — Most Windows compilers and scripting languages support
ActiveX Automation objects.
•Native hardware register access — For special-purpose applications, this
interface also supports product-specific access to the hardware registers.
•Speed of single-value I/O — The I/O performance of this interface is the
fastest of the two interfaces when using early binding to the interface.
The Direct I/O interface also has disadvantages:
•Incompatible with DriverLINX — Applications cannot use this interface
with DriverLINX for the PIO Series either in the same or another application.
•32-bit only interface — 16-bit applications cannot use this interface.
•Non-exclusive hardware access — This interface does not synchronize or
coordinate hardware access among threads or processes.
•8-bit I/O only — The Intel 8255-based methods only support 8-bit hardware
access.
•Supports subset of hardware features — This interface does not support
using interrupts.
•ActiveX Interface — Using Automation objects in some C++ compilers is
more difficult than in Visual Basic.
Programming5-5
Installing the Direct I/O Driver
The normal DriverLINX installation automatically installs the Direct I/O Driver.
This driver is a registered ActiveX object that resides in KISAPIO.DLL.
This driver requires that you install the DriverLINX kernel drivers as it uses their
services. On Windows NT, the kernel driver is KMBPIO.SYS. On Windows 95/98, it
is KMBPIO.VXD. Follow the normal DriverLINX installation and configuration procedures to install these kernel drivers.
5-6Programming
Configuring the Direct I/O Driver
using the DriverLINX Configuration Panel utility. The Direct I/O driver does not
require any separate configuration.
Programming the Direct I/O Interface
This control is compatible with Microsoft Visual C++ and Visual Basic as well as
other ActiveX-hosting languages.
8255 chip. Consult an Intel hardware manual or DriverLINX manual for information
on programming the 8255 chip.
IISAPIO Intel 8255 interface
Object Browser to see the VB syntax (see the next subsection, Using the Direct I/O
Driver in Visual Basic).
The Direct I/O Driver requires that you configure a DriverLINX Logical Device
The Direct I/O Interface is an ActiveX Automation object hosting one interface.
The methods of the control’s interface, ISAPIO, access the 8-bit ports of an Intel
The following syntax descriptions are shown in C/C++. For Visual Basic, use the
•HRESULT Open Device(long Device);
Opens a PIO device
Device is the DriverLINX Logical Device number of the PIO board to open.
•HRESULT CloseDevice();
Closes a previously opened PIO device.
The number of CloseDevice calls must match the number of OpenDevice
calls.
Reads an 8-bit value from the PIO board.
Offset is the value of the register to read relative to the base I/O address.
Result is the value read from the register.
Writes an 8-bit value to the PIO board.
Offset is the value of the register to write relative to the base I/O address.
Value is the output to write to the register.
•HRESULT OpenCount(long *Count);
Returns the number of times a client has called OpenDevice for this Logical
Device. Count is the address of the value for the result.
•HRESULT Device(long *LogicalDevice);
Returns the Logical Device number if the device is open. Otherwise it returns
-1. LogicalDevice is the address of the value for the result.
Programming5-7
Using the Direct I/O Driver in Visual Basic
The following instructions are for Version 5 of Microsoft Visual Basic. If you have
a different version, consult the Visual Basic documentation.
1.From VB’s P
2.Scroll through the A
I/O Library.
3.Check Keithley ISA PIO Direct I/O Library and then click OK.
4.From VB’s V
5.Search for KISAPIOLib.
6.The Object Browser shows the VB syntax for the KISAPIO class.
roject menu, select References....
vailable References, looking for Keithley ISA PIO Direct
iew menu, select Object Browser to display a list of libraries.
Creating a simple Visual Basic application
1.Create a Visual Basic form.
2.Add the following source code to declare, open, close, read, and write a PIO
device:
Option Explicit
Dim PIO As New KISAPIO
Private Sub Close_Click()
PIO.CloseDevice
End Sub
Private Sub btOpen_Click()
PIO.OpenDevice (Val(tbDevice))
End Sub
Private Sub btRead_Click()
tbValue=Hex(PIO.Read(Val(tbAddr)))
End Sub
Private Sub btWrite_Click_()
Dim v As Byte
v=Val(tbValue)
PIO.Write Val(tbAddr), v
End Sub
6
Troubleshooting
6-2Troubleshooting
General
If your PIO-24 board is not operating properly, use the information in this chapter
to isolate the problem. If the problem appears serious enough to warrant technical
support, refer to Technical support on page 6-6 for information on how to contact an
applications engineer.
Using the DriverLINX Event Viewer
The DriverLINX Event Viewer displays the Windows system event log. Applications and hardware drivers make entries in the system event log to assist in predicting
and troubleshooting hardware and software problems.
DriverLINX uses the event log to report problems during driver loading or unexpected system errors. The event log can assist in troubleshooting resource conflicts
and DriverLINX configuration errors. If you are having trouble configuring or initializing a Logical Device, check the event log for information from the DriverLINX
driver.
Using the DriverLINX Event Viewer, you can view, save and e-mail DriverLINX
event log entries under Windows 95/98 or Windows NT. DriverLINX event log
entries can help you or technical support troubleshoot data-acquisition hardware and
software problems.
Device initialization error messages
During device initialization, DriverLINX performs a thorough test of all possible
subsystems on PIO-24 boards as well as the computer interface. If DriverLINX
detects any problems or unexpected responses, it reports an error message to help
isolate the problem. The device initialization error messages fall into three basic
categories:
•“Device not found” — Board address does not match hardware setting or
conflicts with another board. Verify the board’s address settings. Also, do not
confuse hexadecimal with decimal addresses in the DriverLINX Device
Configure dialog box.
•“Invalid IRQ level” or “Invalid DMA level” — Selected level does not
match hardware setting, conflicts with another board’s IRQ/DMA levels, or is
dedicated to the computer’s internal functions (COM port, disk drive
controller, network adapter, etc.)
•“Hardware does not match configuration” — Operating mode/range switch
or jumper setting does not match selection(s) made in the DriverLINX Device
Configuration dialog box.
Problem isolation
If you encounter a problem with a PIO-24 board, use the instructions in this sec-
tion to isolate the cause of the problem before calling Keithley for technical support.
If your board is not operating properly after using the information in Table 6-1,
continue with the next two sections to further isolate the problem.
Table 6-1
Troubleshooting information
SymptomPossible CausePossible Solution
Board does
not respond
Intermittent
operation
Base address is incorrect or not
consistent with what the program is addressing.
The interrupt level is incorrect
or not consistent with what the
program is addressing.
The board configuration is
incorrect.
The board is incorrectly aligned
in the accessory slot.
The board is damaged.Contact the Keithley Applications
The most common cause of this
problem is that the I/O bus
speed is in excess of 8 MHz.
Vibrations or loose connections exist.
The board is overheating.Check environmental and ambient
Electrical noise exists.Provide better shielding or reroute
Troubleshooting6-3
Check the base-address switch
setting on the board against the
setting shown in the DriverLINX
configuration. If the base address is
set correctly, make sure no other
computer device is using any of the
I/O locations beginning at the
specified base address. If necessary,
reconfigure the base address.
Make sure no other computer device
is using the interrupt level specified
in your program. If necessary, reset
the interrupt level.
Check the remaining settings in the
DriverLINX configuration.
Check the board for proper seating.
Engineering Department.
Reduce the I/O bus speed to a maximum of 8 MHz (to change the I/O
bus speed, run BIOS setup). See
your computer documentation for
instructions on running BIOS setup.
Cushion source of vibration and
tighten connections.
temperature. See the documentation for your computer.
unshielded wiring.
6-4Troubleshooting
Table 6-1 (cont.)
Troubleshooting information
SymptomPossible CausePossible Solution
Data
appears to
be invalid
Computer
does not
boot.
System
lockup
The most common cause of this
problem is that the I/O bus
speed is in excess of 8 MHz.
Reduce the I/O bus speed to a maximum of 8 MHz (to change the I/O
bus speed, run BIOS setup). See
your computer documentation for
instructions on running BIOS setup.
An open connection exists.Check wiring to screw terminal.
Another system resource is
using the specified base
address.
Reconfigure the base address of the
PIO-24 board. Check the I/O
assignments of other system
resources and reconfigure, if
necessary.
Board not seated properly.Check the installation of the board.
The base address setting of the
PIO-24 board conflicts with
that of another system resource.
The power supply of the host
computer is too small to handle
all the system resources.
Check the base address settings of
your system resources; each address
must be unique.
Check the needs of all system
resources and obtain a larger power
supply.
A timing error occurred.Restart your computer.
Testing the board and host computer
To isolate the problem to the PIO-24 board or to the host computer, use the follow-
ing steps:
CAUTIONRemoving a board with the power ON can cause damage to your
board and/or computer.
1.Turn the power to the host computer OFF, and remove power connections to
the computer.
2.While keeping connections to accessories intact, unplug the cable to the main
I/O connector of the PIO-24 board.
3.Remove the board from the computer and visually check for damage. If a
board is obviously damaged, refer to Technical support on page 6-6 for infor-
mation on returning the board.
4.With the PIO-24 board out of the computer, check the computer for proper
operation. Power up the computer and perform any necessary diagnostics.
At this point, if you have another PIO-24 board that you know is functional, you
can test the slot and I/O connections using the instructions in the next section. If you
do not have another board, refer to the instructions on page 6 before calling Keithley
Instruments for technical support.
Troubleshooting6-5
Testing the accessory slot and I/O connections
When you are sure that the computer is operating properly, test the computer
accessory slot and I/O connections using another PIO-24 board that you know is
functional. To test the computer accessory slot and the I/O connections, follow these
steps:
1.Remove computer power again, and install a PIO-24 board that you know is
functional. Do not make any I/O connections.
2.Turn computer power ON and check operation with the functional board in
place. This test checks the computer accessory slot. If you were using more
than one board when the problem occurred, use the functional board to test
the other slot, as well.
3.If the accessory slots are functional, use the functional board to check the I/O
connections. Reconnect and check the operation of the I/O connections, one at
a time.
4.If operation fails for an I/O connection, check the individual inputs one at a
time for shorts and opens.
5.If operation remains normal to this point, the problem is in the PIO-24
board(s) originally in the computer. If you were using more than one board,
try each board one at a time in the computer to determine which is faulty.
6.If you cannot isolate the problem, refer to the next section for instructions on
obtaining assistance.
6-6Troubleshooting
Technical support
Before returning any equipment for repair, call Keithley for technical support at:
Monday - Friday, 8:00 a.m. - 5:00 p.m., Eastern Time
An applications engineer will help you diagnose and resolve your problem over the
telephone. Please make sure that you have the following information available before
you call:
PIO-24 board configurationModel
ComputerManufacturer
Operating systemWindows version
Software packageName
Compiler (if applicable)Language
1-888-KEITHLEY
Serial number
Revision code
Base address setting
Interrupt level setting
Number of channels
Output signal (V or I)
Mode (uni. or bip.)
Output span
Number SSH-8 boards
Number EXP boards
CPU type
Clock speed (MHz)
KB of RAM
Video system
BIOS type
Windows mode
Serial number
Version
Invoice/Order number
Manufacturer
Version
Troubleshooting6-7
AccessoriesType
Type
Type
Type
Type
Type
Type
Type
Type
If a telephone resolution is not possible, the applications engineer will issue you a
Return Material Authorization (RMA) number and ask you to return the equipment.
Include the RMA number with any documentation regarding the equipment.
When returning equipment for repair, include the following information:
•Your name, address, and telephone number.
•The invoice or order number and date of equipment purchase.
•A description of the problem or its symptoms.
•The RMA number on the
Repackage the equipment, using the original anti-static wrapping, if possible, and
handle it with ground protection. Ship the equipment to:
NOTEIf you are submitting your equipment for repair under warranty, you must
include the invoice number and date of purchase.
To enable Keithley to respond as quickly as possible, you must include the
RMA number on the outside of the package.
outside of the package.
ATTN.: RMA# _______
Repair Department
Keithley Instruments, Inc.
28775 Aurora Road
Cleveland, Ohio 44139
Telephone 1-888-KEITHLEY
FAX (440) 248-6168
Index
A
Acrobat
for DriverLINX installation2-5
address
configuration in DriverLINX4-2
analog output range
configuration in DriverlINX4-3
B
base address
set before configuration2-7
browser map
DriverLINX installation2-6
C
cache
disabling for software
installation2-5
CD ROM
DriverLINX installation2-6
compiler
required for supporting Windows
development1-2
computer
needed for PIO-24 and
DriverLINX1-2
computer resources
determination for installation2-5
configuration
using DriverLINX2-7
counter/timer
configuration in DriverLINX4-3
E
error messages
device initialization6-2
event log
used to detect errors6-2
event viewer
in DriverLINX6-2
I
I/O bit tests4-4
General information4-4
Input read test4-11
Output set test4-7
interfaces
installing for applications2-6
interrupt level
set before configuration2-7
L
Learn DriverLINX
description1-3
using for configuration4-2
logical device
configuration in DriverLINX4-2
M
manuals
DriverLINX2-6
memory
requirement for computer1-2
Microsoft Windows
versions supported1-2
P
Product change notice1-4
D
device
menu in DriverLINX4-2
DriverLINX
API DLLs
description1-3
configuration with2-7
event viewer6-2
installing and configuring2-5
using to verify board operation4-3
drivers
installing for applications2-6
R
RMA
obtaining for material return
S
shipping instructions
for returning material6-7
switches
setting prior to installation2-5
6-7
T
technical support
instructions for using6-6
V
verify
board operation
using DriverLINX4-3
Specifications are subject to change without notice.
All Keithley trademarks and trade names are the property of Keithley Instruments, Inc. All other trademarks and
trade names are the property of their respective companies.