MLX90314
Programmable Sensor Interface
Features and Benefits
s s s s s s
Microprocessor-controlled signal conditioning for bridge-type sensors Suited for low-cost sensors: reduction of non-linearity by programmable coefficients External or internal temperature sensor for compensating temperature errors Versatile output signal ranges: 4, 5, 10, or 11VDC; 4 to 20 mA loop Mass calibration easy with 2400 or 9600 baud UART Power supply from 6 to 35VDC
Applications
s s s s
Pressure transducers Accelerometers Temperature sensor assemblies Linear position sensors
Ordering Information
Part No. MLX90314 MLX90314 Temperature Suffix L ( -40C to 150C ) L ( -40C to 150C ) Package DF (SOIC16w) UF (die on foil)
Description
The MLX90314 is a dedicated microcontroller which performs signal conditioning for sensors wired in bridge or differential configurations. Sensors that can be used include thermistors, strain gauges, load cells, pressure sensors, accelerometers, etc. The signal conditioning includes gain adjustment, offset control, high order temperature and linearity compensation. Compensation values are stored in EEPROM and are reprogrammable. Programming is accomplished by using a PC, with an interface circuit (level shifting and glue logic), and provided software. The application circuits can provide an output of an absolute voltage, relative voltage, or current. The output can be range limited with defined outputs when the signal is beyond the programmed limits. Other features include alarm outputs and level steering. The robust electrical design allows the MLX90314 to be used where most signal conditioning and sensor interface circuits cannot be used. Voltage regulation control is provided for absolute voltage and current modes (external FET required). The standard package is a plastic SO16W. The device is static-sensitive and requires ESD precautions.
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Page 1 Page 1
Nov/04
Rev 007
MLX90314
Programmable Sensor Interface
Figure 1. Functional Block Diagram
3901090314 Rev 007
Page 2
Nov/04
MLX90314
Programmable Sensor Interface
Table 1. MLX90314 Electrical Specifications
DC operating parameters: TA = -40 to 140oC, VDD1 = 6 to 35VDC (unless otherwise specified).
Parameter
Symbol
Test Conditions
Min
Typ
Max
Units
Regulator & Consumption
Input voltage range
VIN
VDD1 (Regulator connected)
6
35
V
Supply current
IDD
@ TA = 100ºC Current Mode
2.1
mA
Supply current
IDD
@ TA = 100ºC Voltage Mode
5.0
mA
Regulated supply voltage
VREG
4.5
4.75
5.2
V
Regulated voltage temperature coefficient Supply rejection ratio
-600
uV / ºC
PSRR
VDD1 > 6V
90
dB
Instrumentation Amplifier
Differential input range
VBP-VBN
IINV = 0
-2.88
8.38
mV/V(Vdd)
Differential input range
VBP-VBN
IINV = 1
-8.38
2.88
mV/V(Vdd)
Common mode input range
1/2(VBP+VBN)
38.0
65.0
%VDD
Pin leakage current
Pins VBP & VBN to GND, VDD =
8.0
nA
Common mode rejection Ratio CMRR
60
dB
Hardware gain
69
84
V/V
Coarse offset control Range
CSOF[1:0] = 00
-4.37
-3.97
mV/V
CSOF[1:0] = 01
-1.46
-1.09
mV/V
CSOF[1:0] = 10
1.09
1.46
mV/V
CSOF[1:0] = 11
3.97
4.37
mV/V
Fixed offset control range
High
1.71
2.29
mV/V
Low
-2.00
-1.43
mV/V
IA chopper frequency
300
kHz
Gain Stage
Course gain
CSGN = 000
3.0
3.3
V/V
(Fixed Gain = 1023)
CSGN = 001
4.9
5.4
V/V
CSGN = 010
8.0
8.8
V/V
* CSGN = 100 to 111: voltage mode only, not applicable to current mode. Output > 6.5V; MSB = 1 Output < 6.5V; MSB = 0
CSGN = 011
12.8
14.1
V/V
CSGN = 100*
7.9
8.7
V/V
CSGN = 101*
Page 3 Page 3
12.7
14.0
V/V
Nov/04
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Rev 007
MLX90314
Programmable Sensor Interface
Table 1. MLX90314 Electrical Specifications (continued)
Parameter Coarse gain
DC operating parameters: TA = -40 to 140oC, VDD1 = 6 to 35VDC (unless otherwise specified).
Test Conditions CSGN = 110*
Min 20.4
Typ
Max 23.0
Units V/V
CSGN = 111*
33.1
36.6
V/V
Fixed gain control range
0.480
0.970
V/V
Digital Mode & Current Mode Coarse Gain Stage CSGN = 00 Course Gain
1.05
1.17
V/V
CSGN = 01
1.71
1.89
V/V
CSGN = 10
2.77
3.06
V/V
CSGN = 11
4.48
4.95
V/V
Voltage Mode Output Stage ( See Voltage Mode)
Output voltage span
CSGN[2:2] = 0
4.5
6.5
V
Gain
2.74
3.04
V/V
CSGN[2:2] = 1
6.5
11
V
V/V
V
mA
uA
Gain
Minimum output voltage
Output source current
Output sink current
Output resistance
Digital mode output span
Digital mode step size
Capacitive load VMO pin
Current Mode Output Stage Fixed gain
Output current CMO pin
Current sense resistor
Digital mode current output span
Digital mode current step Size
Signal Path ( General) Overall gain
Overall non-linearity
Ratiometry Error (4.75V – 5.25V)
3901090314 Rev 007
7.24
2.0
7.86
-0.2
@ 0V output voltage
Over complete output range
CSGN[2:2] = 0
CSGN[2:2] = 1
VDD = 5V, CSGN[2:2]=0
VDD = 5V, CSGN[2:2]=1
20
25
6.5
11.0
6.5
11.0
10
Ohms
V
V
mV
mV
nF
RSENSE = 24 ohm
Current mode
VDD = 5V
VDD = 5V,RSENSE=24
Voltage mode
Current mode = 24
Overall Gain < 250V/V
Overall Gain > 250V/V
Page 4
8.4
27
24
23
30
98
284
-0.25
-1.75
-4.6
9.3
mA/V
mA
Ohms
mA
uA
2100
2625
0.25
1.75
+4.6
V/V
mA/V
%
%
%
Nov/04
MLX90314
Programmable Sensor Interface
Table 1. MLX90314 Electrical Specifications (continued)
Test Conditions Parameter 39 nF connected from FLT to GND Bandwidth (-3dB) Noise, VDD = 5V, CFLT=39nF, CL=10nF, RL =5K , Analog Mode (Max. gain)
DC operating parameters: TA = -40 to 140oC, VDD1 = 6 to 35VDC (unless otherwise specified).
Min 2.8
Typ 3.5
Max 4.2
Units KHz
17
mVRMS
Temperature Sensor & - Amplifier
Temperature sensor sensitivity
390
uV/ºC
Temperature sensor output voltage
70
380
mV
Temperature Sensor & Amplifier (continued).
Input voltage range TMP pin
GNTP[1,0] = 00
207
517
mV
@ VDD = 5.0V
GNTP[1,0] = 01
145
367
mV
GNTP[1,0] = 10
101
263
mV
GNTP[1,0] = 11
71
186
mV
DAC
Resolution
10
Bit
Monotonicity
Guaranteed By Design
Ratiometric output range (DAC output)
1
75
% VDD
Offset Error
10
LSB
Differential non-linearly
1
LSB
Integral non-linearity
2
LSB
ADC
Resolution
10
Bit
Monotonicity
Guaranteed by design
Ratiometric input range
1
75
% VDD
Offset error
10
LSB
Differential non-linearly
1
LSB
Integral non-linearity
2
LSB
On-Chip RC Oscillator and Clock
Untrimmed RC oscillator frequency Trimmed RC oscillator frequency (Measured at TMP pin with TSTB pin pulled low after power up) Frequency temperature coefficiency
40
250
kHz
86.9
87.8
88.7
kHz
26
Hz/ºC
Clock Stability with temperature compensation over full temperature range
-3
+3
%
Ratio of f (microcontroller main clock and (RC oscillator)
TURBO = 0
7
TURBO = 1
Page 5 Page 5
28
Nov/04
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Rev 007
MLX90314
Programmable Sensor Interface
Table 1. MLX90314 Electrical Specifications (continued)
Parameter Input & Output Pins (I01 & I02)
DC operating parameters: TA = -40 to 140oC, VDD1 = 6 to 35VDC (unless otherwise specified).
Test Conditions
Min
Typ
Max
Units
Digital input levels
Low High
0.5
V
VDD-0.5
Output Levels
@ output current = 5mA low
VDD-0.4
0.4
V
@ Output current = 5mA high
VDD
TSTB Pin
Input levels
Low
0.5
V
High
VDD-0.5
Pull-up Resistor
66
kOhms
FLT Pin
Output resistance
1.24
kOhms
Output voltage range
VDD = 5V
0.05
3.6
V
OFC Pin
Output voltage range
VDD = 5V
0.05
3.75
V
Load capacitor
20
pf
UART & COMS Pin
UART baud rate
TURBO = 0
2400
baud
TURBO = 1
9600
baud
COMS pin input levels
Low
0.3*VDD
V
High
0.7*VDD V
COMS Pin Output Resistance
Low
100
Ohms
High
100
kOhms
3901090314 Rev 007
Page 6
Nov/04
MLX90314
Programmable Sensor Interface
Unique Features
Customization
Melexis can customize the MLX90314 in both hardware and firmware for unique requirements. The hardware design provides 64 bytes of RAM, 3 kbytes of ROM, and 48 bytes of EEPROM for use by the firmware.
Table 2. Absolute Maximum Ratings
Supply voltage (ratiometric) VDD Max
6V
Supply voltage (ratiometric) VDD Min
4.5V
Supply voltage (operating), VDD1 Max
35V
Special Information
The output of the sensor bridge is amplified via offset and gain amplifiers and then converted to the correct output signal form in one of the output stages. The sensitivity and offset of the analog signal chain are defined by numbers passed to the DAC interfaces from the microcontroller core (GN[9:0] and OF[9:0]). The wide range of bridge offset and gain is accommodated by means of a 2-bit coarse adjustment DAC in the offset adjustment (CSOF[1:0]), and a similar one in the gain adjustment (CSGN[2:0]). The signal path can be directed through the processor for digital processing. Two I/O pins are available for analog inputs or digital outputs. These pins can be used for alarms on various points on the analog signal path and built-in or external temperature values.
Reverse voltage protection
-0.7V
Supply current, Current Mode, IDD
3.5mA
Supply current, Voltage Mode, IDD
4.5mA
Output current, IVMO
8mA
Output current (short to VDD), ISCVMO
100mA
Output current (short to VSS), ISCVMO
8mA
Output voltage, VVMO
+11V
Power dissipation, PD
71mW
-40 to +140°
Operating temperature range, TA
Storage temperature range, TS
-55 to +150°
Maximum junction temperature, TJ
150°C
Programming and Setup
The MLX90314 needs to have the compensation coefficients programmed for a particular bridge sensor to create the sensor system. Programming the EEPROM involves some minimal communications interface circuitry, Melexis’ setup software, and a PC. The communications interface circuitry is available in a development board. This circuitry communicates with the PC via a standard RS232 serial communications port.
Cross Reference
There are no known devices which the MLX 90314 can replace.
ESD Precautions
Observe standard ESD control procedures for CMOS semiconductors.
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Page 7 Page 7
Nov/04
Rev 007
MLX90314
Programmable Sensor Interface
Table 3. Pin Description
Pin
1,2
Signal Name I/O1, 2
Description
3
TSTB
4
FLT
Bi-directional I/O. Can also be used as input to A/D converter. I/O can be controlled by serial communications or by firmware as alarm inputs or level out. (unconnected when not used) Test pin for Melexis production testing. (in normal application connected to VDD) Filter pin; allows for connection of a capacitor to the internal analog path.
5
OFC
6,7
VBN,VBP
Offset control output. Provides access to the internal programmed offset control voltage for use with external circuitry. (unconnected when not used) Bridge inputs, negative and positive.
8
TMP
9
VDD
10
FET
11
VDD1
12
VMO
Temperature sensor input. An external temperature sensor can be used in conjunction with the internal one. The external sensor can provide a temperature reading at the location of the bridge sensor. Regulated supply voltage. Used for internal analog circuitry to ensure accurate and stable signal manipulation. Regulator FET gate control. For generating a stable supply for the bridge sensor and internal analog circuitry (generates regulated voltage for VDD). Unregulated supply voltage. Used for digital circuitry and to generate FET output. Voltage mode output. Compensated sensor output voltage.
13
CMO
Current mode output. Compensated sensor output for current mode operation.
14
CMN
Current mode negative rail. Current mode return path.
15
GND
Power supply return.
16
COMS
Serial communications pin. Bi-directional serial communication signal for reading and writing to the EEPROM.
1
IO1 IO2
COMS
16
2
GND
15
3
TSTB
CMN
14
4
FLT
CMO
13
5
OFC
VMO
12
6
VBN
VDD1
11
7
VBP
FET
10
8
TMP
VDD
9
Figure 2. Pinout (SO16W (LW) Package)
3901090314 Rev 007 Page 8 Nov/04
MLX90314
Programmable Sensor Interface
Analog Features
Power-On Reset
The Power-On Reset (POR) initializes the state of the digital part after power up. The reset circuitry is Supply Regulator completely internal. The chip is completely reset and A bandgap-stabilized supply-regulator is on-chip while fully operational 3.5 ms from the time the supply crosses the pass-transistor is external. The bridge-type sensor 3.5 volts. The POR circuitry will issue another POR if is typically powered by the regulated supply (typically the supply voltage goes below this threshold for 1.0 us. 4.75V). For ratiometric operation, the supply-regulator can be disabled by connecting together the Test Mode unregulated and regulated supply pins. For 100% testability, a "TEST" pin is provided. If the pin is pulled low, then the monitor program is entered and Oscillator the chip changes its functionality. In all other The MLX90314 contains a programmable on-chip RC applications, this pin should be pulled high or left oscillator. No external components are needed to set floating (internal pull-up). the frequency (87.8 kHz +/-1%). The MCU-clock is generated by a PLL (phase locked loop tuned for 614 Temperature Sense kHz or 2.46 Mhz) which locks on the basic oscillator. The temperature measurement, TPO, is generated from The frequency of the internal clock is stabilized over the external or internal temperature sensor. This is the full temperature range, which is divided into three converted to a 10-bit number for use in calculating the regions, each region having a separate digital clock signal compensation factors. A 2-bit coarse adjustment setting. All of the clock frequency programming is GNTP[1:0] is used for the temperature signal gain & done by Melexis during final test of the component. offset adjustment. The device uses the internal temperature sensor to determine which temperature range setting to use.
A/D and D/A
Conversions using only one DAC
For saving chip area, the "Offset DAC" is multiplexed in various ways. Both "fine offset" and "digital mode" signals are stored on a capacitor. An ADC-loop is available by using a comparator and SAR.
D/A
Before changing to another capacitor, the DAC output should be settled to the new value. For example, MODSEL moves the analog multiplexer to the socalled "open state 0." At the same time, the 10 bit mux selects OF[9:0] for the offset-DAC. After the DAC settling time, the analog multiplexer is moved to its final state and the DAC-output is stored on a capacitor.
A/D
The S/W-Signal MODSEL connects the SAR-output to the DAC and the DAC-output to the comparator. The SARegister is initialized by a rising edge of STC (S/W signal). At the end of the A/D conversion, the EOC flag is set to 1 and the controller can read the ADC values.
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Page 9 Page 9
Nov/04
Rev 007
MLX90314
Programmable Sensor Interface
Digital Features
Microprocessor, LX11 Core, Interrupt Controller, Memories
The LX11 microcontroller core is described in its own datasheet. As an overview, this implementation of the LX11 RISC core has following resources: Two accumulators, one index and two interrupt accumulators. 15 - 8 bit I/O ports to internal resources. 64 byte RAM. 4 kbytes ROM : 3 kbytes is available for the customer's application firmware. 1k is reserved for test. 48 x 8 bit EEPROM. Four interrupt sources, two UART interrupts and two timers.
Timer
The clock of the timers TMI and TPI is taken directly from the main oscillator. The timers are never reloaded, so the next interrupt will take place 2x oscillator pulses after the first interrupt.
Watch Dog
An internal watch dog will reset the whole circuit in case of a software crash. If the watch dog counter is not reset at least once every 26 milliseconds (@ 2.46 MHz main clock), the microcontroller and all the peripherals will be reset.
Firmware
The MLX90314 firmware performs the signal conditioning by either of two means: analog or digital. The analog signal conditioning allows separate offset and gain temperature coefficients for up to four temperature ranges. Digital mode allows for all of the analog capabilities plus up to five different gain values based on the input signal level. Also available in both modes is the capability of range limiting and level steering.
UART
The serial link is a potentially full-duplex UART. It is receive-buffered, in that it can receive a second byte before a previously received byte has been read from the receiving register. However, if the first byte is not read by the time the reception of the second byte is completed, the first byte will be lost. The UART's baud rate depends on the RC-oscillator's frequency and the "TURBO"-bit (see output port). Transmitted and received data has the following structure: start bit = 0, 8 bits of data, stop bit = 1.
Temperature Processing
In both analog and digital modes, the temperature reading controls the temperature compensation. This temperature reading is filtered as designated by the user. The filter adjusts the temperature reading by factoring in a portion of the previous value. This helps to minimize the effect of noise when using an external temperature sensor. The filter equation is: If measured_temp > Temp_f(n) then Temp_f(n+1) = Temp_f(n) + [measured_temp Temp_f(n)] / [2 n_factor]. If measured_temp < Temp_f(n), then Temp_f(n+1) = Temp_f(n) - [measured_temp Temp_f(n)] [2 n_factor]. Temp_f(n+1) = new filtered temperature value. Temp_f(n) = previous filtered temperature value. Measured_temp = Value from temperature A to D.
Sending Data
W riting a byte to port 1 automatically starts a transmission sequence. The TX Interrupt is set when the STOP-bit of the byte is latched on the serial line.
Receiving Data
Reception is initialized by a 1 to 0 transition on the serial line (i.e., a START-bit). The baud rate period (i.e., the duration of one bit) is divided into 16 phases. The first six and last seven phases of a bit are not used. The decision on the bit-value is then the result of a majority vote of phase 7, 8 and 9 (i.e., the center of the bit). Spike synchronization is avoided by de-bouncing on the incoming data and a verification of the START-bit value. The RX Interrupt is set when the stop bit is latched in the UART.
N_factor = Filter value set by the user (four LSB’s of byte 25 of EEPROM), range 0-6. The filtered temperature value, Temp_f, is stored in RAM bytes 58 and 59. The data is a 10 bit value, left justified in a 16 bit field.
3901090314 Rev 007
Page 10
Nov/04
MLX90314
Programmable Sensor Interface
OFFSET
Different Modes
Analog Mode
The parameters OF and GN represent, respectively, offset correction and span control, while OFTCi and GNTCi represent their temperature coefficients (thermal zero shift and thermal span shift). After reset, the firmware continuously calculates the offset and gain DAC settings as follows: The EEPROM holds parameters GN, OF, OFTCi and GNTCi, where “i” is the gap number and can be 1 < i < 4. The transfer function is described below.
DAC_OFFSET (new value) ~ OF[9:0]+[OFTCi* dT] OF[9:0] = Fixed Gain, bytes 4 and 17 in EEPROM. OFTCi = Offset for a given temperature segment I. OFTCiL and OFTCiH in EEPROM table. dT = Temp. change within the appropriate gap. Calculation of the offset for a given temperature segment is performed the same way as for the gain.
(1.83 − −1.57) *
[mV/V] OF[9 : 0] − 1.57 = DAC _ OFFSET 1023
Vout = FG * DAC_GAIN {Vin+DAC_OFFSET+CSOF}
*
CSGN[2:0]
*
Iout = FG * DAC_GAIN * CSGN[1:0] * {Vin+DAC_OFFSET+CSOF} * 8.85mA/V FG = Hardware Gain (~72V/V). Part of the hardware design, and not changeable. CSGN = Course Gain, part of byte 2 in EEPROM. CSOF = Coarse Offset, part of byte 2 in EEPROM.
Digital Mode
The MLX90314 firmware provides the capability of digitally processing the sensor signal in addition to the analog processing. This capability allows for signal correction.
Signal Correction
W hile in digital mode the firmware can perform signal correction. This is an adjustment to the output level based on the input signal level. Adjustment coefficients can be set for five different signal ranges. The output is obtained by the following formula: Output = (Signal – Pi) * Pci + Poff where Signal = input signal measurement; Poff = Pressure ordinate Pi = Pressure signal point (I = 2,3,4,5) Pci = programmed coefficient. The PCi coefficients are coded on 12 bits: one bit for the sign, one for the unity, and the rest for the decimals. The Pi are coded on 10 bits (0-3FFh) in high-low order. PNB_TNB: contains the number of signal points, coded on the four MSB’s. The four LSB’s are reserved for the number of temperature points. See Table 4 and Table 5.
GAIN
DAC_GAIN (new value) ~ GN[9:0] + [GNTCi * dT] GN[9:0] = Fixed Gain, bytes 3 and 17 in EEPROM. GNTCi = Gain TC for a given temperature segment I. GNTCiL and GNTCiH in EEPROM table. dT = Temp. change within the appropriate gap. How to calculate gain in the first temp. gap?:
DAC_GAIN = GN[9:0] - GNTC1 * (T1 – Temp_f1) How to calculate gain in the other temp. gaps?:
2nd gap: DAC_GAIN = GN[9:0] + GNTC2 * (Temp_f2 – T1) 3th gap: DAC_GAIN = DAC_GAIN2 + GNTC3 * (Temp_f3 – T2) 4th gap: DAC_GAIN = DAC_GAIN3 + GNTC4 * (Temp_f4 – T3) Where: Temp_f = Filtered temp. (previously described). If GNTC1 > 2047 => DAC_GAIN ↑ If GNTC2,3,4 > 2047 => DAC_GAIN ↓ [V/V]
Compensation Trade-Offs
A compromise must be made between temperature compensation and pressure correction. The EEPROM space where the signal coefficients are stored is shared with the temperature coefficients, with the result that an EEPROM byte can be used either for a temperature coefficient or for a signal coefficient, but not both. Table 6 presents the possibilities among the maximum number of temperature gaps and the maximum number of signal gaps.
(0.97 − 0.48) *
GN [9 : 0] + 0.48 = DAC _ GAIN 1023
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Page 11 Page 11
Nov/04
Rev 007
MLX90314
Programmable Sensor Interface
Table 4. PNB_TNB Bit Definition; Pressure Gaps
# of Pressure Gaps Fixed
Table 6. Temperature & Signal Limitations
Maximum number of temperature gaps
4MSB of PNB_TNB Value 15 (F hex)
Maximum number of signal gaps
1
14 (E hex)
2
12 (C hex)
Fixed Gain and fixed Offset
5 Gaps
3
10 (A hex)
2 Gaps
3 Gaps
4
8
3 Gaps
2 Gaps
5
6
4 Gaps
Fixed signal
Table 5. PNB_TNB Bit Definition; Temperature Gaps
# of Temperature Gaps
4 LSB of PNB_TNB
Fixed (1)
0
2 Gaps
5
3 Gaps
8
4 Gaps
11 (B hex)
Figure 4. Signal Linearity Correction
Output
PC4
MLX90314
PC5
PC3
Output (units)
PC2
PC1
0
P2
P3
P4
P5
3901090314 Rev 007
Page 12
Nov/04
MLX90314
Programmable Sensor Interface
Alarm Option
This option allows controlling the low and high limits of the output (See Figure 5.). The output level is set when the output tries to exceed the programmed limits. Five bytes are reserved for this option. The first byte is the low trigger limit and the second the low output. The third and fourth bytes are used for the high limit and the output. The fifth byte is the alarm control, used to select the alarm input. The different levels are programmed as eight bit numbers. These correspond to the 8 upper bits of the 10 bit signal measurement. When the alarm mode is not used, all of the data is 0. The control code is coded as shown in Table 7. The six possible signals are listed below and are encoded on the 4 MSB’s of byte 31 of the EEPROM.
IO1 & IO2
IO1 and IO2 are used in the alarm and level steering modes. For custom firmware, they can be used for a digital input, an analog input, or a digital output.
Figure 6. Alarm & Steering Source Points
OFC FLT VDD1 FET VDD GND
Power Supply Regulation
VBP
IAO
Offset
Gain
GNO
VM
Table 7. Alarm Source Bit Definition
Selected input
VMO
VBN
MUX Value
TPO
TPO IAO GNO VMO IO1 IO2
0010 0110 0000 0011 0100 0101
CM
CMO
CMN
TMP
Temp Sense & Amp
ADC & DAC
IO1 IO2
Bidirectional I/O
Microcontroller Core, Memory, EEPROM Reset,Test,& Oscillator
TSTB
UART
Figure 5. Alarm Function OUTPUT
MLX90314
COMS
Figure 7. Level Steering Function IO1, IO2
MLX90314
High Output
1 -1
Output
Parameter
1-0
Low Output
0-1
Low Trigger
High Trigger
0-0 (I02,I01)
Input Signal
Level 1
Level 2
Level 3
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Page 13 Page 13
Nov/04
Rev 007
MLX90314
Programmable Sensor Interface
Level Steering
The level steering option allows configuration of the IO pins as outputs to indicate the relative level of a selected signal. See Figure 7. The levels at which the two outputs change state are programmed by the user. The programmed levels are set as eight bit numbers and compared to the upper eight bits of the digitized signal. This function utilizes the same resources as the alarm function. The two functions (level steering and alarm) can not be used simultaneously. Four bytes in the EEPROM command this option. The first byte is used to select the input, while the last three comprise the transition levels. The control byte for the level steering is the same as for the alarm. The four MSB’s hold the code for the selected input. The control byte has several possibilities as designated by the MUX settings (See Table 8)
Communications
The MLX90314 firmware transfers a complete byte of data into and from the memory based on a simple command structure. The commands allow data to be read and written to and from the EEPROM and read from the RAM. RAM data that can be read includes the current digitized temperature and digitized GNO. The commands are described below. Melexis provides setup software for programming the MLX90314.
Table 8. Level Steering Bit Definitions
Selected input TPO IAO GNO VMO
Table 9. Mode Byte Bit Definition
Bit
MUX Value 0010 0110 0000 0011
Function
Remarks
7
1= EEPROM Checksum test active 0= EEPROM Checksum test inactive
EEPROM Checksum test. Checksum test failure will force the output to the value programmed in bytes 40 and 41 of the EEPROM (See Table 10).
6
0 = Analog Mode 1 = Digital Mode
Digital mode must be activated when VMO and CMO both active.
5
0 = Alarm function inactive 1 = Alarm function active
Alarm functions are like “limiting functions”: If defined ADC INPUT is below low alarm trigger, then DIGMOD becomes active with alarm low output). If defined ADC INPUT is above high alarm trigger, then DIGMOD becomes active with alarm high output. Note: Deactivated if the level steering mode is active
4
0 = IO1/IO2 are not active outputs 1 = level steering: IO1/IO2 are active outputs
Depending on the sampled input, IO1/IO2 will be a two bit digital output. If IO1/IO2 are not active outputs, then they will be analog inputs.
3
0 = Turbo inactive 1 = Turbo active
2
0 = VMO inactive 1 = VMO active
1
0 = Internal temperature sensor active 1 = External temperature sensor active
0
0 = CMO inactive 1 = CMO active
CMO has fixed digital value (EEPROM byte - see below) if both VMO and CMO are active. To activate this value, the digital mode must be activated.
Page 14 Nov/04
3901090314 Rev 007
MLX90314
Programmable Sensor Interface
Clock Temperature Stabilization
UART Commands
The commands can be divided into three parts: (1) downloading of data from the ASIC, (2) uploading of data to the ASIC and (3) the reset command. All the commands have the same identification bits. The two MSB’s of the sent byte indicate the command while the last six MSB’s designate the desired address. The commands are coded as followed: 11 to read a RAM byte. 10 to read an EEPROM byte. 01 to write in the EEPROM. 00 to write in the RAM. The addresses can include 0-63 for the RAM, 0-47 for the EEPROM, and 63 for the EEPROM, RESET Command (read).
To provide a stable clock frequency from the internal clock over the entire operating temperature range, three separate clock adjust values are used. Shifts in operating frequency over temperature do not effect the performance but do, however, cause the communications baud rate to change. The firmware monitors the internal temperature sensor to determine which of three temperature ranges the device currently is in. Each temperature range has a factory set clock adjust value, ClkTC1, ClkTC2, and ClkTC3. The temperature ranges are also factory set. The Ctemp1 and Ctemp2 values differentiate the three ranges. In order for the temperature A to D value to be scaled consistently with what was used during factory programming, the CLKgntp (temperature amplifier gain) valued is stored. The Cadj value stored in byte 1 of the EEPROM is used to control the internal clock frequency while the chip boots.
Downloading Command
W ith one byte, data can be downloaded from the ASIC. The ASIC will automatically send the value of the desired byte.
Unused Bytes
There are eight unused bytes in the EEPROM address map. These bytes can be used by the user to store information such as a serial number, assembly date code, production line, etc. Melexis doesn’t guarantee that these bytes will be available to the user in future revisions of the firmware.
Uploading Command
W riting to the RAM or EEPROM involves a simple handshaking protocol in which each byte transmitted is acknowledged by the firmware. The first byte transmitted to the firmware includes both command and address. The firmware acknowledges receipt of the command and address byte by echoing the same information back to the transmitter. This “echo” also indicates that the firmware is ready to receive the byte of data to be stored in RAM or EEPROM. Next, the byte of value to be stored is transmitted and, if successfully received and stored by the firmware, is acknowledged by a “data received signal,” which is two bytes of value BCh. If the “data received signal” is not observed, it may be assumed that no value has been stored in RAM or EEPROM.
EEPROM Checksum
A checksum test is used to ensure the contents of the EEPROM. The eight bit sum of all of the EEPROM addresses should have a remainder of 0FFh when the checksum test is enabled (mode byte). Byte 47 is used to make the sum remainder totals 0FFh. If the checksum test fails, the output will be driven to a user defined value, Faultval. When the checksum test is enabled, the checksum is verified at initialization of RAM after a reset.
Reset Command
Reading the address 63 of the EEPROM resets the ASIC and generates a received receipt indication. Immediately before reset, the ASIC sends a value of BCh to the UART, indicating that the reset has been received.
RAM Data
All the coefficients (pressure, temperature) are compacted in a manner similar to that used for the EEPROM. They are stored on 12 bits (instead of keeping 16 bits for each coefficient). All the measurements are stored on 16 bits. The user must have access to the RAM and the EEPROM, while interrupt reading of the serial port. Therefore, bytes must be kept available for the return address, the Aaccu and the B-accu, when an interrupt occurs. The RAM keeps the same structure in the both modes.
EEPROM Data
All user-settable variables are stored in the EEPROM within the MLX90314. The EEPROM is always reprogrammable. Changes to data in the EEPROM do not take effect until the device is reset via a soft reset or power cycle. 12 bit variables are stored on 1.5 bytes. The 4 MSB’s are stored in a separate byte and shared with the four MSB’s of another 12-bit variable.
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Page 15 Page 15
Nov/04
Rev 007
MLX90314
Programmable Sensor Interface
Data Range
Various data are arranged as follows: Temperature points: 10 bits, 0-03FF in highlow order. Pressure points: 10 bits, 0-03FF in high-low order. GN1: 10 bits, 0-03FF in high-low order. OF1: 10 bits, 0-03FF in high-low order. GNTCi: signed 12 bits (with MSB for the sign), [-1.9990234, +1.9990234]. OFTCi: signed 12 bits (with MSB for the sign), [-1.9990234, +1.9990234]. Pci: signed 12 bits (with MSB for the sign), [-1.9990234, +1.9990234] DIGMO: 10 bits, 0-03FF in high-low order (See Table 13 for examples of fixed point signed numbers.)
Table 10. Examples of Fixed Point Signed Numbers
Decimal Value
Hexadecimal Equivalent
Fixed Point Signed Number Equivalent
0
0000h
+0.00
1023
3FFh
+0.9990234
1024
400h
+1.000
2047
7FFh
+1.9990234
2048
800h
-0.000
3071
0BFFh
-0.9990234
3072
0C00h
-1.000
4095
0FFFh
-1.9990234
Table 11. EEPROM Byte Definitions
Byte
Designation
Note
0
MODE byte
Contents described in Table 9.
1
Cadj
Controls system clock during boot.
2
Coarse Control
Contents described in Table 12.
3
GN1L
The eight LSB's of the Fixed Gain, GN[7:0].
4
OF1L
The eight LSB's of Fixed Offset OF[7:0].
5
GNTC1L
The eight LSB's of the first gain TC GNTC1[7:0].
6
OFTC1L
The eight LSB's of the first offset TC OFTC1[7:0].
7
TR1L PC5L
The eight LSB's of the first temperature point, T1[7:0]. The eight LSB's of Pressure Coefficient 5 PC5[7:0].
8
GNTC2L P5L
The eight LSB's of the second gain TC GNTC2[7:0]. The eight LSB's of Pressure Point 5 P5[7:0].
9
OFTC2L PC4L
The eight LSB's of the second offset TC OFTC2[7:0]. The eight LSB's of Pressure Coefficient 4 PC4[7:0].
10
TR2L P4L
The eight LSB's of the second temperature point T2[7:0]. The eight LSB's of Pressure Point 4 (or Signature) P4[7:0].
11
GNTC3L PC3L
The eight LSB's of the third gain TC GNTC3[7:0]. The eight LSB's of Pressure Coefficient 3 (or Signature) PC3 [8:0].
Page 16 Nov/04
3901090314 Rev 007
MLX90314
Programmable Sensor Interface
Table 11. EEPROM Byte Definitions (continued)
Byte
Designation
Note
12
OFTC3L or P3L
The eight LSB's of the third offset TC OFTC3[7:0]. The eight LSB's of Pressure Point 2 (or Signature) P2[7:0].
13
TR3L or PC2L
The eight LSB's of the third temperature point T3[7:0]. The eight LSB's of Pressure Coefficient 2 PC2[7:0].
14
GNTC4L or P2L
The eight LSB's of the fourth gain TC GNTC4[7:0]. The eight LSB's of Pressure Point 2 P2[7:0].
15
OFTC4L or PC1L
The eight LSB's of the fourth offset TC OFTC4. The eight LSB's of Pressure Coefficient 1 PC1
16
PoffL
The eight LSB's of Pressure (output signal) Ordinate Poff[7:0].
Upper Four Bits
Lower Four Bits
Upper four bits.
Lower four bits
17
GN1[9:8]
OF1[9:8]
Two MSB's of fixed gain GN[9:8].
Two MSB's of fixed offset OF[9:8]
18
GNTC1[11:8]
OFTC1[11:8]
Four MSB's of first gain TC GNTC1[11:8].
Four MSB's of the first offset TC OFTC1[11:8].
19
TR1[9:8] PC5[11:8]
GNTC2[11:8] P5[9:8]
Two MSB's, first temperature point T1[9:8] or Four MSB's, Pressure Coefficient 5 PC5[11:8].
Four MSB's, second gain TC GNTC2[11:8] or TC GNTC2[11:8] or Two MSB's Pressure Point 5 P5[9:8].
20
OFTC2[11:8] PC4[11:8]
TR2[9:8] P4[9:8]
Four MSB's second offset TC OFTC2[11:8] or Four MSB's Pressure Coefficient 4 PC4[11:8].
Two MSB's second temperature point T2[9:8] or Two MSB's Pressure Point 4 P4[9:8].
21
GNTC3[11:8] PC3[11:8]
OFTC3[11:8] P3[9:8]
Four MSB's third gain TC GNTC3[11:8] or Four MSB's Pressure Coefficient 3 PC3[11:8]).
Four MSB's third offset TC OFTC3[11:8] or Two MSB's Pressure Point 3 P3[9:8].
22
TR3[9:8] PC2[9:8]
GNTC4[11:8] P2[9:8]
Two MSB's third temperature point t3[9:8] or Four MSB's Pressure Coefficient 2 PC2[11:8].
Four MSB's fourth gain TC GNTC4[11:8] or Two MSB's Pressure Point 2 P2[9:8].
23
OFTC4[11:8]
Poff[9:8]
PC1[11:8]
Four MSB's fourth offset TC ordinate OFTC4[11:8] or Four MSB's Pressure Coefficient 1 PC1[11:8].
Page 17 Page 17
Two MSB's Pressure Poff[9:8].
MLX902xx Name of Sensor Rev Y.X 22/Aug/98 3901090314
Nov/04
Rev 007
MLX90314
Programmable Sensor Interface
Table 11. EEPROM Byte Definitions (continued)
Byte
Designation
Note
24
PNB_TNB
Number of temperature and pressure gaps. See Tables 4, 5, and 6, and Figures 3 and 4.
25
n_factor
Temperature filter coefficient, four LSB's. Four MSB's must all be zero.
26
Not used
This byte is not used.
27
ALARM low trigger Level1 IO2/IO1
Value below which ALARM will go on. Value of first level ([IO2, IO1]= 00-01). See Figures 5 & 7.
28
ALARM low output Level2 IO2/IO1
Value of DIGMO during “ALARM low” condition. Value of second level ([IO2,IO1] = 01-10). See Figures 5 and 7
29
ALARM high trigger Level3 IO2/IO1
Value above which ALARM will go on. Value of third level ([IO2,IO1]=10-11). See Figures 5 and 7.
30
ALARM high out level
Value of DIGMO during “ALARM high” condition. See Figures 5 and 7.
31
ALARM control byte
Three bits needed for choice of input for ALARM detection (TPO, IAO, GNO, VMO, IO1 or IO2). Two bits needed for choice of input for LEVEL-steering (TPO, IAO, GNO or VMO). The above bits are multiplexed according to the mode. If both CMO and VMO are active, then alarm is not active.
IO1/IO2 control byte
Four LSB's are unused
32
ClkTC1
Value of Cadj at low temperature (Don’t change; factory set).
33
ClkTC2
Value of Cadj at mid temperature (Don’t change; factory set).
34
ClkTC3
Value of Cadj at high temperature Don’t change; factory set).
35
Ctemp1
First Cadj temperature point, eight MSB’s of the 10 bit internal temperature value (set at factory; do not change).
36
Ctemp2
Second Cadj temperature point, eight MSB’s of the 10 bit internal temperature value (set at factory; do not change).
37-38
Not used
These bytes are not used by the firmware and are available to the user.
39
CLKgntp
Setting for temperature amplifier for clock temperature adjustment temperature reading (set at factory; do not change).
40-41
Faultval
Value sent to output if checksum test fails is a 10 bit value.
42-46
Not Used
These bytes are not used by the firmware and are available to the user.
47
Checksum
EEPROM checksum; value needed to make all bytes add to 0FFh. Must be set by user if checksum test is active.
Page 18 Nov/04
3901090314 Rev 007
MLX90314
Programmable Sensor Interface
Table 12. Bit Definitions; Coarse Control , Byte 2
Bit Symbol Function
Notes For Table 11
1. Not all the temperature and pressure coefficients must be used. When a coefficient is unused, the eight LSB’s and the four MSB’s are replaced by 0. 2. The level steering and the alarm mode cannot be active simultaneously because the levels bytes are shared with the two modes. 3. If the alarm mode and the level steering are both active, the level steering mode is dominant. The firmware will run with the level steering mode, by default. 4. If the DIGMO mode (VMO and CMO both active) is active, the alarm will be automatically disabled by the firmware. 5. At PNB_TNB address, the four MSB's correspond to the address of the last pressure point and the four LSB’s to the address of the last temperature point.
7
IINV
Invert signal sign.
6
GNTP1 Gain & offset of temperature amplifier.
5
GNTP0 GNTP = 0 to 3.
4
CSOF 1 Coarse offset of signal amplifier.
3
CSOF 0 CSOF = 0 to 3.
2
1
0
CSGN2 Coarse gain of signal amplifier. CSGN = 0 to 7. If CSGN > 3, CSGN1 output range = 0 to 10V. If CSGN0 CSGN