Author

Topic: [1 BTC for simple electronic circuit (PWM to tach signal with 555-timer IC) (Read 1629 times)

newbie
Activity: 15
Merit: 0
It is probably easiest to take 8 pin PIC AVR or (insert your favorite MCU with internal oscillator here) nowdays... but:

For fun:
http://www.falstad.com/circuit/e-vco.html

Use suitable RC filter to smooth the input enough... Probably 555 is not that good - bandwidth change is not enough to cover whole RPM range. Still - 99% motherboards do not care about fan speed change range as long there is variable signal present.
full member
Activity: 210
Merit: 100
What you're after is a Voltage Controlled Oscillator. Something a 555 can be made to do.
Feed said VCO with the PWM signal after said signal has been turned into an analog voltage by a RC network, and presto.
You are not likely to get 0-733Hz easily without a microcontroller, though.

I've yet to run into a motherboard fan header that cared about getting a TACH signal back when it's putting out PWM, or one that used any feedback.
Every board I have worked with, used, benched on, or reviewed the PWM output % has been based solely on CPU core temperatures, nothing else.
The health monitoring section wants to see something on the TACH pin, but as long as it's over ~250RPM it doesn't care either.
My experience is that the mainboard does not command the fan to run at X RPM at all, it simply says "Run 50% duty cycle!". This is backed up by the duty cycle for a given core temperature being the same regardless of whether I'm using a fan that does 700-2000RPM or 0-6000RPM. All the motherboard/mainboard cares about is core temps and duty cycle.

EDIT:
Built one, it works pretty nicely but gives a fairly narrow frequency output. Some mucking with it will clearly be required.
hero member
Activity: 489
Merit: 500
Immersionist
Ok I am sitting here in an urgent experiment, it's weekend and my electronic skills seem a bit rusty.

I have a PWM signal and need to generate a tach signal (open collector) from that. This is to simulate a fan.

Mainboard commands fan to run at X RPM via PWM signal. Mainboard reads back fan RPM via tach signal. Fan not present, mainboard complains. That's what I am trying to stop.

The fan has 4 wires.

12V (red), GND (black), PWM Control (brown), TACH Sig (white)

The fan speed is controlled by the PWM control wire (brown). Fan speed is duty cycle, so 50% means 50% fan speed. Max speed is 22,000 RPM.

Tach signal (white wire) is an open collector with two pulses per revolution.

At full speed we should have 44,000 pulses on the Tach signal, or 733 Hz.

The mainboard checks if the fan works, so using another fan or removing the fan altogether is not working. It also seems to check if the fan speed is anywhere near the commanded fan speed.

Here is the datasheet of the fan: http://www.nmbtc.com/pdf/dcfans/1611ft.pdf

How would one build a very simple circuit that simulates the fan?

I imagine a small circuit that gets the PWM signal, and depending an duty cycle outputs the open collector pulses. ie. 0% duty cycle 0Hz, 100% duty cycle 733 Hz.

Don't tell me I have to use an Arduino or MCU, this must be possible with something very simple. I have access to lots of components (555 etc) and I plan to get this working within a day or two.

Help me with full instructions and a circuit diagram and 1 BTC is yours.

Thanks!

Jump to: