EE Product News

Designing a Programmable Fan Controller

Roberto Amadio and Pierandrea Savo, Maxim Integrated Products Inc., Italy

As today's systems achieve ever-increasing performance in smaller enclosures, their power dissipation poses an increasingly serious problem. The need to maintain proper temperatures has become critical in preventing thermal shutdown and even system failures. Thus, many systems now require extra fans to maintain an adequate airflow.

Large telecom and networking systems often employ high-performance processors that allow greater functionality within a single "rack." For example, a line card that once supported 12 ADSL lines can now support up to 64 lines. As a result, circuit boards that once dissipated 24W (2W per ADSL line) must now dissipate 128W. That level of dissipation can be accommodated with a strongly forced flow of cool air that reduces the pertinent thermal resistance.

Most telecom systems include a large number of fans. To ensure proper operation in the event of a fan failure, the system usually includes more fans than needed (N+1 structure), so a typical system might have six to eight. Each fan has its own power supply, so the fans are easily replaced without powering down the system. A sub-rack fan assembly (see Figure 1) includes multiple fan modules (six in this case), supplied by the -48V battery bus and monitored by a fan-control module.

A basic fan module (see Figure 2) includes an isolated dc/dc converter that converts the -48V battery power to +12V or +24V, depending on the fan type. A hotswap controller precedes the converter to allow fan replacements without powering down the system, and each fan produces a digital output (PWM or PFM) proportional to its rate of rotation, for use by the control module.

A wide choice of ICs can be used in this type of fan system. Numerous hot-swap controllers, for instance, are available with different levels of performance. As an example, the MAX5901 from Maxim offers a simple solution, and the MAX5920 offers high accuracy. Both can operate directly from the -48V supply. For the isolated supply you can choose a part like the MAX5021, and for a highly integrated converter with power MOSFETs on board, you can choose a part like the MAX5043, which requires only a transformer, capacitor, output diodes, and a few resistors to produce 50W without need for a heat sink.

A fan-control unit can be integrated to complete this system. Such control must provide an interface with many fan modules, and it must be able to detect whether any one is not working properly. When a fan fails, it must flag the master control unit. It is also desirable to diagnose and identify which fan has failed. Such a controller can take many forms. It can be implemented, for example, with an array of timers and additional discrete components. As the number of fans increases, however, the number of discrete components increases, making this approach less desirable. Another technique, multiple serial I/Os on a microcontroller, minimizes discrete components but requires proper programming.

A third and fairly simple alternative utilizes a highly integrated, EEPROM-configurable, programmable hex power-supply sequencer/supervisor with ADCs, the MAX6870. This part includes six configurable input voltage detectors, four general-purpose inputs, two configurable watchdogs, eight programmable outputs, and a 4-Kb user EEPROM. All are available and programmable via an I2C-compatible serial interface. Besides monitoring voltage, watchdog signals, external temperature, and other logic input signals, the device can perform functions such as fan controller, with the ability to monitor up to 10 fans.

To illustrate, we first introduce a single-fan system, and then extend the system to six fans.

1. To begin, we define an alarm signal that asserts if the monitored fan stops. Most of the fans currently available offer an open-collector-(Voc) output signal that can be pulled up to an external voltage level (Vs) using a resistor. (The pullup in our example is from 4V to 30V.) Such a Voc output pulses from 0V to Vs several times (M) for each turn of the fan (see Figure 3).

If the fan spins at N revolutions per second, then Voc produces N*M pulses each second. The output is a square wave with frequency of N*M Hz. If you connect this output to one of the MAX6870 programmable inputs, then one of its PO_ outputs asserts when the fan stops turning.

If, for example, Vs = 5V, the output pulses between 0V and 5V. Depending on the voltage level when the fan stops (Vs or 0V), you set the input under-or overvoltage thresholds to 2.5V, such that the monitor output is true when the input voltage is above (below) 2.5V (and vice versa). In this configuration the PO_ output is de-asserted while the fan is turning, and the output voltage pulses between 5V and 0V continuously. If the fan stops turning the output asserts, and the voltage is held either high or low depending on how the fan's active polarity is programmed.

2. It is important for this implementation to choose a glitch filter that provides the correct time constant for each PO_ output. The filter must, however, be sufficiently relaxed to allow frequency-pulse transients due to oscillation in the fan supply. For the MAX6870, the required time constants range from 25 ms to 1,600 ms.

Consider, for example, a scenario in which M = 2 and N = 54 rps. The Voc pulsing frequency is therefore 108 Hz, and the pulse period is about 9.26 ms. If you need strict control of the fan, select a PO_ deglitch time constant of 25 ms, which corresponds to about 1.35 turns of the fan. Considering fan-supply oscillations (and any restrictions due to thermal characteristics), you assume a fan has failed if it stops for about two seconds. For this example, a 1.6 second timeout is appropriate. That means the PO_ alarm goes high (or low, depending the programming) 25 ms or 1.6s after the fan failure.

3. The previous example shows how to implement the function for one fan. For a 6-fan system, we use just one MAX6870 and extend the above to six inputs and six outputs. That arrangement allows one monitor for each of the six fans, assuming an independent tachometer output from each fan module. The outputs can be configured as open drains, and OR'd together to provide one alarm signal (see Figure 4). If you need the opposite signal polarity or an extra delay before the alarm is asserted, you can connect the above common signal to a GPI_ pin and one more PO_ output, and add a further time constant.

4. To some it might appear to be quite time consuming when it comes to configuring such a device, however the MAX6870 does not require a software engineer to devise and compose code for the controlling microcontroller or similar other device. Maxim makes available an evaluation kit whose graphical user interface promises to simplify the configuration process (see Figure 5).

By simply pointing to a block of the interface and typing the appropriate value (input signal, timing, etc.) an engineer or other user without software experience can easily configure the MAX6870. Once the setup is found to be satisfactory, the user can program the IC and ready it for the application by simply clicking the system's "Load to Memory" button.

For this circuit, we employed the MAX6870, the first multi-input controller designed for complex system monitoring. Accurate and configurable, it simplifies the design of modern systems.


Product URL: Click here for more information

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.