ADT7473/ADT747...

  • 2022-09-23 11:45:21

ADT7473/ADT7473-1 Controllers

The ADT7473/ADT7473-1 controllers are a thermal monitor and multiple PWM fan controllers for noise-sensitive or power-sensitive applications that require active system cooling. The ADT7473/ADT7473-1 can drive fans with a low frequency or high frequency drive signal, monitor the temperature of up to two remote sensing diodes plus its own internal temperature, and measure and control the speed of up to four fans at the lowest possible speed speed to keep noise to a minimum.

An automatic fan speed control loop optimizes fan speed for a given temperature. The unique Dynamic T control mode enables intelligent management of the system's thermal/acoustics. Min heat input can be used. The ADT7473/ADT7473-1 also provide thermal protection of the system using a bidirectional thermal pin as the output to prevent overheating of the system or components.

Features: Control and monitor up to 4 fans; high and low frequency fan drive signals; 1 on-chip and 2 remote temperature sensors; series resistance cancellation on remote channels; extended temperature measurement range up to 191°C; dynamic T control mode intelligently optimizes system acoustics; automatic fan speed control mode controls system cooling based on measured temperature; enhanced acoustic mode significantly reduces user perception of fan speed changes; thermal output thermal protection function; monitors the performance of Intel Pentium 4 processors performance impact; thermal control circuit via heat input; 3-wire and 4-wire fan speed measurement; limit comparison of all monitored values; compliant with SMBus 2.0 electrical specification (fully compliant with SMBus 1.1); these devices are lead-free, halogen-free/bfr and are RoHS.

The ADT7473/ADT7473-1 is a complete thermal monitor and multi-fan controller for any system requiring thermal monitoring and cooling. Devices communicate with the system through the serial system management bus. The serial bus controller has a serial data line (pin 16) for reading and writing addresses and data and an input line (pin 1) for the serial clock. All control and programming functions of the ADT7473/ADT7473-1 are performed over the serial bus. Additionally, the pin can be reconfigured to smbalert output to signal out of limit conditions.

recommended implementation

Configuring the ADT7473 as shown in Figure 12 allows the system designer to use the following features: Two PWM outputs for fan control of up to three fans. (Front and rear chassis fans are connected in parallel.); Three tachometer fan speed measurement inputs; V measured internally through pin 3; CPU temperature measured using remote 1 temperature channel; ambient temperature measured through remote 2.

Temperature channel, bidirectional thermal pin. This feature allows Intelpentium 4 Prochhot monitoring and can be output as overheat heat. It can also be programmed to interrupt output for the smbalert system.

serial bus interface

On PCs and servers, the ADT7473/ADT7473-1 is controlled using SMBus. The ADT7473/ADT7473-1 connects to this bus as a slave device under the control of a master controller (usually (but not necessarily)).

The ADT7473 has a fixed 7-bit serial bus address of 0101110 or 0x2E. The read/write bits must be added to get an 8-bit address (01011100 or 0x5C). When the ADT7473-1 is powered up with pin 8 (pwm3/addren) high, the default SMBus address for the ADT7473-1 is 0101110 or 0x2e. If multiple ADT7473-1s are used in the system, each ADT7473-1 is in ADDR select mode by holding pin 8 low at power-up. Then, the logic state of pin 4 determines the smbus address of the device. The logic of these pins is sampled at power up.

When the serial bus address byte matches the selected slave address, the device address is sampled at power-up and locked on the first valid smbus transaction, more precisely at the beginning of the eighth scl pulse on the low-to-high transition. Use addren pin/addr to select pin. After this, any attempt to change the address will have no effect.

The ability to make hardwired changes to the SMBUS slave address allows the user to avoid conflicts with other devices sharing the same serial bus, for example if multiple ADT7473-1s are used in the system.

Data is sent over the serial bus in a sequence of 9 clock pulses: 8 bits of data followed by an acknowledgment bit from the slave. Transitions on the data line must occur during the low period of the clock signal and remain stable during the high period, as a low-to-high transition while the clock is high may be interpreted as a stop signal. The number of bytes of data that can be transferred over the serial bus in a single read or write operation is limited only by what the master and slave devices can handle.

A stop condition is established when all data bytes are read or written. In write mode, the master asserts a stop condition by pulling the data line high during the tenth clock pulse. In read mode, the master overwrites the acknowledgment bit by pulling the data line high in the low cycle before the ninth clock pulse; this is called no acknowledgment. The master asserts the stop condition by taking the data line low during the low period before the tenth clock pulse and then high during the tenth clock pulse.

