United Kingdom:One Omega Drive, River Bend Technology Centre
ISO 9002 CertifiedNorthbank, Irlam, Manchester
M44 5BD United Kingdom
TEL: +44 (0)161 777 6611FAX: +44 (0)161 777 6622
Toll Free in United Kingdom: 0800-488-488
e-mail: sales@omega.co.uk
OMEGAnet®Online Service Internet e-mail
www.omega.com info@omega.com
It is the policy of OMEGA to comply with all worldwide safety and EMC/EMI regulations that
apply. OMEGA is constantly pursuing certification of its products to the European New Approach
Directives. OMEGA will add the CE mark to every appropriate device upon certification.
The information contained in this document is believed to be correct, but OMEGA Engineering, Inc. accepts
no liability for any errors it contains, and reserves the right to alter specifications without notice.
WARNING: These products are not designed for use in, and should not be used for, patient-connected applications.
The OME-PIO-D48 provides 48 TTL digital I/O lines. The OME-PIO-D48
consists of two 24-bit bi-direction ports. Each 24-bit port supports three 8-bit
groups A, B, C. Each 8-bit group can be configured to function as either inputs
or latched outputs. All groups are configured as inputs upon power-up or reset.
Outputs of the I/O buffers are pulled up through 10K resistors to +5VDC.
Outputs can be changed to pull-down by jumper selection on the board. This
pull-up/pull-down mechanism assures that there are no erroneous outputs at
power-up until the board is initialized by application software.
The OME-PIO-D48 has one D-Sub connector and one 50-pin flat-cable
header. The header can be connected to a 50-pin flat-cable. The flat-cable can
be connected to OME-ADP-37/PCI or OME-ADP-50/PCI adapters. The adapter
can be fixed on the chassis. It can be installed in a 5 V PCI bus and supports
“Plug & Play”.
1.1 Features
• PCI Bus
• Up to 48 channels of digital I/O
• All I/O lines buffered on the board
• Eight-bit groups independently selectable for I/O on each 24-bit port
• Input/Output programmable I/O ports under software control
• SMD, short card, power saving
• Connects directly to OME-DB-24P, OME-DB-24R, OME-DB-24PR, OME-
In addition to this manual, the package includes the following items:
• one piece of OME-PIO-D48 card
• one piece of software floppy diskette or CD
• one piece of release note
It is recommended to read the release note first. All important information will be given
in release note as following:
1. Where you can find the software driver & utility?
2. How to install software & utility?
3. Where is the diagnostic program?
4. FAQ
Attention !
If any of these items are missing or damaged, contact Omega Engineering
immediately. Save the shipping materials and the box in case you want to ship or store
the product in the future.
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 5
2. Hardware configuration
2.1 Board Layout & Default Setting
PCI BUS
JP3 (port-1)
3=pull-low
2
1=pull-High
PC=port-2
JP4 (port-2)
3=pull-low
PA=port-0
PB=port-1
2
1=pull-High
ome-DB-37
CN1
JP2 (port-0)
1=pull-High
2
3=pull-low
OME-PIO-D48
PCI BUS
JP7 (port-5)
3=pull-low
2
1=pull-High
JP6 (port-4)
3=pull-low
2
PA=port-3
PB=port-4
PC=port-5
1=pull-High
JP5 (port-3)
3=pull-low
CN2
50-pin
2
1=pull-High
Default Setting: JP2/3/4/5/6/7=2-3 short=pull-low
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 6
2.2 I/O Port Location
There are six 8-bit I/O ports in the OME-PIO-D48. Every I/O port can be
programmed as D/I or D/O port. When the PC is first power-up, all six ports are
configured as D/I port. These D/I ports can be pull-high or pull-low selected by JP2 ~
JP7. These I/O port locations are given as following:
Connector of OME-PIO-D48 PA0 to PA7 PB0 to PB7 PC0 to PC7
CN1
(OME-DB-37)
CN2
(50-pin head)
• Note 1: Refer to Sec. 2.1 for board layout & I/O port location.
• Note 2: Refer to Sec. 2.1 for JP 2 ~ 7 pull-high/pull-low.
port-0
(pull-high/low
by JP2)
port-3
(pull-high/low
by JP5)
port-1
(pull-high/low
by JP3)
port-4
(pull-high/low
by JP6)
port-2
(pull-high/low by
JP4)
port-5
(pull-high/low by
JP7)
2.3 I/O Port Initialization Operation
When the PC is powered-up, all operations of D/I/O port are disabled. The
enable/disable of D/I/O is controlled by the RESET\ signal. Refer to Sec. 3.3.1 for more
information about RESET\ signal. The power-up states are given as following:
• All D/I/O are disabled
• All six D/I/O ports are configured as D/I port
• All D/O latch register outputs are at high impedance.(refer to Sec. 2.4)
The user has to perform some initialization before using these D/I/Os. The
recommended steps are given as following:
Step 1: find address-mapping of PIO/PISO cards (refer to Sec. 3.1)
Step 2: enable all D/I/O (refer to Sec. 3.3.1)
Step 3: configure the first three ports to their expected D/I/O state & send the
initial value to all D/O ports (refer to Sec. 3.3.7)
Step 4: configure the other three ports to their expected D/I/O state & send the
initial value to all D/O ports (refer to Sec. 3.3.7)
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 7
The sample program is given as following:
/* step 1: find address-mapping of PIO/PISO cards */
clrscr();
wRetVal=PIO_DriverInit(&wBoards,0x80,0x01,0x30); /* for OME-PIO-D48 */
printf("\nThrer are %d PIO_D48 Cards in this PC",wBoards);
if (wBoards==0) exit(0);
printf("\n------------ The Configuration Space ----------------");
for(i=0; i<wBoards; i++)
{
PIO_GetConfigAddressSpace(i,&wBase,&wIrq,&wSubVendor,
&wSubDevice,&wSubAux,&wSlotBus,&wSlotDevice);
default: all JPs are in 2-3-short Æ select pull-low
2
10K
GND
(pull low)
(1-2-ON=pull-high, 2-3-ON=pull-low)
• If D/I/O is configured as D/O port Æ D/I = read back of D/O
• If D/I/O is configured as D/I port Æ send to D/O will change the D/O latch register
only. The D/I & external input signal will not change.
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 9
2.5 Interrupt Operation
There are four interrupt sources in OME-PIO-D48. These four signals are named as
INT_CHAN_0, INT_CHAN_1, INT_CHAN_2 and INT_CHAN_3. Their signal sources
are given as following:
INT_CHAN_0: PC3/PC7 from port-2(refer to Sec. 2.5.2)
INT_CHAN_1: PC3/PC7 from port-5(refer to Sec. 2.5.3)
INT_CHAN_2: Cout0(refer to Sec. 2.5.4)
INT_CHAN_3: Cout2(refer to Sec. 2.5.5)
If only one interrupt signal source is used, the interrupt service routine does not
have to identify the interrupt source. Refer to DEMO4.C, DEMO7.C, DEMO8.C,
DEMO9.C and DEMO10.C for more information.
If there are more than one interrupt source, the interrupt service routine has to
identify the active signals as following: (refer to DEMO11.C)
1. Read the new status of all interrupt signal sources(refer to Sec 3.3.5)
2. Compare the new status with the old status to identify the active signals
3. If INT_CHAN_0 is active, service it
4. If INT_CHAN_1 is active, service it
5. If INT_CHAN_2 is active, service it
6. If INT_CHAN_3 is active, service it
7. Update interrupt status
Note: If the interrupt signal is too short, the new status may be as same as old
status. In that condition the interrupt service routine can not identify which
interrupt source is active. So the interrupt signal must have hold_active long
enough until the interrupt service routine is executed. This hold_time is different
for different O.S. The hold_time can be as short as micro-second or as long as
second. In general, 20ms is enough for all O. S.
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 10
2.5.1 Interrupt Block Diagram of OME-PIO-D48
INT_CHAN_0
INT\
Level_trigger
The interrupt output signal of OME-PIO-D48, INT\, is
Active_Low
PC once a time. If the INT\ is fixed in low level, the OME-PIO-D48 will interrupt the
PC continuously. So the INT_CHAN_0/1/2/3 must be controlled in a pulse_type
signals. They must be fixed in low level state normally and must generate
. If the INT\ generate a low-pulse, the OME-PIO-D48 will interrupt the
INT_CHAN_1
INT_CHAN_2
INT_CHAN_3
initial_low
active_high
level-trigger &
a high_pulse to interrupt the PC.
The priority of INT_CHAN_0/1/2/3 is the same. If all these four signals are
active at the same time, then INT\ will be active only once a time. So the interrupt
service routine has to read the status of all interrupt channels for multi-channel interrupt.
Refer to Sec. 2.5 for more information.
DEMO11.C Æ for both INT_CHAN_0 & INT_CHAN_1
If only one interrupt source is used, the interrupt service routine does not have to
read the status of interrupt source. The demo programs; DEMO4.C to DEMO10.C; are
designed for single-channel interrupt demo as following:
DEMO4.C Æ for INT_CHAN_3 only
DEMO7.C Æ for INT_CHAN_2 only
DEMO8.C Æ for INT_CHAN_0 only
DEMO9.C Æ for INT_CHAN_0 only
DEMO10.C Æ for INT_CHAN_1 only
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 11
2.5.2 INT_CHAN_0
INT_CHAN_0
The INT_CHAN_0 must be fixed in low level state normally and
generate a high_pulse to interrupt the PC.
The INT_CHAN_0 can be equal to PC3&!PC7 or PC3 programmable as
following:(refer to Sec. 3.3.9)
01
00
10
PC3&!PC7(port-2)
Disable
PC3(port-2)
Inverted/Noninverted select
(INV0)
Enable/Disable select
(EN0)
CTRL_D3=0, CTRL_D2=1 Æ INT_CHAN_0=disable
CTRL_D3=1, CTRL_D2=0 Æ INT_CHAN_0=PC3 of port-2
CTRL_D3=0, CTRL_D2=0 Æ INT_CHAN_0=PC3&!PC7 of port-2
The EN0 can be used to enable/disable the INT_CHAN_0 as following: (refer to
Sec. 3.3.4)
EN0=0 Æ INT_CHAN_0=disable
EN0=1 Æ INT_CHAN_0=enable
The INV0 can be used to invert/non-invert the PC3 or PC3&!PC7 as following:
(Refer to Sec. 3.3.6)
INV0=0 Æ INT_CHAN_0=inverted state of (PC3 or PC3&!PC7 of port-2)
INV0=1 Æ INT_CHAN_0=non-inverted state of (PC3 or PC3&!PC7 of port-2)
Refer to demo program for more information as following:
DEMO8.C Æ for INT_CHAN_0 only (PC3 of port-2)
DEMO9.C Æ for INT_CHAN_0 only (PC3&!PC7 of port-2)
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 12
If the PC3 is a level signal, the interrupt service routine should use INV0 to
inverted/non-inverted the PC3 for high_pulse generation as following:
void interrupt irq_service()/* this ISR is in DEMO8.C */
{
if (now_int_state==1) /* now PC3 is changed to LOW */(a)
{ /* --> INT_CHAN_3=!PC3=HIGH now */
COUNT++; /* find a LOW_pulse (PC3) */
If((inport(wBase+7)&1)==0)/* the PC3 is still fixed in LOW */
Æ
{ /*
outportb(wBase+0x2a,1);/* INV0 select the non-inverted input */(b)
/* INT_CHAN_0=PC3=LOW --> */
/* INT_CHAN_0 generate a high_pulse */
now_int_state=0; /* now PC3=LOW */
}
else now_int_state=1; /* now PC3=HIGH */
/* (no need to generate high_pulse) */
}
else /* now PC3 is changed to HIGH */(c)
{ /* --> INT_CHAN_0=PC3=HIGH now */
/* find a HIGH_pulse (PC3) */
If((inport(wBase+7)&1)==1)/* the PC3 is still fixed in HIGH */
{ /* need to generate a high_pulse */
outportb(wBase+0x2a,0);/* INV0 select the inverted input */(d)
/* INT_CHAN_0=!PC3=LOW --> */
/* INT_CHAN_0 generate a high_pulse */
now_int_state=1; /* now PC3=HIGH */
}
else now_int_state=0; /* now PC3=LOW */
/* (no need to generate high_pulse) */
}
if (wIrq>=8) outportb(A2_8259,0x20);
outportb(A1_8259,0x20);
}
PC3
INV0
INT_CHAN_0
(a)(b)(c)(d)
need to generate a high_pulse */
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 13
2.5.3 INT_CHAN_1
INT_CHAN_1
01
00
10
Inverted/Noninverted select
The INT_CHAN_1 must be fixed in low level state normally and
must generate a high_pulse to interrupt the PC.
The INT_CHAN_1 can be equal to PC3&!PC7 or PC3 programmable as
following:(refer to Sec. 3.3.9)
Disable
PC3&!PC7(port-5)
PC3(port-5)
(INV1)
Enable/Disable select
(EN1)
CTRL_D5=0, CTRL_D4=1 Æ INT_CHAN_1=disable
CTRL_D5=1, CTRL_D4=0 Æ INT_CHAN_1=PC3 of port-5
CTRL_D5=0, CTRL_D4=0 Æ INT_CHAN_1=PC3&!PC7 of port-5
The EN1 can be used to enable/disable the INT_CHAN_1 as following: (refer to
Sec. 3.3.4)
EN1=0 Æ INT_CHAN_1=disable
EN1=1 Æ INT_CHAN_1=enable
The INV1 can be used to invert/non-invert the PC3 or PC3&!PC7 as following:
(Refer to Sec. 3.3.6)
INV1=0 Æ INT_CHAN_1=inverted state of (PC3 or PC3&!PC7 of port-5)
INV1=1 Æ INT_CHAN_1=non-inverted state of (PC3 or PC3&!PC7 of port-5)
Refer to demo program for more information as following:
DEMO10.C Æ for INT_CHAN_1 only (PC3&!PC7 of port-5)
NOTE: refer to Sec. 2.5.2 for active high-pulse generation.
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 14
2.5.4 INT_CHAN_2
INT_CHAN_2
Cout0
PC0
(port-2)
The INT_CHAN_2 must be fixed in low level state normally and
must generate a high_pulse to interrupt the PC.
The PC0 (port-2) can be inverted/non-inverted programmable as following:
(refer to Sec. 3.3.9)
CTRL_D1=0 Æ Cin0=PC0 of port-2
CTRL_D1=1 Æ Cin0=!PC0 of port-2
Inverted/Noninverted
select
(CTRL-D1))
Inverted/Noninverted
select
(INV2)
Enable/Disable
select
(EN2)
The EN2 can be used to enable/disable the INT_CHAN_2 as following: (refer to
Sec. 3.3.4)
EN2=0 Æ INT_CHAN_2=disable
EN2=1 Æ INT_CHAN_2=enable
The INV2 can be used to invert/non-invert the Cout0 as following: (Refer to Sec.
3.3.6)
INV2=0 Æ INT_CHAN_2=inverted state of (Cout0)
INV2=1 Æ INT_CHAN_2=non-inverted state of (Cout0)
Refer to demo program for more information as following:
DEMO7.C Æ for INT_CHAN_2 only (Cout0)
NOTE: refer to Sec. 2.5.2 for active high-pulse generation.
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 15
2.5.5 INT_CHAN_3
INT_CHAN_3
The INT_CHAN_3 must be fixed in low level state normally and
Cout2
Cout1
2M/32768 Hz
select
(CTRL-D0)
Inverted/Noninverted
select
(INV3)
Enable/Disable
select
(EN3)
generated a high_pulse to interrupt the PC.
The Cin1 can be 2M/32768Hz programmable as following: (refer to Sec. 3.3.9)
CTRL_D0=0 Æ Cin1=2M clock source
CTRL_D0=1 Æ Cin1=32768 Hz clock source
The EN3 can be used to enable/disable the INT_CHAN_3 as following: (refer to
Sec. 3.3.4)
EN3=0 Æ INT_CHAN_3=disable
EN3=1 Æ INT_CHAN_3=enable
The INV3 can be used to invert/non-invert the Cout0 as following: (Refer to Sec.
3.3.6)
INV2=3 Æ INT_CHAN_3=inverte of (Cout2)
INV2=3 Æ INT_CHAN_3=non-inverte of (Cout2)
Refer to demo program for more information as following:
DEMO4.C Æ for INT_CHAN_3 only (Cout2)
NOTE: refer to Sec. 2.5.2 for active high-pulse generation.
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 16
2.6 Daughter Boards
2.6.1 OME-DB-37
The OME-DB-37 is a general purpose daughter board for D-sub 37 pins. It is
designed for easy wire connection.
2.6.2 OME-DN-37 & OME-DN-50
The OME-DN-37 is a general purpose daughter board for OME-DB-37 with DIN-Rail
Mounting. The OME-DN-50 is designed for 50-pin flat-cable header. Those boards are
designed for easy wire connection. Both have Din-Rail mounting.
37pin cable
OME-DN-37
2.6.3 OME-DB-8125
The OME-DB-8125 is a general purpose screw terminal board designed for ease of
wiring. There are one DB-37 & two 20-pin flat-cable headers in the OME-DB-8125.
37pin cable
OME-DB-8125
(OME-DB-37 or
20-pin flat-cable header)
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 17
2.6.4 OME-ADP-37/PCI & OME-ADP-50/PCI
The OME-ADP-37/PCI & OME-ADP-50/PCI are extender for 50-pin header.
One side of OME-ADP-37/PCI & OME-ADP-50/PCI can be connected to a 50-pin
header. The other side can be mounted on the PC chassis as following:
OME-ADP-37/PCI: 50-pin header to OME-DB-37 extender.
OME-ADP-50/PCI: 50-pin header to 50-pin header extender.
NOTE: The user can choose the suitable extender for his own applications.
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 18
2.6.5 OME-DB-24P/PD Isolated Input Board
The OME-DB-24P/DB-24PD is a 24-channel isolated digital input daughter board.
The optically isolated inputs of the OME-DB-24P/DB-24PD, consists of a bi-directional
opto-coupler with a resistor for current sensing. You can use the OME-DB-24P/DB-
24PD to sense DC signal from TTL levels up to 24V or use the DB-24P to sense a wide
range of AC signals. You can use this board to isolate the computer from large common-
mode voltage, ground loops and transient voltage spike that often occur in industrial
environments.
OME-PIO-D48
Opto-Isolated
OME-PIO-D48
50Pin cable
OME-DB-24P
AC or DC Signal
0V to 24V
+
-
OME-DB-24P OME-DB-24PD
50-pin flat-cable header Yes Yes
D-sub 37-pin header No Yes
Other specifications Same
OME-PIO-D48 User Manual, Sep/2000, V2.1 ----- 19
Loading...
+ 47 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.