Universal Adapter of Analog-Digital I/O for IBM PC
NVL 03.1




                                           Òåchnical Description:

1.
Introduction
This description is included in a set with the device NVL03.1 and is an important document for the usage of this device. 
1.1. The producer has a right to make changes in the scheme which are not followed by any changes in  the parameters of the usage of this device.

2.
Application
      NVL031 is designed for working in the PC slot of the IBM PC XT - Pentium III type. The device executes analog signals conversion in the voltage range  +/-5 V and in frequency range 0-12 kHz  to digital signals.   


3.
Functions of The Device

  • 3.1. Analog data  input

  • 3.2. Digital data  input

  • 3.3. Digital data output

4. Òåchnical Characteristics

  • 4.1. Ànalog Input

    ADC chip Ê1113PV1
    Number of channels 16
    Resolution 10 bit
    Input voltage ranges +/-1.0;+/-1.25;+/-2.5;+/-5V
    Maximum input voltage +/- 12V
    Conversion time upto 30 ms
    Minimum selection time (interval) upto 33 ms
    ADC start intervals change with differentiation: 1 ms
    Channel commutator installation time upto 0.3ms
    Maximum  frequency range level of input signals (0.8 from Nikevist frequency) 12.5 kHz.
    Minimum frequency range level of input signals 0 Hz
    Channel switching/ADC start time interval upto 5 ms
    Voltage measurement mistake +/- 0.25 %
    Time interval mistake 0.000001 %


    Start mode: apparatus; interval is programmable; program of external. ADC results receiving: program (waiting for readiness), on interruption. 

    4.2.
    Digital I/O

         Digital I/O provides an opportunity of program connection to 2 independent registers which work in the mode of I/O.

    4.3
    IBM PC Bus Cooperation
         The device requires a volume of  20 addresses in the space of  I/O.

    The basic address is chosen by  a jumper on the card


    The basic addresses may be: 200Í, 220Í, 300Í.
    interruptions: IRQ3, IRQ5, IRQ7.

5. Structure Scheme and Work of  NVL03.1

5.1 As for functions NVL031 may be devided to 2 independent parts: ADC and digital I/O. As for ADC it consists of two following parts:

  • input amplifier (A2), provides high input impedance and a normal coefficient of amplifying

  • the device of selection and storage maintains stabil voltage on the chip input of the ADC during the conversion time. This voltage is the same as normal voltage of  NVL031 input voltage at the moment of starting the analog/digital converter

  • schemes of starting which form the signals are necessary for the work of ADC, SHA chips and the signals which maintain cooperation of the PC and NVL031. The major element of the scheme of starting is a programmable timer  ÊP580VI53. Two channels of this timer 1 and 0 form the length of intervals between apparatus starting and intervals of delay in case of  program or external starting. Frequency  CLKÒ = 2 ÌHz is transferred to the timer input so the minimum discret of the intervals formed by the timer is 1 ms and maximum interval of the apparatus formed time is about 1,3 s. 

*Ìinimum time interval between startings should not be less than ADC convertion time (not less than  30ms)
*Ìàximum number that can be written to the 0 channel counter in case of apparatus start should be upto 20.
     Apparatus start is executed independent from the bus work; the accuracy is maintained by a crystal oscillator. After every conversion the ADC forms the impulse of readiness which may be waited for by a program or if it is required can be used as a signal of interruption. During this maximum speed of NVL031 work is maintained. The reason is that PC data capture is executed at the time when ADC has already begun its next conversion. 
     Program starting is executed by programming the timer to form a single impulse. To execute external starting there is an output "start". Log 1 - impulse forming permitted; Log 2- impulse forming banned. 
5.2 The scheme of starting uses two out of three timer channels. The third can be used by the user.
5.3 There is a programmable integrated I/O port ÊÐ580ÂÂ55À(Intel 8255) in NVL031for digital I/O. Two  ÊÐ580ÂÂ55À registers: A and B are available for the user.  


6. 
NVL031 Programming.

