FAN 6 CLICK
PID: MIKROE-3867
Weight: 23 g
The Fan 6 click is a Click board™ which features EMC2103, an SMBus compliant fan controller with
up to up to 3 external and 1 internal temperature channels. The fan driver can be operated using two
methods each with two modes. The methods include an RPM based Fan Speed Control Algorithm
and a direct PWM drive setting. The modes include manually programming the desired settings or
using the internal programmable temperature look-up table to select the desired setting based on
measured temperature. And MIC2253 a high power-density, 1 MHz PWM DC/DC boost regulator
which allows driving 12V fan.
The Fan 6 click is supported by a mikroSDK compliant library, which includes functions that simplify
software development. This Click board™ comes as a fully tested product, ready to be used on a
system equipped with the mikroBUS™ socket.
HOW DOES IT WORK?
The Single Cell click allows the user to program temperatures generated from external
sources to control the fan speed. This functionality also supports DTS data from the
CPU. By pushing DTS or standard temperature values into dedicated registers, the
external temperature readings can be used in conjunction with the external diode(s) and
internal diode to control the fan speed. The EMC2103 from Microchip also includes a
hardware programmable temperature limit and dedicated system shutdown output for
thermal protection of critical circuitry. The EMC2103 supports a high or low frequency
PWM driver. The output can be configured as either push-pull or open drain and the
frequency ranges from 9.5Hz to 26kHz in four programmable frequency bands.
The EMC2103 includes an RPM based Fan Speed Control Algorithm. This fan control
algorithm uses Proportional, Integral, and Derivative terms to automatically approach
and maintain the system’s desired fan speed to an accuracy directly proportional to the
accuracy of the clock source.
The EMC2103 supports DTS (Intel’s Digital Temperature Sensor) data in the Fan
Control Look Up Table. Intel’s DTS data is a positive number that represents the
processor’s relative temperature below a fixed value called TCONTROL which is
generally equal to 100°C for Intel Mobile processors. For example, a DTS value of 10°C
means that the actual processor temperature is 10°C below TCONTROL or equal to
90°C.
The EMC2103’s RPM based Fan Speed Control Algorithm has programmable
configuration settings for parameters such as ramp-rate control and spin up conditions.
The fan driver automatically detects and attempts to alleviate a stalled/stuck fan
condition while also asserting the ALR pin.
The tachometer measurement circuitry is used in conjunction with the RPM based Fan
Speed Control Algorithm to update the fan driver output. Additionally, it can be used in
Direct Setting mode as a diagnostic for host based fan control. This method monitors
the TACH signal in real time. It constantly updates the tachometer measurement by
reporting the number of clocks between a user programmed number of edges on the
TACH signal.
The External Diode 1 channel can support a diode-connected transistor (such as a
2N3904) or a substrate transistor requiring the BJT or transistor model (such as those
found in a CPU or GPU). The External Diode 2 channel supports any diode connection
or it can be configured to operate in anti-parallel diode (APD) mode.
The MIC2253 is a constant frequency, pulse-width modulated (PWM) peak currentmode step-up regulator. A reference voltage is fed into the PWM engine where the duty
cycle output of the constant frequency PWM engine is computed from the error, or
difference, between the REF and FB voltages. The PWM engine encompasses the
necessary circuit blocks to implement a current-mode boost switching power supply,
allowing Fan 6 click to drive 12V fan.
SPECIFICATIONS
Type
Brushless
Applications
For speed control of DC fans (5/12 VDC) than could be found on PCs, servers,
network equipment, set-top-box and digital-video-recorder devices, and many other
consumer electronics, or storage containers like RAID systems etc.
On-board
modules
EMC2103 fan controller and the MIC2253 boost regulator
Key Features
Programmable and RPM based fan control, temperature look-up table
Interface
I2C,GPIO
Compatibility
mikroBUS
Click board
size
L (57.15 x 25.4 mm)
Input Voltage
3.3V,5V
PINOUT DIAGRAM
This table shows how the pinout on Fan 6 click corresponds to the pinout on the
mikroBUS™ socket (the latter shown in the two middle columns).
Notes
Pin
Pin
Notes
GPIO1
IO1
1
AN
PWM
16
IO2
GPIO 2
Shutdown output
SDN
2
RST
INT
15
ALR
Alert Interrupt
EN
3
CS
RX
14
NC
NC
4
SCK
TX
13
NC
NC
5
MISO
SCL
12
SCL
I2C Clock
NC
6
MOSI
SDA
11
SDA
I2C Data
Power Supply
3.3V
7
3.3V
5V
10
5V
Ground
GND
8
GND
GND
9
GND
Enable
Power Supply
Ground
ONBOARD SETTINGS AND INDICATORS
Label
Name
Default
Description
PWR
LED
-
Power LED Indicator
CN1
-
-
Fan and diodes connector
JP1
VFAN SEL
Left
Fan supply voltage selection: left position 12V, right
position 5V
SOFTWARE SUPPORT
We provide a library for the FAN 6 Click on our LibStock page, as well as a demo
application (example), developed using MikroElektronika compilers. The demo can run
on all the main MikroElektronika development boards.
Library Description
Initializes and defines I2C driver and driver functions which have ability to controls the
operation of the fan by writting to registers and reading from registers. Functions also
offer a choice to communicate with EEPROM and check tachometer value and
temperature value of internal or external diode. Also, there is an option to change
operation mode of fan. For more details check documentation.
Key functions:
•
void fan6_writeReg( const uint8_t register_address, const uint16_t transfer_data ) -
Function writes 16-bit or 8-bit data to register.
•
uint16_t fan6_readReg( const uint8_t register_address ) - Function reads 16-bit or 8-bit data
from register.
•
•
uint8_t fan6_receiveByte( const uint8_t register_address ) - Function sends register address
and reads byte from that address, without writting address again, every time when function be
called.
uint32_t fan6_readTachometer( void ) - Function reads current tachometer value and calculates
that value in rpm.
Examples description
The application is composed of three sections :
•
System Initialization - Initializes peripherals and pins.
•
Application Initialization - Initializes I2C driver and configures FAN 6, sets minimal duty (drive),
frequency, update and spin up time, and puts FAN 6 on PWM mode with maximal speed (100
percents, 0xFF). Also sets GPIO 1 as input pin and GPIO 2 as output pin and enables device.
•
Application Task - (code snippet) - Reads tachometer value which is calculated as rpm value, and
reads temperature of external diode in celsius value. All this results logs on USB UART. Repeats
operation every 500 ms.
void applicationTask()
{
tachometer = fan6_readTachometer();
LongWordToStr( tachometer, text );
mikrobus_logWrite( "Tachometer value is: ", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_TEXT );
mikrobus_logWrite( " rpm", _LOG_LINE );
tempDiode = fan6_getTemperature( _FAN6_EXTDIODE1_TEMP_READ_REG, &temperatureSign );
FloatToStr( tempDiode, text );
mikrobus_logWrite( "Temperature of DIODE is: ", _LOG_TEXT );
if (temperatureSign)
mikrobus_logWrite( "-", _LOG_TEXT );
mikrobus_logWrite( text, _LOG_TEXT );
mikrobus_logWrite( " Cels", _LOG_LINE );
mikrobus_logWrite( "", _LOG_LINE );
Delay_ms( 500 );
}
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
•
Conversions
•
I2C
•
UART
Additional notes and informations
Depending on the development board you are using, you may need USB UART
click, USB UART 2 click or RS232 click to connect to your PC, for development systems
with no UART to USB interface available on the board. The terminal available in all
MikroElektronika compilers, or any other terminal application of your choice, can be
used to read the message.
MIKROSDK
This Click board™ is supported with mikroSDK - MikroElektronika Software
Development Kit. To ensure proper operation of mikroSDK compliant Click board™
demo applications, mikroSDK should be downloaded from the LibStock and installed for
the compiler you are using.
For more information about mikroSDK, visit the official page.
RESOURCES
mikroBUS™ Standard specification
LibStock: mikroSDK
DOWNLOADS
Fan 6 click example on Libstock
Fan 6 click 2D and 3D files
Fan 6 click schematic
EMC2103 datasheet
https://www.mikroe.com/fan-6-click/12-13-19