MAXIM MAX1494EVKIT

19-3145; Rev 0; 1/04
MAX1494 Evaluation Kit/
Evaluation System
The MAX1494 evaluation system (EV system) consists
of a MAX1494 evaluation kit (EV kit) and a Maxim
68HC16MODULE-DIP microcontroller (µC) module. The
MAX1494 is a low-power, 4.5-digit, analog-to-digital
converter (ADC) with integrated liquid crystal display
(LCD) drivers. The evaluation software runs under
Windows® 95/98/2000/XP, providing a user interface to
exercise the features of the MAX1494.
Order the complete EV system (MAX1494EVC16) for a
comprehensive evaluation of the MAX1494 using a personal computer. Order the EV kit (MAX1494EVKIT) if
the 68HC16MODULE-DIP module has been purchased
with a previous Maxim EV system, or for custom use in
other µC-based systems.
This system can also evaluate the MAX1493CCJ and
MAX1495CCJ. Contact the factory for free samples of
these products. See the Detailed Description of
Hardware section.
MAX1494 EV Kit
The MAX1494 EV kit provides a proven PC board layout
to facilitate evaluation of the MAX1494. It must be interfaced to appropriate timing signals for proper operation.
Connect 6V to 26VDC and ground return to terminal
block TB1 (see Figure 7). Refer to the MAX1494 data
sheet for timing requirements.
Features
♦ Proven PC Board Layout
♦ Complete Evaluation System
♦ Convenient On-Board Test Points
♦ Data-Logging Software
♦ Fully Assembled and Tested
Ordering Information
PART
TEMP RANGE
MAX1494EVKIT
0°C to +70°C
User supplied
MAX1494EVC16
0°C to +70°C
Windows software
Note: The MAX1494 evaluation software is designed for use
with the complete evaluation system (MAX1494EVC16). The
MAX1494EVC16 includes the 68HC16MODULE-DIP module
together with the MAX1494EVKIT. If the MAX1494 evaluation
software will not be used, the MAX1494EVKIT board can be
purchased by itself, without the µC.
MAX1494EV16 System
Component List
MAX1494 EV System
The MAX1494 EV system operates from a user-supplied 7VDC to 20VDC power supply. The evaluation
software runs under Windows 95/98/2000/XP on a PC,
interfacing to the EV system board through the computer’s serial communications port. See the Quick Start
section for setup and operating instructions.
INTERFACE TYPE
PART
QTY
DESCRIPTION
MAX1494EVKIT
1
MAX1494 EV kit
68HC16MODULE-DIP
1
68HC16 µC module
MAX1494EVKIT Component List
DESIGNATION
QTY
C1, C2
2
C3–C6
4
C7, C8, C9
3
CLK
1
DESCRIPTION
10µF ±20%, 10V X7R ceramic
capacitors (1210)
TDK C3225X7R1C106M
0.47µF ±10%, 16V X7R ceramic
capacitors (0805)
TDK C2012X7R1C474K
0.1µF ±20%, 16V X7R ceramic
capacitors (0603)
TDK C1608X7R1C104K
BNC 50Ω PC board vertical mount
A/D ELECTRONICS 580-002-00
Windows is a registered trademark of Microsoft Corp.
DESIGNATION
QTY
FB1
1
J1
1
JU1
JU1–JU6
JU2–JU6
1
6
5
LCD1
1
DESCRIPTION
Ferrite bead (0805)
Murata BLM21AH102SN1
2 x 20 right angle socket,
SamTec SSW-120-02-S-D-RA
Methode Electronics RS2R-40-G
3-pin header
Shunts
2-pin headers
Triplexed liquid crystal display (LCD),
ICL7129 type
DCI Inc. 04-0925-00 or
Varitronix VIM-503-DP-FC-S-HV
________________________________________________________________ Maxim Integrated Products
For pricing, delivery, and ordering information, please contact Maxim/Dallas Direct! at
1-888-629-4642, or visit Maxim’s website at www.maxim-ic.com.
1
Evaluates: MAX1493/MAX1494/MAX1495
General Description
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
MAX1494EVKIT Component List
(continued)
DESIGNATION
LCD1 (2 rows)
R1
R2
R3–R7
TP1–TP4
U1
U2
U3, U4
U5
AIN+, AIN-,
REF+, REFNone
QTY
2
1
1
5
4
1
1
2
1
4
1
DESCRIPTION
15-pin socket strips
133kΩ ±1% resistor (1206)
100kΩ ±1% resistor (1206)
1kΩ ±5% resistors (1206)
8-pin headers
MAX1494CCJ (32-pin TQFP)
MAX1615EUK-T
MAX1840EUB or MAX1841EUB
MAX6062AEUR-T
Noninsulated banana jacks
Mouser 530-108-0740-1
MAX1494 EV kit PC board
Quick Start
Required Equipment
Before you begin, you will need the following equipment:
• MAX1494EVC16 (contains the MAX1494EVKIT
board and the 68HC16MODULE-DIP)
• DC power supply, +7VDC to +20VDC at 0.25A
• Windows 95/98/2000/XP computer with an available
serial (COM) port
• 9-pin I/O extension cable
Procedure
Do not turn on the power until all connections
are made.
1) Ensure that JU1 is in the 1-2 position and JU2–JU6
have shunts installed. See Table 2 (Jumper Settings).
2) Carefully connect the boards by aligning the 40-pin
header of the MAX1494 EV kit with the 40-pin connector of the 68HC16MODULE-DIP module. Gently
press them together. The two boards should be
flush against one another.
3) Connect a +7VDC to +20VDC power source to the
µC module at the terminal block located next to the
ON/OFF switch, along the top edge of the µC module. Observe the polarity marked on the board.
4) Connect a cable from the computer’s serial port to
the µC module. If using a 9-pin serial port, use a
straight-through, 9-pin female-to-male cable. If the
only available serial port uses a 25-pin connector, a
standard 25-pin to 9-pin adapter is required. The
EV kit software checks the modem status lines
(CTS, DSR, DCD) to confirm that the correct port
has been selected.
5) Install the evaluation software on your computer by
running the INSTALL.EXE program on the disk. The
program files are copied and icons are created for
them in the Windows Start Menu.
6) Turn on the power supply.
7) Start the MAX1494 program by opening its icon in
the Start Menu.
8) The program prompts you to connect the µC module and turn its power on. Slide SW1 to the ON position. Select the correct serial port, and click OK.
The program automatically downloads its software
to the module.
9) Apply an input signal in the -2V to +2V range
between AIN+ and AIN-. Observe the readout on
the screen.
10) To view a graph of the measurements, pull down
the View menu and click Graph.
Detailed Description of Software
Measurement
The Measurement tab of the evaluation software mimics
the behavior of a digital voltmeter (DVM). The status bits
are polled approximately once per second. Whenever
the Data status bit is one, the ADC result register is read
and displayed as Analog Input Code. The MAX1494
also displays the result on its own LCD.
The EV kit is not a complete DVM. Additional input scaling and protection circuitry may be required.
Whenever the Measurement tab is active, the software
offers to clear the spi/adc and seg_sel control bits to
zero if they are not already clear.
Math Processing
The evaluation software implements several math functions found in physical systems. Whenever the Math
tab is activated, the software offers to set the spi/adc
Component Suppliers
SUPPLIER
TDK
PHONE
FAX
847-803-6100
847-390-4405
WEBSITE
www.component.tdk.com
Note: Please indicate you are using the MAX1494 when contacting component suppliers
2
_______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
TOOL
FUNCTION
TOOL
FUNCTION
Show the entire available input range.
Show number of samples in tabular view.
Expand the graph data to fill the window.
Show sum of the samples in tabular view.
Move the view left or right.
Show sum of the squares of the samples in
tabular view.
Move the view up or down.
Expand or contract the x-axis.
Show arithmetic mean in tabular view:
Expand or contract the y-axis.
Mean =
∑( × )
Load data from a file.
n
Show standard deviation in tabular view:
Save data to a file.
Option to write a header line when saving data.
Option to write line numbers when saving data.
S tandard deviation =
View code vs. time plot.
View histogram plot (cumulative frequency of
each code).
View table.
2
( )
Show root of the mean of the squares (RMS) in
tabular view:
∑ ×2
RMS =
Show minimum in tabular view.


