Circuit to convert linear fan control to switch mode

Thread Starter

Turbotom

Joined Apr 13, 2016
9
Hello,
My PC has a fan controller which automatically adjusts fan speed on 4 channels based on temperature sensor. This is exactly what I want e.g. the case fans spin up to max when the case air temperature gets too warm, radiator fans to spin up when coolant gets too warm BUT the controller has linear drivers that get very hot. Therefore' I'd like to make a circuit the drives the fans switch mode rather than linear to be more efficient and robust.

Spec
5V and 12V supplies available.
0-12V output (0-100% duty cycle), up to 3A per channel.
Control by dynamic reference voltage.
Inductive load, but current must be continuous (else the fan RPM monitoring is broken).
Ideally switch mode for improved efficiency/heat output.
Cheap and simple.

Options
I've done some searching and come up with two options. Not sure which to go forward with and there are a few other options I thought about but wasn't sure how to design a topology for as well.

Option 1: adapting Bills 0-100% PWM 555/lm393 design.
917-1303196345-0fdcca3ec6990498f9f2efa47145101f - Copy.gif
Uncertainties
Not sure how to work out what the waveform peak will be and therefore size of resistors.
I am hoping that I would be able to link a single 555 to all four op amps of a LM339 in order to get my 4 channels.
Not sure if simply slapping a cap over the FET will make the output current continuous.
Not sure about stability with varying control voltage.
What's a good FET to use nowadays.
Advantages - components are cheap/common.
Disadvantages - Can't really think of any actually.

Option 2:using a 6992pwm
6992pwm.png
Uncertainties
Not confident in my circuit design. Think I would at least need a trim pot for the control voltage.

Advantages:
Very simple layout

Disadvantages: Chip is expensive and surface mount only so need to use breakout boards. Will need 4 chips to cater for my 4 channels.

Other options considered
Buck step down voltage regulators: I though it might be possible for me to use a simple SMPS chip e.g. LM2576,LM22678 but I couldn't work out how to get them to work with dynamic reference voltage control and 100% duty cycle.

One chip solution: I notice that maxim have a few buck chips that have dynamic voltage control like the MAX15035 but there implemented topology looks a bit complicated.

PIC with A/D: I have a PIC programmer somewhere but I've hardly used it and I probably remember even less about programming than I do about analogue/digital electronics

Level select 0-7-12V: I did consider rather than using switch mode I could just use comparators to switch between 0,7 and 12V (5V is too low to reliably spin the fans), but this solution is not very flexible and I'm not keen on feeding power onto the 5V rail of the computer PSU.
 

#12

Joined Nov 30, 2010
18,224
Talking about the first drawing. The triangle out of a 555 is 1/3 to 2/3 Vcc, for which I will use 12V. Decide on a speed, like 21.2 KHz by using 330 ohms. Change to an N-channel mosfet. Set the resistors for 58% minimum on time. First run shows 24K at the top, 10K in the middle, and 39K on the bottom.

I really don't know what to expect out of the capacitor, but my numbers will give you 58% to 100% on time.
If you know the capacitor will integrate, go for it.
Locking the frequency above hearing range will probably make the capacitor smaller.
 

dannyf

Joined Sep 13, 2015
2,197
R4-6 are chosen to correspond to the three resistors in the 555 so to have 0 to 100 percent pwm.

Yes, you can drive multiple channels.

Pretty much all will work.
 

dannyf

Joined Sep 13, 2015
2,197
A simpler approach is to apply the control voltage to pin 5 of the 555. It doesn't do 0 to 100 percent pmw but likely good enough.

SNPs chip can be used as well. The simplest would be on off control. For better range, connect the control voltage to the SNPs feedback pin through a resistor. The logic however is reversed.
 

Thread Starter

Turbotom

