Sobre su esquema:
Todo parece estar bien, puedes aumentar el R2 a 10k o incluso 100k, la capacitancia del MOST es tan pequeña que el FAN tendrá mucha más inercia de giro que el retardo de apagado en el MOST, probablemente incluso con 1M. De esta manera la ubicación de tu 100R es irrelevante y mientras esté encendido no pierdes ningún mA. Si nunca mantienes el uC en reset, técnicamente ni siquiera es necesario, ya que tu uC lo pondrá activamente en alto o en bajo.
Para la señal PWM, podrías ver si la hoja de datos permite un pull-up externo a 12V, aunque dudo que haga mucha diferencia de cualquier manera.
Sobre el ruido:
EDIT: He leído mal su trama para kHz, que es estúpido si se piensa en ello, donde es Hz. Algunos de mi historia va a cambiar un poco (como la charla sobre la necesidad de MHz para el trabajo digital), pero la idea general se mantiene.
Dejaré todo el post como está, pero para una señal de 100Hz con ruido de 30kHz, en lugar de 100kHz con ruido de >5MHz (tampoco tenía mucho sentido, ¿verdad?), podrías aumentar las resistencias que interactúan con los condensadores por un factor de 10, y también aumentar los condensadores por un factor de 50 a 100. Con eso conseguirás una frecuencia de filtrado factor 1000 más baja en todos los ejemplos. Pero también está bien sólo aumentar los condensadores por un factor de 10 a 20, para obtener bordes más nítidos o una respuesta más rápida en su señal de interés, ya que 30kHz está muy lejos de 100Hz.
¡Así que considere este post como escrito para altas frecuencias y reduzca las ideas, haciéndolas mucho más fáciles de implementar también! (Especialmente el rechazo digital en 3.)
Fin de la edición
Ya que haces un caso de uso tan bonito para trabajar con métodos de reducción de ruido, intentaré hacer uno que se aplique a tu situación.
A todos los que lean, estén atentos:
Se trata sólo de ruido en una señal digital
En una señal digital puedes suponer que sólo hay dos tensiones que te interesan "on" y "off". Todo lo que hay entre ellas no tiene sentido y pertenece al ruido o es erróneo. En una señal analógica, tienes que conocer todos los niveles de tensión y tienes que hacer un filtrado real con cargas de C, L, etc.
Un problema en tu señal es que los picos de ruido negativo en el nivel alto y los picos de ruido positivo en el nivel bajo se acercan mucho entre sí, por lo que un simple disparador estándar, incluso con nivel ajustable no puede garantizarte absolutamente que nunca te confundas.
Sus opciones:
- Cambiar el sesgo
- Cambiar los niveles de tensión
- Añadir histéresis "lenta"
- Filtrar el ruido
1. Cambiar el sesgo:
El positivo tiene picos negativos muy bajos, eso es porque su pull-up no puede ganar del ruido. Lo más fácil que puedes intentar es disminuir esa resistencia. Existe el riesgo de que esto aumente los picos en la señal de apagado también, por lo que no siempre puede funcionar. Pero es muy posible que te dé algo de espacio entre los picos para establecer una simple histéresis.
2. Cambiar los niveles de tensión
Puedes fácilmente, si el ventilador lo permite, cambiar el Tacho a un nivel de voltaje más alto y añadir un estado intermedio:
simular este circuito - Esquema creado con CircuitLab
Ahora puede haber suficiente espacio entre los picos altos y bajos para que el MOST esté siempre encendido, aunque haya picos negativos y siempre apagado, aunque haya picos positivos. Puede que se necesiten algunos diodos, zeners o resistencias para conseguir el punto de ajuste en la nueva situación, pero si los picos de la señal negativa siguen siendo los que son, no deberían disparar el MOSFET, siempre y cuando no lo sustituyas por uno que tenga un umbral de puerta inferior a 2V.
3. Añadir histéresis "lenta":
Este es un truco que se suele utilizar cuando se sabe que una señal de ruido punzante es de al menos un orden de magnitud mayor que la señal que interesa. Retrasará un poco la señal, por lo que no puede utilizarse en situaciones en las que el momento exacto de un cambio de encendido/apagado sea importante.
Pero para una señal de la que sólo quieres saber la forma o la frecuencia, este es un método muy robusto. Básicamente comienza a disparar cuando hay un voltaje que cruza el umbral, pero sólo completa esa acción cuando se mantiene allí. Hay muchas maneras de construir uno.
Se puede hacer en el controlador (que es más fácil en el recuento de componentes): Usted puede disparar en un flanco, a continuación, la muestra de algunos valores más a la velocidad suficiente para ver el alto entre los picos de ruido, pero no confundir acerca de perder todo un período de baja. A continuación, usted hace un juicio predefinido basado en el conocimiento de su señal y el ruido. Por ejemplo, si pudieras muestrear a 10MHz, podrías capturar 50 muestras y estar seguro de que una frecuencia más alta de 100kHz no será ignorada si vas con la regla de la mayoría. Es decir: al menos 25 tienen que ser bajas para que realmente lo sean. Tus picos son muy finos y la mayoría de las veces es la señal original, por lo que podría funcionar, pero el número de una mayoría se puede ajustar. Esto funcionará con 1MHz y 6 o 7 muestras también, pero será menos de una mayoría real, por lo que puede haber algunos riesgos de nuevo allí. 1MHz al menos debería ser factible con la mayoría de los uCs modernos.
También puedes hacerlo de forma externa: Pero ya es MUCHO más complicado que añadir un simple filtro, sobre todo si miramos el resultado con un uC con algo de histéresis en su entrada ya. Pero es divertido pensar en ello, así que vamos:
simular este circuito
U1 es cualquier Op-Amp o Comperador adecuado. Los Comperadores son mejores conmutadores, a menudo con mejor oscilación, pero para sub-MHz un OpAmp con una decente oscilación carril/carril lo hará fácilmente.
Aunque este tipo de histéresis se puede construir con al menos una resistencia menos, ésta es más fácil de explicar y, por tanto, más fácil de modificar.
Primero imagínalo sin el condensador:
En primer lugar, ver que el divisor de resistencia está influenciada por la salida de U1, se tire de ella un poco más bajo o más alto a través de la resistencia aparente 20kOhm. Digamos que en la entrada positiva de U1 hay una tensión de 1,1V redondeada hacia abajo cuando su salida es 0, y 3,9V redondeada hacia arriba cuando su salida es 5V.
Si la entrada del tacómetro en estado estacionario es alta, la salida de U1 será baja, debido a la naturaleza inversa de la entrada del tacómetro. Así que la entrada negativa será, de nuevo debido a la resistencia extra de pull-up, de unos 2,3V. Como la entrada positiva es sólo 1,1V, la entrada necesita caer por debajo de 2,2V para que la entrada negativa vea un voltaje más bajo y haga que la salida se invierta.
Cuando la salida se voltea, la entrada negativa verá 3.6V (porque en este instante la señal de entrada es de 2.2V, la salida de U1 es de 5V, así que su medio, hecho por las resistencias de 10k es de unos 3.6V), pero la entrada positiva habrá volteado de 1.1V a 3.9V, así que el negativo sigue estando por debajo de la entrada positiva y la salida seguirá siendo de 5V.
Si la señal ahora se "aborta" rápidamente y vuelve a subir, la salida de U1 volverá a retroceder rápidamente, pero entonces el pico ya ha tenido que caer por debajo de 2,2V, así que es mejor que nada.
Si la señal baja más a 0, la situación estable sólo se hará más fuerte, la entrada negativa caerá a 2,5V (ya que asumimos que el tacómetro del FAN es lo suficientemente fuerte como un pull-down) y la positiva descansará a unos 3,9V.
Ahora la señal tiene que subir por encima de los 2,7V para que la salida cambie de sentido. Es muy probable que el 95% de tus picos sean ignorados ya.
Añadiendo el condensador:
Con el condensador, la señal entrante necesita suministrar suficiente energía durante el tiempo necesario para cargar o descargar el condensador. En efecto, esto ya es un filtro R-C. Cualquier pico que caiga rápidamente y luego se recupere no podrá descargar el condensador.
El valor de C depende, por supuesto, de la señal de origen y de la señal de ruido. He calculado 510pF para una señal de origen de 100kHz frente a una duración de pico de 1us como máximo, pero no he hecho muchos cálculos, es sólo una intuición basada en el tiempo R-C que podría estar cerca de lo que funcionará.
4. Filtrar el ruido
Esto es un poco como filtrar una señal analógica. Puedes utilizar una simple red R-C, como la que se ha comentado en el apartado anterior:
simular este circuito
Como los picos de ruido son de 1us o menos, no pueden hacer un cambio muy significativo en la tensión del condensador, ya que su tiempo R-C es de 5us. Esto significa que la energía de los picos se aplana hasta un promedio. Ya que ves altos y bajos en los picos, es posible que los promedios estén muy cerca de 0V y 5V, pero eso solo se puede decir con mejores fotos, o solo con un experimento. Como lo alimentas a un pin del uC, el tiempo R-C probablemente será suficiente para verlo como alto o bajo. Esto dará una pequeña distorsión debido a la carga más lenta que la descarga, causada por la resistencia de pull-up. Algunos ajustes de los valores pueden dar un resultado en el que esto sea insignificante.
Si eso no es suficiente, podrías añadir algunos componentes más, pero te estás pasando muy rápidamente cuando tu ruido dominante es al menos 10 veces más "rápido" que tu señal.
Podrías añadir un inductor de 4,7uH en serie con la resistencia para suavizar un poco más los flancos de alta frecuencia, quizás incluso 10uH.
Pero para ser honesto, en el caso de "alimentar a un uC" la única razón para experimentar con L's en una señal de su tipo es encontrar un equilibrio en el que el R es grande, C es pequeño y L sólo ayuda a suavizar algunos flancos, de modo que R2 / R1 será lo suficientemente pequeño como para ignorar la diferencia en el tiempo de subida y bajada. como un R1 de 33k, C de 150pF y un L en serie con R1 de 56uH. O tal vez una cuenta de ferrita en lugar del inductor, depende un poco de la agudeza de sus picos.
Pero ya lo estoy pensando demasiado, diría yo.
1 votos
¿Por qué necesita el FET IRF510 para conmutar la alimentación del ventilador? Conducir el PWM a un ciclo de trabajo del 0% debería apagar el ventilador o ponerlo a su mínima velocidad de funcionamiento.
1 votos
@MichaelKaras Sí, el ventilador tiene una velocidad mínima, por lo que no se para a no ser que cortes la corriente. Por diseño ignora cualquier PWM inferior a ~10% y funciona a 400RPM. Así que uso ese FET para matarlo completamente cuando sea necesario.
2 votos
Ya veo. Pero esto significa que cuando se pretende volver a arrancar el ventilador desde un estado de +12V apagado puede ser necesario arrancarlo con un ciclo de trabajo PWM más alto que el mínimo. He experimentado esto con algunos tipos de ventiladores que necesitan una patada de arranque para conseguir que se inicien de forma fiable en el encendido. Los algoritmos de control de los ventiladores en muchos ordenadores de tipo servidor funcionarán al 100% del ciclo de trabajo durante los primeros 10 a 20 segundos en el arranque para asegurar que todos los ventiladores arranquen correctamente.
0 votos
@MichaelKaras Gracias, es útil, aunque funciona bien si empiezo en torno al 15%. Esto es sólo un hobby / proyecto de aprendizaje - Estoy haciendo un extractor de humos de soldadura que se enciende y la rampa hacia arriba como me muevo mis manos hacia el trabajo y luego la rampa hacia abajo y fuera cuando he terminado.
2 votos
En casi todos los subsistemas de ventiladores en los que he trabajado he tenido la señal TACH atada a una red de resistencias que polariza la señal desde el riel de +12V y luego tiene un par de resistencias divisoras además que llevan la señal TACH a los niveles de +5 o +3.3V necesarios para el sistema de monitoreo. Una pequeña tapa en la resistencia inferior del divisor puede ayudar a filtrar cualquier pico de ruido en la señal TACH.
0 votos
@MichaelKaras Ahh, he visto circuitos similares en internet pero no entendía por qué subirlo a 12V sólo para dividirlo de nuevo hacia abajo. ¿Esto ayuda a reducir el ruido? ¿Qué pasa si pongo un pequeño tapón a través de mi pullup, hará algo similar?
0 votos
Otra cosa a tener en cuenta es que hay una gama de comportamientos de los pequeños chips controladores PWM que se utilizan dentro de los ventiladores de cuatro hilos. Algunos aceptan PWM variable hasta el 0% aunque normalmente hay algún ciclo de trabajo por debajo del cual el ventilador no gira. Otros actuarán como usted describe, donde aceptan PWM hasta un cierto nivel por debajo del cual la velocidad del ventilador se mantiene constante. Otro tipo el ventilador se apagará completamente cuando el PWM esté por debajo de algún umbral y luego saltará a una velocidad de funcionamiento por encima de ese umbral.
1 votos
La principal utilidad de utilizar el raíl de +12V para polarizar la señal TACH es que proporciona aislamiento entre los +12V y las señales de tensión digital de bajo nivel del sistema de control. Tres consideraciones son: 1) Los cables del ventilador pueden quedar atrapados entre las partes del chasis y es posible que se produzcan cortocircuitos entre los cuatro cables. 2) Los ventiladores en un entorno polvoriento podrían tener una acumulación de carga estática y las resistencias pueden ayudar a mantener cualquier descarga ESD fuera de la entrada del detector TACH. 3) La constante de tiempo RC del divisor con capacitancia perdida o con un tapón añadido actúa como un filtro para la señal TACH.