
@Copyright 1995
All Rights Reserved.
Manual edition 23, December 1995
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.
In no event will the manufacturer be liable for direct, indirect, special, incidental, or consequential damages arising out of the use or inability to use the product or documentation, even if advised of the possibility of such damages.
This document contains proprietary information protected by copyright. All rights are reserved. No part of this manual may be reproduced by any mechanical, electronic, or other means in any form without prior written permission of the manufacturer.
Trademarks
ACL-6128 is registered trademarks of ADLink Technology Inc., Advantech and PCL-728 is a trademark of Advantech Co., Ltd. IBM PC is a registered trademark of
International Business Machines Corporation. Intel is a registered trademark of Intel Corporation. Other product names mentioned herein are used for identification
purposes only and may be trademarks and/or registered trademarks of their respective companies.
Contents
This manual is written to help you use the ACL-6128. The manual describes how to modify various settings on the ACL-6128 card to meet your requirements. It is divided into three chapters:
The ACL-6128 is an analog output card for the IBM Personal Computer and compatibles with two separate D/A converters that can be updated simultaneously. In addition to 12-bit resolution and 16KHz throughput on each DAC, both voltage and current outputs are supported. It is an ideal analog output device for cost effective solution in real industrial applications.
The ACL-6128 is designed to meet high voltage isolation on each analog output channel. Opto-isolators give 500VDC isolation to protect both your PC and peripherals from damage due to high voltages on the inputs. After you turn on or reset your PC system, both channels will reset the output voltage to 0V in unipolar or bioplar output range.
The ACL-6128's register structure and jumper settings are fully compatible with Advantech PCL-728. It will be no extra
learning time for the customers who are familiar with Advantech products. In addition, many extra enhancements for reliability and
performance are also designed in the ACL-6128, such as surface mount components design, and single +5V power consumption
only, ...,etc.
1.1 Features
The ACL-6128 2-channel Isolated D/A Card provides the following advanced features:
The ACL-6128 provides the following specifications:
This chapter describes how to install the ACL-6128. At first, the contents in the package and unpacking information that
you should be careful are described. The jumper and switch settings for the ACL-6128's base address, reference voltage
source, and output voltage range are also specified.
2.1 What You Have
In addition to this User's Manual, the package includes the following items:
If any of these items is missing or damaged, contact the dealer from whom you purchased the product. Save the shipping
materials and carton in case you want to ship or store the product in the future.
2.2 Unpacking
Your ACL-6128 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 anti-static 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.
After opening the card module carton, extract the system module and place it only on a grounded anti-static surface component side up.
Again inspect the module for damage. Press down on all the socketed IC's to make sure that they are properly seated. Do this only with the module place on a firm flat surface.
Note : DO NOT APPLY POWER TO THE CARD IF IT HAS BEEN DAMAGED.
You are now ready to install your ACL-6128.
2.3 ACL-6128's Layout

