Sobre o seu esquema:
Tudo parece bem, você pode aumentar o R2 para 10k ou até 100k, a capacitância do MOST é tão pequena que a ventoinha terá muito mais inércia de rotação do que o atraso no desligamento do MOST, provavelmente mesmo com 1M. Dessa forma, a localização do seu 100R é irrelevante e enquanto você não gasta nenhum mA. Se você nunca reter o DEC em redefinição, isso nem sempre é necessário, pois o seu UC ativamente o puxa para cima ou para baixo.
Para o sinal PWM, você pode ver se a folha de dados permite uma extração externa de 12V, embora eu duvide que faça muita diferença de qualquer maneira.
Sobre o barulho:
EDIT: Eu interpretei errado o seu gráfico para kHz, o que é estúpido se você pensar nisso, onde é Hz. Parte da minha história mudará um pouco (como a conversa sobre a necessidade de MHz para o trabalho digital), mas a idéia geral permanece.
Vou deixar o post inteiro como está, mas, para um sinal de 100Hz com ruído de 30kHz, em vez de 100kHz com ruído> 5MHz (também não fazia sentido, não é?), Você pode aumentar os resistores que interagem com os capacitores por um fator de 10 e também aumente os capacitores em um fator de 50 a 100. Isso resultará em uma frequência de filtragem de fator 1000 mais baixa em todos os exemplos. Mas também não há problema em apenas aumentar os capacitores em um fator de 10 a 20, para bordas mais nítidas ou resposta mais rápida no seu sinal de interesse, já que 30kHz está muito longe de 100Hz.
Portanto, considere este post como escrito para altas frequências e reduza as ideias, tornando-as muito mais fáceis de implementar! (Especialmente a rejeição digital em 3.)
Fim da Edição
Como você cria um bom caso de uso para trabalhar com métodos de redução de ruído, tentarei criar um que se aplique à sua situação.
Para quem estiver lendo, esteja ciente de:
Trata-se apenas de ruído em um sinal digital
Em um sinal digital, você pode supor que há apenas duas voltagens nas quais você está interessado "ligado" e "desligado". Qualquer coisa no meio é inútil e pertence ao barulho ou errado. Em um sinal analógico, você precisa conhecer todos os níveis de tensão e fazer alguma filtragem real com cargas de C, L, etc.
Um problema no seu sinal é que os picos de ruído negativo no nível alto e os picos de ruído positivo no nível baixo se aproximam muito, portanto, um simples gatilho padrão, mesmo com nível ajustável, não garante absolutamente que você nunca obterá confuso.
Suas opções:
- Alterar o viés
- Alterar os níveis de tensão
- Adicionar histerese "lenta"
- Filtrar o ruído
1. Altere o viés:
O positivo tem picos negativos muito baixos, é porque sua flexão não pode ganhar com o barulho. A coisa mais fácil que você pode tentar é diminuir essa resistência. Existe o risco de isso também aumentar os picos no sinal de desligado, de modo que nem sempre funcionará. Mas é muito possível que isso lhe dê algum espaço entre os espigões para definir uma histerese simples.
2. Altere os níveis de tensão
Você pode facilmente, se o ventilador permitir, alterar o Tacho para um nível de tensão mais alto e adicionar um estado intermediário:
simular este circuito - esquemático criado usando o CircuitLab
Agora, pode haver espaço suficiente entre os picos alto e baixo para garantir que o MOST esteja sempre ativado, mesmo quando houver picos negativos e sempre desligados, mesmo se houver picos positivos. Pode levar alguns diodos, zeners ou resistores para obter o ponto de ajuste na nova situação, mas se os picos no sinal negativo permanecerem o que são, eles não deverão acionar o MOSFET, desde que você não substitua-o por um que tenha um limiar de porta abaixo de 2V.
3. Adicione histerese "lenta":
Esse é um truque comumente usado quando você sabe que um sinal de ruído pontudo é pelo menos uma ordem de magnitude maior que o sinal em que está interessado. Isso atrasará um pouco o sinal, portanto não poderá ser usado em situações em que o momento exato de uma mudança on / off é importante.
Mas para um sinal em que você deseja apenas saber a forma ou a frequência dele, esse é um método muito robusto. Basicamente, começa a disparar quando há uma tensão que ultrapassa o limite, mas somente conclui essa ação quando permanece lá. Existem muitas maneiras de construir uma.
Você pode fazer isso no controlador (o que é mais fácil na contagem de componentes): é possível disparar em um flanco e, em seguida, experimentar mais alguns valores em velocidade suficiente para ver a alta entre picos de ruído, mas não confundir a perda de um período inteiro baixo. Então você faz um julgamento predefinido com base no conhecimento do seu sinal e ruído. Por exemplo, se você pudesse amostrar em 10 MHz, poderá capturar 50 amostras e ter certeza de que uma frequência mais alta de 100 kHz não será ignorada se você seguir a regra da maioria. Ou seja: pelo menos 25 precisam ser baixos para realmente serem baixos. Seus picos são muito finos e, na maioria das vezes, é o sinal original, para que funcione, mas o número da maioria pode ser ajustado. Isso funcionará com 1MHz e 6 ou 7 amostras também, mas será uma maioria menor, portanto, pode haver alguns riscos novamente lá.
Você também pode fazer isso externamente:
Mas já é MUITO mais complicado do que adicionar um filtro simples, especialmente quando você olha o resultado com um uC com alguma histerese em sua entrada. Mas é divertido pensar, então vamos:
simule este circuito
U1 é qualquer Op-Amp ou Comperador adequado. Os operadores são melhores comutadores, geralmente com melhor giro, mas para sub-MHz um OpAmp com giro decente de trilho / trilho será fácil.
Embora esse tipo de histerese possa ser construído com pelo menos um resistor a menos, este é mais fácil de explicar e, como tal, mais fácil de modificar.
Primeiro imagine sem o capacitor:
Primeiro, veja que o divisor do resistor é influenciado pela saída do U1, ele o puxa um pouco mais para baixo através da resistência aparente de 20kOhm. Digamos que na entrada positiva de U1 há uma tensão de 1,1V arredondada para baixo quando sua saída é 0 e 3,9V arredondada quando sua saída é de 5V.
Se a entrada Tacho inicial em estado estacionário for alta, a saída do U1 será baixa, devido à natureza invertida da entrada no Tacho. Portanto, a entrada negativa será, novamente devido ao resistor extra, cerca de 2,3V. Como a entrada positiva é de apenas 1,1V, a entrada precisa cair abaixo de 2,2V para fazer com que a entrada negativa veja uma tensão mais baixa e faça a saída virar.
Quando a saída virar, a entrada negativa verá 3,6V (porque neste instante o sinal de entrada é 2,2V, a saída do U1 é 5V, então o meio, produzido pelos resistores de 10k, é de cerca de 3,6V), mas o positivo entrada terá mudado de 1.1V para 3.9V, então o negativo ainda está abaixo da entrada positiva e a saída permanecerá 5V.
Se o sinal agora "abortar" rapidamente e subir novamente, a saída do U1 voltará rapidamente novamente, mas o pico já teve que cair abaixo de 2,2V, então isso é melhor do que nada.
Se o sinal descer mais para 0, a situação estável ficará mais forte, a entrada negativa cairá para 2,5V (já que assumimos que o tacho da ventoinha é forte o suficiente para puxar para baixo) e o positivo permanecerá em cerca de 3,9 V.
Agora, o sinal precisa aumentar acima de 2,7V para que a saída vire para o outro lado. Muito provavelmente, 95% dos seus picos já serão ignorados.
Adicionando o capacitor:
Com o capacitor, o sinal de entrada precisa fornecer energia suficiente por tempo suficiente para carregar ou descarregar o capacitor. Na verdade, isso já é um filtro RC. Qualquer pico que desça rapidamente e depois se recupere não poderá descarregar o capacitor.
O valor de C obviamente depende do sinal da fonte e do sinal de ruído. Eu tenho 510pF estacionado para um sinal de fonte de 100kHz vs 1us de duração máxima, mas eu realmente não fiz muita matemática, é apenas um pressentimento baseado no tempo de RC que pode estar próximo do que funcionará.
4. Filtre o ruído
Isso é como filtrar um sinal analógico. Você pode usar uma rede RC simples, como discutido na seção anterior:
simule este circuito
Como os picos de ruído são iguais ou inferiores a 1us, eles não podem fazer uma alteração muito significativa na tensão no capacitor, pois o tempo de RC é de 5us. Isso significa que a energia nos picos é reduzida a uma média. Como você vê altos e baixos nos picos, é possível que as médias sejam muito próximas de 0V e 5V, mas isso só pode ser dito com fotos melhores ou apenas com um experimento. Como você o alimenta com um pino de uC, o tempo de RC provavelmente será suficiente para vê-lo como alto ou baixo. Isso causará uma pequena distorção devido ao carregamento mais lento do que ao descarregamento, causado pelo resistor de pull-up. Alguns ajustes de valores podem resultar em um resultado insignificante.
Se isso não for suficiente, você poderá adicionar mais alguns componentes, mas estará exagerando muito rapidamente quando o ruído dominante for pelo menos 10 vezes "mais rápido" do que o seu sinal.
Você pode adicionar um indutor de 4.7uH em série com o resistor para suavizar alguns flancos de alta frequência, talvez até 10uH.
Mas, para ser sincero, no caso de "alimentá-lo com um uC", a única razão para experimentar Ls em um sinal do seu tipo é encontrar um equilíbrio em que R seja grande, C seja pequeno e L apenas ajude a suavizar alguns flancos, para que R2 / R1 seja pequeno o suficiente para ignorar a diferença no tempo de subida e descida. como um R1 de 33k, C de 150pF e um L em série com R1 de 56uH. Ou talvez um cordão de ferrite no lugar do indutor dependa um pouco da nitidez dos seus espinhos.
Mas já pensando demais, eu diria.