Our new website is in BETA! If you would like to take a look then please visit new.dizzy.co.za :-).

+27 (0)11 022 5323 +27 (0)64 681 8495
- -
Fan 6 Click (Go to Parent Category)

Fan 6 Click

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.

R270  Qty:
Price ex. VAT. Weight: 23g. Stock: Lead-time applicable [i]. mikroE Icon

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.

Click Boards Motor Control Brushless Fan 6 Click

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 current-mode 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.


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 Mikrobus logo.png Pin Notes
Shutdown output SDN 2 RST INT 15 ALR Alert Interrupt
Enable EN 3 CS RX 14 NC
NC 5 MISO SCL 12 SCL I2C Clock
Power Supply 3.3V 7 3.3V 5V 10 5V Power Supply
Ground GND 8 GND GND 9 GND 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.


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.