Any amount of data can be transferred over the serial bus in one operation, but reads and writes cannot be mixed in one operation because the operation type is determined at the beginning and cannot be followed without starting a new operation Change.

In the ADT7473/ADT7473-1, a write operation consists of one or two bytes, and a read operation consists of one byte. To write data to or read data from the device data registers, the address pointer register must be set up so that the correct data register can be addressed before data can be written to or read from it. The first byte of a write operation always contains the address stored in the address pointer register. If data is written to the device, the write operation consists of writing the second data byte of the register selected by the address pointer register.

This write operation is shown in Figure 17. The device address is sent over the bus, then R/W is set to 0. Followed by two data bytes. The first data byte is the address of the internal data register to be written, which is stored in the address pointer register. The second data byte is the data to be written to the internal data register.

When reading data from a register, there are two possibilities:

1. If the address point register value of the ADT7473/ADT7473-1 is unknown or not the desired value, it must be set to the correct value before data can be read from the desired data register. This is done by performing a write to the ADT7473/ADT7473-1, but since no data is written to the register, only a data byte containing the register address is sent. As shown in Figure 18. A read operation is then performed, including the serial bus address with the r/w bit set to 1, followed by the data byte read from the data register. As shown in Figure 19.

2. If it is known that the address pointer register has been read at the desired address, data can be read from the corresponding data register without first writing to the address pointer register, as shown in Figure 19.

If the value of the address pointer register is already correct, a data byte can be read from the data register without first writing to the address pointer register. However, it is not possible to write data to the address pointer register without writing to the address pointer register, because the first data byte written is always written to the address pointer register.

In addition to supporting the Send Bytes and Receive Bytes protocols, the ADT7473/ADT7473-1 also supports the Read Bytes protocol. If multiple read or write operations must be performed in succession, the host can send a repeated START condition instead of a STOP condition to start a new operation.

write operation

The smbus specification defines several protocols for various read and write operations. The ADT7473/ADT7473-1 use the following SMBus write protocol. The following abbreviations are used in the chart: S—Start; P—Stop; R Read; W—Write; A—Acknowledge;

send bytes

In this operation, the master sends a single command byte to the slave as follows:

1. The master asserts the start condition as SDA.

2. The master sends a 7-bit slave address, which is followed by the write bit (active low bit).

3. The addressing slave asserts ack on sda.

4. The host sends the command code.

5. The slave asserts ack on sda.

6. The primary server declares a stop condition on sda, and the transaction ends.

For the ADT7473/ADT7473-1, the send byte protocol is used to write a register address to ram so that a single byte can be subsequently read from the same address. This operation is shown in Figure 20.

If the host is required to read data from a register immediately after setting the address, it can assert a Repeated Start condition immediately after the final ack and perform a single-byte read without asserting an Intermediate Stop condition.

write bytes

In this operation, the master device sends a command byte and a data byte to the slave device as follows:

1. The master asserts a start condition on sda.

2. The master sends a 7-bit slave address, which is followed by the write bit (active low bit).

3. The addressing slave asserts ack on sda.

4. The host sends the command code.

5. The slave asserts ack on sda.

6. The host sends a data byte.

7. The slave asserts ack on sda.

8. The primary server declares a stop condition on sda and the transaction ends.

read operation

The ADT7473/ADT7473-1 use the following SMBus read protocol.

receive bytes

This operation is useful when reading a single register repeatedly. The registered address must be set in advance. In this operation, the master device receives a single byte from the slave device as follows:

1. The master asserts the start condition as SDA.

2. The host sends a 7-bit slave address, and the slave address is followed by the read bit (high bit).

3. The addressing slave asserts ack on sda.

4. The host receives a data byte.

5. The captain did not confirm on sda.

6. The primary server declares a stop condition on sda and the transaction ends.

In the adt7473/adt7473-1, the receive byte protocol is used to read a single byte of data from a register whose address was previously set by a send byte or write byte operation. This operation is shown in Figure 22.

Alert response address

The alert response address (ara) is a function of the smbus device that allows the interrupting device to identify itself to the host when multiple devices are present on the same bus.

