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.
OME-PIO-D56/D24
User Manual
OME-PIO-D56/OME-PIO-D24 User Manual (Ver.2.1, Oct/2003) ---- 1
In addition to this manual, the package includes the following items:
• One OME-PIO-D56(or OME-PIO-D24) card
• One software floppy diskette or CD
• One release note
Please read the release note first. Important information that could be given in release
note such as:
1. Where you can find the software driver & utility?
2. How to install software & utility?
3. The location of the diagnostic program?
4. FAQ
Attention!
If any one of these items is missing or damaged, please contact
Omega Engineering immediately. Save the shipping materials
and carton in case you want to ship or store the product in the
future.
OME-PIO-D56/OME-PIO-D24 User Manual (Ver.2.1, Oct/2003) ---- 5
2. Hardware configuration
2.1 Board Layout
CON3
DI/O
Port0
Port1
Port2
PIO-D24
PIO-D56
PCI BUS
only for PIO-D56
D/O
CON1
12
OME-PIO-D56/PIO-D24 User Manual (Ver.2.1, Oct/2003, PPH-005-21) ---- 6
1920
D/I
CON2
12
1920
2.2 I/O Port Location
The OME-PIO-D56/OME-PIO-D24 consists of one 24-bit bi-directional port, one
16 bit input port and one 16 bit output port (only for OME-PIO-D56). The 24-bit port
supports three 8-bit groups: PA, PB & PC. Each 8-bit group can be individually
configured to function as either inputs or outputs. All groups using 24-bit bi-
directional ports are configured as inputs upon power-up or reset. The I/O port
locations are as follows:
Connector of
OME-PIO-D56/D24
CON3 (DI/O) Port0 Port1 Port2
Connector of OME-PIO-D56 Description
CON1 D/O
CON2 D/I
Refer to Sec. 2.1 for board layout & I/O port location.
Note: PC0, PC1, PC2 and PC3 can be used as interrupt signal source. Refer to Sec.
2.4 for more information.
PA0 ~ PA7 PB0 ~ PB7 PC0 ~ PC7
2.3 Enabling I/O Operation
2.3.1 DI/DO Port Architecture (CON3)
Upon power-up, all D/I/O port (CON3) operations are disabled. The RESET\
signal controls the enable/disable state of D/I/O port. Refer to Sec. 3.3.1 for more
information about RESET\ signal. The power-up states are as follows:
• All D/I/O operations are disabled
• All three D/I/O ports are configured as D/I port
• All D/O latch register are undefined.(refer to Sec. 2.3.2)
Initialization must be performed before using these D/I/Os. The recommended
steps are as follows:
Step 1: Find address-mapping of OME-PIO/PISO cards (refer to Sec. 3.1)
Step 2: Enable all D/I/O operations (refer to Sec. 3.3.1)
Step 3: Configure the three ports (in CON3) to their expected D/I/O state &
send the initial value to all D/O ports (refer to Sec. 3.3.8)
Refer to DEMO1.C for demo program.
OME-PIO-D56/OME-PIO-D24 User Manual (Ver.2.1, Oct/2003) ---- 7
I/O select (Sec. 3.3.7)
RESET\ (Sec. 3.3.1)
Data
(Sec. 3.3.8)
Data
(Sec. 3.3.8)
disable\
input Latch
Clock input
D/O latch CKT
disable
Buffer input
Clock input
D/I buffer CKT
D/I/O
• When the RESET\ is in Low-state Æ all D/I/O operations are disabled
• When the RESET\ is in High-state Æ all D/I/O operation are enabled.
• If D/I/O is configured as D/I port Æ D/I= external input signal
• 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 signals will not change.
OME-PIO-D56/PIO-D24 User Manual (Ver.2.1, Oct/2003, PPH-005-21) ---- 8
2.3.2 DI Port Architecture (CON2)
When the PC is powered up, all DI (CON2) port operations are disabled. The
RESET\ signal controls the enable/disable signal for the DI port. Refer to Sec. 3.3.1
for more information about the RESET\ signal.
• The RESET\ is in Low-state Æ all DI operations are disabled
• The RESET\ is in High-state Æ all DI operations are enabled
RESET\
disable
Data
Bufferinput
Clock input
CON2
D/I buffer CKT
OME-PIO-D56/OME-PIO-D24 User Manual (Ver.2.1, Oct/2003) ---- 9
2.3.3 DO Port Architecture (CON1)
When the PC is powered up, all DO port (CON1) operations are disabled. The
RESET\ signal controls the enable/disable signal for the DI port. Refer to Sec. 3.3.1
for more information about the RESET\ signal.
• The RESET\ is in Low-state Æ all DO operations are disabled
• The RESET\ is in High-state Æ all DO operations are enabled
The power-up states are as follows:
• All DO operations are disabled
• All output latches are cleared to Low-Level
RESET\
clear
Data
inputLatch
CON1
Clock input
D/O buffer CKT
OME-PIO-D56/PIO-D24 User Manual (Ver.2.1, Oct/2003, PPH-005-21) ---- 10
2.4 Interrupt Operation
All PC0, PC1, PC2 and PC3 can be used as an interrupt signal sources. Refer to
Sec. 2.1 for PC0/PC1/PC2/PC3 location. The interrupt of OME-PIO-D56/OME-
PIO-D24 is level-trigger & Active_High. The interrupt signal can be programmed to
inverted or non-inverted state. The programming procedure is given as follows:
1. Make sure the initial level is High or Low
2. If the initial state is High Æ select the inverted signal (Sec. 3.3.6)
3. If the initial state is Low Æ select the
4. Enable the INT function (Sec. 3.3.4)
5. If the interrupt signal is active Æ program will transfer into the interrupt
service routine Æ if INT signal is High now Æ select the inverted input
Æif INT signal is Low now Æ select the non-inverted input
Refer to DEMO3.C & DEMO4.C for single interrupt source. Refer to
DEMO5.C for four interrupt sources.
If only one interrupt signal source is used, the interrupt service routine does not
have to identify the interrupt source. (Refer to DEMO3.C & DEMO4.C)
If there is more than one interrupt source, the interrupt service routine has to
identify the active signals via the following steps: (Refer to DEMO5.C)
1. Reads the new status of the interrupt signal source
2. Compares the new status with the old status to identify the active signals
3. If PC0 is active, service PC0 & non-inverter/inverted the PC0 signal
4. If PC1 is active, service PC1 & non-inverted/inverted the PC1 signal
non-inverted signal (Sec. 3.3.6)
5. If PC2 is active, service PC2 & non-inverted/inverted the PC2 signal
6. If PC3 is active, service PC3 & non-inverted/inverted the PC3 signal
7. Saves the new status to old status
Note: If the interrupt signal is too short, the new status may be the same as old
status. So the interrupt signal must be held active until the interrupt service
routine is executed. This hold time is different for different operating systems. It
can be as a short as micro-second or as a long as second. In general, 20ms is
enough for most operating systems.
OME-PIO-D56/OME-PIO-D24 User Manual (Ver.2.1, Oct/2003) ---- 11
2.4.1 Interrupt Block Diagram of OME-PIO-
D56/D24
INT_CHAN_0
INT\
Level_trigger
The interrupt output signal of OME-PIO-D56/OME-PIO-D24, INT\ is
Level_trigger & Active_Low. If the INT\ generates a low pulse, the OME-PIO-
D56/OME-PIO-D24 will interrupt the PC only once. If the INT\ is fixed in low level,
the OME-PIO-D56/OME-PIO-D24 will interrupt the PC continuously.
INT_CHAN_0/1/2/3 must be controlled in a pulse type signals. It must be fixed in
low level state normally and generate 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 one time. So the interrupt service
INT_CHAN_1
INT_CHAN_2
INT_CHAN_3
initial_low
active_high
routine has to read the status of all interrupt channels for a multi-channel interrupt.
Refer to Sec. 2.4 for mare information.
DEMO5.C → for multi-channel interrupt source
If only one interrupt source is used, the interrupt service routine does not have to read
the status of interrupt source. The demo programs DEMO3.C and DEMO4.C are
designed for single-channel interrupt demo, as follows:
DEMO3.C → for INT_CHAN_0 only (PC0 initial low)
DEMO4.C → for INT_CHAN_0 only (PC0 initial high)
OME-PIO-D56/PIO-D24 User Manual (Ver.2.1, Oct/2003, PPH-005-21) ---- 12
2.4.2 INT_CHAN_0/1/2/3
INT_CHAN_0 (1/2/3)
PC0(PC1/PC2/PC3)
Inverted/Noninverted select
INV0(1/2/3)
Enable/Disable select
EN0(1/2/3)
The INT_CHAN_0 must normally be fixed in low level state and generate a
high pulse to interrupt the PC.
The EN0 (EN1/EN2/EN3) can be used to enable/disable the INT_CHAN_0(1/2/3)
as follows : (Refer to Sec. 3.3.4)
EN0 (1/2/3) = 0 → INT_CHAN_0(1/2/3) = disable
EN0 (1/2/3) = 1 → INT_CHAN_0(1/2/3) = enable
The INV0 can be used to invert/non-invert the PC0 (1/2/3) as follows: (Refer to
Sec.3.3.6)
INV0 (1/2/3) = 0 → INT_CHAN_0(1/2/3) = inverted state of PC0 (1/2/3)
INV0 (1/2/3) = 1 → INT_CHAN_0(1/2/3) = non-inverted state of PC0 (1/2/3)
OME-PIO-D56/OME-PIO-D24 User Manual (Ver.2.1, Oct/2003) ---- 13
2.4.3 Initial_high, active_low Interrupt source
If the PC0 is a initial_high, active_low signal, the interrupt service routine
should use INV0 to invert/non-invert the PC0 for high_pulse generation as follows:
(Refer to DEMO4.C)
Initial setting:
now_int_state=1; /* initial state for PC0 */
outportb(wBase+0x2a,0); /* select the inverted PC0 */
void interrupt irq_service()
{
if (now_int_state==1) /* now PC0 is changed to LOW */(a)
{ /* --> INT_CHAN_0=!PC0=HIGH now */
COUNT_L++; /* find a LOW_pulse (PC0) */
If((inport(wBase+7)&1)==0)/* the PC0 is still fixed in LOW */
{ /* Æ need to generate a high_pulse */
outportb(wBase+0x2a,1);/* INV0 select the non-inverted input */(b)
/* INT_CHAN_0=PC0=LOW --> */
/* INT_CHAN_0 generate a high_pulse */
now_int_state=0; /* now PC0=LOW */
}
else now_int_state=1; /* now PC0=HIGH */
/* don’t have to generate high_pulse */
}
else /* now PC0 is changed to HIGH */(c)
{ /* --> INT_CHAN_0=PC0=HIGH now */
COUNT_H++; /* find a HIGH_pulse (PC0) */
If((inport(wBase+7)&1)==1)/* the PC0 is still fixed in HIGH */
{ /* need to generate a high_pulse */
outportb(wBase+0x2a,0);/* INV0 select the inverted input */(d)
/* INT_CHAN_0=!PC0=LOW --> */
/* INT_CHAN_0 generate a high_pulse */
now_int_state=1; /* now PC0=HIGH */
}
else now_int_state=0; /* now PC0=LOW */
/* don’t have to generate high_pulse */
}
if (wIrq>=8) outportb(A2_8259,0x20);
outportb(A1_8259,0x20);
}
PC0
(a)(b)(c)(d)
INV0
INT_CHAN_0
OME-PIO-D56/PIO-D24 User Manual (Ver.2.1, Oct/2003, PPH-005-21) ---- 14
Loading...
+ 37 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.