PWM Fan Controller - WISHBONE Compatible

LatticeReferenceDesign-LogoPulse-width modulation (PWM) is a popular technique to control analog circuitry digitally. PWM uses a rectangular pulse wave whose pulse width is modulated resulting in the variation of the average value of the waveform. In this PWM implementation, current flow through a MOSFET circuit controls the amount of power sent to a fan load.

This reference design implements a PWM fan control using a PLD and a MOSFET circuit to provide the speed control of a simple 2-pin fan. When using a 3-pin fan and a PLD, the sense signal from the fan completes the feedback loop. The advantage of using a low-cost PLD together with a fan device is that the PLD has sufficient logic resources left over to create a complete thermal management system.

Jump to

Block Diagram

Performance and Size

Device Family Tested Devices* Language Performance I/O Pins Design Size Revision
MachXO2™ LCMXO2-1200HC-4TG100 Verilog/VHDL >50 MHz 24 109 LUTs 1.4
MachXO™ LCMXO2280C-3FT256C Verilog/VHDL >50 MHz 24 99 LUTs 1.4
ispMACH® 4000ZE LC4128ZE-5TN100C Verilog/VHDL >50 MHz 24 79/74 Macrocells 1.4
LatticeXP2™ LFXP2-5E-5FT256C Verilog/VHDL >50 MHz 24 145/138 LUTs 1.4
Platform Manager™ LPTM10-1247-3TG128CES Verilog/VHDL >50 MHz 99 LUTs 1.4

* May work in other devices as well.

Note: The performance and design sizes shown above are estimates only. The actual results may vary depending upon the chosen parameters, timing constraints, and device implementation. See the design's documentation for details. All coding and design work was done on a PC platform unless noted otherwise.


Technical Resources
PWM Fan Controller - Source Code
RD1060 1.7 1/16/2015 ZIP 2.9 MB
PWM Fan Controller
RD1060 1.6 9/10/2014 PDF 481.5 KB

Like most websites, we use cookies and similar technologies to enhance your user experience. We also allow third parties to place cookies on our website. By continuing to use this website you consent to the use of cookies as described in our Cookie Policy.