Electronic – PWM & output voltage

drivermosfetpwm

while 555 contest is long gone, I am still debugging my device, where I already abandoned 555 itself 🙂

At the moment, I am driving PC fan from an PWM (30kHz) signal from atmel uC.

I am powering P-MOSFET with a simple 1-BJT-transistor-"driver". Output is filtered with an 22uH inductor + 330uF cap. Surely I have kickback diode in place.

The problem I have is while I have 256 "levels" of PWM, I am getting most of output difference somewhere in the 1-20 range. It looks like even short pulses have the "power" to drive the fan at full power.

1) How can I make it "less" powerful? Will I have more powerful fans underpowered then?

2) On the drain of the mosfet I see some 1-3Mhz ringing with some 5V amplitude, and while it all works, I don't like it (no ringing on the source or gate). What causes it and how should I fight it?

Update:
R1 – 1kOhm
R2 – 47Ohm
MOSFET – is PMOSFET from motherboard
Diode is some medium-size Schottky one, with 0.2V drop.

enter image description here

Best Answer

I think you're being bitten by the physics of the fan.

The power in a stream of moving air is proportional to the cube of the air velocity, and the rotational speed of a fixed pitch propeller (i.e., fan) is directly proportional to the air speed. This means that to double the air speed from your fan (or its rotation rate), you have to put in eight times as much power. Or conversely, to cut speed in half, you only need an eighth of the power. If you call the air speed you get at 100% duty cycle 'full speed', then 'half speed' will occur at 1/8th the power level; at 12.5% duty cycle. Even more dramatically, quarter speed would be at 1/8th of that, at just 1.5625% duty cycle. In other words, whatever speed you get at the very lowest duty cycles is nearly all you're going to get, because power in moving air is so non-linear.