banner
Centro de notícias
Assistência pós-venda de primeira linha

Guia definitivo para mudar o Debounce (Parte 6)

Jun 08, 2024

Lá atrás, nas brumas do tempo, quando eu tinha olhos brilhantes e cauda espessa, enquanto escrevia as primeiras palavras nesta busca para explorar o tópico de switch bounce e debounce, na verdade pensei que seria necessário apenas um, talvez dois, colunas. É triste relatar que, à medida que os dias se transformavam em semanas e as semanas em meses, tornei-me um homem muito mais triste e mais sábio.

Não posso acreditar que estamos agora na Parte 6. Enquanto estou sentado aqui na mesa da minha cozinha (veja também o Guia de Sobrevivência do Trabalho em Casa de Kevin) corajosamente tentando desviar o olhar do meu monitor, espero que este seja o último no série, mas nunca sei exatamente o que vou escrever até que as palavras comecem a escorrer pela ponta dos meus dedos, onde essas belezinhas alegres e alegres (as palavras, não as pontas dos dedos) são recém-colhidas ao raiar do dia o lado norte da colina enquanto o orvalho da manhã ainda brilha em suas serifas, esporas e caudas atrevidas e alegres. O resultado final é que todos teremos que esperar até chegarmos ao final desta coluna para ver se realmente é o fim da série. (“Dum dum dum duuuuuuum… Dum dum dum duuuuuuum…” A tensão aumenta.)

Antes de mergulharmos de cabeça na briga com entusiasmo e abandono, vamos nos lembrar brevemente de como chegamos a esse ponto em nossas deliberações. Na Parte 1, introduzimos o conceito de switch bounce. Mais tarde, na Parte 2, nos aprofundamos no salto associado a uma chave seletora de pólo único, movimento único (SPST) e uma chave seletora de pólo único, movimento duplo (SPDT).

Na Parte 3, começamos a considerar soluções de hardware para alternar o ressalto, começando com a ideia de usar uma rede RC seguida por um gatilho Schmitt para eliminar o ressalto de uma chave seletora SPST. Na Parte 4, analisamos o uso de uma variedade de multivibradores monoestáveis ​​para neutralizar os interruptores SPST (infelizmente, finalmente concluímos que o uso de multivibradores monoestáveis ​​não era uma boa opção).

Mais recentemente, na Parte 5, voltamos às chaves seletoras SPDT e consideramos técnicas de debounce baseadas em latches implementados usando dois inversores, latches SR (ambos baseados em NAND e NOR) e latches e flip-flops tipo D.

Nesta coluna, estamos preparados para examinar uma categoria restante de soluções de rejeição baseadas em hardware na forma de circuitos integrados (ICs) especiais. Se o destino nos sorrir, também abordaremos a implementação de debounce em projetos de array de portas programáveis ​​em campo (FPGA). Finalmente, voltaremos nossa atenção para as técnicas de debounce de software.

Se alguma dessas coisas não for familiar para você, talvez você queira dar uma olhada nas minhas colunas associadas Tipos de switch e Terminologia de switch. Você também pode estar interessado em ler e ponderar minha coluna Registros vs. Travas vs. Flip-Flops. Por último, mas certamente não menos importante, como observamos antes, interruptores de alternância, interruptores basculantes e interruptores de botão exibem o salto dos interruptores praticamente da mesma maneira. Na verdade, os únicos interruptores que não saltam são aqueles que a maioria de nós raramente, ou nunca, usa, como os interruptores de inclinação de mercúrio.

Caracterizando o Sistema

Antes de começarmos a nos aprofundar, e enquanto estou pensando sobre isso, quando eu estava conversando com o guru incorporado Jack Ganssle há algumas semanas, ele mencionou que sua recomendação para qualquer pessoa envolvida no projeto de um sistema – especialmente pessoas que projetam sistemas de missão crítica e sistemas críticos para a segurança – é que eles caracterizam os interruptores que planejam usar antes de implantá-los em um mundo desavisado.

É muito fácil para os designers de hardware e desenvolvedores de software recorrerem a soluções “testadas e comprovadas” sem pensar bem nas coisas. Por exemplo, na Parte 1 do clássico Guia para Debouncing de Jack, ele mencionou um tipo de interruptor que envolvia contatos dourados banhados em uma placa de circuito impresso (PCB). Havia uma tampa de borracha associada que – quando pressionada – apresentava algum tipo de elastômero condutor aos contatos de ouro. Jack notou que o resultado analógico foi uma rampa lenta de zero a cinco volts, sem ruído, limpeza ou outra incerteza, e sem nenhum vestígio de ressalto. Infelizmente, quando este sinal foi apresentado a uma entrada TTL, sua rampa lenta através da “zona proibida” (0,8 a 2,0 V) resultou em um milissegundo (ms) de oscilações selvagens, que podem ser consideradas “saltos virtuais”.