smbalert output can be used as interrupt output or smbalert. One or more outputs can be connected to a common smbalert line connected to the main server. If the device's smbalert line goes low, the following events occur: smbalert is pulled low; the host initiates a read operation and sends an alert response address (ara=0001 100). This is a general calling address that cannot be used as a specific device address; smbalert outputs a low device response alert response address and the host reads its device address. The device's address is now known and can be interrogated in the usual way; if the smbAlert output of multiple devices is low, the device with the lowest device address has priority consistent with normal smbus arbitration.

Once the ADT7473/ADT7473-1 responds to the alert response address, the host must read the status; the registers and smbalert are cleared only when the error condition disappears.

SMBus timeout

The ADT7473/ADT7473-1 include an SMBus timeout function. If there is no smbus activity for 35 ms, the adt7473/adt7473-1 assumes the bus is locked and releases the bus. This prevents the device from locking up or holding onto data required by smbus. Some SMBus controllers cannot use the SMBus timeout feature, so it can be disabled.

Voltage measurement input

The ADT7473/ADT7473-1 have an external voltage measurement channel and can also measure its own supply voltage, VCC. Pin 14 measures VCCP. VCC supply voltage measurement is made through the V pin (pin 3). In computer systems, the V input can be used to monitor the supply voltage of the chipset.

analog to digital converter

All analog inputs are multiplexed into on-chip, successive approximation, analog-to-digital converters. (ADC) resolution is 10 bits. The basic input range is 0 V to 2.25 V, but the input has built-in attenuators, allowing V to be measured without any external components. To allow for tolerances in supply voltages, the ADC produces an output of 3/4 full scale (768 decimal or 300 hex) for the nominal input voltage, so there is plenty of room to handle overvoltages.

input circuit

The internal structure of the V analog input is shown in Figure 23. The input circuit consists of input protection diodes, attenuators and capacitors to form a first-order low-pass filter that provides input immunity to high-frequency noise.

VCCP Limit Register

Associated with the v measurement channel is a high and low limit register. Exceeding the programmed upper or lower limit sets the corresponding status bit, and exceeding either limit also generates an smbalert interrupt.

VCCP Limit Register

When the ADC is running, it samples and converts the voltage input within 711s, averaging 16 conversions to reduce noise; nominally measured at 11.38ms.

ADDITIONAL ADC FUNCTIONS FOR VOLTAGE MEASUREMENTS Many other functions are available on the ADT7473/ADT7473-1 to increase the flexibility of the system designer.

off average

For each voltage measurement read from the value register, 16 readings have actually been taken internally and the results are averaged before putting them into the value register. When faster conversions are required, setting Bit 4 (0x73) of Configuration Register 2 will turn off averaging. This effectively speeds up reads by a factor of 16 (711s), but reads can be noisier.

Bypass Voltage Input Attenuator

Setting Bit 5 of Configuration Register 2 (0x73) will remove the attenuation circuit from the V input. This allows the user to directly connect external sensors or rescale the analog voltage measurement input for other applications. The input range of the adc without the attenuator is 0v to 2.25v.

single channel adc conversion

Setting Bit 6 of Configuration Register 2 (0x73) places the ADT7473/ADT7473-1 in single-channel ADC conversion mode. In this mode, the ADT7473/ADT7473-1 can only read a single voltage channel. If using the internal ADT7473/ADT7473-1 clock, the selected input is read every 711s. Select the appropriate ADC channel by writing to Bits<7:5> of the TACH1 Minimum High Byte register (0x55).

temperature measurement method

An easy way to measure temperature is to use the negative temperature coefficient of a diode to measure the base-emitter voltage (V) of a transistor operating at a constant current. Unfortunately, this technique requires calibration to remove the effect of the absolute value of v, which varies from device to device.

The technique used in the ADT7473/ADT7473-1 measures the change in V when the device is operated at three different currents. Previous devices only used two operating currents, but using a third current automatically removes the resistance in series with the external temperature sensor.

Figure 24 shows the input signal conditioning used to measure the output of an external temperature sensor. This figure shows the external sensor as a substrate transistor, but could also be a discrete transistor. If a discrete transistor is used, the collector is not grounded and should be connected to the base. To prevent ground noise from interfering with the measurement, the more negative terminal of the sensor is not referenced to ground, but is biased to ground by an internal diode at the D input. C1 can optionally be added as a noise filter (maximum 1000 pF recommended). However, in noisy environments, a better option is to add a filter, as described in the Noise Filtering section.

Local temperature measurement