Joined Apr 13, 2016
9
Talking about the first drawing. The triangle out of a 555 is 1/3 to 2/3 Vcc, for which I will use 12V. Decide on a speed, like 21.2 KHz by using 330 ohms. Change to an N-channel mosfet. Set the resistors for 58% minimum on time. First run shows 24K at the top, 10K in the middle, and 39K on the bottom.
True if I go with option 1 I need to increase R1+R2 a bit. It looks like I'll need to use Vcc=5V to get the PWM to work within the range though, then looking at the shape of the triangle it looks like when my fan control is outputting 6V I need to input ~2.5V into comparator in order to get 50% duty cycle and 12V needs to translate to just over 3V into comparator, maybe there is some way of doing this using a zener diode or something.
 

Dodgydave

Joined Jun 22, 2012
11,285
Ditch the pnp and use a Nfet like IRF510 series, use a 12v dc supply, change op amp to lm324 or lm358, and swap op amp +/- inputs round,

Here is one using just an op amp.
 
Last edited:

dannyf

Joined Sep 13, 2015
2,197
I had assumed that those are simple DC motors. Having reread your post, it may be a little bit more complicated. Those motors sound like computer fan motors? They are typically brishless motors. And they typically want a stable voltage to drive them. Pwming those motors at low frequency works as well.

If they have rpm feedback as you seem to suggest, it request that 1. The motor is grounded. Ie the switch has to be done on the high side. 2. You have to deal with the RPM monitor thing.

The simplest solution is to attach a heatsink to your existing linear regulator. The 2nd best is to use a beefier regulator. Followed by a switching mode regulator.

If you have to go down the pwm controller path, I would experiment first. I would drive the motor with low frequency pwm to make sure that the monitor works.

If that fails, you may have to wire up some fancy electronics to defeat the RPM monitor. For example, every once in a while youbgo 100 duty cycle and measure the RPM and then use that to drive a pulse generator (a v2f convertor or a mcu).

Sounds more trouble to me if you ask.
 

#12

Joined Nov 30, 2010
18,224
True if I go with option 1 I need to increase R1+R2 a bit. It looks like I'll need to use Vcc=5V to get the PWM to work within the range though, then looking at the shape of the triangle it looks like when my fan control is outputting 6V I need to input ~2.5V into comparator in order to get 50% duty cycle and 12V needs to translate to just over 3V into comparator, maybe there is some way of doing this using a zener diode or something.
I doubt everything you said here. I did the math for the frequency, the duty cycle, and the offset. Using your drawing, my numbers have the final driver transistor on for 58% to 100% of the time which corresponds to a range of 7 volts to 12 volts if the capacitor integrates according to duty cycle.
 

wayneh

Joined Sep 9, 2010
17,496
My PC has a fan controller ... BUT the controller has linear drivers that get very hot.
I'm wondering how you know that. What makes you sure the PC is not already using a PWM control? I think it's been pretty much the standard fan control scheme in PCs for quite some time.
 

Thread Starter

Turbotom

Joined Apr 13, 2016
9
I doubt everything you said here. I did the math for the frequency, the duty cycle, and the offset. Using your drawing, my numbers have the final driver transistor on for 58% to 100% of the time which corresponds to a range of 7 volts to 12 volts if the capacitor integrates according to duty cycle.
My math was a bit squiffy but more importantly I don't think I described the problem fully.
The existing linear fan controller (Vin) outputs 0-12V, with 0V being fan off and 12V being fan 100% on, but it jumps from OFF to ~6-7V (starting motor torque, P=V^2/R and all that). I still need the PWM output to follow the linear output though, i.e. Vin=Vout, however as per above in my constraints I can ignore Vin between 0 and 6V and concentrate on Vin(0)=Vout(0) , Vin(6)=Vout(6)..linear progression to.. Vin(12)=Vout(12)

Based on Vcc=5V the triangle(T) Tmin=1.66v Tmax=3.33v, so if Vcomp is the voltage fed into the
comparator

Vin(0)<Vcomp(1.66) - this shouldn't be a problem
Vin(6)=~Vcomp(2.7V) - this is a guestimate aiming for a 50% duty cycle, the triangle is not symmetrical so I need to be a bit above 2.5v in order to get 50% duty cycle)
..
..
Vin(12)=Vcomp(3.4) - i.e. a bit more than 3.33v in order to get 100% duty cycle.

