Vários gatilhos Schmitt em série podem renunciar totalmente a um switch?

8

Depois de lidar com a rejeição de software por um tempo, acho que é um grande problema para o sistema, então pensei em fazer um debouncer de hardware com um gatilho Schmitt (74HC14), um capacitor, botão e resistor, como mostrado abaixo em talkingelectronics.com :

circuito eletrônico falante

Mas eu li que o gatilho Schmitt é meio desagradável como um inversor comum ao determinar quando produzir uma saída alta ou baixa, porque alterna o estado na marca de 33% e 66%, onde, como um inversor normal, se aproxima da marca de 50% (mas com a versão HC provavelmente é mais de 55%).

Fiquei me perguntando, porque o gatilho Schmitt é de seis inversores em um pacote, a depuração melhoraria substancialmente com qualquer botão de minha escolha aplicado à primeira entrada se eu fizesse seis circuitos no lado direito com os mesmos valores de componentes e conectasse todos os deles em série? (Exemplo: saída do primeiro circuito para a entrada do segundo circuito onde o capacitor e o resistor se encontram.)

Mike
fonte
3
"porque ele muda de estado na marca de 33% e 66%" , não é esse o objetivo de usar um gatilho schmitt? ... Para que exista uma janela no meio em que ele não mude, rebatendo assim?
Bort
5
Como a debouncing afeta o sistema? A depuração do software pode ser tão simples quanto manter um intervalo de 50 ms entre a leitura dos botões.
Wouter van Ooijen
2
@ Mike Talvez você tenha um mal-entendido sobre os disparadores de Schmitt? Você está ciente de que eles têm histerese e de que os pontos de comutação assimétricos estão "sobrepostos": não há banda média onde o sinal é indefinido.
tubulação
4
Seu problema não tem nada a ver com isso - o seu problema é que você não sabe como escrever a devolução de software de uma maneira que não é totalmente ineficiente. Eu sugiro fortemente que publique outra pergunta no fórum de revisão de código para perguntar o que você fez de errado em seu software, porque mesmo o processador mais barato de 8 bits pode rejeitar várias entradas sem suar a camisa.
Graham
2
@ Mike A menos que você tenha milhares de eventos por segundo e precise renunciar, não vejo como isso poderia consumir qualquer impacto mensurável no tempo de execução.
Dmitry Grigoryev

Respostas:

12

O uso de gatilhos de Schmitt em série não reduziria ainda mais o salto.

Considere o filtro:

Comparação da forma de onda do disparador de Schmitt

A entrada é (U). A linha vermelha é um limite de 50%, cuja saída é vista como sinal (A). Ele salta cada vez que a entrada é cruzada.

As linhas verdes são algo entre 33% e 66%, como você afirmou. Mas a saída (B) muda apenas quando a entrada (U) passa de um limite verde para o outro.

Mais importante ainda, a saída é totalmente ALTA ou BAIXA (digital). Portanto, se a saída de um gatilho Schmitt fosse inserida na entrada de outro, não haveria essencialmente nenhuma diferença.

Pegue a saída filtrada acima (B) e pense em como seria vista por outro gatilho Schmitt:

Gatilho Schmitt em série com outro

Novamente, a saída do primeiro seria HIGH ou LOW. Portanto, ele cruzaria os limites ao mesmo tempo, resultando na mesma saída que a entrada. Não há nada para rebater! Se alguma coisa, eu esperaria que isso criasse mais ruído, porque você está apresentando mais componentes e, portanto, mais espaço para erros.

Parece que o que você pode estar procurando é um gatilho Schmitt com limites ajustáveis. Alguns são simétricos (por exemplo: 33% e 66%, ou 10% e 90%). Outros são não simétricos (por exemplo: 33% e 80%). Você pode criar o seu próprio usando um amplificador operacional.

Tente brincar com esta simulação que reuni há algum tempo: Simulação de gatilho de Schmitt - Não inversora Não simétrica

Simulação de gatilho Schmitt - não inversora não simétrica

Bort
fonte
Considerando que eu vou fazer uma PCB, às vezes amarrar dois inversores em série facilitará a criação da PCB. Quanto mais ruído esperarei se amarrar dois desses inversores em série?
Mike
Para essa configuração, o "ruído" provavelmente seria insignificante. Pode haver um microssegundo de propagação de tempo. O "ruído" da tensão não seria um problema muito grande, pois, afinal, cada gatilho é um filtro. Eu não me preocuparia com isso, a menos que o aplicativo seja fortemente dependente do tempo, mas acho que não é porque é apenas um botão.
Bort
15
Vários gatilhos Schmitt em série podem renunciar totalmente a um switch?

Um único gatilho Schmitt com um filtro analógico na frente pode ser usado para rebater. No entanto, após o disparo de Schmitt, o sinal é totalmente digital. Qualquer gatilho Schmitt adicional não vai mudar isso. Idealmente, eles preservarão o sinal.

Em um tópico separado, a rejeição no firmware não deve apresentar muita carga. A maneira usual é provar o estado do comutador em uma interrupção periódica que você já possui. Você declara o estado rejeitado o valor atual da chave quando vê a chave nesse estado por N amostras consecutivas. Normalmente, eu exijo que o comutador esteja no mesmo estado por 50 interrupções consecutivas de 1 ms para que o novo estado seja considerado válido. Isso geralmente leva uma fração muito pequena do ciclo geral do processador.

Olin Lathrop
fonte