The ADT7473/ADT7473-1 contain an on-chip bandgap temperature sensor whose output is digitized by an on-chip 10-bit ADC. The 8-bit msb temperature data is stored in the local temperature register (0x26). Since both positive and negative temperatures can be measured, temperature data is stored in offset 64 or two's complement format, as shown in Table 14 and Table 15. In theory, the temperature sensor and ADC can measure temperatures from -63°C to +127°C (or -63°C to +191°C in the extended temperature range) with +0.25°C resolution. However, this is outside the operating temperature range of the device, so local temperature measurements outside the operating temperature range of the ADT7473/ADT7473-1 are not possible.

Remote temperature measurement

The ADT7473/ADT7473-1 can measure the temperature of two remote diode sensors or diode-connected transistors connected to pins 10 and 11 or pins 12 and 13.

The forward voltage of diodes or diode-connected transistors operating at constant current shows a negative temperature coefficient of about -2 mV/°C. Unfortunately, the absolute value of V varies from device to device and requires individual calibration to remove this, so this technique is not suitable for mass production. The technique used in the ADT7473/ADT7473-1 is to measure the change in V as the device operates at three different currents. This is given by:

where: k is the Boltzmann constant. t is the absolute temperature in Kelvin; Q is the charge on the carrier; n is the ratio of the two currents.

Figure 24 shows the input signal conditioning used to measure the output of a remote temperature sensor. This image shows an external sensor as a substrate transistor used to monitor temperature on some microprocessors. It can also be discrete transistors like 2N3904/2N3906.

If a discrete transistor is used, the collector is not grounded and should be connected to the base. If using a PNP transistor, connect the base to the D- input and the transmitter to the D+ input. If using an NPN transistor, the transmitter is connected to the D- input and the base is connected to the D+ input. Figure 25 and Figure 26 show how to connect the ADT7473/ADT7473-1 to an NPN or PNP transistor for temperature measurement. To prevent ground noise from interfering with the measurement, the more negative side of the sensor is not referenced to ground, but is biased to ground by an internal diode at the D- input.

To measure the voltage, the operating current through the sensor is switched between three related currents. n1×i and n2×i are different multiples of current i, as shown in Figure 24. The current through the temperature diode switches between i and n1×i, giving v, and then switches between i and n2×i, giving v. The temperature can then be calculated using the two v measurements. This method also eliminates the effect of series resistance on temperature measurements.

The resulting v-waveform is passed through a 65khz low-pass filter to remove noise and then goes to a chopper-stabilized amplifier. This will amplify and rectify the waveform to produce a DC voltage proportional to V. The ADC digitizes this voltage and produces a temperature measurement. To reduce the effect of noise, digital filtering is performed by averaging the results over 16 measurement cycles.

As shown in Table 10, the results of the remote temperature measurement are stored in 10-bit two's complement format. Additional resolution for temperature measurements is stored in Extended Resolution Register 2 (0x77). This will give a temperature reading with a resolution of 0.25°C.

noise filtering

For temperature sensors operating in a noisy environment, it was previously practice to place a capacitor between the D+ and D- pins to help combat the effects of noise. However, large capacitance can affect the accuracy of temperature measurement, so the recommended maximum capacitance value is 1000 pf. Such capacitors reduce noise, but do not eliminate it, making the sensor difficult to use in very noisy environments.

The ADT7473/ADT7473-1 have a major advantage over other devices in eliminating the effects of noise on external sensors. Using the series resistance cancellation feature, a filter can be constructed between the external temperature sensor and the component. The effect of any filter resistance in series with the remote sensor is automatically removed from the temperature results.

The structure of the filter allows the ADT7473/ADT7473-1 and the remote temperature sensor to operate in noisy environments. Figure 27 shows a low-pass RC filter with the following values:

This filtering reduces both common-mode noise and differential noise.

Series Resistance Elimination

The parasitic resistance (in series with the remote diode) to the ADT7473/ADT7473-1 D+ and D- inputs is caused by a variety of factors, including PCB trace resistance and trace length. This series resistance shows up as a temperature offset in the remote sensor's temperature measurement. This error typically results in a 0.5°C offset per parasitic resistance in series with the remote diode.

The ADT7473/ADT7473-1 automatically eliminates the effect of this series resistance on temperature readings, giving more accurate results without requiring the user to describe the resistance. The ADT7473/ADT7473-1 are designed to automatically eliminate resistors up to 3K typically. It is transparent to the user using advanced temperature measurement methods. This feature allows resistors to be added to the sensor path to create filters, allowing the part to be used in noisy environments. See the Noise Filtering section for details.