6.1. The registers execute program connection for NVL031control and for data exchange. These registers are situated in the address space of  I/O of the IBM PC. To use several NVL031devices in one IBM PC and to prevent an address "conflict" with other devices which are used in the IBM PC there is an opportunity of switching the addresses in NVL031. There are 3 basic addresses which can be set in NVL031(by the jumper): 200h, 220h, 300h. The address of any register in the address space of IBM PC is easy to find out. You need to count the basic address plus the address of the register.
6.2. To execute the control of the device NVL031 there is a register of orders. Its adress is 0Ch. The 0 adress of this register maintains the functioning of the start scheme. Logical 0 in this case banns ADC starting and logical 1 permits it. The second bit of the order register puts the ADC starting scheme at the very first position. To do this it is necessary to set log "0" in this bit before starting your work and then log "1"and maintain it during the whole period of the ADC work. The other bits of this register should be kept in log "1" position.  
6.3. As it has already been mentionned the central element of the starting scheme is a proggrammable integrated timer  ÊR580VI53. The registers' adresses of this timer are: 
channel 0 - 00h
channel 1 - 01h
channel 2 - 02h
register of control - 03h
The device NVL031 permits 3 possible variants of ADC start. 
- àpparatus - in this mode a timer forms the start impulses. For this purpose it is necessary to program timer channels: channel 1 and channel 0 for working in the mode 2 (impulse generator). Intervals between ADC starts are like the following:

Ò = N1 * N0

 Ò - interval between the ADC starts (ms.).
N1 - number written in channel 1 of the timer.
N0 - number written in channel 0 of the timer 
T should be not less than 30. Number 2 in mode 2 can not be downloaded. If  N0 and N1 are chosen it is necessary to follow the rule: N0 should be maximum. If starting is executed by the apparatus 0 bit of the order register should be in log. ''1'' position. If starting is executed by the program then the program regards it as ADC starting. Channel 0 of the timer is programmed for working in mode 1, number 3 is written in it as for the 1st channel number 2 is written in it. After this every changing from position "0" to "1" will be followed by ADC start. Externally everything is the same as in the apparatus type; the only difference is that 0 bit of the order register should be in log."1" position; ADC starting begins after every positive change at "SE" contact of the input. It should be mentioned that starting with some delay is also possible. 
6.4. There is a programmable integrated I/O port ÊÐ580ÂÂ55À ( Intel 8255) used in NVL031. Two registers of this port (A and B) are available for a user as I/O ports. Register C is used in the following way: minimum 4 (0-3) bits identify (in 2(bi) code) the number of the ADC channel, 6 bit (bit5) is a signal of ADC readiness. To execute these functions register C is devided into 2 parts: minimum for output and maximum for input. The following register adresses of the programmable integral I/O port ÊÐ580ÂÂ55À(Intel 8255)are used in NVL03 :

register À 04h
register  05h
register Ñ 06h
controlling register  07h

6.5. The result of AD conversion are received serially; the period of receiving is devided into 2 parts: reading from the register with 08h address: first maximum byte(bits "0" and "1" where are  "8" and "9" bits of the ADC code) then minimum. The other bits of the maximum byte are not identified and should be made 0 after receiving the maximum byte
There are two types of receiving the results in NVL03:

  • Program: when the program evaluates bit 5 of the register C. It is connected with the signal of readiness of the ADC chip. After starting the AD conversion this bit is transmitted to log."0" position and is left like this till the end of this conversion. Changing from position log."0"to log. "1" means that the ADC code has been rewritten to the output buffer. It is necessary to mention that the structure of NVL031 is designed in such a way that the results of the previous AD conversion are left in the output buffer during the whole period of the next conversion and consequently it can be read any time. This is really an advantage  when you execute  the capture of interruption data to maintain maximum speed. It can be explained by the fact that during  the ADC start the processor does not spend any time to organise waiting for readiness instead of this it executes conversion of the data received before. 

  • On Interruption: to use this opportunity it is necessary to chose one of the free interruptions of your PC (with the help of a jumper): IRQ3, IRQ5 or IRQ7 and write a program of interruption processing that will include capture of the results of the previous AD conversion. NVL031 makes an interruption signal after every ADC.

 Full description of NVL031 with a sample of programming