Pues en realidad la resistencia casi es lo de menos, lo importante es leer el Datasheet del ventilador y ver que tipo de entrada y qué señales admite. El PWM no es un protocolo, es un tipo de modulación, que transforma una señal, ya sea digital o analogica, a otra señal ANALÓGICA de dos niveles cuya magnitud viene representada por el ancho del pulso de la señal. Que una señal sea rectangular no significa necesariamente que sea digital aunque pueda serlo o ser compatible con circuitos digitales.
Incluso si el ventilador admite una señal PWM compatible digital, puede ser compatible con una familia logica y otras no. Por ejemplo, un ventilador a 12V puede no ser compatible con un señal digital de 5V TTL, o uno de 5V con una señal digital de 12V CMOS.
En tu caso, puede que funcione bien porque el ventilador esta fabricado según el estandar de Intel para ventiladores de PC. Este estandar, que adjunto aqui en PDF, indica que en la entrada PWM el voltaje máximo para indicar el estado bajo es 0.8V, que esa entrada, llevada a cero voltios como mucho va a proporcionar 5mA, y que el voltaje máximo de esa entrada es de 5.25V. En principio puedes pesar que lo que pone es compatible con tu salida de la R PI. Es compatible por pura casualidad. Si te has fijado, el estandar no especifica cuanta corriente admite de entrada esa entrada en nivel alto, sólo cuanta corriente entrega en nivel bajo. Si que indica que esa entrada presenta 5.25V como máximo. Dicho con otras palabras, la entrada PWM del ventilador posiblemente lleva internamente una Pull-Up hacia 5V que controla el estado en ON del ventilador, por eso si la entrada PWM se deja sin usar al aire, el ventilador gira al máximo, porque esa resistencia le indica por defecto un estado activo.
Entonces el circuito digital lo que ha de hacer es manejar dos estados, un estado de desconexión que el ventilador interpreta con un 1 lógico, y un estado de nivel bajo o voltaje 0V, que el ventilador intepreta como estado lógico 0 o inactivo. El tipo de salida digital que cumple esta función es la del tipo "colector abierto" o "drenador abierto" ya que quien cierra el circuito es la resistencia interna de pullup del ventilador. Ahora bien, si en lugar de usar una salida colector abierto, usas una salida digital biestado, en el nivel alto no sabes cuanta corriente va a admitir la entrada PWM del ventilador, ya que una salida en colector abierto no entrega corriente y eso es lo que espera ver el ventilador. En tu caso lo mas probable es si el elemento conmutador PWM es transistor tipo FET y la frecuencia del PWM no es alta, la corriente de puerta de dicho transistor no es lo bastante alta como para molestar a la salida de la R PI, lo que seria muy distinto si la entada fuera la base de un BJT, que es un cortocircuito para todo lo que suba de 0.7V. Pero sin el datasheet del ventilador no lo sabes. Lo normal seria usar una salida en colector abierto, pero si no la tienes, o la inventas tu usando un transistor externo, o al menos pones una resistencia limitadora de corriente para no romper el puerto de la R PI. Te pones en el peor caso, por ejemplo que en el estado alto esa entrada PWM parezca un cortocircuito para la RPI, si el limite de corriente de l salida son, supongamos, 100mA, pues pones R = (5V-0V)/0.1A= 50ohm, y asi seguro que no haces sufrir al puerto.
Aqui te pongo una foto de un sistema basico de 3 cables y uno de 4, el esquema es oficial de Analog Devices:
Si ves en los esquemas hay 2 bobinas, que son el estator del motor, ya que el rotor es exterior al estator y es un anillo de imanes permanentes, aunque en realidad el estator son 4 bobinas puestas en serie por parejas. El mecanismo de accion es el siguiente: El iman del rotor es un burro, y en el estator hay 2 zanahorias que mientras una sale la otra se esconde. El sensor de efecto hall es el granjero que cuando ve acercarse al burro a una de las zanahorias, da la orden de esconderla y sacar la zanahoria del otro lado, de esa forma el burro no para de girar. El sentido de giro viene determinado por la posicion del granjero (sensor que indica el paso del iman del rotor) con respecto a las zanahorias (las bobinas del estator).
Veamos pues la siguiente animación:
Como ves, las bobinas se activan dos a dos alternativamente, y los polos norte y sur de las bobinas estan 90° entre si. De esa manera, situando el sensor de efecto hall a 45° con respecto a ambas bobinas se consigue la secuencia de giro. Si las bobinas proximas al sensor se activan con una polaridad a un lado del sensor y la opuesta al otro lado contiguo, el iman gira en el sentido que le es favorable. Si hacemos que las bobinas se activen con la polaridad cambiada con respecto al pasl del iman por el sensor hall, haremos que el sentido de giro cambie (el momento angular de giro pasa de ser 45° a -45°). Para ello hay 3 opciones que se me ocurren, las cuales no he probado pero alguna de ellas, o las tres, tienen que funcionar. La primera es intercambiar los terminales de los dos grupos de bobinas en serie, de esa forma, si antes cuando se activa el sensor teniamos norte a la bobina izquierda y sur a la derecha, entonces al intecambiarlos terminales de las bobinas tendriamos norte a la derecha y sur a la izquierda, cambiando el giro. La segunda es simplemente cambiar de posicion el sensor hall, colocandolo en la esquina de en frente. Como es poco practico ir girando el sensor cada vez que queras variar el sentido, se pondría un segundo sensor y con medios digitales o una llave, se selecciona cual de los dos sensores controla la activación de las bobinas. La tercera opción es invertir logicamente la señal que va del sensor hall hacia los transistores que activsn las bobinas. Es la opción mas sencilla cuando tenemos un ventilador hecho de forma discreta, pero si solo existe un integrado que lo hace todo, esa señal no es accesible desde fuera y es mss factible sobre todo la primera opcion.
Espero que tras leer mi aportación hayas podido alcanzar la paz interior que te perturbaba la conexión PWM. Saludos.