O Latch SR (Flip-flop SR) com portas NAND
Flip-flop SR (Latch)
A figura abaixo mostra o circuito que implementa um Flip-flop SR (também conhecido como Latch SR) construído com duas portas lógicas NAND (ele pode ser construído com portas NOR também, circuito que veremos na próxima lição):
Existem duas entradas em um latch NAND: a entrada SET, que configura a saída Q para o nível 1, e a entrada RESET, que limpa a saída Q para o nível 0.
Normalmente ambas as entradas se encontram em nível ALTO (usando-se resistores de pull-up, por exemplo), e quando se deseja alterar as saídas do flip-flop, uma das entradas é levada a nível lógico BAIXO.
Quando as entradas SET e CLEAR estão ambas em nível alto, as saídas podem apresentar os estados Q = 1, Q´ = 0, ou Q = 0, Q´ = 1, dependendo do que ocorreu previamente nas entradas.
Funcionamento
Podemos resumir o funcionamento de um latch NAND como segue:
- SET = 1, CLEAR = 1 – Condição normal de repouso, sem efeito sobre os níveis lógicos nas saídas. As saídas Q e Q´ permanecem com o valor que possuíam anteriormente.
- SET = 0, CLEAR = 1 – A saída Q vai a 1. O valor permanece mesmo que a entrada SET retorne a 1 (ALTO). Chamamos a essa operação de setar o flip-flop.
- SET = 1, CLEAR = 0 – A saída Q vai a 0. Esse valor permanece mesmo que a entrada CLEAR volte para nível ALTO. Chamamos essa operação de resetar o flip-flop.
- SET = 0, CLEAR = 0 – Condição proibida, pois tenta setar e resetar o latch ao mesmo tempo.
Abaixo temos uma tabela-verdade que exprime o comportamento descrito para o flip-flop SR:
Aplicação de latches SR: Debouncing de chaves mecânicas
Uma aplicação muito comum para um flip-flop SR é a realização de debouncing de uma chave mecânica.
É extremamente difícil (quase impossível) conseguir uma transição de estado limpa ao acionarmos uma chave mecânica, devido à ocorrência de “trepidação de contato” ou “rebote” (contact bouncing).
Quando uma chave mecânica (interruptor) é acionada, a ação de mover seus contatos de uma posição para outra pode produzir muitas tensões de saída, conforme a chave trepida, realizando e interrompendo o contato muitas vezes por segundo , até se estabilizar, o que deve demorar alguns milissegundos para ocorrer. No diagrama esquemático a seguir, ao ser acionada a chave, seu contato não será realizado instantaneamente, devido à ocorrência de bouncing:
Em muitas aplicações isso é inaceitável, pois as trepidações podem ser detectadas como mudanças de estado lógico múltiplas fazendo com que o circuito a ser acionado pela chave funcione de forma errática, conforme mostra a ilustração a seguir:
Esse problema pode ser eliminado com o uso de um flip-flop SR.
Usando o flip-flop SR para eliminar o problema de bouncing (trepidação)
O circuito a seguir ilustra o uso de um latch para eliminar o problema de bouncing que ocorre ao acionar um interruptor em um circuito eletrônico:
Quando a entrada S é acionada pela chave, é levada a nível 0, o que faz com que a saída Q seja colocada em nível 1. Caso haja trepidação na chave, ela será levada diversas vezes ao nível 1. Porém, isso não afetará o nível de saída em Q, o qual permanece o mesmo, pois quando S = 1 e R = 1 o nível lógico nas saídas é mantido. E, por padrão, ambas as entradas estão em nível 1, o que conseguimos ao usar os resistores de pull-up mostrados no diagrama esquemático.
Assim, eliminamos o problema de bouncing neste circuito usando um flip-flop SR.
Anterior: Introdução aos Flip-flops e lógica sequencial
Próximo: Flip-flop SR com portas NOR
Obrigado pelas dicas, ótimas dicas.