12V PC PWM 4 wire fan datasheets? - Page 1
Forum section: electronics / beginners

author: paulca
author_rank: Super Contributor
timestamp: June 04, 2018, 12:02:28 pm
content: Has anyone seen or have a link to a fully detailed datasheet for 4 wire DC brushless fans as used in PCs?I'm trying to understand their PWM and Tact requirements to pick a PWM controller to control a bunch of them?I can't even work out if the PWM and Tact are 5V or 12V, just can't find much information on them at all.

author: aheid
author_rank: Regular Contributor
timestamp: June 04, 2018, 12:35:28 pm
content: Here's the official (as far as I can tell) specification for the 4-wire PWM fans:www.formfactors.org/developer/specs/4_wire_pwm_spec.pdfedit: just to expand a bit, the tach signal is 12V open-drain/collector, two pulses per revolution. The PWM is 5V, 25kHz and needs to be driven low.

author: paulca
author_rank: Super Contributor
timestamp: June 04, 2018, 01:21:36 pm
content: I had spotted that before, but was unsure if it was just someone's spec for their fans or a standards spec for all fans.Anyway my electronics brain is not fully functional today. When they say open-drain on the PWM that means when I leave it floating the pull up in the fan gives a 5V high and the fan spins at 100%. If however I connect the PWM pin to ground the fan receives a low.... right?So LED Drivers, if I can find one that will do 25khz would make good PWM controllers.Actually I'm finding it difficult to find PWM controllers that will do 8 outputs at 25khz.

author: Gyro
author_rank: Super Contributor
timestamp: June 04, 2018, 02:11:02 pm
content: No, that's the standard spec.Yes, leaving the PWM unconnected (with fan internal pullup) runs the fan at full speed. It's a simplicity and safety feature.Instead of an LED driver, you can do it cheaper and easier with a 555 timer circuit - or if you want something ready made, get an ebay servo tested (555 based) and mod the frequency if necessary. Stick a transistor and base resistor on the output if you want open collector.If you want to drive 8, then a PIC or Arduino would be easier, you could then use the tach signals to get feedback of actual rotation speeds (if you want to match them to prevent audible beating).

author: paulca
author_rank: Super Contributor
timestamp: June 04, 2018, 02:46:47 pm
content: Yes I started considering an ATMega328p, I have a thread on that, but it looks like the PWM analogue outs would not work (they are current sources, not sinks and I don't know if you can have PWM sinking) and so I would need to do bit banging in a loop anyway.For the purposes I might actually go for the ESP8266 to be able to provide an open, easy, API via REST rather than messing around with serial over USB and the like which needs fairly low level programming client side.I'm hoping to control 6 or 8 fans, with 6 or 8 tach inputs and a number of 1 wire temp probes.I found this:https://datasheets.maximintegrated.com/en/ds/MAX31790.pdfWhile it's an awkward package to solder it has what I need. The odd thing is that it's tach inputs are all +6V max, so that means all the tach inputs have to go via a level shifter mosfet or just a divider as they are 12V from the fans. Seems odd, but maybe MAXIM didn't really have much choice and allowing 12V tach inputs made the design more complex.

author: Gyro
author_rank: Super Contributor
timestamp: June 04, 2018, 03:13:13 pm
content: It's easy enough to turn the sources into sinks, just stick an external NPN transistor on the output (with series base resistor). Emitter to ground, Collector to PWM input.Yes, just use a resistive divide for the tach inputs, they aren't that fast - the MAX3790 inputs are limited by the ESD protection diodes on the input, they'd need to ditch it to support a 12V swing (not ideal when it's going to a connector and flying lead). It looks like a handy chip (designed for the purpose of course) it would take some of the 'leg work' out of the code, although you still need to control it over I2C of course.

author: Ian.M
author_rank: Super Contributor
timestamp: June 04, 2018, 03:24:40 pm
content: Two years ago, I suggested using the EMC2305 SMBUS fan controller. It handles five four wire fans and you can address five chips on the same SMBUS or I2C bus. Seehttps://www.eevblog.com/forum/projects/pc-fan-control-and-pwm/

author: FL0WL0W
author_rank: Contributor
timestamp: June 04, 2018, 03:24:50 pm
content: The Atmega328p "analog" outputs will source and sink current so they would work just fine. And you can use the setPwmFrequency function in arduino to set the frequency to 25khz.Keep in mind for an esp8266 the voltage is 3.3V so you will have to do some level conversion.As far as the tach signal. because it is open drain/collector, you have to use a pullup resistor on the pin. which means you can use any voltage you like up to 12V. meaning you can use a pullup resistor to 5V which would work for the MAX31790. You could also use the pullup resistors built into the arduino

author: David Hess
author_rank: Super Contributor
timestamp: June 04, 2018, 06:53:21 pm
content: The open collector/drain signals require pullups but the switching levels will usually be TTL so there is nothing wrong with using a 3.3 or 5 volt pullup on a 12 volt fan. It would be kind of dumb to require level shifters when open collector/drain signals can interface between power domains just fine when TTL switching levels are used without requiring high voltages.For example this Delta fan shows an open collector output and an input which switches at TTL levels but can accept up to 15 volts:https://www.mouser.com/datasheet/2/632/GFM0812DS-SMB7R-962553.pdfWhy make it complicated when it can be simple?