1- Utilızando latches, proponha circuitos que resolvam o problema de repıque de chave, explicando a solução para cada caso abaixo.

Passo 1

Vou descrever claramente o que o enunciado pede e quais informações a figura nos dá (peguei estes detalhes da imagem enviada). O problema pede que, usando latches, eu proponha circuitos que resolvam o problema de repique (bounce) da chave para dois casos distintos e explique cada solução.
Informações relevantes extraídas da imagem:
  • Caso (a): cada uma das duas posições da chave está ligada a um resistor de pull-up em +5\;\text{V} (ou seja, os contatos são normalmente empurrados a nível lógico alto) e a chave conecta o nó de entrada do circuito ao potencial de massa quando acionada. Em outras palavras: os contatos são ativos em nível lógico baixo (quando a chave conecta, vai a 0).
  • Caso (b): cada uma das duas posições da chave está ligada a um resistor de pull-down para \text{GND} (ou seja, os contatos são normalmente empurrados a nível lógico baixo) e a chave conecta o nó de entrada a +5\;\text{V} quando acionada. Em outras palavras: os contatos são ativos em nível lógico alto (quando a chave conecta, vai a 1).
  • Em ambos os casos temos uma chave com duas posições complementares (SPDT): uma posição seleciona um contato e a outra posição seleciona o outro.
O que o enunciado pede concretamente:
  • Projetar, para cada caso ((a) e (b)), um circuito com latch que elimine repique da chave e explicar passo a passo como a solução resolve o problema.

Passo 2

Mini-aula rápida (sem pular etapas) sobre os tipos de latch que vamos usar e por que eles se encaixam bem aqui.
  1. Conceito de latch SR:
  • Um latch SR é um circuito bistável com duas entradas chamadas S (set) e R (reset) e duas saídas complementares Q e \overline{Q}.
  • Existem duas implementações comuns:
    • Latch com portas NOR: é “ativo-alto” — uma entrada S=1 força Q=1; R=1 força Q=0. Entradas normalmente são mantidas em 0.
    • Latch com portas NAND: é “ativo-baixo” — suas entradas são ativas quando vão a 0. Uma entrada S=0 força Q=1; R=0 força Q=0. Entradas normalmente são mantidas em 1.
  • Tabela (resumida, sem bordas):
    • Para latch NOR:
      • S=0,\;R=0 → mantém estado anterior.
      • S=1,\;R=0 Q=1 (set).
      • S=0,\;R=1 Q=0 (reset).
      • S=1,\;R=1 → condição proibida (ambígua).
    • Para latch NAND (entradas ativas em 0):
      • S=1,\;R=1 → mantém estado.
      • S=0,\;R=1 Q=1 (set).
      • S=1,\;R=0 Q=0 (reset).
      • S=0,\;R=0 → condição proibida.
  1. Por que latch resolve bounce:
  • Repique gera transições rápidas 0\leftrightarrow1 no contato mecânico. Se essas transições alimentarem diretamente a lógica que lê a chave, o circuito verá várias mudanças indesejadas.
  • O latch trabalha como memória: uma vez que um dos inputs ativa set ou reset de forma estável, o latch fixa Q até que o outro input seja ativado de forma estável. Assim, mesmo que a chave “bounce” e gere pulsos curtos, o latch só muda para o estado correspondente ao contato que permaneça ativo (quando houver contato estável).
  • Atenção: existe o caso em que ambos os inputs podem ser ativados simultaneamente (condição proibida). A solução prática deve evitar essa condição (explico abaixo).

Passo 3

Característica prática das chaves mecânicas e como isso afeta o projeto:
  • Existem chaves do tipo “break-before-make” (o contato antigo abre antes do novo fechar) e “make-before-break” (o novo fecha antes do antigo abrir).
  • Se for “break-before-make”, durante a transição nunca teremos ambos os contatos conectados ao mesmo tempo — isso facilita evitar a condição proibida do latch.
  • Se for “make-before-break”, pode ocorrer que os dois contatos sejam ativos ao mesmo tempo por um curto intervalo; nesse período um latch SR pode entrar em condição proibida. Portanto precisamos:
    • Preferir um latch cuja lógica de entrada seja compatível com os resistores mostrados (pull-up → entradas ativas-baixo, pull-down → entradas ativas-alto), e
    • adicionar um pequeno tratamento para evitar a condição proibida caso a chave seja make-before-break (ex.: RC de atraso em uma entrada, ou um breve circuito de priorização, ou usar um flip-flop tipo D com amostragem sincronizada).

Passo 4

