ICP DAS USA PCI-P16C16 User Manual

Icp das pci bus user's manual
Hide thumbs Also See for PCI-P16C16:

Advertisement

Quick Links

PCI-P8R8/P16R16/P16C16/P16POR16
Warranty
All products manufactured by ICP DAS are warranted against defective
materials for a period of one year from the date of delivery to the original
purchaser.
Warning
ICP DAS assumes no liability for damages consequent to the use of this
product. ICP DAS reserves the right to change this manual at any time without
notice. The information furnished by ICP DAS is believed to be accurate and
reliable. However, no responsibility is assumed by ICP DAS for its use, nor for
any infringements of patents or other rights of third parties resulting from its use.
Copyright
Copyright © March 1998~1999 by ICP DAS. All rights are reserved.
Trademark
The names used for identification only may be registered trademarks of
their respective companies.
License
The user can use, modify and backup this software
machine.
software, or any copy, in whole or in part.
PCI-P8R8/P16R16/P16C16/P16POR16 User's Manual (Ver.2.2, 2005/5/5) ...
User's Manual
The user may not reproduce, transfer or distribute this
on a single
1

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the PCI-P16C16 and is the answer not in the manual?

Questions and answers

Summary of Contents for ICP DAS USA PCI-P16C16

  • Page 1 PCI-P8R8/P16R16/P16C16/P16POR16 Warranty All products manufactured by ICP DAS are warranted against defective materials for a period of one year from the date of delivery to the original purchaser. Warning ICP DAS assumes no liability for damages consequent to the use of this product.
  • Page 2: Table Of Contents

    Table of Contents INTRODUCTION ...3 EATURES AND PPLICATIONS ...5 LOCK IAGRAM ...6 PECIFICATIONS ARDWARE ONFIGURATION 1.4.2 Board Layout...9 1.4.3 Jumper Setting ...11 ...12 SSIGNMENTS HARDWARE APPLICATIONS ...15 ...15 ELAY UTPUT OLLECTOR UTPUT HOTO ELAY UTPUT ...18 SOLATED NPUT SOFTWARE INSTALLATION GUIDE ...20 LUG AND LAY OF INDOWS...
  • Page 3: Introduction

    Play". They can be used in many applications. • PCI-P16C16 The PCI-P16C16 provides 16-channel transistor outputs and 16-channel isolated digital input. The transistor can outputs up to 30Vdc / 600mA(open collector). The isolated digital input, like the PCI-P16R16, provides AC/DC input and R/C filter.
  • Page 4: Features And Applications

    Factory automation. • Laboratory automation. • Communication switching • Security control. • Product test. • Energy management. • PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) … PCI-P16R16 PCI-P16C16 Relay output Transistor (Open- collector) None External Power status PCI- P16POR16 PhotoMos Relay Output Status...
  • Page 5: Block Diagram

    1.2. Block Diagram PCI Controller EEPROM Figure 1-1: Functional Block diagram. PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) … PCI BUS P8R8 / P16R16 Buffers & Drivers Buffers & Filters Relay P16C16 Relay Transistor Transistor PhotoMos Relay PhotoMos Relay Transistor P16POR1 Transistor PhotoMos PhotoMos Photo-couple...
  • Page 6: Specifications

    1.3. Specifications Product Channels Photo-coupler Input-Current (per channel) INPUT Input-Voltage Input Impedance Withstanding Voltage 1KV Response Time Relay Output Channels Relay Type Contact Rating OUTPUT Breakdown Voltage Operate Time Release Time Insulation Resistance Life Mechanical Electrical Input Resistance (initial) Switching Power Operating Temperature Common...
  • Page 7 Operating Temperature Common Storage Temperature Humidity Dimensions PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) … PCI-P16C16 PC-814 PC-814 20 mA max (24V) 20 mA max (24V) AC/DC 5 - 24 V AC/DC 5 - 24 V (AC 50 - 1K HZ) (AC 50 - 1K HZ) 1.2 KΩ...
  • Page 8: Hardware Configuration

    1.4. Hardware Configuration This chapter describes how to unpack this I/O card and how to install it to your system. Both the unpacking information and the jumper settings are described in the following text. This manual should be carefully read before installation. 1.4.1.
  • Page 9: Board Layout

    1.4.2. Board Layout PCI-P8R8 Input Resistor: 1.2KΩ JP8...JP1 Figure 1-2. PCI–P8R8 Board Layout. PCI-P16R16 Input Resistor: 1.2KΩ JP16 —— JP9 JP8...….JP1 Figure 1-3. PCI–P16R16 Board Layout. PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 10 External Power protection (Pico Fuse) JP8...JP1 Figure 1-4. PCI-P16C16 Board Layout JP8...JP1 Figure 1-5. PCI-P16POR16 Board Layout PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) … External Power LED indicator PCI-P16C16 JP16 — JP9 LED indicator PCI-P16POR16 JP16 —— JP9 Transistor...
  • Page 11: Jumper Setting

    1.4.3. Jumper Setting • For PCI-P8R8 / P16R16 / P16C16 / P16POR16 You can change the I/O card configuration simply by setting the jumpers on this board. Each digital input channel can be jumper- configured as a single-pole, RC filter with a time constant of 1.2 ms. The table listed below shows each digital input channel and the corresponding jumper.
  • Page 12: Pin Assignments

    1.5. Pin Assignments CON 1 CON 2 PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) … PCI-P8R8 / PCI-P16R16 Pin Assignment CON 2 Extender Cable NO: Normal Open COM: Common NC: Normal Close DIA: Digital Input (Point A) DIB: Digital Input (Point B)
  • Page 13 CON 1 PCI-P16C16 Pin Assignment CON 2 CON 2 External Cable Ext. Power: External Power Input GND: External Power Ground OUT: Open Collector Output DIA: Digital Input (Point A) DIB: Digital Input (Point B) PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 14 CON 1 CON 2 DIA: Digital Input (Point A) DIB: Digital Input (Point B) PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) … PCI-P16POR16 Pin Assignment External Cable CON 2...
  • Page 15: Hardware Applications

    Hardware applications Model Number PCI-P8R8 / PCI-P16R16 Relay Output PCI-P16C16 PCI-P16POR16 Relay Output • For PCI-P8R8 / PCI-P16R16 Only Whenever data is written data to the output control register, the relays will switch to NC or NO as specified by the control code. A`1'in the control register will energize the corresponding relay.
  • Page 16: Open Collector Output

    O Relay Figure 2-3. Heavy load relay circuit. Open Collector Output • For PCI-P16C16 Only The PCI-P16C16 provides 16-channel open collector outputs and 4 channels per common power. Each common power has designed fuse protection and LED indicated status. Wiring diagrams PCI-P16C16 PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 17: Photomos Relay Output

    PhotoMos Relay Output • For PCI-P16POR16 Only The PCI-P16POR16 includes 16 normally open, form A, PhotoMOS relays. The board can eliminate ground-loop problems and isolate the computer from damaging voltages. Use the PCI-P16POR16 to switch loads, up to 350VAC and 130mA.
  • Page 18: Isolated Input

    Isolated Input • For PCI-P8R8 / P16R16 / P16C16 / P16POR16 Reading the isolation input register will give the digital input state of the photo- couple (isolation input). Figures 2-3 and 2-4 show the basic circuit of the digital input. DIA 0 If Using AC Internal...
  • Page 19 Although the normal input voltage range is 5 to 24V AC or DC, the input can still be changed to a larger range by choosing suitable external resistors. The following figure shows how to connect to a larger input. Please note that the input current should be limited between 2mA to 20mA;...
  • Page 20: Software Installation Guide

    Software Installation Guide • FOR PCI-P8R8/PCI-P16R16/PCI-P16C16/PCI-P16POR16 The software package for this card consists of CD-ROM. Please choose the exact disk for setup according to your PC platform. 3.1 Plug and Play of Windows 95/98/2000/XP Because Windows 95/98/2000/XP provides the Plug and Play, two stages must be completed to setup the I/O card.
  • Page 21 Figure 2. Click on the “Next >” button to search device Figure 3. Click on the “Next>” button to search drivers PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 22 Figure 4. Select the second item and click “Next >” Figure 5. Select the item “Other devices” and click “Next>” PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 23 Figure 6. Click the “Have Disk button…” Figure 7. Click “Browse” to select driver PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 24 Figure 8. Click “OK” after selecting the “P16R16.inf”driver. This folder corresponds to on the CD-ROM drive. (Note: PCI-P8R8 uses the driver P8R8.inf) Figure 9. Click “OK” (Note: PCI-P8R8 uses the driver P8R8.inf) PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 25 Figure 10. Click “Next>” Figure 11. Click “Next>” (Note: PCI-P8R8 uses the driver P8R8.inf) PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 26 Figure 12. Click “Finish” Figure 13. Double click the item “System” in the “Control Panel” folder PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 27 Figure 14. Select the device “PCI-P16R16”(or PCI-P8R8) and click “Properties” Figure 15. Please ensure that this device has no conflicts with other devices. PCI-P8R8/P16R16/P16C16/P16POR16 User’s Manual (Ver.2.2, 2005/5/5) …...
  • Page 28: Software Installation For Dos

    Software Installation for DOS Here’s the DOS software installation: Refer to the install.bat in sub-directory of P16R16 with CD-ROM. After installation, the sub-directory is as follows: ...\P16R16\BC\HUGE\DEMO ...\P16R6\BC\HUGE\LIB ...\P16R6\BC\LARGE\DEMO ...\P16R6\BC\LARGE\LIB ...\P16R6\MSC\HUGE\DEMO ← huge mode demo programs..\P16R6\MSC\HUGE\LIB ...\P16R6\MSC\LARGE\DEMO ← large mode demo programs..\P16R6\MSC\LARGE\LIB ...\P16R16\TC\HUGE\DEMO ...\P16R16\TC\HUGE\LIB...
  • Page 29: I/O Control Register

    I/O Control Register The First 16 double words of a PCI device's configuration space is referred to as the device's configuration region. Within these the 16 (0-15) double words, the 04, 05, 06, 07, 08 and 09 double words are referred to as Base Address0, Base Address1, Base Address2, Base Address3, Base Address4 and Base Address5.
  • Page 30 Please refer to the following program code to get these six base addresses for PCI-P16R16 and PCI-P8R8. These codes are based on PCI Plug & Play mechanism 2. /******************************************************/ /* Reading PCI card's configuration address space /******************************************************/ WORD GetAddress(void) DWORD dConfigAddress,dBaseAddress; WORD HiWord,LoWord;...
  • Page 31 /*----------------------------------------*/ WhichLong=5; WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr1=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][1]=wBaseAddr1; /*------------------------------------------*/ WhichLong=6; WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr2=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][2]=wBaseAddr2; /*------------------------------------------*/ WhichLong=7; /* Base Address 3 */ WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr3=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][3]=wBaseAddr3; /*------------------------------------------*/ WhichLong=8; /* Base Address 4 */ WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr4=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][4]=wBaseAddr4; /*-------------------------------------------*/ WhichLong=9; /* Base Address 5 */ WriteAddress(Bus,Device,Function,WhichLong);...
  • Page 32 /*-------------------------------------------*/ wTotalBoards++; /* increment board number */ wGetAddress=1; if( VendorID==0x1234 && DeviceID==0x0808 ) { /*---------- PCI-P8R8 -----------*/ WhichLong=4; WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr0=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][0]=wBaseAddr0; /*------------------------------------------*/ WhichLong=5; WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr1=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][1]=wBaseAddr1; /*------------------------------------------*/ WhichLong=6; WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr2=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][2]=wBaseAddr2; /*------------------------------------------*/ WhichLong=7; WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr3=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][3]=wBaseAddr3; /*------------------------------------------*/ WhichLong=8;...
  • Page 33 dBaseAddress=_inpd(0xcfc); wBaseAddr4=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][4]=wBaseAddr4; /*-------------------------------------------*/ WhichLong=9; WriteAddress(Bus,Device,Function,WhichLong); dBaseAddress=_inpd(0xcfc); wBaseAddr5=(WORD)(dBaseAddress&0xfffe); wConfigSpace[wTotalBoards][5]=wBaseAddr5; /*---------- store the type name ID --------*/ wConfigSpace[wTotalBoards][6]=TYPE_P8R8; wTotalBoards++; /* increment board number */ wGetAddress=1; if( wTotalBoards>16 ) return( NotFoundBoard ); else return( NoError ); void WriteAddress(UCHAR bBus, UCHAR bDevice, UCHAR bFunction, UCHAR bWhichLong) DWORD dOutData;...
  • Page 34: Function Call In P16R16.Dll

    Function Call in P16R16.DLL A function in P16R16.DLL(DLL for Windows 95/98/NT) will be exactly the same prototype as P16R16H.LIB(huge mode library for DOS) and P16R16L.LIB(large mode library for DOS). It is convenient to develop applications under different platforms. 4.2 P16R16.H #define EXPORTS extern "C"...
  • Page 35: Pci_Floatsub2

    EXPORTS WORD CALLBACK PCI_GetConfigAddressSpace (WORD wBoardNo, WORD *TypeID, WORD *wAddress0, WORD *wAddress1, WORD *wAddress2, WORD *wAddress3, WORD *wAddress4, WORD *wAddress5); EXPORTS WORD CALLBACK PCI_WhichBoardActive(void); EXPORTS void CALLBACK P16R16_DO(WORD BaseAddr, WORD OutData); EXPORTS WORD CALLBACK P16R16_DI(WORD BaseAddr); EXPORTS void CALLBACK P8R8_DO(WORD BaseAddr, WORD OutData); EXPORTS BYTE CALLBACK P8R8_DI(WORD BaseAddr);...
  • Page 36: Pci_Shortsub2

    4.4 PCI_ShortSub2 Description: Performs subtraction as (like A-B) in short data types. This function is provided for testing DLL linkage. Syntax: float PCI_ShortSub2(short nA, short nB) Input Parameters: nA :2 bytes short data type value nB :2 bytes short data type value Return Value: the value of nA-nB PCI_GetDllVersion Description: Gets the version number of P16R16.DLL...
  • Page 37: Pci_Driverlnit

    PCI_Driverlnit Description: Initializes the device driver (napwnt.sys for Windows NT/2000XP, nappci.vxd for Windows 95/98). It is necessary to call on the function the first time you use this program. Syntax: WORD PCI_Driverlinit(WORD*wTolalBoard) Input Parameters: *wTotalBoard: address of wTotalBoard When wTotalBoard = 1: either P16R16 or P8R8 in PC. When wTotalBoard = 2: possibility of combination →...
  • Page 38: Demo Program

    Demo Program [VC example] LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM, lParam) static char cBuf[80]; hdc; TEXTMETRIC tm; PAINTSTRUCT ps; switch (iMsg) case WM_CREATE : // window initial /**************************************************************/ /* NOTICE: call PCI_DriverInit() to initialize the driver. */ /**************************************************************/ // Initial the device driver, and return the board number in the PC wInitialCode=PCI_DriverInit(&wTotalBoard);...
  • Page 39: Pci_Driverclose

    PCI_DriverClose Description: Terminates the device driver (napwnt.sys for window NT/2000/XP, nappci.vxd for Windows 95/98). In DOS version, this function is provided just for uniformity or W32 program. It can only return a NoError. Syntax: void PCI_DriverClose(void) Input Parameters: void Output Parameters: void PCI_GetDriverVersion Description: Gets the version number of device driver (nappci.vxd for windows 95/98, napwnt.sys for Windows NT/2000/XP)
  • Page 40: Pci_Getcongfigaddressspace

    PCI_GetCongfigAddressSpace Description: Reads configuration space for P16R16 and P8R8 board, then gets the content of Base Address0, Base Address1, Base Address2, Base Address3, Base Address4 and Base Address5. Syntax: WORD PCI_GetConfigAddressSpace (WORD wBoadNo, WORD *wTypeID,WORD*wAddress0,WORD*wAddress1,WORD*wAdd- ress2, WORD*wAddress3, WORD*wAddress4,WORD*wAddress5) Input Parameters: wBoardNo: The Board number for P16R16/P8R8 board.
  • Page 41: P16R16_Do

    4.10 P16R16_DO Description: Sends 16-bit data to D/O port of the P16R16. Syntax: Void P16R16_DO(WORD BaseAddr.WORD OutData) Input Parameters: BaseAddr: D/O port base address. OutData: the 16-bit data sent to D/O port Return Value: void Demo Program: 4.11 P16R16_DI Description: Reads 16-bit data from P16R16’s D/I port. Syntax: WORD P16R16_DI (WORD BaseAddr) Input Parameters: BaseAddr: D/O port base address.
  • Page 42 • Demo Program /******************************************************/ /* This program is developed by Turbo C 2.0 /******************************************************/ /* Demo 1: One P16R16 card demo. /******************************************************/ #include "P16R16.H" int main() i,j; WORD nVal; float fVal; WORD wBoards,wRetVal,wVal; WORD wInData; WORD wTypeID; WORD wAddress0,wAddress1,wAddress2; WORD wAddress3,wAddress4,wAddress5;...
  • Page 43 wRetVal=PCI_GetConfigAddressSpace(i,&wTypeID, &wAddress0,&wAddress1,&wAddress2, &wAddress3,&wAddress4,&wAddress5); if( !wRetVal ) switch( wTypeID ) case 0: printf("==> %02d Board Name:PCI-P16R16\n",i); P16R16_BaseAddress=wAddress2; wP16R16No++; break; case 1: printf("==> %02d Board Name:PCI-P8R8\n",i); P8R8_BaseAddress=wAddress2; wP8R8No++; break; case 2: printf("==> %02d Board Name:PCI-TMC12\n",i); break; case 3: printf("==> %02d Board Name:PCI-DA16\n",i); break;...
  • Page 44 printf("P180X_FloatSub2(1.0,2.0) = %f\n",fVal); if( wP16R16No<1 ) putch(0x07); printf("Please plug one PCI-P16R16 in PC !!!\n"); exit(0); /*************************************/ /***** PCI-P16R16 DO/DO demo *****/ /*************************************/ printf("The PCI-P16R16 DO/DI testing !!!\n"); P16R16_DO(P16R16_BaseAddress,0x0000); delay(500); /* Delay a little time 500ms */ wInData=P16R16_DI(P16R16_BaseAddress); /* Digital input */ printf("Digital Output ->...
  • Page 45: P8R8_Do

    4.12 P8R8_DO Description: Sends 8-bit data to PCI-P8R8’s D/O port. Syntax: Void P8R8_DO(WORD BaseAddr.WORD OutData) Input Parameters: BaseAddr: D/O port base address. OutData: the 8 bit data sent to D/O port Return Value: void Demo Program: • 4.13 P8R8_DI Description: Reads 8-bit data from PCI-P8R8’s D/I port. Syntax: WORD P8R8_DI (WORD wBaseAddr) Input Parameters: wBaseAddr: D/O port base address.
  • Page 46 Demo Program • /************************************************/ /* This program is developed by Turbo C 2.0 /***********************************************/ /* Demo 2: One P8R8 card demo. /***********************************************/ #include "P16R16.H" int main() i,j; WORD nVal; float fVal; WORD wBoards,wRetVal,wVal; WORD wInData; WORD wTypeID; WORD wAddress0,wAddress1,wAddress2; WORD wAddress3,wAddress4,wAddress5;...
  • Page 47 &wAddress3,&wAddress4,&wAddress5); if( !wRetVal ) switch( wTypeID ) case 0: printf("==> %02d Board Name:PCI-P16R16\n",i); P16R16_BaseAddress=wAddress2; wP16R16No++; break; case 1: printf("==> %02d Board Name:PCI-P8R8\n",i); P8R8_BaseAddress=wAddress2; wP8R8No++; break; case 2: printf("==> %02d Board Name:PCI-TMC12\n",i); break; case 3: printf("==> %02d Board Name:PCI-DA16\n",i); break; case 4: printf("==> %02d Board Name:PCI-DA8\n",i); break;...
  • Page 48 if( wP8R8No<1 ) putch(0x07); printf("Please plug one PCI-P8R8 in PC !!!\n"); exit(0); /***********************************/ /***** PCI-P8R8 DO/DO demo *****/ /***********************************/ printf("The PCI-P8R8 DO/DI testing !!!\n"); P8R8_DO(P8R8_BaseAddress,0x0000); delay(500); wInData=P8R8_DI(P8R8_BaseAddress); printf("Digital Output -> 0000H | Digital Input -> %04xH\n",wInData); P8R8_DO(P8R8_BaseAddress,0xFFFF); delay(500); wInData=P8R8_DI(P8R8_BaseAddress); printf("Digital Output -> FFFFH | Digital Input -> %04xH\n",wInData); P8R8_DO(P8R8_BaseAddress,0x5555);...

This manual is also suitable for:

Pci-p16por16Pci-p16r16Pci-p8r8

Table of Contents