EDIT: Rewrite, this is why you don't write questions after not sleeping for two days (wait what day is it?)
I have a whole bunch of 12V 4 pin (pwr, grnd, tach, pwm) fans I'd like to manually control, a server rack (don't worry this isn't any kind of production system...) from which I'd like to read temperatures using DS18B20 1-wire sensors, and a raspberry pi. Buuuut I'm not really sure about my best options for how to do this.
I understand I can use Software PWM to use GPIO pins for PWM output but constantly this seems relatively computer-power hungry and attempting to write different PWM outputs to lets say 8 different fans on 8 different GPIO pins seems like it would pretty much tie up the rpi from doing anything else. Also as far as I can tell from my research 12V fans use a 5V TACH output and 5V PWM control which isn't rpi safe so I'd have to step down the TACH input and step up the PWM output (Is this right?). I could use a Adafruit 16-Channel PWM I2C interface since it can deal out 6V PWM but two problems arise, the board is designed for servos so lacks a TACH input, meaning I'd have to rewire my fans to switch the TACH and PWM pins (removing plug and play ability for switching fans out), and the power delivery to the PWM devices is limited to 6V meaning I'd again have to use a separate circuit for 12V power for the fans.
It seems my best option is using I2C fan controller since they are designed for this in the first place (why redesign the wheel) and the price-per-chip for simple versions is relatively low (although from my research I've come across a number of very cool 'intelligent' i2c fan controllers that can handle a bazillion fans and numerous ways of controlling them though I'm not willing to pay $1,600 per chip). It seems like something like the EMC2301 would be my best option, it allows control of a single 4-pin fan with all the features I want and assumes powering of the fan device will take place somewhere else (woo sperate 12V power supply).
For 1-wire sensor collecting I understand I can run a number of them in parallel and I love the OWFS stuff for reading from the sensors, the limiting factor seems to be the avg. and overall lengths of the wires each sensor is connected to, since each of my wires will be quite short (less than 1m) I could probably get away with all 20 on one GPIO pin by changing the config that limits you to 10 on your 1-wire bus. But I've also heard stories of people running up to 17 sensors using a I2C bus so I'm wondering if this is my best bet with LOTS of sensors, something like a DS2482S-100, it still only has one bus (although they do make an 8 bus chip) but people seem to say they can support up to a 100m network, although I cannot find anything in the datasheet about what this really means for numbers of sensors.
So two questions really, would a chip like the EMC2301 (datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/2301.pdf) be my best bet for 4-pin fan control without having to completely reinvent the TACH/FAN PWM control wheels, and would a chip like the DS2482S-100 be my best bet for a stable 1-wire bus for A LOT of sensors that exist in a relatively small network (distance wise)?