DIAMOND-MM-48-AT Autocalibrating Analog I/O PC/104 Module
1. DESCRIPTION
Diamond-MM-48-AT (DMM-48-AT) is a PC/104 expansion board offering embedded systems
designers a full feature set of analog and digital I/O capabilities. It is designed to be used in
any PC-compatible embedded computer with a PC/104 (ISA-bus) expansion connector.
DMM-48-AT offers reduced embedded system size and weight, as well as lower cost, by
providing more functionality on one board than other data acquisition boards.
Key features include:
Analog Inputs
♦ 16 single-ended analog inputs
♦ 16-bit A/D resolution
♦ 200KHz maximum aggregate A/D sampling rate
♦ +/-10V and +/-5V input ranges standard; 0-5V input range optional
♦ 2048-sample FIFO for reliable high-speed sampling
♦ Autocalibrated input circuit
Analog Outputs
♦ 8 analog outputs
♦ 12-bit D/A resolution, 0-4.096V output range (1mV per LSB)
♦ Autocalibrated output circuit
Digital I/O
♦ 4 programmable direction digital I/O lines
♦ Edge detection capability with interrupt on change of state
Optocoupler Inputs
♦ 4 optocoupler inputs, 3-28VDC input range
♦ Configurable input polarity
♦ Edge detection capability with interrupt on change of state
Relay Outputs
♦ 8 SPDT (form C) relays
♦ 1A / 30VDC or 0.125A / 125VAC rating
Counter/Timers
♦ 1 24-bit counter/timer for A/D sampling rate control
♦ 1 16-bit counter/timer for user counting and timing functions
♦ Programmable clock source for user counter/timer
System Features
♦ +5V-only operation
♦ Latching I/O connectors
♦ Jumpers may be replaced with zero-ohm resistors for increased ruggedness
o
♦ Extended temperature operation (-40 to +85
C)
Diamond-MM-48-AT User Manual V1.01 Page 3
2. DIAMOND-MM-48-AT BOARD DRAWING
Feature descriptions
J1 PC/104 8-bit bus connector
J2 PC/104 16-bit bus connector
J3 Analog and digital I/O connector
J4 Relay and optocoupler I/O connector
J6 Configuration jumper block
J7 Factory use only (used in factory calibration process)
J10 +/-5 input range selection (bipolar model only)
Diamond-MM-48-AT User Manual V1.01 Page 4
3. I/O HEADER PINOUT AND PIN DESCRIPTION
Diamond-MM-48-AT provides two I/O headers. J3, located on the right side of the board, is a
40-pin header that includes the analog in, analog out, and logic-level digital I/O features. Pin
1 is the upper left pin and is marked on the board. J4, located on the left side of the baord, is
a 34-pin header with the relay and optocoupler features.
Vin 0-15 Analog input channels 0 to 15; all inputs are single-ended
Vout 0-7 Analog output channels 0 – 7
DIO 0-3 Digital I/O port, TTL / CMOS compatible; programmable direction
Extclk External A/D trigger input
Gate 0 Counter 0 gate input
Out 0 Counter 0 output
Clk 1 Counter 1 clock input
Gate 1 Counter 1 gate input
Out 1 Counter 1 output
+5V Connected to PC/104 bus power supply
A/D Gnd Analog ground for analog inputs
D/A Gnd Analog ground for analog outputs
Dgnd Digital ground
Note: all grounds are electrically connected. The different pins are
intended to reduce noise by separating the current paths on the
board.
Relay 0 C 13 14 Relay 1 NO
Relay 1 NC 15 16 Relay 1 C
Relay 2 NO 17 18 Relay 2 NC
Relay 2 C 19 20 Relay 3 NO
Relay 3 NC 21 22 Relay 3 C
Relay 4 NO 23 24 Relay 4 NC
Relay 4 C 25 26 Relay 5 NO
Relay 5 NC 27 28 Relay 5 C
Relay 6 NO 29 30 Relay 6 NC
Relay 6 C 31 32 Relay 7 NO
Relay 7 NC 33 34 Relay 7 C
Signal Name Definition
Relay output contacts:
Relay N C (N = 0 to 7) Relay output common contact; this contact is always
used with relay output connections.
Relay N NC Relay output normally connected contact; this contact is connected
to the Out N C contact when power is off or when a 0 is written to the
relay’s control bit in the relay control register, and it is disconnected
when power is on and a 1 is written to the relay’s control bit.
Relay N NO Relay output normally open contact; this contact is disconnected
when power is off or when a 0 is written to the relay’s control bit in
the relay control register, and it is connected to the Out N C contact
when power is on and a 1 is written to the relay’s control bit.
Optoisolated input contacts:
Opto N + (N = 0 to 3) Optoisolated input contact, high side
Opto N - Optoisolated input contact, low side; opto inputs are polarized
Diamond-MM-48-AT User Manual V1.01 Page 6
4. BOARD CONFIGURATION
Refer to the Drawing of Diamond-MM-48-AT on page 4 for locations of the configuration
items mentioned here. All configuration except the A/D input range is done with jumper block
J6.
4.1 Base Address
Each board in your system must have a unique I/O address range. The first address in this
range is called the base address. Diamond-MM-48-AT uses an I/O range of 16 bytes. The
base address of this range is set with a portion of jumper block J6, located along the lower
portion of the board near the PC/104 bus connectors. Each of the six jumper locations
marked 10, 9, 8, 7, 6, 5 corresponds to the same-numbered address bit in the board’s 10-bit
I/O address. Bits 4-0 are always 0 for the base address, resulting in a 16-byte I/O address
block located on a 32-byte boundary. A jumper out is equal to a 1, and a jumper in is equal to
a 0. Although any address is selectable, certain locations are reserved or may cause conflicts
with other system resources. The table below lists recommended base address settings for
Diamond-MM-48-AT. The default setting is 300 Hex.
Base Address Jumper Position
Hex Decimal 10 9 8 7 6 5
200 512 In Out In In In In
240 512 In Out In In Out In
280 512 In Out In Out In In
2C0 512 In Out In Out Out In
300 768 (Default) In Out Out In In In
340 832 In Out Out In Out In
380 896 In Out Out Out In In
3C0 960 In Out Out Out Out In
4.2 Interrupt Level Selection
In addition to the base address described above, J6 is used to configure hardware interrupt
activity. Interrupts are used for several functions. They can be used to transfer A/D data from
the board to memory at a rate higher than can be achieved through software sampling. In
addition, they can be used to indicate to the application software when a change of state has
occurred on the optocoupler or digital inputs.
During interrupt operation, the board will periodically generate an interrupt request, or IRQ.
The processor will respond and run a user-supplied interrupt routine function, or the function
supplied with the board’s driver software. The interrupt routine reads the data from the board
and makes it available to the user application program.
DMM-48-AT allows you to select from levels 15, 14, 12, 11, 10, 9, 7, 6, 5, 4, and 3. Only one
IRQ level may be used. To select the desired IRQ level install a jumper in that number’s
location in the Interrupt area of jumper block J6.
On the PC/104 bus each IRQ level in use must have a 1KΩ pull-down resistor attached. To
enable the pull-down resistor for this board, install a jumper in the R location on J6.
Typically each board in the computer will use a different interrupt level, or IRQ level. However
in special circumstances multiple boards may share the same IRQ level. In this case only one
Diamond-MM-48-AT User Manual V1.01 Page 7
board should have the pull-down resistor enabled with a jumper in the R location. The other
boards should have the R jumper removed to disable their pull-down resistors.
4.3 Optocoupler Polarity
The 4 optocouplers may be configured for either direct or inverted polarity with the POL
position on J6. For direct polarity, an open circuit / low voltage input reads back as a 0, and a
high voltage reads back as a 1. For inverted polarity, an open circuit / low voltage reads as 1,
and a high voltage reads as 0. For direct polarity, the POL jumper should be absent. For
inverted polarity, install a jumper in the POL location.
4.4 Reserved
The EWP position on J6 is reserved for a future option and currently has no function.
4.5 Analog Input Range
On the standard bipolar input range model, the input range can be selected with a jumper for
either +/-10V or +/-5V. For +/-10V operation, jumper block J10 should be open. For +/-5V
operation, install a jumper in J10.
On the unipolar input range model, the input range is fixed at 0-5V, and J10 does not serve
any purpose.
Diamond-MM-48-AT User Manual V1.01 Page 8
5. I/O MAP
5.1 Overview
Diamond-MM-48-AT occupies 16 bytes in I/O memory space. A functional list of these
registers is provided below, and detailed register bit definitions are provided on the next page
and the following chapter. The information in chapters 5 and 6 is provided to assist in
understanding the board’s operation and for use by programmers writing their own driver
software. Diamond Systems’ Universal Driver software provides high-level control of the
board’s functionality and will isolate these underlying hardware details for most programmers.
Base + Write Function Read Function
0 D/A LSB A/D LSB
1 D/A MSB A/D MSB
2 A/D channel register A/D channel register
3 Relay control register Relay control readback
4 Digital I/O configuration Digital I/O config + status readback
5 Digital I/O output data Digital I/O input and edge data
6 Optocoupler configuration Optocoupler configuration readback
7 D/A channel and update control Optocoupler input and edge data
8 Command register Status register
9 Configuration register Configuration register readback
10 FIFO control register FIFO status register
11 Interrupt control register Interrupt status register
Addresses 12-15 form a window into 2 4-byte pages. The page is selected with a bit in
register 10.
12 Page 0: Counter data LSB Page 1: Calibration Data
13 Page 0: Counter data CSB Page 1: Calibration Address
14 Page 0: Counter data MSB Page 1: Calibration Control/Status
15 Page 0: --- Page 1: FPGA revision code
Diamond-MM-48-AT User Manual V1.01 Page 10
6. REGISTER DEFINITIONS
Base + 0 Write D/A LSB
Bit No. 7 6 5 4 3 2 1 0
Name DA7 DA6 DA5 DA4 DA3 DA2 DA1 DA0
Definitions:
DA7-0 D/A bits 7-0; DA0 is the LSB. D/A data is an unsigned 12-bit number ranging
from 0 to 4095.
Base + 0 Read A/D LSB
Bit No. 7 6 5 4 3 2 1 0
Name AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0
Definitions:
AD7 – 0 A/D LSB data (bits 7-0 of the 16-bit value). A/D data is a signed 16-bit value
ranging from -32768 to 32767.
Base + 1 Write DAC 0 – 3 MSB
Bit No. 7 6 5 4 3 2 1 0
Name DA11 DA10 DA9 DA8
Definitions:
DA11 – 8 D/A data bits 11-8 for the selected channel. DA11 is the MSB.
Diamond-MM-48-AT User Manual V1.01 Page 11
Base + 1 Read A/D MSB
Bit No. 7 6 5 4 3 2 1 0
Name AD15 AD14 AD13 AD12 AD11 AD10 AD9 AD8
Definitions:
AD15 – 8 A/D MSB data (bits 15-8 of the 16-bit value). A/D data is a signed 16-bit value
ranging from -32768 to 32767.
Note: Reading from Base + 0 and Base + 1 result in the same physical operation, reading
from the FIFO. The FIFO is 8 bits wide x 2048 bytes deep, with A/D data stored and retrieved
in interleaved fashion. Data from the A/D is put into the FIFO in little-endian mode, with the
LSB inserted first, and the MSB inserted second. Thus the data comes out of the FIFO in the
same order. Each time a byte is read from either Base + 0 or Base + 1, the next byte will be
read from the FIFO and the FIFO counter will be decremented.
Because the FIFO decrements after each read operation, you cannot read out the same A/D
value more than once (unless the FIFO is empty, in which case the last byte may be read
indefinitely). It is the programmer’s responsibility to ensure that data is read out of the FIFO
properly so that appropriate LSB / MSB pairs are read out together.
Base + 2 Read/Write A/D Channel Register
Bit No. 7 6 5 4 3 2 1 0
Name HIGH3 HIGH2 HIGH1 HIGH0 LOW3 LOW2 LOW1 LOW0
Definitions:
HIGH3 – 0 High channel of channel scan range; ranges from LOW to 15
LOW3 – 0 Low channel of channel scan range; ranges from 0 to 15
The high channel must be greater than or equal to the low channel.
When this register is written, the current A/D channel is set to the low channel and ADBUSY
= 1 for 10 uS. A/D channels are automatically selected in sequence by the board. Each time
an A/D conversion starts, the board increments to the next channel in the range. When the
high channel is sampled, the board resets to the low channel.
Diamond-MM-48-AT User Manual V1.01 Page 12
Base + 3 Read/Write Relay Control Port
Bit No. 7 6 5 4 3 2 1 0
Name RELAY7 RELAY6 RELAY5 RELAY4 RELAY3 RELAY2 RELAY1 RELAY0
These bits control the 8 relays. 0 = off (C connected to NC), 1 = on (C connected to NO). The
written value may be read back with true logic. The value on the corresponding output pin is
the inverse of the value in this register.
On power-up or reset, the output register is cleared to all zeroes and all relays reset to their
off condition (C connected to NC) by resetting all RELAY pins to 1. Relays are in the off
condition when power is off and remain in that condition when power is applied until a 1 is
written to their corresponding control register bit.
Base + 4 Read/Write Digital I/O Configuration Register
Bit No. 7 6 5 4 3 2 1 0
Name DIR3 DIR2 DIR1 DIR0
Definitions:
DIR3-0 Digital I/O direction settings for each bit: 1 = output, 0 = input
All digital I/O lines are in input mode on power-up.
Diamond-MM-48-AT User Manual V1.01 Page 13
Base + 5 Write Digital I/O Data
Bit No. 7 6 5 4 3 2 1 0
Name DIO3 DIO2 DIO1 DIO0
Definitions:
DIO3 – 0 Digital I/O output data. Only bits in output mode are affected. Any bit in input
mode will ignore data written to this register.
Base + 5 Read Digital I/O Data and Edge Status
Bit No. 7 6 5 4 3 2 1 0
Name DEDGE3 DEDGE2 DEDGE1 DEDGE0DIO3 DIO2 DIO1 DIO0
Definitions:
DEDGE3 – 0 Edge status for DIO lines: 1 = change occurred since last read, 0 = no
change occurred
DIO3 – 0 Digital I/O readback. If a bit is in output mode, the readback value is equal to the
programmed value.
Base + 6 Read/Write Optocoupler Edge Detection Configuration Register
Bit No. 7 6 5 4 3 2 1 0
Name OEN3 OEN2 OEN1 OEN0 POL3 POL2 POL1 POL0
OEN3-0 Enable edge detection on the selected digital input line: 0 = disabled, 1 =
enabled
POL3-0 Select active edge polarity for selected digital input line: 0 = falling, 1 = rising
An interrupt request will occur when OINTE = 1 and a digital input line enabled with OENn
exhibits an edge whose polarity matches POLn (a qualifying edge). If an interrupt request
occurs, and an additional qualifying edge occurs before the digital interrupt flip flop is reset,
no additional interrupt request will be generated. It is possible for more than one line’s
qualifying edge to be detected in a single interrupt (for example if 3 lines exhibit qualifying
edges at the same time), but not more than one edge per line (for example if a second
qualifying edge on the same line occurs before the interrupt is serviced).
It is possible for a qualifying edge to occur in the time between when the interrupt routine
reads the digital input status register and when it resets the interrupt flip flop. In this case the
qualifying edge will be lost, since resetting the flip flop also resets the edge detection status
bits.
Diamond-MM-48-AT User Manual V1.01 Page 14
Loading...
+ 30 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.