Factors Affecting Diode Accuracy

Remote sensing diode

The ADT7473/ADT7473-1 are designed to work with substrate transistors or discrete transistors built into processors. Substrate transistors are usually of the pnp type, with the collector connected to the substrate. The discrete type can be a PNP or NPN transistor connected as a diode (base to collector shorted). If an NPN transistor is used, the collector and base are connected to D+ and the emitter is connected to D-. If a PNP transistor is used, the collector and base are connected to D- and the emitter is connected to D+.

To reduce errors due to variations in substrate transistors and discrete transistors, several factors should be considered:

(1) The ideality factor n of a transistor is a measure of the thermal diode's deviation from ideal behavior. The ADT7473/ADT7473-1 are trimmed to an n value of 1.008. When using a transistor with n not equal to 1.008, use the following formula to calculate the error introduced at temperature t (°C).

To take this into account, the user can write the t value to the offset register. The ADT7473/ADT7473-1 then automatically adds or subtracts it from the temperature measurement.

(2) Some CPU manufacturers specify high and low current levels for substrate transistors. The high current level of the ADT7473/ADT7473-1 is 96 A and the low current level, ILOW, is 6 A. If the current levels of the ADT7473/ADT7473-1 do not match the current levels specified by the CPU manufacturer, the offset may need to be removed. The CPU's datasheet suggests if this offset needs to be removed and how to calculate it. This offset can be programmed into the offset register. The caveat is that if multiple offsets must be considered, the algebraic sum of those offsets must be programmed into the offset register.

If discrete transistors are used with the ADT7473/ADT7473-1, best accuracy is obtained by selecting the device according to the following criteria: Base-emitter voltage greater than 0.25 V at 6 A at maximum operating temperature; at minimum operating temperature, Base-emitter voltage at 100 A is less than 0.95 V; base resistance is less than 100; small changes in H (such as 50 to 150) indicate tight control of VBE characteristics. Iron transistors, such as the 2N3904, 2N3906, or the equivalent in the SOT-23 package, are suitable devices to use.

Eliminate temperature errors

As CPUs run faster, it becomes more difficult to avoid high frequency clocks when routing D+/D- traces around the system board. Even if the recommended layout guidelines are followed, some temperature errors can still be attributed to noise coupled onto the D+/D- lines. Constant high frequency noise usually attenuates or increases the temperature measurement by a linear constant value.

The ADT7473/ADT7473-1 have temperature offset registers for the Remote 1 and Remote 2 temperature channels at Register 0x70 and Register 0x72. By performing a one-time calibration of the system, the user can determine the offset caused by system board noise and zero it out using the offset register. The offset register automatically adds a 2's complement 8-bit readout to each temperature measurement. The LSB adds a +0.5°C offset to the temperature reading, so the 8-bit register effectively allows temperature offsets up to ±64°C with +0.5°C resolution. This ensures that the readings in the temperature measurement registers are as accurate as possible.

ADT7460/ADT7473/ADT7473-1 Backward Compatibility Mode

All temperature measurements are stored in the zone temperature value registers (Register 0x25, Register 0x26, and Register 0x27) in two's complement in the range -63°C to +127°C by setting Bit 1 of Configuration Register 5 (0x7C) between. (The ADT7473/ADT7473-1 still calculate based on the offset 64 extended range and clamp the result, if necessary.) The temperature limits must be reprogrammed in two's complement. If a two's complement temperature below -63°C is entered, the temperature is clamped to -63°C. In this mode, the diode fault state remains -128°C=1000 0000, while in the extended temperature range (-64°C to +191°C) the fault state is represented by -64°C=0000 0000.

Reading temperature from the ADT7473/ADT7473-1

It is important to note that the temperature can be read from the ADT7473/ADT7473-1 as an 8-bit value (with a resolution of 1°C) or a 10-bit value (with a resolution of 0.25°C). If only 1°C resolution is required, temperature readings can be taken at any time and in any particular order.

If a 10-bit measurement is required, it is read using 2 registers per measurement. The Extended Resolution Register (Register 0x77) should be read first. This will cause all temperature reading registers to freeze until all temperature reading registers are read from. This will prevent msb reads from updating when both lsbs of msb are read and vice versa.

Additional ADC function for temperature measurement

