NuDAQ® ACL-8111 16-bit High Resolution Data Acquisition Card User’s Guide Recycled Paper
©Copyright 1995~2001 ADLINK Technology Inc; All Rights Reserved. Manual Rev. 2.60: April 28, 2003 Part No: 50-11010-102 The information in this document is subject to change without prior notice in order to improve reliability, design and function and does not represent a commitment on the part of the manufacturer.
Getting service from ADLINK Customer Satisfaction is the most important priority for ADLINK Tech Inc. If you need any help or service, please contact us. ADLINK Technology Inc. Web Site http://www.adlinktech.com Sales & Service Service@adlinktech.com Technical Support TEL Address NuDAQ + USBDAQ + PXI nudaq@adlinktech.com Automation automation@adlinktech.com NuIPC nuipc@adlinktech.com NuPRO / EBC nupro@adlinktech.com +886-2-82265877 FAX +886-2-82265717 9F, No.
Table of Contents Chapter 1 Introduction ..................................................... 1 1.1 1.2 1.3 1.4 Features .................................................................................2 Applications............................................................................3 Specifications .........................................................................4 Software Supporting ..............................................................7 1.4.1 1.4.2 ACLS-DLL2 ...................
Chapter 4 Operation Theorem ....................................... 26 4.1 A/D Conversion ....................................................................26 4.1.1 4.1.2 4.1.3 4.2 4.3 A/D Conversion Procedure................................................27 A/D Clock Sources (Trigger Modes) ..................................27 A/D Data Transfer Modes..................................................29 D/A Conversion ....................................................................
1 Introduction The ACL-8111 is a multi-function, high performance, and general-purpose data acquisition card for the IBM Personal Computer and compatible computers. The registers map is fully compatible with PCL-711B. The ACL-8111 is designed to combine all the data acquisition functions, such A/D, D/A, D/O, and D/I in a single board, The high-end specifications of the card makes it ideal for wide range of applications in industrial and laboratory automation.
1.1 Features The ACL-8111 Enhanced Multi-function Data Acquisition Card provides the following advanced features: • 8 single-ended 12-bit analog input channels • On-chip sample & hold • Variable input range: ± 5V, ±2.5V, ±1.25V, ±0.625V, and ±0.
1.
1.3 Specifications ♦ Analog Input (A/D) • Converter: ADS-774 or equivalent one, successive approximation type • Resolution: 12-bit • Number of channels: 8 single-ended • Programmable Gain: 1, 2, 4, 8, 16 (programmable) • Input Range: (programmable) Bipolar: ±5V, ± 2.5V, ±1.25V, ±0.625V, and ±0.3125V • Conversion Time: 8 µ sec • Maximum Sampling Rate: ≤ 50KHz • Over-voltage protection: Continuous ± 35V maximum • Accuracy: 0.
♦ Digital I/O (DIO) • Number of channel: 16 DI & 16 DO (TTL compatible) • Input Voltage: • Low: Min. 0V; Max. 0.8V • High: Min. +2.0V • Input Load: • Low: +0.5V @ -0.2mA max. • High: +2.7V @+20 uA max. • Output Voltage: • Low: Min. 0V; Max. 0.4V • High: Min. +2.4V • Output Driving Capacity: • Low: Max. +0.5V at 8.0mA (Sink) • High: Min. 2.7V at 0.
• +5 V @ 440 mA typical • +12V @ 60 mA typical • Dimension: 158mm X 108mm 6 • Introduction
1.4 Software Supporting The ACL-8111 is programmed using simple 8-bit I/O port commands. Users can use high level language, such as BASIC, C, or PASCAL, or low- level language, such as assembly to program the board. For the programming under Windows or LabView, please contact your dealer to purchase ACLSDLL2 or ACLD-LVIEW. 1.4.1 ACLS-DLL2 For easily program the board under Windows environment, we also provide ACLS-DLL2, which include the DLL for Windows 95/98/NT.
2 Installation This chapter describes how to install the ACL-8111. The following list shows the installation procedures: 1. Unpacking and check what you have. 2. Check the PCB and the location of jumper and switch. 3. Setup the jumpers according to the system and applications setting. 4. Installation the external termination boards. 5. Wiring with signals according to the connector pin assignments.
2.1 Unpacking The ACL-8111 card contains sensitive electronic components that can be easily damaged by static electricity. The card should be done on a grounded anti-static mat. The operator should be wearing an anti-static wristband, grounded at the same point as the antistatic mat. Inspect the card module carton for obvious damage. Shipping and handling may cause damage to your module. Be sure there are no shipping and handing damages on the module before processing.
2.3 PCB Layout In ACL-8111, there are three connectors (CN1~CN3), one switch (SW1), one jumper (JP1) and 5 variable resistors (VR1~VR5). Please refer Figure 2.3 to identify the location these components. The card's jumpers and switches are preset at the factory. Please setup the switch and jumper according to the system setting and the application requirements. . . . . . . . . . . . . . . . . CN2 . . . . . . . . . . . . . . . .
2.4 Base Address Setting The ACL-8111 requires 16 consecutive address locations in I/O address space. The base address of the ACL-8111 is restricted by the following conditions. 1. The base address must be within the range Hex 200 to Hex 3FF. 2. The base address should not conflict with any PC reserved I/O address. See Appendix A. 3. The base address must not conflict with any add-on card on your own PC. Please check your PC before installing the ACL-8111.
I/O port address(Hex) 000-00F 100-10F 1 A9 ON (0) ON (0) 2 A8 ON (0) OFF (1) 3 A7 ON (0) ON (0) 4 A6 ON (0) ON (0) 5 A5 ON (0) ON (0) 6 A4 ON (0) ON (0) OFF (1) OFF (1) OFF (1) ON (0) ON (0) ON (0) ON (0) ON (0) ON (0) ON (0) ON (0) ON (0) ON (0) ON (0) OFF (1) ON (0) OFF (0) ON (0) OFF (1) OFF (1) OFF (1) OFF (1) ON (0) OFF (1) ON (0) OFF (1) ON (0) OFF (01 ON (0) OFF (1) : 200-20F 210-21F 220-22F (default) : 300-30F 3F0-3FF ON: 0 OFF: 1. A4 ... A9 are correspond to PC address lines.
2.5 D/A Reference Voltage Setting The analog output range of ACL-8111 depends on the reference voltage, which is selected by JP1. There are two range of reference voltages can be assigned as either -5V or -10V, that will generate output range 0V ~ +5V or 0V ~ +10V, respectively. The setting of D/A reference voltage is specified as following: When you select -10V for the D/A reference voltage, you should be very careful the analog output.
2.6 Connectors Pin Assignments The ACL-8111 has three connectors: one 37-pin D-type connector (CN1) and two 20-pin insulation displacement connectors (CN2 and CN3). CN1 is for analog input and analog output signals. CN2 is for digital input signal. CN3 is for digital output signal. The pin assignments for each connector are illustrated in the Figure 3.1 ~ Figure 3.3.
CN 2: Digital Input Signals (DI 0 - 15) CN2 DI 0 DI 2 DI 4 DI 6 DI 8 DI 10 DI 12 DI 14 GND +5V 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 DI 1 DI 3 DI 5 DI 7 DI 9 DI 11 DI 13 DI 15 GND Strobe CN 3: Digital Output Signals (DO 0 - 15) CN3 DO 0 DO 2 DO 4 DO 6 DO 8 DO 10 DO 12 DO 14 GND +5V Legend: DO n DI n GND +12V Strobe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 DO 1 DO 3 DO 5 DO 7 DO 9 DO 11 DO 13 DO 15 GND +12V : Digital output signal channel n : Digital input signal channel n : Dig
2.7 Daughter Board Connection The ACL-8111 can be connected with five different daughter boards ACLD9137, 9182, 9185, and 9188. The functionality and connections are specified as following: 2.7.1 Connect with ACLD-9137 The ACLD-9137 is a direct connector for the card, which is equipped with 37pin D-sub connector. This board provides a simple way for connection. It is very suitable for the simple applications that do not need complex signal condition before the A/D conversion is performed. 2.7.
2.7.4 Connect with ACLD-9188 ACLD-9188 is a general-purpose terminal board for the entire card, which comes equipped with 37-pin D-sub connector.
3 Registers Format The chapter specifies the detailed descriptions of the register format. This information is useful for the programmers who wish to handle the card by low-level program. 3.1 Registers Address Map The ACL-8111 requires 16 consecutive addresses in the I/O address space. The following table (Table 3.1) shows the location of each register relative to the base address and register descriptions.
3.2 A/D Data Registers ACL-8111 provides 8 single-end A/D input channels. The 12 bit A/D data is put in two 8-bit registers. The low byte date (8 LSBs) is at address BASE+4 and the high byte data (4 MSBs) is at address BASE+5. The DRDY bit is used to indicate the status of A/D conversion. DRDY goes to low-level means A/D conversion is completed.
3.3 A/D Channel Multiplexer Register This register is used to control the A/D channels number to convert. It's a write only register. When the channel number is written to the register, the multiplexer switches to the new channel and waits for conversion. Address: BASE + 10 Attribute: write only Data Format: Bit 7 6 5 4 3 2 1 0 BASE+10 X X X X X CL2 CL1 CL0 CLn: multiplexer channel number. CL2 is MSB, and CL0 is LSB.
3.4 A/D Input Range Control Register The gain control register is a write-only register using address Base + 9. It is used to adjust the gain of the analog input programmable amplifier.
3.5 Mode and Interrupt Control Register The Mode and Interrupt control register is a write-only register. This register control the AD operating modes and the IRQ level of the ACL-8111. The AD operation modes include the AD clock source and the AD data transfer method.
3.6 Interrupt Status Register The Interrupt Status Register is used to clear the interrupt status for next new interrupt can be generated. If the ACL-8111 is in interrupt data transfer mode, a hardware status flag will be set after each A/D conversion. You have to clear the status flag by just writing any data to this register, let the ACL-8111 can generate next interrupt if a new A/D conversion is happen. Address : BASE + 8 Attribute: write only Data Format: 3.
3.8 Digital I/O register There are 16 digital input channels and 16 digital output channels are provided by the ACL-8111. The address Base + 6 and Base + 7 are used for digital input channels, and the address Base + 13 and Base + 14 are used for digital output channels.
Note: The D/A registers are "double buffered" so that the D/A analog output signals will not updated until the second (high) byte is written. This can insure a single step transition when the D/A conversion.
4 Operation Theorem The chapter describe the operation theorem of ACL-8111. The functions include the A/D conversion, D/A conversion, and digital I/O. The operation theorem can help you to understand how to manipulate and to program the ACL-8111. 4.
4.1.1 A/D Conversion Procedure The A/D conversion is starting by a trigger source, then the A/D converter will start to convert the signal to a digital value. The ACL-8111 provides three trigger modes, see section 4.1.2. The DRDY bit in the A/D data register (Base+5) will become to 0 once the A/D conversion is completed and data on the Base+4 and Base+5 are ready. A read data command on BASE+4 will automatically reset the DRDY bit to be 1 which means data is not ready on the Base+4 and Base+5.
Timer Pacer Trigger An on-board timer / counter chip 8253 provide a pacer trigger source at a fixed rate. Two counters of the 8253 chip are cascaded together to generate trigger pulse with precise frequency. It's recommend to use this mode if your applications need a fixed and precise A/D sampling rate. It can be combined with the EOC (end-of-conversion) interrupt data transfer.
4.1.3 A/D Data Transfer Modes On the ACL-8111, three A/D data transfer modes can be used when the conversion is completed. The data transfer mode is controlled by the mode control register (BASE+11). The different transfer modes are specified as follows: Software Data Transfer Usually, this mode is used with software A/D trigger mode. After the A/D conversion is triggered by software, the software should poll the DRDY bit until it becomes to high level.
4.2 D/A Conversion The operation of D/A conversion is simpler than A/D operation. You only need to write digital values into the D/A data registers and the corresponding voltage will be output from the AO. The ACL-8111 has one uni-polar analog output channels. To make the D/A output connections from the appropriate D/A output, please refer Figure 4.2. -5 or -10 INT or Ext Pin-30 ( AO) Ref In D/A Converter - To D/A Output + Pin-20 ( A.GND) Analog GND Figure 4.
Note that the D/A registers are "double buffered", so that the D/A analog output signals will not be updated until the high byte is written. When write 12 bits data to D/A registers of the ACL-8111, the low byte must be written before the high byte. This procedure can insure a single step transition when the D/A conversion. Note: when writing digital data to D/A register, the low byte data should be written first, because the register will temporarily hold and not released to output.
4.3 Digital Input and Output The ACL-8111 provides 16 digital input and 16 digital output channels through the connector CN2 and CN3 on board. The digital I/O signal are fully TTL/DTL compatible. The detailed digital I/O signal specification can be referred in section 1.3. 74LS244 Digital Input(DI) From TTL Signal Digital Output (DO) To TTL Devices 74LS373 ACL-8111 Digital GND (DGND) Outside Device Figure 4.3 Digital I/O Connection To program digital I/O operation is fairly straightforward.
5 C/C++ Library for DOS This chapter describes the DOS software library, which is free supplied. The DOS library software includes a utility program, C language library, and some demonstration programs, which can help you reduce the programming work. To program in Windows environment, please use ACLS-DLL2. The function reference manual of ACLS-DLL2 is included in the ADLINK CD. It needs license.
5.1 DOS Software Library Installation 5.1.1 Installation To install the DOS library software and utilities, please follow the following installation procedures: 1. Put ADLINK CD into the appropriate CD-ROM drive. 2. Type the following commands to change to the card’s directory (X indicates the CD-ROM drive): X:\>CD \NuDAQISA\8111 3. Execute the setup batch program to install the software: X:\NuDAQISA\8111>SETUP 5.1.
5.2 _8111_Initial @ Description An ACL-8111 card is initialized according to the card number and the corresponding base address. Every ACL-8111 Multi-Function Data Acquisition Card have to be initialized by this function before calling other functions. @ Syntax int _8111_Initial(int card_number, int base_addresss ) @ Argument: card_number: the card number to be initialized, only two cards can be initialized, the card number must be CARD_1 or CARD_2.
5.3 _8111_Switch_Card_No @ Description This function is used on dual-cards system. After two ACL-8111 cards are initialized by the initial function, you can select one card which you want to operate. @ Syntax int _8111_Switch_Card_No(int card_number) @ Argument: card_number: The card number to be initialized, only two cards can be initialized, the card number must be CARD_1 or CARD_2. @ Return Code: ERR_NoError ERR_InvalidBoardNumber @ Example: #include #include “aclerr.h” “8111.
5.4 _8111_DI @ Description This function is used to read data from digital input port. There are 16-bit digital inputs on the ACL-8111. The bit 0 to bit 7 are defined as low byte and the bit 8 to bit 15 are defined as the high byte. @ Syntax int _8111_DI( int port_number, unsigned char *data ) @ Argument: port_number: To indicate which port is read, DI_LO_BYTE or DI_HI_BYTE. DI_LO_BYTE: bit 0 ~ bit 7, DI_HI_BYTE: bit8 ~ bit15 data: return value from digital port.
5.5 _8111_DI _Channel @ Description This function is used to read data from digital input channels (bit). There are 16 digital input channels on the ACL-8111. When performs this function, the digital input port is read and the value of the corresponding channel is returned. Note: channel means each bit of digital input ports. @ Syntax int _8111_DI_Channel(int di_ch_no, unsigned int *data ) @ Argument: di_ch_no: the DI channel number, the value has to be set from 0 to 15.
5.6 _8111_DO @ Description This function is used to write data to digital output ports. There are 16 digital outputs on the ACL-8111, they are divided by two ports, DO_LO_BYTE and DO_HI_BYTE. The channel 0 to channel 7 are defined in DO_LO_BYTE port and the channel 8 to channel 15 are defined as the DO_HI_BYTE port.
5.7 _8111_DA @ Description This function is used to write data to D/A converters. There is a Digital-toAnalog conversion channel on the ACL-8111. The resolution is 12-bit, i.e. the range is from 0 to 4095. @ Syntax int _8111_DA(unsigned int data ) @ Argument: data: D/A converted value, if the value is greater than 4095, the higher 4-bits are negligent. @ Return Code: ERR_NoError ERR_BoardNoInit ERR_InvalidDAChannel @ Example: #include #include “aclerr.h” “8111.
5.8 _8111_AD_Set_Channel @ Description This function is used to set AD channel by means of writing data to the multiplexer scan channel register. There are 8 single-ended A/D channels in ACL-8111, so the channel number should be set between 0 to 7 only. The initial state is channel 0 which is a default setting by the ACL-8111 hardware configuration.
5.9 _8111_AD_Set_Gain @ Description This function is used to set the A/D analog input range by means of writing data to the A/D range control register. The initial value of gain is “1’ which is set by the ACL-8111 harware. The relationship between gain and input voltage ranges is specified by following tables: The initial value of gain is '1‘ and input type is bipolar, which are pre-set by the ACL-8111 hardware.
5.10 _8111_AD_Set_Mode @ Description This function is used to set the A/D trigger and data transfer mode by means of writing data to the mode control register. The hardware initial state of the ACL-8111 is set as AD_MODE_1 software( internal) trigger with program polling data.
5.11 _8111_AD_Soft_Trig @ Description This function is used to trigger the A/D conversion by software. When the function is called, a trigger pulse will be generated and the converted data will be stored in the base address Base +4 and Base +5, and can be retrieved by function _8111_AD_Aquire(). Please refer to section 6.11. @ Syntax int _8111_AD_Soft_Trig( void ) @ Argument: None @ Return Code: ERR_NoError ERR_BoardNoInit @ Example: Please refer the example in next section.
5.12 _8111_AD_Aquire @ Description This function is used to poll the AD conversion data. It will trigger the AD conversion, and read the 12-bit A/D data until the data is ready ('data ready' bit becomes low). @ Syntax int _8111_AD_Aquire( int *ad_data ) @ Argument: ad_data: 12-bit A/D converted value, the value should within 0 to 4095. @ Return Code: ERR_NoError ERR_BoardNoInit ERR_AD_AquireTimeOut @ Example: #include #include main() { “aclerr.h” “8111.
5.13 _8111_CLR_IRQ @ Description This function is used to clear interrupt request which requested by the ACL-8111. If you use interrupt to transfer A/D converted data, you should use this function to clear interrupt request status, otherwise no new coming interrupt will be generated.
5.14 _8111_AD_INT_Start @ Description The function will perform A/D conversion N times with interrupt data transfer by using pacer trigger. It takes place in the background which will not be stopped until the Nth conversion has been completed or your program execute _8111_AD_INT_Stop() function to stop the process. After executing this function, it is necessary to check the status of the operation by using the function 8111_AD_INT_Status().
5.15 _8111_AD_INT_Status @ Description Since the _8111_AD_INT_Start() function executes in background, you can issue the function _8111_AD_INT_Status to check the status of interrupt operation. @ Syntax int _8111_AD_INT_Status( int *status , int *count ) @ Argument: status: count: status of the INT data transfer 0: A/D INT is completed 1: A/D INT is not completed current conversion count number. @ Return Code: ERR_NoError ERR_BoardNoInit ERR_AD_INTNotSet @ Example: See demo program 'AD_Demo2.C' 5.
5.17 _8111_AD_Timer @ Description This function is used to setup the Timer #1 and Timer #2. Timer #1 & #2 are used as frequency divider for generating constant A/D sampling rate dedicatedly. It is possible to stop the pacer trigger by setting any one of the dividers as 0. The AD conversion rate is limited due to the conversion time of the AD converter, the highest sampling rate of the ACL-8111 can not be exceeded 30 KHz,Thus the multiplication of the dividers must be larger than 70.
6 Calibration In data acquisition process, how to calibrate your measurement devices to maintain its accuracy is very important. Users can calibrate the analog input and analog output channels under the users' operating environment for optimizing the accuracy. This chapter will guide you to calibrate your ACL8111 to an accuracy condition. Note: Your ACL-8111 board has been carefully calibrated in the factory before it is shipped to you. 6.
6.2 VR Assignments There are five variable resistors (VR) on the ACL-8111 board to allow you making accurate adjustment on A/D and D/A channels. The function of each VR is specified below: VR No. VR1 VR2 VR3 VR4 VR5 6.3 Function D/A full scale adjustment D/A zero offset adjustment A/D offset adjustment A/D full scale adjustment A/D programmable amplifier offset adjustment D/A Calibration The D/A input reference voltage should be connected to for calibration.
6.4 A/D Calibration Since the ACL-8111 provides versatile A/D input ranges, the calibration on one A/D range may cause a small offset on other ranges. It is suggested that you calibrate the A/D range which you need best accuracy. The procedures of calibration are as follows: 1. Set the analog input range as: +/- 5V, i.e. the gain = 1. 2. Short the A/D channel 0 (pin 1 of CN1) to ground (GND), and connect the TP1 (+) and TP2 (-) with your DVM.
Appendix A. Demo. Programs In this software diskette, there are 6 demonstration programs are provided. They could help you to program your application by using C Language Library easily. The description of these programs are specified as follows: AD_DEMO1.C: AD_DEMO2.C AD_DEMO3.C: DA_DEMO.C: DI_DEMO.C: DO_DEMO.C: A/D conversion uses software trigger and program data transfer. A/D conversion uses interrupt and program data transfer. A/D conversion uses DMA data transfer.
Warranty Policy Thank you for choosing ADLINK. To understand your rights and enjoy all the after-sales services we offer, please read the following carefully. 1. Before using ADLINK’s products please read the user manual and follow the instructions exactly. When sending in damaged products for repair, please attach an RMA application form which can be downloaded from: http://rma.adlinktech.com/policy/. 2. All ADLINK products come with a limited two-year warranty, one year for products bought in China.
4. • Damage caused by leakage of battery fluid during or after change of batteries by customer/user. • Damage from improper repair by unauthorized ADLINK technicians. • Products with altered and/or damaged serial numbers are not entitled to our service. • This warranty is not transferable or extendible. • Other categories not protected under our warranty. Customers are responsible for all fees necessary to transport damaged products to ADLINK.