Solução para o caso (a) — pull-ups em +5 (contatos ativos em 0):
  • Escolha do latch: usar um latch SR implementado com duas portas NAND (latch NAND) porque suas entradas são ativas em nível baixo e isso combina naturalmente com resistores de pull-up que mantêm as entradas em 1 quando o contato não está fechado.
  • Montagem (descrição do circuito, passo a passo):
    1. Implementar um latch NAND com duas portas NAND cross-coupled (a saída de cada NAND vai para uma entrada da outra). Denotar entradas como S_N e R_N (os subscritos lembram que são entradas de latch NAND).
    2. Conectar cada uma das duas posições da chave (os dois throws SPDT mostrados na figura) diretamente a S_N e R_N. Os resistores de pull-up que já existem na figura mantêm essas entradas em 1 quando o respectivo contato não está ligado ao terra.
    3. A saída Q do latch é a saída debounced que alimenta o circuito seguinte.
  • Operação explicada com calma:
    • Posição A (contato ligado ao terra em uma das posições): a entrada correspondente S_N vai a 0 (por estar conectada a GND) enquanto R_N permanece em 1. Como S_N=0 numa latch NAND, isso força Q=1. Esse Q permanece estável mesmo se houver repiques curtos depois, pois o latch guarda o estado.
    • Posição B (o outro contato ao terra): então R_N=0, S_N=1, e o latch passa a Q=0.
    • Condição proibida: se por alguma razão ambos S_N e R_N ficarem 0 simultaneamente (situação possível em chave make-before-break), o latch entra em condição proibida momentânea. Mitigação:
      • Preferir uma chave break-before-make; ou
      • Inserir um pequeno RC (por exemplo R\approx 10\;\text{k}\Omega com C\approx 100\;\text{nF} dando \tau=R C\approx 1\;\text{ms}) na entrada de uma das vias para atrasá-la ligeiramente — assim evita que ambas fiquem baixas ao mesmo tempo; ou
      • colocar diodos e resistores de priorização (fazer uma entrada ter prioridade técnica sobre a outra) ou ainda usar um Schmitt trigger e um flip-flop D (veja passo seguinte) para robustez extra.
  • Observações práticas:
    • Colocar um pequeno capacitor ao redor da entrada do latch suaviza pulsos muito curtos.
    • Usar portas NAND com entrada Schmitt (se disponível) melhora imunidade a transientes.

Passo 5

Solução para o caso (b) — pull-downs para massa (contatos ativos em 1):
  • Escolha do latch: aqui é natural usar um latch SR implementado com portas NOR (latch NOR), pois as entradas do latch NOR são ativas em nível alto — exatamente o que acontece quando a chave conecta +5 ao contato (o resistor de pull-down mantém em 0 quando não acionado).
  • Montagem (descrição do circuito, passo a passo):
    1. Implementar um latch SR com duas portas NOR cross-coupled. Denotar entradas S e R.
    2. Conectar cada um dos throws da chave às entradas S e R. Os resistores de pull-down na figura mantêm essas entradas em 0 quando o respectivo contato não está ligado a +5.
    3. A saída Q do latch NOR é a saída debounced usada no circuito.
  • Operação explicada:
    • Quando a chave movimenta para a posição que conecta +5 no contato ligado a S, então S=1 e R=0 → latch põe Q=1.
    • Na outra posição, R=1 e S=0 → latch põe Q=0.
    • Bounce: se o contato faísca e gerar pulsos curtos, o latch manterá o estado até o contato correspondente permanecer em 1.
    • Condição proibida: S=1 e R=1 ao mesmo tempo (ambíguo). Mitigações idênticas às do caso (a): preferir break-before-make, ou inserir pequeno RC, ou priorização de entradas, ou usar flip-flop D.

Passo 6

Solução alternativa mais robusta (válida para (a) e (b)) — usar D flip-flop (latch clocked) + filtragem:
  • Ideia: em vez de um SR puro, usar um flip-flop tipo D com clock. O procedimento comum é:
    1. Aplicar um filtro RC (por exemplo R=10\;\text{k}\Omega, C=100\;\text{nF}, \tau\approx 1\;\text{ms} a 10\;\text{ms}) na linha da chave para atenuar os réplicas rápidos; depois passar por um buffer Schmitt para obter nível digital limpo.
    2. Usar a outra saída complementar da chave como sinal de clock (no caso de uma chave SPDT é comum que a mudança de posição gere uma borda utilizável no contato oposto). Assim quando a chave efetivamente muda de posição, o clock amostra o nível já estabilizado em D e o flip-flop atualiza Q uma vez.
  • Vantagens:
    • Se bem projetado, elimina totalmente o problema de both-active porque o clock amostra somente depois que o filtro RC já atenuou os bounces.
    • É especialmente recomendado se a chave for make-before-break ou se houver necessidade de alta confiabilidade.
  • Observação: um flip-flop D é, em essência, um latch síncrono — está dentro do pedido “utilizando latches”.

Passo 7

Resumo prático e valores recomendados (coisa que você pode montar rápido numa bancada):
  • Para soluções simples e rápidas:
    • Caso (a): latch NAND com entradas diretamente nas posições da chave (pull-ups já presentes). Adicionar R\approx 10\;\text{k}\Omega e C\approx 100\;\text{nF} em série/parallel numa entrada se houver risco de condição proibida.
    • Caso (b): latch NOR com entradas nas posições da chave (pull-downs já presentes). Mesma mitigação com RC se necessário.
  • Para maior robustez (recomendado se tiver tempo e componentes):
    • Filtro RC no sinal da chave ( 10\;\text{k}\Omega / 100\;\text{nF} é um bom ponto de partida).
    • Buffer Schmitt (por exemplo 74HC14) para limpar o sinal.
    • Flip-flop D (por exemplo 74HC74) usado para amostragem síncrona (usar a outra posição da chave ou um pulso derivado como clock).
  • Dica de projeto: se possível, escolha uma chave break-before-make; economiza componentes e evita condições proibidas.

Resposta

(a) Implementar um latch SR com portas NAND: conectar as duas posições da chave às entradas ativas-baixo S_N e R_N da latch (os resistores pull-up da figura mantêm as entradas em 1); a saída Q do latch é a saída debounced. Se houver risco de ambos os inputs ficarem ativos simultaneamente, adicionar um pequeno RC de atraso ( R\approx10\;\text{k}\Omega,\;C\approx100\;\text{nF}) ou usar um flip-flop D para amostragem.
(b) Implementar um latch SR com portas NOR: conectar as duas posições da chave às entradas S e R da latch (os resistores pull-down da figura mantêm as entradas em 0); a saída Q do latch é a saída debounced. Se necessário, mitigar entrada simultânea com um pequeno RC, priorização de entradas ou usar filtro RC + Schmitt + flip-flop D para robustez.

Exercícios relacionados