Many other features are available on the ADT7473/ADT7473-1 to enhance the flexibility of the system designer.

off average

For each temperature measurement read from the value register, 16 readings have actually been taken internally and the results are averaged before putting them into the value register. Sometimes a quick measurement is required. Setting Bit 4 of Configuration Register 2 (0x73) turns off averaging.

single channel adc conversion

Setting Bit 6 of Configuration Register 2 (0x73) places the ADT7473/ADT7473-1 in single-channel ADC conversion mode. In this mode, the ADT7473/ADT7473-1 can only read a single temperature channel. Select the appropriate ADC channel by writing to Bits<7:5> of the TACH1 Minimum High Byte register (0x55).

overtemperature event

Overtemperature events on any temperature channel can be automatically detected and handled in automatic fan speed control mode. Register 0x6a to. Register 0x6c is the thermal limit. When the temperature exceeds its thermal limit, all PWM outputs operate at 100% duty cycle or the maximum PWM duty cycle (Register 0x38, Register 0x39, and Register 0x3A) if Configuration Register 4 (0x7D) is set ) of bit 3. The fan keeps running at this speed until the temperature drops below .therm minus the hysteresis; this can be disabled by setting the boost bit in Bit 2 of Configuration Register 3 (0x78). The hysteresis value for this thermal limit is the value programmed into the hysteresis registers (Register 0x6d and Register 0x6e). The default hysteresis value is 4°C.

Limits, Status Registers and Interrupts

limit value

Associated with each measurement channel on the ADT7473/ADT7473-1 are upper and lower limits. These can form the basis for system status monitoring; status bits can be set for any violations of limits and by polling the device. Alternatively, a smbalert interrupt can be generated to flag the processor or microcontroller as out of bounds.

16-bit limit

The fan speed measurement is a 16-bit result. The fan speed limit is also 16 bits, consisting of a high byte and a low byte. Since the fan running at rpm or stalling is often the only conditions of interest, there is only a high limit to the fan speed. Because the fan speed cycle is actually measured, exceeding this limit indicates a slow or stalled fan.

Compare out of limit

After all limits are programmed, the ADT7473/ADT7473-1 can be enabled for monitoring. The ADT7473/ADT7473-1 measure all voltage and temperature measurements in loop mode and set the appropriate status bits for the limit violation conditions. Tachometer measurements are not part of the loop cycle. The comparison is done differently depending on whether the measured value is compared to an upper or lower limit.

upper bound > comparison performed

Lower bound ≤ for comparison

The voltage and temperature channels use window comparators for error detection and therefore have high and low limits. Only the low limit is used for fan speed measurement. This fan limit is only required in manual fan control mode.

Analog monitoring cycle time

The analog monitor cycle begins when a 1 is written to the start bit (bit 0) of configuration register 1 (0x40). By default, the ADT7473/ADT7473-1 power up with this bit set. The ADC measures each analog input in turn, and after each measurement is completed, the result is automatically stored in the corresponding value register. This loop monitoring loop will continue unless disabled by writing 0 of Configuration Register 1 to Bit 0.

Since ADCs typically run freely this way, the time it takes to monitor all analog inputs is usually not important, as the latest measurement for any input can be read out at any time.

For applications where monitoring cycle time is important, it can be easily calculated. The total number of channels measured are: one dedicated supply voltage input (V); supply voltage (V pin); local temperature; two remote temperatures.

As mentioned before, the adc performs cyclic conversions. The total monitoring cycle time for average voltage and temperature monitoring is 146 ms. The total monitoring cycle time for voltage and temperature monitoring with average disabled is 19 ms. The ADT7473/ADT7473-1 are derivatives of the ADT7467. As a result, the total conversion time in the adt7473/adt7473-1 is the same as that of the adt7467, although the adt7473/adt7473-1 has fewer monitoring channels.

The fan speed measurements are made in parallel and are not synchronized with the analog measurements.

Interrupt Status Register

The result of the limit comparison is stored in Interrupt Status Register 1 and Interrupt Status Register 2. The status register bits for each channel reflect the status of the last measurement and limit comparison on that channel. If the measured value is within the limits, the corresponding status register bit is cleared to 0. If the measurement exceeds the limit, the corresponding status register bit is set to 1.