n∑ × -  ∑ ×
n 
n
n
1
( )n
2
( )
n
Channel 0 enable (ADC result)
Show maximum in tabular view.
Channel 1 enable (math result)
Show span in tabular view.
Span = maximum - minimum.
control bit to one if it is not already set. The software
also offers to clear the seg_sel control bit to zero if it is
not already clear.
The evaluation software intercepts the ADC result prior
to display, calculating a new LCD value whenever the
Measurement or Math tab is active and the spi/adc
control bit is set to one. Math results are graphed as
channel one data, alongside the raw ADC result as
channel zero data.
The Type K Thermocouple function can be used
along with a suitable cold junction connection to convert a type K thermocouple’s measured Seebeck voltage into temperature in degrees centigrade. The a0
coefficient 230 represents a cold junction temperature
of 23.0°C.
Control Register
The Control Register tab provides access to all control
register bits. Drop down the appropriate combo box
and then click Write.
Channel 2 enable (20-bit ADC result)
Limit Registers, ADC Offset, ADC Result,
LCD, Peak
The Results, Displays, Limits tab provides access to
the two’s complement data registers. Each register has
a Read button and a Write button, except for ADC
RESULT1, ADC RESULT2, and PEAK RESULT, which
are read-only.
Reading the ADC RESULT1 or ADC RESULT2 register
automatically updates the LCD, regardless of the
seg_sel control register setting.
Writing to the ADC OFFSET register affects ADC
RESULT1 and ADC RESULT2, regardless of the
offset_cal1 control register setting.
LCD Segment Registers
The LCD Segments tab lets the user turn individual
LCD segments on and off by clicking them with the
mouse.
Whenever the LCD Segments tab is activated, the software offers to set the seg_sel control bit to one if it is
not already set.
_______________________________________________________________________________________
3
Evaluates: MAX1493/MAX1494/MAX1495
Table 1. Graph Tool Buttons
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
Table 2. Jumper Functions
JUMPER
SHUNT POSITION
JU1
1-2*
DVDD = +5V.
JU1
2-3
DVDD = +3V.
JU2
Closed*
VDISP = GND.
JU2
Open
JU3
Closed*
JU3
Open
JU4
Closed*
JU4
Open
JU5
Closed*
JU5
Open
JU6
Closed*
JU6
Open
FUNCTION
Apply VDISP voltage at VDISP pad.
Banana jack AIN+ connects to AIN+ input pin.
Insert custom filtering between JU3 pins 1 and 2.
Banana jack AIN- connects to AIN- input pin.
Insert custom filtering between JU4 pins 1 and 2.
REF- = GND.
REF- must be provided by user.
REF+ = +2.048V from U5, MAX6062.
REF+ must be provided by user.
*Indicates default configuration
LCDs with only 12 segment lines (such as the VIM503) do
not support hold or peak annunciators, however, the
device and the kit do support hold or peak annunciators.
The Write LCD Text button translates a text string into
approximate 7-segment characters, and then writes the
character patterns to the LCD.
Graph
The evaluation software has two options for graphing
data. A graph of recent data can be displayed by
selecting the View menu and then Graph. Data can be
viewed as a time sequence plot, a histogram plot, or as
a table of raw numbers. To control the size and timing
of the data runs, activate the sampling tool by clicking
the main window’s Collect Samples button.
Sampled data can be saved to a file in comma-delimited or tab-delimited format. Line numbers and a
descriptive header line are optional.
Channel zero plots raw 16-bit ADC result data. Channel
one plots LCD data if math processing is enabled. If
extended resolution is enabled, channel two plots raw
20-bit ADC result data.
Diagnostics Window
The diagnostics window is used for factory testing prior
to shipping the EV kit. It is not intended for customer use.
Detailed Description of
Hardware
The MAX1494 device under test (U1) is a low-power,
4.5-digit ADC with integrated LCD drivers. The MAX6062
(U5) provides on-board +2.048V reference voltage. See
Figure 7, and refer to the MAX1494 data sheet.
4
Table 3. Stand-Alone Interface Pin
Functions
U1 PIN
MAX1494
FUNCTION
MAX1493/MAX1495
FUNCTION
7
EOC
RANGE
8
CS
DPSET1
DPSET2
9
DIN
10
SCLK
PEAK
11
DOUT
HOLD
28
VDISP
DPON
30
CLK
INTREF
The EV kit includes a MAX1615 +3V/+5V linear regulator (U2) and a set of MAX1840/MAX1841 level shifters
(U3 and U4) to support using the +3V MAX1494 with
the +5V µC.
Evaluating the MAX1493/MAX1495
The MAX1494EVKIT supports stand-alone operation of
the MAX1493/MAX1495. However, the evaluation software cannot be used because there is no microprocessor interface on these stand-alone devices.
The MAX1493 is the stand-alone version of the MAX1494.
The MAX1495 is similar to the MAX1493, but it has the
ability to enable offset calibration on demand. Refer to the
MAX1491/MAX1493/MAX1495 data sheet. Request a free
sample of MAX1493CCJ or MAX1495CCJ.
1) The MAX1494EVKIT must be disconnected from the
68HC16MODULE.
_______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
Troubleshooting
Problem: Peak detect mode does not work below
19,487 counts.
This is a limitation of the MAX1494. Refer to the
MAX1494 data sheet.
Problem: Startup delay
The MAX1494 requires approximately 2 seconds to initiate at power-up.
Figure 1. Main Window—MAX1494 Evaluation Software
_______________________________________________________________________________________
5
Evaluates: MAX1493/MAX1494/MAX1495
2) With power disconnected, replace U1 with the
MAX1493 or the MAX1495. After replacing U1 with
the MAX1493 or MAX1495, some of the pin functions
are different. See Table 3.
3) Ensure that jumper JU1 selects the +3V or +5V logic
level, as desired.
4) Connect DC power supply at terminal block TB1.
5) Turn on the power supply. The LCD should begin
indicating measurement data.
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
Figure 2. Math Tab—MAX1494 Evaluation Software
6
_______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
Evaluates: MAX1493/MAX1494/MAX1495
Figure 3. Control Register Tab—MAX1494 Evaluation Software
_______________________________________________________________________________________
7
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
Figure 4. Results, Display, Limits Tab—MAX1494 Evaluation Software
8
_______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
Evaluates: MAX1493/MAX1494/MAX1495
Figure 5. LCD Segments Tab—MAX1494 Evaluation Software
_______________________________________________________________________________________
9
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
Figure 6. Graph Window—MAX1494 Evaluation Software
10
______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
VDSP
Evaluates: MAX1493/MAX1494/MAX1495
BNC
CLK
1
JU2
2
V2P5
DVDD
BP1
BP2
BP3
TP4
C8
0.1µF
AVDD
2
C3
0.47µF
JU6
LOWBATT
EOC
CS
R1
133kΩ
1%
BP3
BP2
BP1
CLK
VDISP
SEG10
SEG9
5 REF+
SEG8
6
7
8
LOWBATT
SEG7
24
SEG13
23
SEG12
22
SEG11
21
SEG10
20
SEG9
19
SEG8
18
SEG7
EOC
SEG6
CS
R2
100kΩ
1%
SEG5
C6
0.47µF
+2.048V
U1
REF-
SEG4
REF+
BANANA
SEG11
AIN-
MAX1494
C5
0.47µF
REF+
25
SEG13
SEG3
REF-
4
26
SEG12
SEG2
BANANA
C4
0.47µF
REF-
27
28
SEG1
JU5
29
AIN+
DOUT
AIN-
30
AVDD
DIN
AIN-
3
31
VNEG
1
JU3
JU4
BANANA
GND
TP1
AIN+
BANANA
32
DVDD
C7
0.1µF
SCLK
GND
AIN+
C9
0.1µF
9
10
11
12
13
14
15
16
DIN
SCLK
DOUT
SEG1
SEG2
SEG3
SEG4
SEG5
17
SEG6
TP3
TP2
Figure 7a. MAX1494 EV Kit Schematic
______________________________________________________________________________________
11
12
BP3
BP2
BP1
SEG1
SEG2
SEG3
SEG4
SEG5
SEG6
SEG7
SEG8
SEG9
SEG10
SEG11
SEG12
25
6
21
20
19
18
17
16
11
12
13
14
15
22
10
9
8
23
26
5
DCI
04-0925-00
27
4
24
28
3
7
29
2
LCD1
30
1
SEG13
J1-31
J1-38
J1-37
J1-8
J1-7
J1-36
J1-4
J1-3
J1-2
J1-1
J1-6
J1-5
J1-24 NC J1-35
NC
J1-25
J1-27
NC
J1-26
J1-29
NC
J1-28
NC
NC J1-34
J1-30
NC J1-39 NC
J1-32
NC
NC
J1-40
J1-33
J1-9
NC
J1-10
NC
J1-11
NC
J1-12
NC
J1-13
NC
J1-14
NC
J1-15
NC
J1-16
NC
J1-17
NC
J1-18
NC
J1-19
NC
J1-20
NC
J1-21
NC
J1-22
NC
J1-23
NC
CONNECTOR
+5V
+12V
AVDD
C2
10µF
10V
FB1
+5V
+5V
3
Figure 7b. MAX1494 EV Kit Schematic (continued)
______________________________________________________________________________________
DATA
OUT
GND
IN
AVDD
I/O
VCC
CLK
RST
GND
SHDN
RIN
CIN
DVCC
+2.048V
10
9
8
7
6
5
4
3
2
1
C1
10µF
10V
DVDD
2
1
2
1
OUT
IN
5/3
(FB)
MAX6062
U5
MAX1840
U4
MAX1840
U3
MAX1615
U2
SHDN
4
5
I/O
GND
3
DATA
DVCC
CIN
RIN
SHDN
GND
RST
CLK
VCC
2
3
1
JU1
DVDD
1
2
3
4
5
6
7
8
9
10
R7
1kΩ
R6
1kΩ
R5
1kΩ
R4
1kΩ
R3
1kΩ
TB1-2
TB1-1
TB1
DVDD
DOUT
EOC
DVDD
GND
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
MAX1494 Evaluation Kit/
Evaluation System
Figure 9. MAX1494 EV Kit PC Board Layout—Component Side
Figure 10. MAX1494 EV Kit PC Board Layout—Solder Side
______________________________________________________________________________________
13
Evaluates: MAX1493/MAX1494/MAX1495
Figure 8. MAX1494 EV Kit Component Placement Guide—Top
Silkscreen
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
// Drv1494.h
// MAX1494-specific driver.
// mku 09/15/2003
// (C) 2003 Maxim Integrated Products
// For use with Borland C++ Builder 3.0
//--------------------------------------------------------------------------// Revision history:
// 09/15/2003: add double Voltage(void)
// 09/12/2003: add SPI_Transfer_After_EOC()
// 09/09/2003: add class MAX1494 dependent on external SPI_Interface()
// 08/13/2003: preliminary draft of reuseable code
//--------------------------------------------------------------------------#ifndef drv1494H
#define drv1494H
//--------------------------------------------------------------------------//--------------------------------------------------------------------------// The following interface protocols must be provided by
// the appropriate low-level interface code.
//
/* SPI interface:
**
byte_count = transfer length
**
mosi[] = array of master-out, slave-in data bytes
**
miso_buf[] = receive buffer for master-in, slave-out data bytes
*/
extern bool SPI_Transfer(int byte_count,
const unsigned __int8 mosi[], unsigned __int8 miso_buf[]);
/* SPI interface, with data transfer immediately after EOC is asserted:
**
byte_count = transfer length
**
mosi[] = array of master-out, slave-in data bytes
**
miso_buf[] = receive buffer for master-in, slave-out data bytes
*/
extern bool SPI_Transfer_After_EOC(int byte_count,
const unsigned __int8 mosi[], unsigned __int8 miso_buf[]);
//--------------------------------------------------------------------------// Define the bits in the COMMS register.
// START R/W RS4 RS3 RS2 RS1 RS0 0
#define MAX1494_COMMS_START
0x80
#define MAX1494_COMMS_RW_MASK
0x40
#define MAX1494_COMMS_RW_WRITE
0x00
#define MAX1494_COMMS_RW_READ
0x40
#define MAX1494_COMMS_RS_MASK
0x3E
#define MAX1494_COMMS_RS_00000
0x00
#define MAX1494_COMMS_RS_STATUS
0x00
#define MAX1494_COMMS_RS_00001
0x02
#define MAX1494_COMMS_RS_CONTROL
0x02
#define MAX1494_COMMS_RS_00010
0x04
#define MAX1494_COMMS_RS_OVERRANGE
0x04
#define MAX1494_COMMS_RS_00011
0x06
#define MAX1494_COMMS_RS_UNDERRANGE
0x06
#define MAX1494_COMMS_RS_00100
0x08
#define MAX1494_COMMS_RS_LCD_SEG_1
0x08
#define MAX1494_COMMS_RS_00101
0x0A
#define MAX1494_COMMS_RS_LCD_SEG_2
0x0A
#define MAX1494_COMMS_RS_00110
0x0C
#define MAX1494_COMMS_RS_LCD_SEG_3
0x0C
#define MAX1494_COMMS_RS_00111
0x0E
#define MAX1494_COMMS_RS_ADC_OFFSET
0x0E
#define MAX1494_COMMS_RS_01000
0x10
#define MAX1494_COMMS_RS_ADC_RESULT1
0x10
#define MAX1494_COMMS_RS_01001
0x12
#define MAX1494_COMMS_RS_LCD_DATA
0x12
Figure 11. Listing 1 (Sheet 1 of 4)
14
______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
MAX1494_COMMS_RS_01010
MAX1494_COMMS_RS_PEAK
MAX1494_COMMS_RS_10100
MAX1494_COMMS_RS_ADC_RESULT2
Evaluates: MAX1493/MAX1494/MAX1495
#define
#define
#define
#define
0x14
0x14
0x28
0x28
//--------------------------------------------------------------------------// Define the bits in the STATUS register.
// POL OVR_RNG UNDR_RNG LOW_BATT ADD(data available) 0 0 0
#define MAX1494_STATUS_POL_MASK
0x80
#define MAX1494_STATUS_POL_POSITIVE
0x00
#define MAX1494_STATUS_POL_NEGATIVE
0x80
#define MAX1494_STATUS_OVER_RANGE
0x40
#define MAX1494_STATUS_UNDER_RANGE
0x20
#define MAX1494_STATUS_LOW_BATTERY
0x10
#define MAX1494_STATUS_DATA_READY
0x08
//--------------------------------------------------------------------------// Define the bits in the CONTROL register.
// SPI_ADC EXTCLK INTREF DP_EN DPSET2 DPSET1 PD_DIG
PD_ANA
// HOLD
PEAK RANGE CLR LCD OFFSET_CAL1 OFFSET_CAL2 0
#define MAX1494_CONTROL_SPI_ADC
0x8000
#define MAX1494_CONTROL_EXTCLK
0x4000
#define MAX1494_CONTROL_INTREF
0x2000
#define MAX1494_CONTROL_DPMASK
0x1C00
#define MAX1494_CONTROL_DP_EN
0x1000
#define MAX1494_CONTROL_DPSET2
0x0800
#define MAX1494_CONTROL_DPSET1
0x0400
// (DPSET2 is the LSB and DPSET1 is the MSB)
#define MAX1494_CONTROL_DP1ON
0x1000 /* -1888.8 */
#define MAX1494_CONTROL_DP2ON
0x1800 /* -188.88 */
#define MAX1494_CONTROL_DP3ON
0x1400 /* -18.888 */
#define MAX1494_CONTROL_DP4ON
0x1C00 /* -1.8888 */
#define MAX1494_CONTROL_PD_DIG
0x0200
#define MAX1494_CONTORL_PD_ANA
0x0100
#define MAX1494_CONTROL_PD_ALL
0x0300
#define MAX1494_CONTROL_HOLD
0x0080
#define MAX1494_CONTROL_PEAK
0x0040
#define MAX1494_CONTROL_RANGE_200mV
0x0020
#define MAX1494_CONTROL_CLR
0x0010
#define MAX1494_CONTROL_SEG_SEL
0x0008
#define MAX1494_CONTROL_OFFSET_CAL1
0x0004
#define MAX1494_CONTROL_OFFSET_CAL2
0x0002
//--------------------------------------------------------------------------// Define the bits in the LCD SEGMENT 1 register.
// A2 G2 D2 F2 E2 DP2 ANNUNCIATOR B1
// C1 A1 G1 D1 F1 E1 DP1 0
//
#define MAX1494_LCD_SEG1_A2
0x8000
#define MAX1494_LCD_SEG1_G2
0x4000
#define MAX1494_LCD_SEG1_D2
0x2000
#define MAX1494_LCD_SEG1_F2
0x1000
#define MAX1494_LCD_SEG1_E2
0x0800
#define MAX1494_LCD_SEG1_DP2
0x0400
#define MAX1494_LCD_SEG1_ANNUNCIATOR
0x0200
#define MAX1494_LCD_SEG1_B1
0x0100
#define MAX1494_LCD_SEG1_C1
0x0080
#define MAX1494_LCD_SEG1_A1
0x0040
#define MAX1494_LCD_SEG1_G1
0x0020
#define MAX1494_LCD_SEG1_D1
0x0010
#define MAX1494_LCD_SEG1_F1
0x0008
#define MAX1494_LCD_SEG1_E1
0x0004
#define MAX1494_LCD_SEG1_DP1
0x0002
//--------------------------------------------------------------------------// Define the bits in the LCD SEGMENT 2 register.
// F4 E4 DP4 MINUS B3 C3 A3 G3
// D3 F3 E3 DP3 LOWBATT B2 C2 0
Figure 11. Listing 1 (Sheet 2 of 4)
______________________________________________________________________________________
15
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
//
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
MAX1494_LCD_SEG2_F4
MAX1494_LCD_SEG2_E4
MAX1494_LCD_SEG2_DP4
MAX1494_LCD_SEG2_MINUS
MAX1494_LCD_SEG2_B3
MAX1494_LCD_SEG2_C3
MAX1494_LCD_SEG2_A3
MAX1494_LCD_SEG2_G3
MAX1494_LCD_SEG2_D3
MAX1494_LCD_SEG2_F3
MAX1494_LCD_SEG2_E3
MAX1494_LCD_SEG2_DP3
MAX1494_LCD_SEG2_LOWBATT
MAX1494_LCD_SEG2_B2
MAX1494_LCD_SEG2_C2
0x8000
0x4000
0x2000
0x1000
0x0800
0x0400
0x0200
0x0100
0x0080
0x0040
0x0020
0x0010
0x0008
0x0004
0x0002
//--------------------------------------------------------------------------// Define the bits in the LCD SEGMENT 3 register.
// ?PEAK? ?HOLD? BC5 B4 C4 A4 G4 D4
//
#define MAX1494_LCD_SEG3_PEAK
0x80
#define MAX1494_LCD_SEG3_HOLD
0x40
#define MAX1494_LCD_SEG3_BC5
0x20
#define MAX1494_LCD_SEG3_B4
0x10
#define MAX1494_LCD_SEG3_C4
0x08
#define MAX1494_LCD_SEG3_A4
0x04
#define MAX1494_LCD_SEG3_G4
0x02
#define MAX1494_LCD_SEG3_D4
0x01
//--------------------------------------------------------------------------class MAX1494
{
public:
MAX1494(void);
// Enumerated type describing the register select bits.
enum RegisterSelect_t {
RS_STATUS
= MAX1494_COMMS_RS_STATUS,
RS_CONTROL
= MAX1494_COMMS_RS_CONTROL,
RS_OVERRANGE
= MAX1494_COMMS_RS_OVERRANGE,
RS_UNDERRANGE
= MAX1494_COMMS_RS_UNDERRANGE,
RS_LCD_SEG_1
= MAX1494_COMMS_RS_LCD_SEG_1,
RS_LCD_SEG_2
= MAX1494_COMMS_RS_LCD_SEG_2,
RS_LCD_SEG_3
= MAX1494_COMMS_RS_LCD_SEG_3,
RS_ADC_OFFSET
= MAX1494_COMMS_RS_ADC_OFFSET,
RS_ADC_RESULT1 = MAX1494_COMMS_RS_ADC_RESULT1,
RS_LCD_DATA
= MAX1494_COMMS_RS_LCD_DATA,
RS_PEAK
= MAX1494_COMMS_RS_PEAK,
RS_ADC_RESULT2 = MAX1494_COMMS_RS_ADC_RESULT2
};
// Reference voltage
//
double vref;
//---------------------------------------// Status Register
// POL OVR_RNG UNDR_RNG LOW_BATT ADD(data available) 0 0 0
int STATUS_REG;
//
bool Read_STATUS(void);
//---------------------------------------// Control Register
// SPI_ADC EXTCLK INTREF DP_EN DPSET2 DPSET1 PD_DIG
PD_ANA
// HOLD
PEAK RANGE CLR LCD OFFSET_CAL1 OFFSET_CAL2 0
int CONTROL_REG;
Figure 11. Listing 1 (Sheet 3 of 4)
16
______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
Evaluates: MAX1493/MAX1494/MAX1495
//
bool Write_CONTROL(int data);
bool Read_CONTROL(void);
//---------------------------------------// Data Registers
int ADC_RESULT1;
unsigned int ADC_RESULT2;
//
bool Read_ADC_RESULT1(void);
bool Read_ADC_RESULT2(void);
long int DATA_REG; // 16-bit or 24-bit result from A/D converter
bool extended_resolution;
long Read_DATA(void);
double Voltage(void);
//---------------------------------------// Other registers, having 16-bit 2's complement data format
bool Write_2s_complement(int reg, int data);
int Read_2s_complement(int reg);
//---------------------------------------// Other registers, having 8 bit data format
bool Write_8bit_reg(int reg, int data);
int Read_8bit_reg(int reg);
};
//--------------------------------------------------------------------------#endif
Figure 11. Listing 1 (Sheet 4 of 4)
______________________________________________________________________________________
17
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
// Drv1494.cpp
// MAX1494-specific driver.
// mku 09/15/2003
// (C) 2003 Maxim Integrated Products
// For use with Borland C++ Builder 3.0
//--------------------------------------------------------------------------// Revision history:
// 09/15/2003: add double Voltage(void)
// 09/09/2003: add class MAX1494 dependent on external SPI_Interface()
// 08/13/2003: preliminary draft of reuseable code
#include "drv1494.h"
//--------------------------------------------------------------------------MAX1494::MAX1494(void)
{
vref = 2.048;
extended_resolution = false;
}
//--------------------------------------------------------------------------bool MAX1494::Read_STATUS(void)
{
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START |
MAX1494_COMMS_RW_READ | MAX1494_COMMS_RS_STATUS),
(unsigned __int8)(0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer(sizeof(mosi), mosi, miso_buf);
if (result) {
int data = miso_buf[1];
STATUS_REG = data;
// remember the value we just received
}
return result;
}
//--------------------------------------------------------------------------bool MAX1494::Write_CONTROL(int data)
{
data = data & 0xFFFF;
// validate the data
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START |
MAX1494_COMMS_RW_WRITE | MAX1494_COMMS_RS_CONTROL),
(unsigned __int8)( (data >> 8) & 0xFF),
(unsigned __int8)( data & 0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer(sizeof(mosi), mosi, miso_buf);
CONTROL_REG = data;
// remember the value we just wrote
// The CLR bit is self-clearing, and should not be kept high.
CONTROL_REG &=~ MAX1494_CONTROL_CLR;
return result;
}
//--------------------------------------------------------------------------bool MAX1494::Read_CONTROL(void)
{
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START |
MAX1494_COMMS_RW_READ | MAX1494_COMMS_RS_CONTROL),
(unsigned __int8)(0xFF),
(unsigned __int8)(0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer(sizeof(mosi), mosi, miso_buf);
if (result) {
int data = miso_buf[1] * 0x100 + miso_buf[2];
CONTROL_REG = data;
// remember the value we just wrote
}
Figure 12. Listing 2 (Sheet 1 of 4)
18
______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
Evaluates: MAX1493/MAX1494/MAX1495
return result;
}
//--------------------------------------------------------------------------bool MAX1494::Read_ADC_RESULT1(void)
{
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START |
MAX1494_COMMS_RW_READ | MAX1494_COMMS_RS_ADC_RESULT1),
(unsigned __int8)(0xFF),
(unsigned __int8)(0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer_After_EOC(sizeof(mosi), mosi, miso_buf);
if (result) {
ADC_RESULT1 = (miso_buf[1] * 0x100L) + miso_buf[2];
long data = (miso_buf[1] * 0x100L) + miso_buf[2];
if (data >= 32768) {
data -= 65536;
}
DATA_REG = data;
// remember the value we just received
}
return result;
}
//--------------------------------------------------------------------------bool MAX1494::Read_ADC_RESULT2(void)
{
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START |
MAX1494_COMMS_RW_READ | MAX1494_COMMS_RS_ADC_RESULT2),
(unsigned __int8)(0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer(sizeof(mosi), mosi, miso_buf);
if (result) {
ADC_RESULT2 = miso_buf[1];
long data_24 = ((long)ADC_RESULT1 * 0x100L) + ADC_RESULT2;
DATA_REG = data_24;
}
return result;
}
//--------------------------------------------------------------------------long MAX1494::Read_DATA(void)
{
// Read the DATA register
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START |
MAX1494_COMMS_RW_READ | MAX1494_COMMS_RS_ADC_RESULT1),
(unsigned __int8)(0xFF),
(unsigned __int8)(0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
if (SPI_Transfer_After_EOC(sizeof(mosi), mosi, miso_buf) == false) {
return 0; // failure
}
ADC_RESULT1 = (miso_buf[1] * 0x100L) + miso_buf[2];
long data = (miso_buf[1] * 0x100L) + miso_buf[2];
if (data >= 32768) {
data -= 65536;
}
DATA_REG = data;
// remember the value we just received
if (extended_resolution) {
// Read the ADC_RESULT2 register
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START |
MAX1494_COMMS_RW_READ | MAX1494_COMMS_RS_ADC_RESULT2),
(unsigned __int8)(0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
if (SPI_Transfer(sizeof(mosi), mosi, miso_buf) == false) {
return 0; // failure
Figure 12. Listing 2 (Sheet 2 of 4)
______________________________________________________________________________________
19
Evaluates: MAX1493/MAX1494/MAX1495
MAX1494 Evaluation Kit/
Evaluation System
}
ADC_RESULT2 = miso_buf[1];
long data_24 = ((long)ADC_RESULT1 * 0x100L) + ADC_RESULT2;
double data_16 = data_24 / 256.0;
if (data_16 >= 32768) {
data_16 = data_16 - 65536;
}
DATA_REG = data_24;
}
return DATA_REG;
}
//--------------------------------------------------------------------------double MAX1494::Voltage(void)
{
if ((CONTROL_REG & MAX1494_CONTROL_RANGE_200mV) == 0) {
// Input range 2V
return DATA_REG * (vref / 2.048) * 10e-6 * 10;
} else {
// Input range 200mV
return DATA_REG * (vref / 2.048) * 10e-6;
}
}
//--------------------------------------------------------------------------bool MAX1494::Write_2s_complement(int reg, int data)
{
// Write one of the 2's complement registers
reg = (reg & MAX1494_COMMS_RS_MASK);
data = data & 0xFFFF;
// validate the data
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START | MAX1494_COMMS_RW_WRITE | reg),
(unsigned __int8)((data >> 8) & 0xFF),
(unsigned __int8)(data & 0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer(sizeof(mosi), mosi, miso_buf);
return result;
}
//--------------------------------------------------------------------------int MAX1494::Read_2s_complement(int reg)
{
// Read one of the 2's complement registers
reg = (reg & MAX1494_COMMS_RS_MASK);
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START | MAX1494_COMMS_RW_READ | reg),
(unsigned __int8)(0xFF),
(unsigned __int8)(0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer(sizeof(mosi), mosi, miso_buf);
if (result == false) {
return 0; // failure
}
int data = miso_buf[1] * 0x100 + miso_buf[2];
if (data >= 32768) {
data -= 65536;
}
if (data >= 32768) {
data -= 65536;
}
return data;
}
//--------------------------------------------------------------------------bool MAX1494::Write_8bit_reg(int reg, int data)
{
// Write one of the 8 bit registers
reg = (reg & MAX1494_COMMS_RS_MASK);
const unsigned __int8 mosi[] = {
Figure 12. Listing 2 (Sheet 3 of 4)
20
______________________________________________________________________________________
MAX1494 Evaluation Kit/
Evaluation System
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer(sizeof(mosi), mosi, miso_buf);
return result;
}
//--------------------------------------------------------------------------int MAX1494::Read_8bit_reg(int reg)
{
// Read one of the 8 bit registers
reg = (reg & MAX1494_COMMS_RS_MASK);
const unsigned __int8 mosi[] = {
(unsigned __int8)(MAX1494_COMMS_START | MAX1494_COMMS_RW_READ | reg),
(unsigned __int8)(0xFF)
};
unsigned __int8 miso_buf[sizeof(mosi)];
bool result = SPI_Transfer(sizeof(mosi), mosi, miso_buf);
if (result == false) {
return 0; // failure
}
int data = miso_buf[1];
return data;
}
//---------------------------------------------------------------------------
Figure 12. Listing 2 (Sheet 4 of 4)
Maxim cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim product. No circuit patent licenses are
implied. Maxim reserves the right to change the circuitry and specifications without notice at any time.
Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 ____________________ 21
© 2004 Maxim Integrated Products
Printed USA
is a registered trademark of Maxim Integrated Products.
Evaluates: MAX1493/MAX1494/MAX1495
(unsigned __int8)(MAX1494_COMMS_START | MAX1494_COMMS_RW_WRITE | reg),
(unsigned __int8)(data & 0xFF)