This doesn't appear to be solvable with a resistor network because the ratio between Vin and Vcomp varies between these cases, but I was wondering it it was possible to fix somehow with a zener diode.

I'm wondering how you know that. What makes you sure the PC is not already using a PWM control? I think it's been pretty much the standard fan control scheme in PCs for quite some time.
When I put the PC together 4pin/PWM external fan controllers were not really available, these were only used on motherboards. So I've got 3 pin fans (6x 120mm and 1x230mm). I've identified that the 4 channel fan controller uses a linear driver based on the part number and the pain in my finger when I placed it on its heatsink.
 

Thread Starter

Turbotom

Joined Apr 13, 2016
9
Ditch the pnp and use a Nfet like IRF510 series, use a 12v dc supply, change op amp to lm324 or lm358, and swap op amp +/- inputs round,

Here is one using just an op amp.
Thanks, son't worry intend on using FET, my crappy sketch jus tlooked a bit NPN like.
Like the design with just op-amps but if that triangle is floating it looks like I am going to have the same problem achieving control linearity as with the 555 design.


I had assumed that those are simple DC motors. Having reread your post, it may be a little bit more complicated. Those motors sound like computer fan motors? They are typically brishless motors. And they typically want a stable voltage to drive them. Pwming those motors at low frequency works as well.

If they have rpm feedback as you seem to suggest, it request that 1. The motor is grounded. Ie the switch has to be done on the high side. 2. You have to deal with the RPM monitor thing.

The simplest solution is to attach a heatsink to your existing linear regulator. The 2nd best is to use a beefier regulator. Followed by a switching mode regulator.

If you have to go down the pwm controller path, I would experiment first. I would drive the motor with low frequency pwm to make sure that the monitor works.

If that fails, you may have to wire up some fancy electronics to defeat the RPM monitor. For example, every once in a while youbgo 100 duty cycle and measure the RPM and then use that to drive a pulse generator (a v2f convertor or a mcu).

Sounds more trouble to me if you ask.
I'd identified the RPM monitor issue in original spec, this is why I've put in the power cap in the hope that this will keep current continuous in the fans.
I looked at SMPS (Snps?) chips and suggested a few in my first post but wasn't sure how I'd get them to work, if it is as simple as sticking the control voltage on the feedback pin then that sounds simple enough. Unfortunately I have no confidence in myself designing anything nowadays, I have not done any proper engineering for a while now and my electronics degree is a distant memory..
 

Thread Starter

Turbotom

Joined Apr 13, 2016
9
@Turbotom, why dont you use the deadicated chip like you posted earlier, this will give you a better result.
It is probably the sensible choice but the 6992 is expensive and I am nostalgic about the 555 plue I'd be able to walk into local place and pick up all the required parts.
With either circuit I have the problem of making the current continuous rather than PWM, I'd probably need to go with a true buck topology with an inductor and flyback diode etc.
Which got me thinking about a plan B. I've spotted these mini SMPS modules, super cheap
http://www.banggood.com/5Pcs-Mini-DC-Adjustable-Power-Supply-Buck-Module-Step-Down-Module-p-952402.html
Think it uses the SMS M2307 chip http://www.mouser.com/ds/2/277/MP2307_r1.9-371737.pdf
Looks like if I tie the enable pin to the input voltage it will switch off when input voltage goes below about 2V, which is handy.
So that just leaves getting signal for the feedback pin right (needs to be 0.925V when input and output voltages are equal, is there an easier way of doing then than feeding both the linear control voltage and the SMPS output voltage into a voltage comparator?
 

dannyf

Joined Sep 13, 2015
2,197
The fundental issue here is that if those are brishless motors with utilized rpm feedback, the RPM feedback pin will reproduce the pwm signal when driven by pwm.

Without experimenting with your specific rpm monitoring mechanism, there is no way for sure if s given approach will work.

I think an on/off smps works here.
 
Top