The status of the various measurement channels can be polled by reading the status register over the serial bus. In Interrupt Status Register 1 (REG.0x41), 1 indicates that a limit exceeded event is flagged in Interrupt Status Register 2. This means that the user only needs to read the Interrupt Status Register 2 when this bit is set. Alternatively, pin 5 or pin 9 on the ADT7473 can be configured as the smbalert output, while only pin 9 can be configured as the smbalert on the ADT7473-1. This will automatically notify the system supervisor of the limit violation. Whenever the error condition that caused the interrupt is cleared, reading the status register clears the corresponding status bit. Status register bits (except ovt) are sticky. Whenever a status bit is set, indicating that a limit condition has been exceeded, it remains set even if the event that caused it has disappeared (until read). The only way to clear the status bits is to read the status register after the event disappears. The interrupt mask registers (Register 0x74 and Register 0x75) allow masking of a single interrupt source to cause smbalert. However, if one of the masked interrupt sources exceeds the limit, its associated status bit will be set in the interrupt status register. ovt is automatically cleared.

smbalert interrupt behavior

The status of the ADT747/ADT7473-1 can be polled and an SMBAlert interrupt can be generated to prevent a limit violation. When writing interrupt handler software, one must pay attention to the behavior of the smbalert output and status bits.

Figure 29 shows the behavior of the smbalert output and sticky status bits. Once the limit is exceeded, the corresponding status bit will be set to 1. The interrupt status bits remain set until the error condition disappears and the interrupt status register is read. Status bits are called sticky bits because they remain set until they are read by software. This ensures that if the software periodically polls the device, events that exceed the limit are not missed. Note that the smbalert output remains low for the entire duration of the read out-of-limit until the interrupt status register is read. This has implications for how software handles interrupts.

Note that overheat events are not sticky, reset stops immediately after an overheat condition. This also applies to smbalert if associated with an ovt event.

Handling smbalert interrupts

When preventing the system from being interrupted by bundled maintenance, it is recommended to handle the smbalert interrupt as follows:

1. Detect smbalert assertions.

2. Enter the interrupt handler.

3. Read the status register to identify the source of the interrupt.

4. Mask the interrupt source by setting the appropriate mask bits in the interrupt mask registers (Register 0x74 and Register 0x75).

5. Take the appropriate action for the given interrupt source.

6. Exit the interrupt handler.

Periodically poll the status register. If an interrupt status bit is cleared, reset the corresponding interrupt mask bit to 0. This will cause the smbalert output and status bits to behave as shown in Figure 30.

Mask interrupt sources

Register 0x74, interrupt mask register 1; Register 0x75, interrupt mask register 2. These registers allow masking of individual interrupt sources to prevent smbalert interrupts. Masking the interrupt source only prevents the smbalert output from being asserted; the appropriate status bits are normally set.

Enable smbalert interrupt output By default, the smbalert interrupt feature is disabled. Pin 5 or pin 9 can be reconfigured as a smbalert output to indicate a limit violation. (The smbalert function is only available on pin 9 of the ADT7473-1.)

The ADT7473-1 Therm_ latch function latches and asserts when the temperature rises 0.25°C above the thermal limit of the selected remote channel. Due to a thermal event, the fan is spinning at full speed. This can be disabled by setting Bit 2 in Configuration Register 0x7d.

Pin 5 remains locked until the temperature falls below the selected zone, remote channel d1 or remote channel d2, and the thermal limit for bit 0 in status register 2 becomes clear. By default, on the ADT7473-1, the thermal limit for remote channel 2 is set to 136°C and the thermal limit for remote channel 1 is set to 100°C.

Fan drive with pwm control

The ADT7473/ADT7473-1 use pulse width modulation (PWM) to control fan speed. This relies on changing the duty cycle (or on/off ratio) of the square wave applied to the fan to change the fan speed. Using pwm to control the external circuitry needed to drive the fan is very simple. For 4-wire fans, the pwm driver may only need a pull-up resistor. In many cases, the 4-wire fan pwm input has a built-in pull-up resistor. The PWM frequency of the ADT7473/ADT7473-1 can be set to select a low frequency or a single high PWM frequency. The low frequency option is typically used for 3-wire fans, while the high frequency option is typically used for 4-wire fans.

Note that care must be taken to ensure that the tachometer pin is not connected to a pull-up supply greater than 3.6 V. Many fans have internal pull-ups connected to the RPM/PWM pins with supply voltages greater than 3.6V. If necessary, the voltage on these pins must be clamped or reduced. Clamping these pins with Zener diodes also helps prevent back-EMF related noise from coupling into the system.