Figure 2.1 ACL-6128`s Layout
2.4 Jumper and DIP Switch Description
You can change the ACL-6128's channels and base address by setting jumpers and DIP switches on the card. The card's jumpers and switches are preset at the factory. Under normal circumstances, you should not need to change the jumper settings.
A jumper switch is closed (sometimes referred to as "shorted") with the plastic cap inserted over two pins of the jumper. A
jumper is open with the plastic cap inserted over one or no pin(s) of the jumper.
2.5 Base Address Setting
The ACL-6128 requires 16 consecutive address locations in I/O address space. The base address of the ACL-6128 is restricted by the following conditions.
The ACL-6128's I/O port base address is selectable by an 8 position DIP switch SW1 ( refer to Figure 2.1). The address setting for I/O port from Hex 200 to Hex 3F0 is described in Table 2.1 below. The default base address hex 2C0 of the ACL-6128 is illustrated in the Figure 2.2 below.

Figure 2.2 Default Base Address Setting
| I/O port address(hex) |
1 A9 |
2 A8 |
3 A7 |
4 A6 |
5 A5 |
6 A4 |
7 A3 |
8 X |
| 200-20F | OFF (1) |
ON (0) |
ON (0) |
ON (0) |
ON (0) |
ON (0) |
ON (0) |
X |
| 210-21F | OFF (1) |
ON (0) |
ON (0) |
ON (0) |
ON (0) |
OFF (1) |
ON (0) |
X |
| : | : | : | : | : | : | : | : | : |
| (*) 2C0-2CF | OFF (1) |
ON (0) |
OFF (1) |
OFF (1) |
ON (0) |
ON (0) |
ON (0) |
X |
| : | : | : | : | : | : | : | : | : |
| 300-30F | OFF (1) |
OFF (1) |
ON (0) |
ON (0) |
ON (0) |
ON (0) |
ON (0) |
X |
| : | : | : | : | : | : | : | : | : |
| 3F0-3FF | OFF (1) |
OFF (1) |
OFF (1) |
OFF (1) |
OFF (1) |
OFF (1) |
ON (0) |
X |
(*) : default setting ON : 0
X : don't care OFF : 1
Note : A3, ..., A9 correspond to PC bus address lines.
Table 2.1
How to Define a Base Address for the ACL-6128 ?
The DIP1 to DIP7 in the switch SW1 are one to one corresponding to the PC bus address line A9 to A3. A0,A1, and A2 are always 0. If you want to
change the base address, you can only change the values of A9 to A3 ( shadow area of below diagram). Following is an example, which shows you how to
define the base address as Hex 2C0.
Base Address : Hex 2C0
| 2 | C | 0 | |||||||||
| 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
There are two facts will effect the output voltage of ACL-6128 :
reference source and output
range.
2.6.1 Reference Source Setting
The ACL-6128's D/A converter reference voltage source can be internal generated or by external reference voltage from the Reference Voltage Input ( REF.IN) of connector CN1 and CN2. The settings of the reference sources for CH1 and CH2 are controlled by the jumper JP4 and JP8, respectively. The default setting is Internal Reference for both CH1 and CH2, and is illustrated by the following diagram on next page.
| Internal Reference ( Default ) |
External Reference Voltage | |
| CH1 | ![]() |
![]() |
| CH2 | ![]() |
![]() |
After setting as internal reference source, two fixed and precision internal -5V and -10V reference sources are provided by ACL-6128. The source selection is set by JP3 (CH1) and JP7 (CH2), and the default setting of internal reference voltage is -5V , which is illustrated as Figure 2.4 below :
| Channel No. | Internal -5V ( Default) |
Internal -10V |
| CH1 | ![]() |
![]() |
| CH2 | ![]() |
![]() |
If users choose the external reference, both AC and DC voltage sources can be used by the external reference, and the maximum input voltage is
+/- 10V. The voltage sources can be input through Pin 3 of CN1 and CN2 connectors.
2.6.2 Output Range Setting
The output voltage range of ACL-6128 can be set either Bipolar or Unipolar. The jumpers, JP1 and JP5 ( for CH1), and JP2 and JP9 ( for CH2) are used for the setting and illustrated as Figure 2.5 below:
| Channel No. | Unipolar ( Default) |
Bipolar |
| CH1 | ![]() |
![]() |
| CH2 | ![]() |
![]() |
According to the reference source and output range settings, users can follow the below table to configure the output voltage of CH1 and CH2 for different situations.
( JP1, JP3, and JP5 are for CH1; JP2, JP7, and JP9 are for CH2)
| Jumper Output Range |
JP3 for CH1 JP7 for CH2 |
JP1&JP5 for CH1 JP2 & JP9 for CH2 |
| 0 to +5V Unipolar (Default) |
![]() |
![]() |
| 0V to +10V Unipolar |
![]() |
![]() |
| -5V to +5V Bipolar |
![]() |
![]() |
| -10V to +10V Bipolar |
![]() |
![]() |
Not only the voltage output, the ACL-6128 also provide either 0-20mA or 4-20 mA current sink. In order to use the current sink range, you must set the output voltage to unipolar. The jumper JP6 is corresponding to CH1, and JP10 is used with CH2. The illustration Figure 2.7 below shows the settings for the ACL-6128's current sink range.
| Channel No. | 4-20 mA ( Default ) |
0-20 mA |
| CH1 | ![]() |
![]() |
| CH2 | ![]() |
![]() |
Note : The current sink can only be used when the output voltage range set as
internal reference with -5V and unipolar mode.
2.8 Connector Pin Assignment
The ACL-6128 comes equipped with two D-9 female connectors - CN1 and CN2. Both of the CN1 and CN2 are located at the rear plate. CN1 is used for outputting connection of CH1, CN2 is for CH2. Each of the connector's pin assignment is specified as follows:
Legend :
V.OUT : Analog Voltage Output
I.SINK : Current Sink
A.GND : Analog Ground
REF.IN : Reference Voltage Input
+15V : +15V output
· CN 1 : Analog Output for CN1
· CN 2 : Analog Output for CN2
A correct signal connection is quite important to send data accuracy. In this section, a helpful information for how to make
proper signal connection when the ACL-6128 is used.
2.9.1 Voltage Output Connection
2.9.2 Current Sink Connection
Note : For 4-20mA current sink mode, the output range should be set as
Internal Reference with -5V and Unipolar
mode.
2.9.3 Floating Load without external power supply
If your system do not offer external power supply, a +15V power source can be supported form ACL-6128 card. The connection is illustrated as below.
A low-level programming interface of ACL-6128 is described in this chapter. If you wish to write your own applications based on primitive I/O
functions ( inportb and outportb) instead of using the ACL-6128's library, you have to be careful to understand the meaning of register structure. Here, you
will get all detailed information of the ACL-6128's register format and control procedures.
3.1 I/O Port Address Map
Actually, the ACL-6128 only requires 4 consecutive addresses in the PC I/O address space. The following table (Table 3.1) shows the location of each register and driver relative to the base address, and its description.
| Location | Write | Read |
| Base + 0 | CH1 High Byte Data | Not Used |
| Base + 1 | CH1 Low Byte Data | Not Used |
| Base + 2 | CH2 High Byte Data | Not Used |
| Base + 3 | CH2 Low Byte Data | Not Used |
The base address from Base+0 to Base+3 are used for D/A conversion. The analog output channels and its corresponding registers are specified by table 4.2, and the details is described as follows.
| CH NO. | CHANNEL 1 | CHANNEL 2 |
| High byte | Base+0 | Base+2 |
| Low byte | Base+1 | Base+3 |
Table 4.2
Address : BASE + 0 & BASE + 1
Attribute : write only
Data Format : (for D/A Channel 1)
BASE+0 : CH1 High Byte Data
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Base + 0 | X | X | X | X | DA11 | DA10 | DA9 | DA8 |
| Base + 1 | DA7 | DA6 | DA5 | DA4 | DA3 | DA2 | DA1 | DA0 |
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Base + 2 | X | X | X | X | DA11 | DA10 | DA9 | DA8 |
| Base + 3 | DA7 | DA6 | DA5 | DA4 | DA3 | DA2 | DA1 | DA0 |
AD11 .. AD0 : Digital to Analog data.
AD0 is Least Significant Bit, and AD11 is Most Significant Bit.
X : Don't care.
Double Buffering :
Since the data of ACL-6128 is represented by 12 bits for digital-to-analog conversion, it has to write to the D/A converter in 2 consecutive bytes. The first byte contains the 4 most signification bits of the data. The second byte contains the least signification 8 bits of the data. The most signification byte is written first and is stored in an intermediate register in the D/A (not released to D/A ) converter. After the least signification byte is written, it will be combined with the stored most significant data and presented to the D/A converter, thus assuring a single-step update. This is known as the double buffering.
3.3 Converted Data Representation
Two analog output range alternatives are provided by the ACL-6128 : Unipolar and Bipolar. The numbering of the converted
data with have different presentation for different output range.
3.3.1 Unipolar Numbering
Example :
Converted Data = 2047
Binary Code = 0111 1111 1111
Vref = -5V
V.OUT = -(-5 V) * ( 2047/ 4095) = 2.499 V
3.3.2 Bipolar Numbering
Example :
Converted Data = 500
Binary Code = 1001 1111 0100
Vref = -5V
V.OUT = -(-5 V) * ( 500/ 2047) = 1.221 V
3.4 D/A Conversion Sequence
In ACL-6128, the A/D conversion can only be controlled by software based on double buffering concept. That is, the converted data should be stored in High Byte Register first, and then stored the Low Byte Register.
The procedures of how to initiate and convert digital data to analog output is listed step by step below:
An example program in low-level programming style called 6128IO.C is included
in the Utility and Software Library diskette for your
reference.
4. High-Level Programming
A high-level C language programming interface of ACL-6128 is described in this chapter. You can base on the C library to develop your own applications easily and fast.
Only three C-language API ( Application Programming Interface) functions are supported by the software library. The functionality of these function calls can be classified to the following capabilities,
1. Initialization : setups the hardware base I/O address and switches different cards
2. D/A conversion : performs digital to analog conversion
In addition to the library, some demonstration programs are also provided; you can refer it and save a lot of programming
time and get some other benefits as well.
4.1 Backup Your Disk
The Utility Software and Library supplied with ACL-6128 is in DOS format which is compatible with DOS 3.0 or higher reversions. It is advisable to make a back up copy before using the software.
For a direct back up, use the DOS DISKCOPY or alternatively XCOPY *.* to a pre-formatted disk. The back up procedures are specified as follows:
1. Insert "Utility and Library" Diskette into floppy drive A:
2. XCOPY a:*.* b:/s
4.2 Installation
The ALC-6128's Utility Diskette includes a utility software,
C-language library and some demonstration programs which can help you reduce programming work and support the calibration of analog inputs and outputs.
You will need to manually copy the contents of diskette to your hard disk. The procedures should be followed as :
1. Turn your PC's power switch on
2. Put the " ACL-6128 Utility & Library " diskette into your floppy drive A: or B:
3. Make a directory in your hard disk and change to this directory
C> mkdir 6128
C> cd 6128
4. Copy the content from drive A: or B: to C:
C> xcopy a:*.* c: /s
5. Make sure the contents of the diskette are copied correctly.
4.3 C Language Library
The ACL-6128's digital-to-analog conversion library was constructed to provide a simple programming interface for communicating with the ACL-6128 card. The library provides easy to use functions which allow programmers to use the features of the card in a high-level way.
The version of this library included in the diskette is DOS only. To be compatible with the various compilers, you can compile the source of the library which also included in the diskette. Borland C and Microsoft C are currently supported. Borland users compiler the file 6128Lib.C.
The detailed function description is specified in the following sections :
4.3.1 _6128_Initial
@ Description
An ACL-6128 card is initialized according to the card number and its corresponding base address. Every ACL-6128 cards have to be initialized by this function before called other functions.
@ Syntax
int _6128_Initial(int card_number, int base_address)
@ Argument :
card_number : The card number to be initialized, totally 8 cards can be initialized, the
card number must be within the range of 0 and 7.
base_address : the I/O port base address of the card .
@ Return Code :
ERR_NoError
ERR_InvalidBoardNumber
ERR_BaseAddressError
4.3.2 _6128_Switch_Card_No
@ Description
This function is used on multi-cards system. After the ACL-6128 cards are initialized by _6128_Initial function, you can use this function to select which one you want to operate.
@ Syntax
int _6128_Switch_Card_No(int card_number)
@ Argument :
card_number : The card number to be initialized, totally 8 cards can be initialized, the card number must be within
the range of 0 and 7.
@ Return Code :
ERR_NoError
ERR_InvalidBoardNumber
4.3.3 _6128_DA
@ Description
This function is used to write data to D/A converters. There are six Digital-to-Analog conversion channel on the ACL-6128. The resolution of each channel is 12-bit, i.e. the range is from 0 to 4095.
@ Syntax
int _6128_DA( int da_ch_no, unsigned int da_data )
@ Argument :
da_ch_no : the DA channel number, the value has to be set 0 or 1.
da_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
5. Calibration
In data acquisition process, how to calibrate your measurement devices to maintain its accuracy is very important. This chapter will guide you
to calibrate your ACL-6128 to an accurate condition.
5.1 What do you need
Before calibrating your ACL-6128 card, you should prepare some equipment for the calibration:
1. Calibration program : once the program is executed, it will walk you through calibration procedure, step-by-step. This program is included in the delivered package.
2. one 4 1/2 digital multimeter
5.2 VR Assignment
There are twelve variable resistors (VR) on the ACL-6128 board to allow you making accurate adjustment on two D/A channels. VR1 to VR6 belong to CH1, and VR7 to VR12 belongs to CH2. The detailed functionality of each VR is listed below:
CH1`s VR
| VR1 | (-10V)Internal reference | VR2 | (-5V)Internal reference |
| VR3 | Gain Adjustment | VR4 | Unipolar Offset |
| VR5 | Bipolar Offset | VR6 | Current Sink Offset (4mA) |
CH2`s VR
| VR7 | (-10V)Internal reference | VR8 | (-5V)Internal reference |
| VR9 | Gain Adjustment | VR10 | Unipolar Offset |
| VR11 | Bipolar Offset | VR12 | Current Sink Offset (4mA) |
There are two testing point TP1 and TP2 on the board, which are used for calibration the ACL-6128. The TP1 is for CH1, and TP2 is for CH2.
5.3 Internal Reference Source Adjustment
The Internal Reference Source adjustment can make sure the internal reference voltages of ACL-6128 can offer very accurate voltage source -5V and -10V.
1. Ground the black probe of your voltmeter.
2. Connect another probe with TP1 ( Test Point for CH1) if you test CH2, you have to connect to TP2.
3. Trim the VR1( for CH1) until the reading of voltmeter is -10V, Trim the VR8( for CH2) until the reading of voltmeter is -10V.
4. Trim the VR2( for CH1) until the reading of voltmeter is
-5V,
Trim the VR7( for CH2) until the reading of voltmeter is
-5V.
5.4 Bipolar Output Calibration
If you choose Bipolar mode for analog output, you have to go through the Bipolar Output Calibration. There are two steps - Gain Calibration and Offset Calibration, the detailed calibration procedures are list as follows.
Gain Calibration :
1. Set jumper JP1 & JP5( for CH1) or JP2 & JP9 ( for CH2) as bipolar, and choose internal reference as -5V.
2. Set the digital data as (0000 0000 0000)B, trim VR3 ( for CH1) or VR9 ( for CH2)until the voltmeter reading flickers between -4.99V and -5.00V.
3. Set the digital data as (1111 1111 1111)B, trim VR3 ( for CH1) or VR9 ( for CH2) until the voltmeter reading flickers around 4.99V.
Offset Calibration :
1. Set internal reference as -5V
2. Set the digital data as (1000 0000 0000)B, trim VR5 ( for CH1) or VR10 ( for CH2)until the voltmeter reading is 0V.
5.5 Unipolar Output Calibration
If you choose Unipolar mode for analog output, you have to go through the Unipolar Output Calibration. There are two steps - Gain Calibration and Offset Calibration, the detailed calibration procedures are list as follows.
Gain Calibration :
1. Set jumper JP1 & JP5( for CH1) or JP2 & JP9 ( for CH2) as unipolar, and choose internal reference as -5V
2. Set the digital data as (1111 1111 1111)B, trim VR3 ( for CH1) or VR9 ( for CH2)until the voltmeter reading flickers between 4.99V and 5.00V.
Offset Calibration :
1. Set jumper JP1 & JP5( for CH1) or JP2 & JP9 ( for CH2) as unipolar, and choose internal reference as -5V
2. Set the digital data as (0000 0000 0000)B, trim VR4 ( for CH1) or VR11 ( for CH2)until the voltmeter reading is 0 V.
5.6 Current Sink Calibration
If you choose the current sink output, please set the configuration as :
Internal Reference, and its reference voltage set as -5V.
Follow the below procedures to calibrate the current sink output.
1. Set the digital data as (0000 0000 0000)B, and internal reference as -5V, and unipolar output range.
2. Trim VR5 ( for CH1) or VR6 ( for CH2) to keep a constant current of 4mA.
Appendix A . I/O Port Address Map
| I/O Address | Device |
| 000-01F | DMA controller 1 |
| 020-03F | interrupt controller |
| 040-05F | Timer |
| 060-06F | Keyboard |
| 070-07F | Real-time clock |
| 080-09F | DMA page register |
| 0A0-0BF | interrupt controller 2 |
| 0C0-0DF | DMA controller |
| 0F0-0FF | Math coprocessor |
| 100-1EF | not usable |
| 1F0-1F8 | Fixed disk |
| 200-207 | Game I/O |
| 278-27F | Parallel printer port 2 ( LPT2: ) |
| 2F8-2FF | Serial Port 2 ( COM2: ) |
| 300-31F | Prototype card |
| 360-36F | Reserved |
| 378-37F | Parallel printer port 1 ( LPT1: ) |
| 3B0-3BF | Monochrome display |
| 3C0-3CF | Reserved |
| 3D0-3DF | Color graphics display |
| 3F0-3F7 | Diskette controller |
| 3F8-3FF | Serial port 1 ( COM 1: ) |
Seller warrants that equipment furnished will be free form defects in material and workmanship for a period of one year from the confirmed date of purchase of the original buyer and that upon written notice of any such defect, Seller will, at its option, repair or replace the defective item under the terms of this warranty, subject to the provisions and specific exclusions listed herein.
This warranty shall not apply to equipment that has been previously repaired or altered outside our plant in any way as to, in the judgment of the manufacturer, affect its reliability. Nor will it apply if the equipment has been used in a manner exceeding its specifications or if the serial number has been removed.
Seller does not assume any liability for consequential damages as a result from our products uses, and in any event our liability shall not exceed the original selling price of the equipment.
The equipment warranty shall constitute the sole and exclusive remedy of any Buyer of Seller? equipment and the sole and exclusive liability of the Seller, its successors or assigns, in connection with equipment purchased and in lieu of all other warranties expressed implied or statutory, including, but not limited to, any implied warranty of merchant ability or fitness and all other obligations or liabilities of seller, its successors or assigns.
The equipment must be returned postage-prepaid. Package it securely and insure it. You will be charged for parts and labor if you lack proof of date
of purchase, or if the warranty period is expired.


©1995 Circuit Specialists, Inc.