ACL-6128
2-Channel Isolated
Analog Output Card

@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





How to Use This Guide
1. Introduction
1.1 Features
1.2 Applications
1.3 Specifications
2. Installation
2.1 What You Have
2.2 Unpacking
2.3 ACL-6128's Layout
2.4 Jumper and DIP Switch Description
2.5 Base Address Setting
2.6 Selecting D/A Range and Functions
2.7 Current Sink Range Setting
2.8 Connector Pin Assignment
2.9 Signal Connection
3. Low-Level Programming
3.1 I/O Port Address Map
3.2 D/A Data Format
3.3 Converted Data Representation
3.4 D/A Conversion Sequence
4. High-Level Programming
4.1 Backup Your Disk
4.2 Installation
4.3 C Language Library
5. Calibration
5.1 What Do You Need
5.2 VR Assignment
5.3 Internal Reference Source Adjustment
5.4 Bipolar Output Calibration
5.5 Unipolar Output Calibration
5.6 Current Sink Calibration
Appendix A. I/O Port Address Map
Product Warranty/Service




How to Use This Guide

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:





1. Introduction

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:




1.2 Applications :


1.3 Specifications :

The ACL-6128 provides the following specifications:





2. Installation

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.

  1. The base address must be within the range 200hex to 3F0hex.

  2. The base address should not conflict with any PC reserved I/O address. see Appendix A.

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



2.6 Selecting D/A Range and Functions

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

Figure 2.3 Reference Source Setting

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

Figure 2.4 Internal Reference Voltage Setting

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

Figure 2.5 Ouput Range Setting

2.6.3 Summary

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

Figure 2.6 Output Range Summary


2.7 Current Sink Range Setting

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

Figure 2.7 Current Sink Setting

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




2.9 Signal Connection

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.





3. Low-Level Programming


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

Table 3.1 I/O Register Map


3.2 D/A Data Format

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

Address : BASE + 2 & BASE + 3
Attribute :
write only
Data Format : (for D/A Channel 2)

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:

  1. Define the base address of ACL-6128 card e.g. Base_Addr = 0x2C0;

  2. Extract the most signification 4 bits from the converted data, and then written to Base_Addr + 0 e.g. High_Byte = Data & 0f00;
    outportb( Base_Addr + 0, High_Byte);

  3. Extract the least signification 8 bits from the converted data, and then written to Base_Addr + 1 e.g. Low_Byte = Data & 00ff;
    outportb( Base_Addr + 1, Low_Byte);

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: )




Product Warranty/Service

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.