For a 3-wire fan, only one n-channel mosfet driver is required. The specification of the mosfet depends on the maximum current required to drive the fan. A typical laptop fan is rated at 170mA; therefore, SOT devices can be used where board space is a concern. In desktops, the fan can usually draw between 250mA and 300mA. If driving multiple fans in parallel or driving larger server fans from a single pwm output, the mosfet must handle higher current requirements. The only other stipulation is that the mosfet has gate voltage drive, v<3.3v, for direct connection to the pwm output. The mosfet should also have low on-resistance to ensure that there is no significant voltage drop across the fet, which will reduce the voltage applied to the fan and thus reduce the maximum operating speed of the fan.

Figure 35 uses a 10k pull-up resistor as the tach signal. This assumes the tach signal is an open collector from the fan. In all cases, the speed signal from the fan must be kept below 3.6 V maximum to prevent damage to the ADT7473/ADT7473-1. If you are not sure if the fan you are using has an open collector or totem pole tachometer output, use one of the input signal conditioning circuits shown in the "Fan Speed Measurement" section.

Figure 36 shows a fan drive circuit using npn transistors such as the generic mmbt2222. While these devices are inexpensive, they tend to have lower current handling capabilities and higher on-resistance than MOSFETs. When choosing a transistor, care should be taken to ensure that it meets the current requirements of the fan.

Make sure the base resistor is chosen so that the transistor saturates when the fan is powered on.

Since the 4-wire fan is powered continuously, the fan speed doesn't turn on or off like previous pwm driven/powered fans. This makes it better than 3-wire fans, especially in high frequency applications.

Figure 37 shows a typical drive circuit for a 4-wire fan. Since the PWM input on 4-wire fans is typically pulled internally to a voltage greater than 3.6 V (the maximum voltage allowed on the PWM output of the ADT7473/ADT7473-1), a Zener diode should be used to switch the PWM output Clamped to 3.3 V.

Drive two fans from PWM3

The ADT7473/ADT7473-1 have four tachometer inputs for fan speed measurement, but only three PWM drive outputs. If a fourth fan is used in the system, it should be paralleled with the third fan, driven from the PWM3 output. Figure 38 shows how to drive two fans in parallel using low-cost NPN transistors. Figure 39 shows the equivalent circuit using a mosfet.


Because the mosfet can handle up to 3.5A, just put another fan directly in parallel with the first fan. When designing driver circuits with transistors and FETs, care should be taken to ensure that the pwm pins are not required to source current and that their current sink is less than the 8mA maximum current specified in the datasheet.

Drive up to three fans from PWM3

The fan's RPM measurement is synchronized to a specific PWM channel; for example, RPM1 is synchronized to PWM1. Both TACH3 and TACH4 are synchronized with PWM3, so PWM3 can drive both fans. Alternatively, PWM3 can be programmed to synchronize Tach 2, Tach 3, and Tach 4 to the PWM3 output. This allows the PWM3 to drive two or three fans. In this case, the driver circuit looks the same, as shown in Figure 38 and Figure 39. The sync bit in Register 0x62 enables this feature. When used with 4-wire fans, no synchronization is required in high frequency mode.

Speed up input

Pin 4, Pin 6, Pin 7, and Pin 9 (when configured as tachometer inputs) are open-drain tachometer inputs for fan speed measurement. Signal conditioning in the ADT7473/ADT7473-1 adjusts the slow rise and fall times of the typical output of a fan tachometer. The maximum input signal range is 0 V to 3.6 V. If these inputs are provided by fan outputs in excess of 0 V to 3.6 V, resistive attenuation or diode clamping of the fan signal must be included to keep the inputs within acceptable limits.

If the resistance of the fan speed output rises to V, it can be connected directly to the fan input, as shown in Figure 40.

If the resistance of the fan output rises to 12 V (or other voltages greater than 3.6 V), the fan output can be clamped with a Zener diode, as shown in Figure 41. The Zener diode voltage should be chosen so that it is greater than the V of the tachometer input, but less than 3.6 V, allowing a voltage tolerance for the Zener. A value between 3.0 V and 3.6 V is suitable; if the fan has a strong pull-up (less than 1K) to a 12V or totem pole output, a series resistor can be added to limit the zener current as shown in Figure 42; or , a resistive attenuator can be used, as shown in Figure 43. The choice of r1 and r2 should be ensured.