19-1495; Rev 1; 10/99 Remote Temperature Sensor with SMBus Serial Interface ____________________________Features The MAX1618 precise digital thermometer reports the temperature of a remote sensor. The remote sensor is a diode-connected transistor—typically a low-cost, easily mounted 2N3904 NPN type—that replaces conventional thermistors or thermocouples. Remote accuracy is ±3°C for multiple transistor manufacturers, with no calibration needed. The MAX1618 can also measure the die temperature of other ICs, such as microprocessors, that contain an on-chip, diode-connected transistor. ♦ Single Channel: Measures Remote CPU Temperature The 2-wire serial interface accepts standard System Management Bus (SMBus™) Write Byte, Read Byte, Send Byte, and Receive Byte commands to program the alarm thresholds and to read temperature data. The data format is 7 bits plus sign, with each bit corresponding to 1°C, in two’s complement format. Measurements can be done automatically and autonomously, with the 16Hz conversion rate or programmed to operate in a single-shot mode. ♦ Supports SMBus Alert Response Accuracy ±3°C (+60°C to +100°C) ±5°C (-55°C to +120°C) ♦ SMBus 2-Wire Serial Interface ♦ Programmable Under/Overtemperature Alarms ♦ Overtemperature Output for Fan Control (Thermostat Mode) † The thermostat mode configures the ALERT output as an interrupt or as a temperature reset that remains active only while the temperature is above the maximum temperature limit or below the minimum temperature limit. The ALERT output polarity in thermostat mode can be configured for active high or active low. Fan control is implemented using this ALERT output. The MAX1618 is available in a small (1.1mm high) 10-pin µMAX package. ♦ No Calibration Required ♦ 3µA (typ) Standby Supply Current ♦ 900µA (max) Supply Current in Autoconvert Mode ♦ +3V to +5.5V Supply Range ♦ Small 10-Pin µMAX Package Ordering Information PART MAX1618MUB TEMP. RANGE -55°C to +125°C PIN-PACKAGE 10 µMAX ________________________Applications Desktop and Notebook Computers Central Office Telecom Equipment Smart Battery Packs LAN Servers Industrial Controls Test and Measurement Multichip Modules Typical Operating Circuit ___________________Pin Configuration 3V TO 5.5V 200Ω 0.1µF TOP VIEW VCC STBY 10k EACH ADD0 1 10 ALERT ADD1 9 MAX1618 DXP 2 GND 3 DXN DXP MAX1618 SMBDATA 8 SMBCLK 4 7 STBY 5 6 VCC SMBCLK SMBDATA 2N3904 DXN 2200pF ALERT MAX1618 ________________General Description CLOCK DATA INTERRUPT TO µC ADD0 ADD1 GND µMAX SMBus is a trademark of Intel Corp. †Patents Pending ________________________________________________________________ Maxim Integrated Products 1 For free samples & the latest literature: http://www.maxim-ic.com, or phone 1-800-998-8800. For small orders, phone 1-800-835-8769. MAX1618 Remote Temperature Sensor with SMBus Serial Interface ABSOLUTE MAXIMUM RATINGS VCC to GND ..............................................................-0.3V to +6V DXP, ADD_ to GND ....................................-0.3V to (VCC + 0.3V) DXN to GND ..........................................................-0.3V to +0.8V SMBCLK, SMBDATA, ALERT, STBY to GND ...........-0.3V to +6V SMBDATA Current.................................................-1mA to 50mA DXN Current. ......................................................................±1mA ESD Protection (all pins, Human Body Model).. .............± 2000V Continuous Power Dissipation (TA = +70°C) µMAX (derate 5.6mW/°C above +70°C) ....................444mW Operating Temperature Range (extended) ......-55°C to +125°C Junction Temperature. ....................................................+150°C Storage Temperature Range ............................-65°C to +150°C Lead Temperature (soldering, 10sec) ............................+300°C Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. ELECTRICAL CHARACTERISTICS (VCC = +3.3V, configuration byte register = X8h, TA = 0°C to +85°C, unless otherwise noted.) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS ADC AND POWER SUPPLY Temperature Resolution (Note 1) Temperature Error, Remote Diode (Note 2) Supply-Voltage Range VCC Undervoltage Lockout Threshold UVLO Monotonicity guaranteed 8 TR = +60°C to +100°C -3 3 TR = +55°C to +125°C -5 5 3 5.5 V 2.95 V VCC input, disables A/D conversion, rising edge Bits 2.6 2.8 1 1.7 50 Undervoltage Lockout Hysteresis Power-On Reset Threshold VCC, falling edge Standby Supply Current SMBus static 3 Standby Supply Current Hardware or software standby, SMBCLK at 10kHz 5 Average Operating Supply Current Autoconvert mode, average measured Autoconvert over 4sec, 16 conv/sec mode, average From stop bit to conversion complete 47 Conversion Rate Timing Error Autoconvert mode -25 Remote-Diode Source Current DXP forced to DXN + 0.65V, ID = 1 (high) Conversion Time mV 2.5 50 POR Threshold Hysteresis tCONV ADDO, ADD1 Bias Current µA µA 450 900 µA 62 78 ms 25 % 80 100 120 Low level 8 10 12 Momentary upon power-on reset V mV 10 High level DXN Source Voltage °C µA 0.7 V 160 µA SMBus INTERFACE STBY SMBCLK, SMBDATA Input High Voltage VIH VCC = 3.0V STBY, SMBCLK, SMBDATA Input Low Voltage VIL VCC = 3.0V to 5.5V 2.2 STBY, SMBCLK, SMBDATA Input Current Logic inputs forced to VCC or GND -1 SMBCLK, SMBDATA Output Low Sink Current SMBCLK, SMBDATA forced to 0.4V 6 2 _______________________________________________________________________________________ V 0.8 V 1 µA mA Remote Temperature Sensor with SMBus Serial Interface (VCC = +3.3V, configuration byte register = X8h, TA = 0°C to +85°C, unless otherwise noted.) PARAMETER SYMBOL CONDITIONS ALERT Output Low Sink Current ALERT forced to 0.4V ALERT Output High Leakage Current ALERT forced to 5.5V MIN TYP MAX 6 mA 1 SMBCLK, SMBDATA Input Capacitance 5 SMBus Clock Frequency DC (Note 3) UNITS µA pF 100 tLOW 10% to 10% points SMBCLK Clock High Time tHIGH 90% to 90% points SMBCLK, SMBDATA Rise Time tR 10% to 90% points 1 µs SMBCLK, SMBDATA Fall Time tF 90% to 10% points 300 ns SMBus Start Condition Setup Time 4.7 kHz SMBCLK Clock Low Time µs 4 µs 4.7 µs 500 ns SMBus Repeated Start Condition Setup Time tSU:STA 90% to 90% points SMBus Start Condition Hold Time tHD:STA 10% of SMBDATA to 90% of SMBCLK 4 µs SMBus Stop Condition Setup Time tSU:STO 90% of SMBCLK to 10% of SMBDATA 4 µs SMBus Data Valid to SMBCLK Rising-Edge Time tSU:DAT 90% of SMBDATA to 10% of SMBCLK 250 ns SMBus Data-Hold Time tHD:DAT (Note 4) 0 µs SMBus Bus Free Time tBUF 4.7 µs SMBCLK Falling Edge to SMBus Data-Valid Time Between start/stop condition Master clocking in data 1 µs MAX UNITS ELECTRICAL CHARACTERISTICS (VCC = +3.3V, configuration byte register = X8h, TA = -55°C to +125°C, unless otherwise noted.) (Note 5) PARAMETER SYMBOL CONDITIONS MIN TYP Temperature Resolution (Note 1) Monotonicity guaranteed 8 Initial Temperature Error, Remote Diode (Note 2) TR = +60°C to +100°C -3 3 TR = -55°C to +125°C -5 5 From stop bit to conversion complete 47 Autoconvert mode -25 Supply-Voltage Range Conversion Time VCC tCONV Conversion-Rate Timing Error Bits 3 62 °C 5.5 V 78 ms 25 % _______________________________________________________________________________________ 3 MAX1618 ELECTRICAL CHARACTERISTICS (continued) ELECTRICAL CHARACTERISTICS (continued) (VCC = +3.3V, configuration byte register = X8h, TA = -55°C to +125°C, unless otherwise noted.) (Note 5) PARAMETER CONDITIONS MIN TYP MAX UNITS SMBus INTERFACE STBY, SMBCLK, SMBDATA Input High Voltage VCC = 3.0V 2.2 VCC = 5.5V 2.4 V STBY, SMBCLK, SMBDATA Input Low Voltage VCC = 3.0V to 5.5V STBY, SMBCLK, SMBDATA Input Current Logic inputs forced to VCC or GND -2 SMBCLK, SMBDATA Output Low Sink Current SMBCLK, SMBDATA forced to 0.6V 6 mA ALERT Output Low Sink Current ALERT forced to 0.4V 1 mA ALERT Output High Leakage Current ALERT forced to 5.5V 0.8 V 2 µA 1 µA Note 1: Guaranteed, but not 100% tested. Note 2: A remote diode is any diode-connected transistor from Table 7. TR is the junction temperature of the remote diode. See Remote Diode Selection for remote-diode forward voltage requirements. Temperature specification guaranteed for a diode with ideality factor (MTR = 1.013). Additional error = (1.013/m - 1) · 273 + Temp where M = Ideality of remote diode used. Note 3: The SMBus logic block is a static design that works with clock frequencies down to DC. While slow operation is possible, it violates the 10kHz minimum clock frequency and SMBus specifications and may monopolize the bus. Note 4: Note that a transition must internally provide at least a hold time to bridge the undefined region (300ns max) of SMBCLK’s falling edge. Note 5: Specifications from -55°C to +125°C are guaranteed by design, not production tested. Typical Operating Characteristics (TA = +25°C, unless otherwise noted.) TEMPERATURE ERROR vs. REMOTE-DIODE TEMPERATURE 10 0 -10 PATH = DXP TO VCC (5.0V) AND CONFIG = H08 PATH = DXP TO VCC (5.0V) AND CONFIG = H00 -20 -30 1.50 1.00 0.50 0.00 -0.50 -1.00 -40 1 10 LEAKAGE RESISTANCE (MΩ) 4 2.00 100 1 TEMPERATURE ERROR (°C) 20 2 MAX1618 toc02 PATH = DXP TO GND AND CONFIG = H08 30 2.50 TEMPERATURE ERROR (°C) PATH = DXP TO GND AND CONFIG = H00 MAX1618 toc01 40 TEMPERATURE ERROR vs. POWER-SUPPLY NOISE FREQUENCY MAX1618 toc03 TEMPERATURE ERROR vs. LEAKAGE RESISTANCE TEMPERATURE ERROR (°C) MAX1618 Remote Temperature Sensor with SMBus Serial Interface 0 -1 -2 VIN = 100mVp-p -3 -4 VIN = 250mVp-p -5 -6 CENTRAL CMPT3904 RANDOM SAMPLE -55 -35 -15 5 25 -7 45 65 TEMPERATURE (°C) 85 105 125 VIN = SQUARE WAVE APPLIED TO VCC WITH NO 0.1µF VCC CAPACITOR -8 0.005 0.05 0.5 5 POWER-SUPPLY NOISE FREQUENCY (MHz) _______________________________________________________________________________________ 50 Remote Temperature Sensor with SMBus Serial Interface TEMPERATURE ERROR vs. COMMON-MODE NOISE FREQUENCY VIN = 100mVp-p 80 60 40 VIN = 50mVp-p VCC = 5V MAX1618 toc05 TEMPERATURE ERROR (°C) AC-COUPLED TO DXN 2200pF DXN-DXP CAPACITOR 100 TEMPERATURE ERROR (°C) 0 MAX1618 toc04 120 TEMPERATURE ERROR vs. DXP-DXN CAPACITANCE -10 20 0 -20 10 100 0 1000 20 COMMON-MODE NOISE FREQUENCY (MHz) 40 60 80 100 DXP-DXN CAPACITANCE (nF) STANDBY SUPPLY CURRENT vs. CLOCK FREQUENCY MAX1618 toc06 STANDBY SUPPLY CURRENT (µA) 50 40 30 VCC = 5V 20 VCC = 3.3V 10 0 1 10 100 1000 CLOCK FREQUENCY (kHz) STANDBY SUPPLY CURRENT vs. SUPPLY VOLTAGE RESPONSE TO THERMAL SHOCK 80 60 50 40 30 ADD0, ADD1 = HIGH-Z 20 110 100 TEMPERATURE (°C) ADD0, ADD1 = GND 70 MAX1618 toc08 90 STANDBY SUPPLY CURRENT (µA) 120 MAX1618 toc07 100 90 80 70 60 50 40 10-PIN µMAX IMMERSED IN +115°C FLUORINERT BATH 30 10 20 0 0 1 2 3 SUPPLY VOLTAGE (V) 4 5 -2 0 2 4 6 8 10 12 14 16 18 20 TIME (sec) _______________________________________________________________________________________ 5 MAX1618 ____________________________Typical Operating Characteristics (continued) (TA = +25°C, unless otherwise noted.) Remote Temperature Sensor with SMBus Serial Interface MAX1618 Pin Description PIN NAME FUNCTION 1 ADD0 SMBus Slave Address Select Input. (See Table 6.) ADD0 and ADD1 are sampled upon power-up. Excess capacitance (>50pF) at the address pins when floating may cause address-recognition problems. 2 ADD1 SMBus Slave Address Select Input. (See Table 6.) ADD0 and ADD1 are sampled upon power-up. Excess capacitance (>50pF) at the address pins when floating may cause address-recognition problems. 3 GND Ground 4 DXN Combined Current Sink and A/D Negative Input. DXN is normally biased to a diode voltage above ground. 5 DXP Combined Current Source and A/D Positive Input. Do not leave DXP floating. Place a 2200pF capacitor between DXP and DXN for noise filtering. 6 VCC Supply Voltage Input. Bypass to GND with a 0.1µF capacitor. 7 STBY Hardware-Standby Input. Temperature and comparison threshold data are retained in standby mode. Low = standby mode. High = operating mode. 8 SMBCLK 9 SMBDATA 10 ALERT SMBus Serial-Clock Input SMBus Serial-Data Input/Output. Open drain. SMBus Alert (Interrupt) Output. Open drain. Detailed Description The MAX1618 is a temperature sensor designed to work in conjunction with an external microcontroller (µC) or other intelligence in thermostatic, process-control, or monitoring applications. The µC is typically a power-management or keyboard controller, generating SMBus serial commands by “bit-banging” general-purpose input-output (GPIO) pins or through a dedicated SMBus interface block. Essentially an 8-bit serial analog-to-digital converter (ADC) with a sophisticated front end, the MAX1618 contains a switched-current source, a multiplexer, an ADC, an SMBus interface, and the associated control logic (Figure 1). Temperature data from the ADC is loaded into a data register, where it is automatically compared with data previously stored in over/undertemperature alarm threshold registers. The alarm threshold registers can be set for hysteretic fan control. currents through the remote diode, measures the forward voltage, and computes the temperature. The DXN input is biased at 0.65V above ground by an internal diode to set up the analog-to-digital (A/D) inputs for a differential measurement. The worst-case DXP-DXN differential input voltage range is 0.25V to 0.95V. Excess resistance in series with the remote diode causes about +1/2°C error/Ω. A 200µV offset voltage at DXP-DXN causes about +1°C error. A/D Conversion Sequence If a Start command is written (or generated automatically in the free-running autoconvert mode), the result of the measurement is available after the end of conversion. A BUSY status bit in the status byte shows that the device is performing a new conversion. The result of the previous conversion is always available even when the ADC is busy. ADC and Multiplexer The averaging ADC integrates over a 30ms period (typ) with excellent noise rejection. The ADC converts at a rate of 16Hz. The multiplexer automatically steers bias 6 _______________________________________________________________________________________ Remote Temperature Sensor with SMBus Serial Interface STBY MAX1618 ADDRESS DECODER MUX DXP DXN + + - - ADC MAX1618 VCC ADD1 SMBDATA CONTROL LOGIC GND ADD0 SMBUS SMBCLK READ WRITE 8 8 COMMAND-BYTE (INDEX) REGISTER 8 8 REMOTE-TEMPERATURE DATA REGISTER CONFIGURATION BYTE REGISTER HIGH-TEMPERATURE THRESHOLD STATUS BYTE REGISTER LOW-TEMPERATURE THRESHOLD ALERT RESPONSE ADDRESS REGISTER 8 ALERT R DIGITAL COMPARATOR S Q CONTROL LOGIC Figure 1. Functional Diagram _______________________________________________________________________________________ 7 MAX1618 Remote Temperature Sensor with SMBus Serial Interface Low-Power Standby Mode Standby mode disables the ADC and reduces the supply-current drain to 3µA (typ). Enter standby mode by forcing the STBY pin low or via the RUN/STOP bit in the configuration byte register. Hardware and software standby modes behave almost identically; all data is retained in memory, and the SMB interface is alive and listening for reads and writes. The only difference is that in hardware standby mode, the one-shot command does not initiate a conversion. Table 1. Data Format (Two’s Complement) DIGITAL OUTPUT DATA BITS ROUNDED TEMP. (°C) SIGN MSB LSB +130.00 +127 0 111 1111 +127.00 +127 0 111 1111 +126.50 +127 0 111 1111 +126.00 +126 0 111 1111 Standby mode is not a shutdown mode. Activity on the SMBus draws extra supply current (see Typical Operating Characteristics). In software standby mode, the MAX1618 can be forced to perform A/D conversions through the one-shot command, despite the RUN/STOP bit being high. Enter hardware standby mode by forcing the STBY pin low. In a notebook computer, this line may be connected to the system SUSTAT# suspend-state signal. +25.25 +25 0 001 1001 +0.50 +1 0 000 0001 +0.25 0 0 000 0000 0.00 0 0 000 0000 -0.25 0 0 000 0000 -0.50 0 0 000 0000 -0.75 -1 1 111 1111 The STBY pin low state overrides any software conversion command. If a hardware or software standby command is received while a conversion is in progress, the conversion cycle is truncated, and the data from that conversion is not latched into either temperature reading register. The previous data is not changed and remains available. Supply-current drain during the 62ms conversion period is always about 450µA. Between conversions, the instantaneous supply current is about 25µA due to the current consumed by the conversion rate timer. In standby mode, supply current drops to about 3µA. With very low supply voltages (under the power-on reset threshold), the supply current is higher due to the address input bias currents. It can be as high as 160µA, depending on ADD0 and ADD1 settings. -1.00 -1 1 111 1111 -25.00 -25 1 110 0111 -25.50 -25 1 110 0111 -54.75 -55 1 100 1001 -55.00 -55 1 100 1001 -65.00 -65 1 011 1111 -70.00 -65 1 011 1111 SMBus Digital Interface From a software perspective, the MAX1618 appears as a set of byte-wide registers that contains temperature data, alarm threshold values, or control bits. Use a standard SMBus 2-wire serial interface to read temperature data and write control bits and alarm threshold data. The MAX1618 employs four standard SMBus protocols: Write Byte, Read Byte, Send Byte, and Receive Byte (Figure 2). The two shorter protocols (Receive and Send) allow quicker transfers, provided that the correct data register was previously selected by a Write or Read Byte instruction. Use caution with the shorter protocols in multimaster systems, since a second master could overwrite the command byte without informing the first master. 8 TEMP. (°C) The temperature data format is 7 bits plus sign in two’s complement form for each channel, with each data bit representing +1°C (Table 1), transmitted MSB first. Measurements are offset by +1/2°C to minimize internal rounding errors; for example, +99.6°C is reported as +100°C. Alarm Threshold Registers Two registers, a high-temperature (THIGH) and a lowtemperature (T LOW ) register, store alarm threshold data. If a measured temperature equals or exceeds the corresponding alarm threshold value, an ALERT interrupt is asserted. The power-on reset (POR) state of the THIGH register is full scale (0111 1111 or +127°C). The POR state of the TLOW register is 1100 1001 or -55°C. Thermostat Mode Thermostat mode changes the function of the ALERT output from a latched interrupt-type output to a selfclearing thermostat for fan control. This output simply responds to the current temperature (Figure 3). If the current temperature is above THIGH, ALERT activates _______________________________________________________________________________________ Remote Temperature Sensor with SMBus Serial Interface MAX1618 Write Byte Format S WR ADDRESS ACK COMMAND 7 bits ACK DATA 8 bits Slave Address: equivalent to chip-select line of a 3-wire interface ACK P 8 bits Command Byte: selects which register you are writing to Data Byte: data goes into the register set by the command byte (to set thresholds, configuration masks, and sampling rate) Read Byte Format S WR ADDRESS ACK COMMAND 7 bits ACK Command Byte: selects which register you are reading from ACK DATA A P 8 bits Slave Address: repeated due to change in dataflow direction Data Byte: reads from the register set by the command byte Receive Byte Format WR ACK DATA 7 bits S = Start condition P = Stop condition RD 7 bits Send Byte Format ADDRESS ADDRESS 8 bits Slave Address: equivalent to chip-select line of a 3-wire interface S S ACK P 8 bits S ADDRESS 7 bits Data Byte: writes data to the register commanded by the last Read Byte or Write Byte transmission Shaded = Slave transmission A = Not acknowledged WR ACK DATA A P 8 bits Data Byte: reads data from the register commanded by the last Read Byte or Write Byte transmission; also used for SMBus Alert Response return address Figure 2. SMBus Protocols +3V TO +5.5V +12V STBY VCC MAX1618 SMBUS SERIAL INTERFACE (TO HOST) SMBCLK SMBDATA DXP 2N3904 DXN ALERT ADD0 and does not go inactive until the temperature drops below TLOW. Enable thermostat mode through the configuration register (Table 4), with one bit to enable the feature and another bit to set the output polarity (active high or active low). The ALERT thermostat comparison is made after each conversion, or at the end of any SMBus transaction. For example, if the limit is changed while the device is in standby mode, the ALERT output responds correctly according to the last valid A/D result. Upon entering thermostat mode, the ALERT output is reset so that if the temperature is in the hysteresis band ALERT initially goes inactive. The power-on reset (POR) state disables thermostat mode. Diode Fault Alarm ADD1 GND A continuity fault detector at DXP detects whether the remote diode has an open-circuit condition, short-circuit to GND, or short-circuit DXP-to-DXN condition. At the beginning of each conversion, the diode fault is checked, and the status byte is updated. This fault detector is a simple voltage detector; if DXP rises Figure 3. Fan Control Application _______________________________________________________________________________________ 9 MAX1618 Remote Temperature Sensor with SMBus Serial Interface above VCC - 1V (typ) or below VDXN + 50mv (typ), a fault is detected and ALERT is asserted. ADC reads +127°C. Also, if the ADC has an extremely low differential input voltage, the diode is assumed to be shorted and a fault is detected. Note that the diode fault is not checked until a conversion is initiated, so immediately after power-on reset, the status byte indicates no fault is present even if the diode path is broken. Table 2. Read Format for Alert Response Address (0001 100) BIT NAME 7 (MSB) ADD7 6 ADD6 ALERT Interrupts 5 ADD5 Normally, the ALERT interrupt output signal is latched and can be cleared only by reading the Alert Response address. Interrupts are generated in response to THIGH and TLOW comparisons and when the remote diode is faulted. The interrupt does not halt automatic conversions; new temperature data continues to be available over the SMBus interface after ALERT is asserted. The interrupt output pin is open-drain so the devices can share a common interrupt line. The interface responds to the SMBus Alert Response address, an interrupt pointer return-address feature (see Alert Response Address section). Before taking corrective action, always check to ensure that an interrupt is valid by reading the current temperature. The alert activates only once per crossing of a given temperature threshold to prevent any re-entrant interrupts. To enable a new interrupt, rewrite the value of the violated temperature threshold. 4 ADD4 3 ADD3 2 ADD2 1 ADD1 0 (LSB) ADD0 Alert Response Address The SMBus Alert Response interrupt pointer provides quick fault identification for simple slave devices that lack the complex, expensive logic needed to be a bus master. Upon receiving an ALERT interrupt signal, the host master can broadcast a Receive Byte transmission to the Alert Response slave address (0001100). Any slave device that generated an interrupt then attempts to identify itself by putting its own address on the bus (Table 2). The Alert Response can activate several different slave devices simultaneously, similar to the I2C General Call. If more than one slave attempts to respond, bus arbitration rules apply, and the device with the lower address code wins. The losing device does not generate an acknowledgement and continues to hold the ALERT line low until serviced (implies that the host interrupt input is level sensitive). Successful reading of the alert response address clears the interrupt latch. Command Byte Functions The 8-bit command byte register (Table 3) is the master index that points to the other registers within the MAX1618. The register’s POR state is 0000 0001, so a I2C is a trademark of Philips Corp. 10 FUNCTION Provide the current MAX1618 slave address that was latched at POR (Table 6) Logic 1 Receive Byte transmission (a protocol that lacks the command byte) that occurs immediately after POR returns the current remote temperature data. The one-shot command immediately forces a new conversion cycle to begin. A new conversion begins in software standby mode (RUN/STOP bit = high). The device returns to standby mode after the conversion. If a conversion is in progress when a one-shot command is received, the command is ignored. If a one-shot command is received in autoconvert mode (RUN/STOP bit = low) between conversions, a new conversion begins; the conversion rate timer is reset, and the next automatic conversion takes place after a full delay elapses. Configuration Byte Functions The configuration byte register (Table 4) is used to mask (disable) interrupts, to put the device in software standby or thermostat mode, change the polarity of the alert output (thermostat mode only), and to change the diode bias current. The lower three bits are internally driven low (000), making them “don’t care” bits. Write zeros to these bits. The serial interface can read back this register’s contents. Status Byte Functions The status byte register (Table 5) indicates which (if any) temperature thresholds have been exceeded. This byte also indicates whether the ADC is converting and whether there is a fault in the remote diode DXP-DXN path. After POR, the normal state of all the flag bits is zero, assuming none of the alarm conditions is present. The status byte is cleared by any successful read of the status byte. Note that the ALERT interrupt latch is not automatically cleared when the status flag bit is cleared. ______________________________________________________________________________________ Remote Temperature Sensor with SMBus Serial Interface MAX1618 Table 3. Command-Byte Bit Assignments REGISTER COMMAND POR STATE FUNCTION RFU 00h N/A RRTE 01h 0000 0000* Reserved for future use RSL 02h N/A RCL 03h 0000 1000 Read configuration byte RCRA 04h 0000 0111 Read conversion rate byte (not supported by MAX1618) RFU 05h N/A Reserved for future use RFU 06h N/A Reserved for future use Read remote temperature; returns latest temperature Read status byte (flags, busy signal) RRHI 07h 0111 1111 Read remote THIGH limit RRLS 08h 1100 1001 Read remote TLOW limit WCA 09h N/A Write configuration byte WCRW 0Ah N/A Write conversion rate byte (not supported by MAX1618) RFU 0Bh N/A Reserved for future use RFU 0Ch N/A Reserved for future use WRHA 0Dh N/A Write remote THIGH limit WRLN 0Eh N/A Write remote TLOW limit OSHT 0Fh N/A One-shot command MFGID FEh 01001101 Read manufacturer ID code DEVID FFh 00000010 Read device ID code *If the device is in hardware standby mode at POR, the temperature register reads 0°C. Table 4. Configuration-Byte Bit Assignments BIT NAME POR STATE 7 (MSB) MASK 0 Masks all ALERT interrupts when high. 0 Standby mode control bit. If high, the device immediately stops converting and enters standby mode. If low, the device converts in either one-shot or timer mode. 0 ALERT pin polarity control in thermostat mode. 0 = active low 1 = active high 0 Enables thermostat mode when high. 6 5 4 RUN/ STOP POL THERM FUNCTION 3 ID 1 Enables diode bias current. 0 (Logic Low) = 5µA to 50µA (typ) 1 (Logic High) = 10µA to 100µA (typ) 2 to 0 RFU 0 Reserved for future use. Table 5. Status-Byte Bit Assignments BIT NAME FUNCTION 7 (MSB) BUSY A high indicates that the ADC is busy converting. 6, 5 RFU Reserved for future use (returns 0). RHIGH* A high indicates that the remote hightemperature alarm has activated. In thermostat mode, this bit is always in the same state as the ALERT output. 3 RLOW* A high indicates that the remote lowtemperature alarm has activated. In thermostat mode, this bit is always zero. 2 DIODE A high indicates a remote-diode fault (open-circuit, shorted diode, or DXP short to GND). 1, 0 (LSB) RFU 4 Reserved for future use (returns 0). *In ALERT mode, the HIGH and LOW temperature alarm flags stay high until cleared by POR or until the status byte register is read. ______________________________________________________________________________________ 11 MAX1618 Remote Temperature Sensor with SMBus Serial Interface Table 6. Slave Address Decoding (ADD0 and ADD1) ADD0 ADD1 ADDRESS GND GND 0011 000 GND High-Z 0011 001 Table 7. SOT23 Type Remote-Sensor Transistor Manufacturers MANUFACTURER MODEL NUMBER Central Semiconductor (USA) CMPT3904 Fairchild Semiconductor (USA) MMBT3904 GND VCC 0011 010 High-Z GND 0101 001 Motorola (USA) MMBT3904 High-Z High-Z 0101 010 Rohm Semiconductor (Japan) SST3904 High-Z VCC 0101 011 Siemens (Germany) SMBT3904 VCC GND 1001 100 VCC High-Z 1001 101 Zetex (England) FMMT3904CT-ND VCC VCC 1001 110 Note: Transistors must be diode-connected (short the base to the collector). Note: High-Z means the pin is left unconnected and floating. Slave Addresses The device address can be set to one of nine different values by pin-strapping ADD0 and ADD1 so more than one MAX1618 can reside on the same bus without address conflicts (Table 6). The address pin states are checked at POR only, and the address data stays latched to reduce quiescent supply current due to the bias current needed for highimpedance (high-Z) state detection. The MAX1618 also responds to the SMBus Alert Response slave address (see the Alert Response Address section). POR and UVLO The MAX1618 has a volatile memory. To prevent ambiguous power-supply conditions from corrupting the data in the memory and causing erratic behavior, a POR voltage detector monitors VCC and clears the memory if VCC falls below 1.7V (typical, see the Electrical Characteristics table). When power is first applied and VCC rises above 1.75V (typ), the logic blocks begin operating, although reads and writes at VCC levels below 3V are not recommended. A second VCC comparator, the ADC UVLO comparator, prevents the ADC from converting until there is sufficient headroom (VCC = 2.8V typ). Power-Up Defaults: • Interrupt latch is cleared. • Address select pins are sampled. • Command byte is set to 01h to facilitate quick remote Receive Byte queries. • THIGH and TLOW registers are set to max and min limits, respectively. • Device is in normal mode. (ALERT acts as a latched interrupt output.) Applications Information Remote Diode Selection Temperature accuracy depends on having a goodquality, diode-connected, small-signal transistor. Accuracy has been experimentally verified for all of the devices listed in Table 7. The MAX1618 can also directly measure the die temperature of CPUs and other integrated circuits with on-board temperature sensing diodes, such as the Intel Pentium II®. The transistor must be a small-signal type with a relatively high forward voltage. This ensures that the input voltage is within the A/D input voltage range. The forward voltage must be greater than 0.25V at 10µA at the highest expected temperature. The forward voltage must be less than 0.95V at 100µA at the lowest expected temperature. The base resistance has to be less than 100Ω. Tight specification of forward-current gain (+50 to +150, for example) indicates that the manufacturer has good process controls and that the devices have consistent VBE characteristics. Do not use power transistors. ADC Noise Filtering The integrating ADC has inherently good noise rejection, especially of low-frequency signals such as 60Hz/120Hz power-supply hum. Micropower operation places constraints on high-frequency noise rejection. Lay out the PCB carefully with proper external noise filtering for high-accuracy remote measurements in electrically noisy environments. Filter high-frequency electromagnetic interference (EMI) at DXP and DXN with an external 2200pF capacitor connected between the two inputs. This capacitor can be increased to about 3300pF (max), including cable capacitance. A capacitance higher than 3300pF Pentium II is a registered trademark of Intel Corp. 12 ______________________________________________________________________________________ Remote Temperature Sensor with SMBus Serial Interface tLOW B C tHIGH E D F G I H J K L MAX1618 A M SMBCLK SMBDATA tSU:STA tHD:STA tSU:DAT A = START CONDITION B = MSB OF ADDRESS CLOCKED INTO SLAVE C = LSB OF ADDRESS CLOCKED INTO SLAVE D = R/W BIT CLOCKED INTO SLAVE E = SLAVE PULLS SMBDATA LINE LOW tHD:DAT tSU:STO tBUF J = ACKNOWLEDGE CLOCKED INTO MASTER K = ACKNOWLEDGE CLOCK PULSE L = STOP CONDITION, DATA EXECUTED BY SLAVE M = NEW START CONDITION F = ACKNOWLEDGE BIT CLOCKED INTO MASTER G = MSB OF DATA CLOCKED INTO SLAVE H = LSB OF DATA CLOCKED INTO SLAVE I = SLAVE PULLS SMBDATA LINE LOW Figure 4. SMBus Write Timing Diagram A B tLOW C D E F G tHIGH H J I K SMBCLK SMBDATA tSU:STA tHD:STA tSU:STO tSU:DAT A = START CONDITION B = MSB OF ADDRESS CLOCKED INTO SLAVE C = LSB OF ADDRESS CLOCKED INTO SLAVE D = R/W BIT CLOCKED INTO SLAVE E = SLAVE PULLS SMBDATA LINE LOW F = ACKNOWLEDGE BIT CLOCKED INTO MASTER G = MSB OF DATA CLOCKED INTO MASTER H = LSB OF DATA CLOCKED INTO MASTER tBUF I = ACKNOWLEDGE CLOCK PULSE J = STOP CONDITION K = NEW START CONDITION Figure 5. SMBus Read Timing Diagram introduces errors due to the rise time of the switchedcurrent source. PC Board Layout 1) Place the MAX1618 as close as practical to the remote diode. In a noisy environment, such as a computer motherboard, this distance can be 4 inches to 8 inches (typ) or more, as long as the worst noise sources (such as CRTs, clock generators, memory buses, and ISA/PCI buses) are avoided. 2) Do not route the DXP–DXN lines next to the deflection coils of a CRT. Also, do not route the traces across a fast memory bus, which can easily introduce +30°C error, even with good filtering. Otherwise, most noise sources are fairly benign. 3) Route the DXP and DXN traces parallel and close to each other, away from any high-voltage traces such as +12VDC. Avoid leakage currents from PC board contamination. A 20MΩ leakage path from DXP to ground causes approximately +1°C error. 4) Connect guard traces to GND on either side of the DXP-DXN traces (Figure 5). With guard traces in place, routing near high-voltage traces is no longer an issue. 5) Route as few vias and crossunders as possible to minimize copper/solder thermocouple effects. 6) When introducing a thermocouple, make sure that both the DXP and the DXN paths have matching thermocouples. In general, PC board-induced thermocouples are not a serious problem. A copper- ______________________________________________________________________________________ 13 MAX1618 Remote Temperature Sensor with SMBus Serial Interface GND 10 MILS 10 MILS DXP MINIMUM 10 MILS DXN Excess capacitance at DX_ limits practical remote-sensor distances (see Typical Operating Characteristics). For very long cable runs, the cable's parasitic capacitance often provides noise filtering, so the recommended 2200pF capacitor can often be removed or reduced in value. Cable resistance also affects remote-sensor accuracy. A 1Ω series resistance introduces about +1/2°C error. 10 MILS GND Figure 6. Recommended DXP/DXN PC Traces solder thermocouple exhibits 3µV/°C, and it takes approximately 200µV of voltage error at DXP-DXN to cause a +1°C measurement error, so most parasitic thermocouple errors are swamped out. 7) Use wide traces. Narrow traces are more inductive and tend to pick up radiated noise. The 10mil widths and spacings recommended in Figure 5 are not absolutely necessary (as they offer only a minor improvement in leakage and noise), but try to use them where practical. 8) Note that copper cannot be used as an EMI shield. Use only ferrous materials such as steel. Placing a copper ground plane between the DXP-DXN traces and traces carrying high-frequency noise signals does not help reduce EMI. Twisted Pair and Shielded Cables For remote-sensor distances longer than 8 inches, or in particularly noisy environments, a twisted pair is recommended. Its practical length is 6 feet to 12 feet (typ) before noise becomes a problem, as tested in a noisy electronics laboratory. For longer distances, the best solution is a shielded twisted pair like that used for audio microphones. For example, Belden #8451 works well for distances up to 100 feet in a noisy environment. Connect the twisted pair to DXP and DXN and the shield to GND, and leave the shield’s remote end unterminated. 14 Programming Example: Clock-Throttling Control for CPUs Listing 1 gives an untested example of pseudocode for proportional temperature control of Intel mobile CPUs through a power-management microcontroller. This program consists of two main parts: an initialization routine and an interrupt handler. The initialization routine checks for SMBus communications problems and sets up the MAX1618 configuration. The interrupt handler responds to ALERT signals by reading the current temperature and setting a CPU clock duty factor proportional to that temperature. The relationship between clock duty and temperature is fixed in a look-up table contained in the microcontroller code. Note: Thermal management decisions should be made based on the latest external temperature obtained from the MAX1618 rather than the value of the Status Byte. The MAX1618 responds very quickly to changes in its environment due to its sensitivity and its small thermal mass. High and low alarm conditions can exist at the same time in the Status Byte, because the MAX1618 is correctly reporting environmental changes around it. ______________________________________________________________________________________ Remote Temperature Sensor with SMBus Serial Interface MAX1618 Listing 1. Pseudocode Example /* Beginning of the header file which sets the constants */ int NumStates = 10; int RRTE = 1; register */ int WCA = 9; register */ int RSL = 2; int WRHA = 13; register */ int WRLN = 14; register */ int NoError int Nobody int MAX1618Addr = 84; ADD0,ADD1=open */ int InitConfig = 8; RUN/STOP=0 */ int HighAdder = 2; int LowSubtracter */ int CollisionMask indicates collision */ int DiodeFaultMask status bit */ int TempChangeMask bits */ /* 0x01, command for reading remote temp /* 0x09, command for writing configuration /* 0x02, command for reading status register */ /* 0x0D, command for writing remote THIGH limit /* 0x0E, command for writing remote TLOW limit = 0; = 0; /* 0x54, default address for MAX1618, /* 0x08, configure MAX1618 to MASK=0 and /* 2oC offset for calculating THIGH limit */ = 4; /* 4oC offset for calculating TLOW limit = 1; /* 0x01, mask for status bit that = 4; /* 0x04, mask for the OPEN diode fault = 24; /* 0x18, mask for RHIGH and RLOW status array State[0..NumStates] of int; State[0] = -65 oC /* 100% */ State[1] = 72 oC /* 87.5% */ State[2] = 74 oC /* */ State[3] = 76 oC /* 62.5% */ State[4] = 78 oC /* */ State[5] = 80 oC /* 37.5% */ State[6] = 82 oC /* */ State[7] = 84 oC /* 12.5% */ State[8] = 86 oC /* 0.0% */ State[9] = 88 oC /* State[10] = 127 oC At or above this temperature CPU duty cycle is At or above this temperature CPU duty cycle is At or above this temperature CPU duty cycle is 75% At or above this temperature CPU duty cycle is At or above this temperature CPU duty cycle is 50% At or above this temperature CPU duty cycle is At or above this temperature CPU duty cycle is 25% At or above this temperature CPU duty cycle is At or above this temperature CPU duty cycle is At or above this temperature SHUT SYSTEM OFF! */ /* Extra array location so looping is easier */ /* End of the header file */ ______________________________________________________________________________________ 15 MAX1618 Remote Temperature Sensor with SMBus Serial Interface Listing 1. Pseudocode Example (continued) int Initialization() { int ErrorCode = NoError; /* Test the SMBus communications path to the MAX1618 by writing the configuration and initial temperature limits; if SMBus communication was unsuccessful, power the system down. Note that the MAX1618Write procedure takes three parameters: the command code of the register to be written, the data to write, and a pointer to the the error code variable. If the error code variable does not equal NoError before the execution of MAX1618Write, MAX1618Write does nothing. If the SMBus communication fails in MAX1618Write, the error code variable is set to the type of error (for example a NACK, i.e. MAX1618 did not acknowledge). This code assumes that the BIOS is already in thermal state 0 (not throttling, i.e. full CPU clock rate) when the initialization routine is executed. */ MAX1618Write(WCA, InitConfig, &ErrorCode); /* MASK=0 and RUN/STOP=0 */ MAX1618Write(WRLN, LowestTemp, &ErrorCode); /* TLOW = -65oC */ MAX1618Write(WRHA, State[0] + HighAdder, &ErrorCode) /* THIGH = 72oC */ if (ErrorCode != NoError) then { /* Power off the system */ } /* End of if (ErrorCode ... */ return (ErrorCode); } 16 /* End of Initialization routine */ ______________________________________________________________________________________ Remote Temperature Sensor with SMBus Serial Interface MAX1618 Listing 1. Pseudocode Example (continued) int ALERT_IntHandler() { int ErrorCode = NoError; int WhoDunnit = Nobody; int FoundState = 0; int StatusInfo = 0; int TempHigh; int TempLow; /* This interrupt handler verifies that the MAX1618 is the source of the interrupt (and also clears the interrupt) via the SMBus Alert Response address; checks the status byte to ensure that a temperature change did indeed cause the interrupt; reads the remote temperature; programs a corresponding clock-throttling duty cycle, and sets up new Thigh and Tlow limits. */ ReadAlertResponse(&WhoDunnit, &ErrorCode); if (WhoDunnit == MAX1618Addr) then { MAX1618Read(RSL, &StatusInfo, &ErrorCode); if (((StatusInfo & CollisionMask) != 0) and (ErrorCode == NoError)) then MAX1618Read(RSL, &StatusInfo, &ErrorCode); if (StatusInfo & DiodeFaultMask) != 0) then { /* Shut down system because thermal diode doesn't work */ } else if ((StatusInfo & TempChangeMask) != 0) then { MAX1618Read(RRTE, &TempRead, &ErrorCode); while ((TempRead >= State[FoundState + 1]) and (FoundState < (NumStates - 1)) do FoundState++; if (FoundState == (NumStates - 1)) then { /* Ahhhhh!!! SHUT SYSTEM OFF!!!! */ } else { /* adjust clock duty cycle */ TempHigh = TempRead + HighAdder; TempLow = TempRead - LowSubtracter; MAX1618Write(WRHA, TempHigh, &Error); MAX1618Write(WRLN, TempLow, &Error); } /* End of if (FoundState ... */ } /* End of if (((StatusInfo .. else if ... */ /* Handle local temp status bits if set */ else } { /* Handle cases for other interrupt sources */ } /* End of if (WhoDunnit ... */ return(ErrorCode); ______________________________________________________________________________________ 17 Remote Temperature Sensor with SMBus Serial Interface MAX1618 Chip Information TRANSISTOR COUNT: 9911 18 ______________________________________________________________________________________ Remote Temperature Sensor with SMBus Serial Interface 10LUMAX.EPS ______________________________________________________________________________________ 19 MAX1618 Package Information MAX1618 Remote Temperature Sensor with SMBus Serial Interface NOTES 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. 20 ____________________Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 © 1999 Maxim Integrated Products Printed USA is a registered trademark of Maxim Integrated Products.