Mudanças entre as edições de "EDI018702 2020 2 AULA02"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '=Flip-Flops= Os flip-flops são elementos de circuito que podem apresentar em seu funcionamento apenas dois estados estáveis. Não existem estados intermediários entre este...')
 
 
(19 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=Flip-Flops=
+
=Apresentação=
  
Os flip-flops são elementos de circuito que podem apresentar em seu funcionamento apenas dois estados
+
Os contadores são circuitos que utilizam flip-flops e são aplicados, principalmente, em contagens, diversas, divisão de frequência, medição de frequência e tempo, divisão de formas de onda e conversão de analógico para digital. Estes circuitos sequenciais são divididos basicamente em duas categorias:
estáveis. Não existem estados intermediários entre estes dois estados.
 
A aplicação de um sinal de entrada pode mudar o dispositivo de um estado para outro e como a qualquer
 
momento podemos saber qual é o estado em que ele se encontra, é possível considerar este circuito como
 
uma memória capaz de armazenar um bit.
 
  
O flip-flop é o elemento básico das chamadas memórias estáticas. Existem diversos tipos de flip-flops
+
*Contadores assíncronos; e
encontrados nos circuitos digitais comerciais.
+
*Contadores síncronos.
  
 +
Basicamente a principal diferença entre eles é que o síncrono utiliza um sinal de ''clock'' comum a todos os flip-flops e o assíncrono possuí um sinal de ''clock'' que é dividido até o último flip-flops.
  
==Tipo RS==
 
  
O Flip-Flop R-S (Reset e Set) funciona da seguinte maneira:
+
=Contadores Assíncronos=
  
O flip-flop R-S tem duas saídas representadas por Q e Q\, assim, na
+
Estes contadores também são conhecidos como seriais ou contadores por pulsação (''ripple counter''). Tal nome advém do fato dos flip-flops (FF) do contador não serem disparados diretamente pelo sinal de ''clock''. Cada FF é disparado pela saída do FF anterior. Esta característica torna estes contadores limitados em termos de velocidade, pois o tempo de ativação (tempo de resposta) é dado aproximadamente pela soma dos tempos de atraso de propagação de cada FF.
condição inicial estável Q estará no nível baixo (0) e Q\ estará no nível alto (1).
 
O processo que leva o flip-flop a este estado inicial pronto para funcionar
 
é muito rápido, não demorando mais do que alguns microssegundos.
 
Quando o flip-flop se encontra na situação indicada, com Q=0 e Q\=1,
 
dizemos que ele se encontra "setado". A Figura 1 mostra o símbolo utilizado pelo Flip-Flop RS com clock.
 
  
  
 +
==Crescente==
  
[[Imagem:fig9_DIG222802.png|center|150px]]
+
Um circuito típico de um contador assíncrono crescente construído com FF do tipo JK é mostrado na Figura 1. Os FF JK estão com ambas entradas J e K permanentemente em nível alto, estando configuradas portanto como FF tipo T. Cada FF é disparado pela saída  do FF anterior. A Figura 2 mostra o diagrama de tempo para esse contador.
 +
 
 +
 
 +
[[Imagem:fig14_DIG222802.png|center|500px]]
 
<center>
 
<center>
Figura 1 - Flip-Flop RS com clock.
+
Figura 1 - Contador assíncrono crescente.
 
</center>
 
</center>
  
  
Assim, estando o flip-flop na condição indicada, se desejarmos mudar
+
[[Imagem:fig15_DIG222802.png|center|600px]]
o estado, aplicamos o pulso na entrada SET, ficando Q=1 e Q\=0. Desta forma, se desejarmos mudar o estado novamente, aplicamos o pulso na entrada RESET,  logo as saídas mudam para Q=0 e Q\=1. A Figura 2 mostra os diagramas de tempo para um FF R-S com clock. <span style="color:red;">Lembre-se que SET e RESET são assíncronos, ou seja, acontecem imediatamente depois de acionados.</span>
+
<center>
 +
Figura 2 - Diagrama de tempo do contador assíncrono crescente.
 +
</center>
  
  
[[Imagem:fig7_DIG222802.png|center|500px]]
+
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center;"
<center>
+
|+'''Tabela 1 - Contador assíncrono crescente MOD-16'''
Figura 2 - Diagrama de tempos para o Flip-Flop RS com entrada de clock.
+
|-
</center>
+
! style="background:#6A5ACD; color:white; width: 20px;" | Clock
 +
! style="background:#6A5ACD; color:white; width: 20px;" | D
 +
! style="background:#6A5ACD; color:white; width: 20px;" | C
 +
! style="background:#6A5ACD; color:white; width: 20px;" | B
 +
! style="background:#6A5ACD; color:white; width: 20px;" | A
 +
! style="background:#6A5ACD; color:white; width: 20px;" | Decimal
 +
! style="background:#6A5ACD; color:white; width: 20px;" | Estado
 +
|-
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
|-
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 1
 +
| 1
 +
|-
 +
| 2
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 2
 +
| 2
 +
|-
 +
| 3
 +
| 0
 +
| 0
 +
| 1
 +
| 1
 +
| 3
 +
| 3
 +
|-
 +
| 4
 +
| 0
 +
| 1
 +
| 0
 +
| 0
 +
| 4
 +
| 4
 +
|-
 +
| 5
 +
| 0
 +
| 1
 +
| 0
 +
| 1
 +
| 5
 +
| 5
 +
|-
 +
| 6
 +
| 0
 +
| 1
 +
| 1
 +
| 0
 +
| 6
 +
| 6
 +
|-
 +
| 7
 +
| 0
 +
| 1
 +
| 1
 +
| 1
 +
| 7
 +
| 7
 +
|-
 +
| 8
 +
| 1
 +
| 0
 +
| 0
 +
| 0
 +
| 8
 +
| 8
 +
|-
 +
| 9
 +
| 1
 +
| 0
 +
| 0
 +
| 1
 +
| 9
 +
| 9
 +
|-
 +
| 10
 +
| 1
 +
| 0
 +
| 1
 +
| 0
 +
| 10
 +
| 10
 +
|-
 +
| 11
 +
| 1
 +
| 0
 +
| 1
 +
| 1
 +
| 11
 +
| 11
 +
|-
 +
| 12
 +
| 1
 +
| 1
 +
| 0
 +
| 0
 +
| 12
 +
| 12
 +
|-
 +
| 13
 +
| 1
 +
| 1
 +
| 0
 +
| 1
 +
| 13
 +
| 13
 +
|-
 +
| 14
 +
| 1
 +
| 1
 +
| 1
 +
| 0
 +
| 14
 +
| 14
 +
|-
 +
| 15
 +
| 1
 +
| 1
 +
| 1
 +
| 1
 +
| 15
 +
| 15
 +
|-
 +
| 16
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
|-
 +
| 17
 +
| 0
 +
| 0
 +
| 0
 +
| 1
 +
| 1
 +
| 1
 +
|-
 +
| 18
 +
| 0
 +
| 0
 +
| 1
 +
| 0
 +
| 2
 +
| 2
 +
|}
 +
 
 +
 
 +
 
 +
O contador tem como conteúdo (estado interno) a contagem do número de transições negativas do ''clock'', de forma que quando ocorre uma transição o conteúdo é incrementado de uma unidade. O conteúdo do contador é dado pelo número binário DCBA, onde A é o bit LSB (bit menos significativo) e D é o bit MSB (bit mais significativo).
 +
O modulo (MOD) de um contador é o seu número de estados distintos, portanto, o módulo de um contador com N FF pode ser no máximo o número de possíveis saídas (<math>2^N</math>). A Tabela mostra os estados de contagem de um contador assíncrono com 4 FF (4 bits). Podemos perceber que após 16 transições de ''clock'' o contador reinicia a contagem. Por isso, este contador é de MOD-16, ou seja, tem 16 estados  distintos (0000b até 1111b).  
 +
Nos contadores assíncronos, a frequência do ''clock'' é dividida por 2 em cada FF, ou seja: na saída A temos ''clock/2'', e na saída D temos ''clock/16''. Portanto, os contadores assíncronos são divisores de frequência e no último FF a frequência de ''clock'' é dividida pelo módulo do contador.
  
  
Se a mudança de estado ou disparo (gatilho) ocorre quando o sinal de clock passa de 0 para 1, os
+
{{collapse top|Circuito do Contador Assíncrono de 3 bits - ''falstad''}}
flip-flops são denominados "positive edge-triggered", enquanto que, se o disparo ocorre quando o clock vai do
 
nível 1 para 0, ou seja, na queda do nível lógico, os flip-flops são chamados de "negative edge-triggered".
 
Neste tipo de circuito é muito importante levar em conta, num projeto de maior velocidade, os tempos em
 
que todo o processo ocorre. Assim, partindo do diagrama de tempos da Figura 3, vemos que a saída
 
do flip-flop só completa sua mudança de estado depois de um certo tempo, do pulso de clock ter sido aplicado.
 
  
 +
Na página do falstad, copiar o código abaixo e colar em: Arquivo->Importar arquivo de texto...
  
[[Imagem:fig8_DIG222802.png|center|400px]]
+
<pre>
<center>
+
$ 1 0.000005 10.20027730826997 50 5 43
Figura 3 - Tempos do flip-flop R-S.
+
156 96 96 176 96 0 5
</center>
+
156 256 96 272 96 0 5
 +
156 416 96 448 96 0 0
 +
L 96 96 64 96 2 1 false 5 0
 +
L 96 160 64 160 2 1 false 5 0
 +
L 256 96 240 96 2 1 false 5 0
 +
L 256 160 240 160 2 1 false 5 0
 +
L 416 96 400 96 2 1 false 5 0
 +
L 416 160 400 160 2 1 false 5 0
 +
M 192 96 192 32 2 2.5
 +
M 352 96 352 32 2 2.5
 +
M 512 96 512 32 2 2.5
 +
R 96 128 48 128 1 2 100 2.5 2.5 0 0.5
 +
w 256 128 192 96 0
 +
w 416 128 352 96 0
 +
403 0 240 544 288 0 12_64_0_4099_5_0.00009765625_0_2_12_3
 +
403 0 288 544 320 0 9_64_0_4098_5_0.1_0_1
 +
403 0 336 544 368 0 10_64_0_4098_5_0.1_0_1
 +
403 0 384 544 416 0 11_64_0_4098_5_0.1_0_1
 +
</pre>
  
Dois tempos são importantes neste tipo de circuito.
+
{{collapse bottom}}
  
*tH: Hold Time ou Tempo de Manutenção é o tempo em que a entrada
+
==Contadores de Módulo==
deve permanecer ainda no circuito para que seu nível lógico seja
 
reconhecido pelo flip-flop.
 
*tS: Setup Time ou tempo em que a entrada do flip-flop deve permanecer
 
no estado desejado antes da transição do clock que vai provocar a
 
mudança de estado do circuito.
 
  
==Tipo D==
+
Para obter um contador com módulo menor do que <math>2^N</math> é necessário adicionar um circuito decodificador para reiniciar a contagem antes de chegar ao valor máximo (ou mínimo). A Figura 3 mostra um contador MOD-6. Se não houvesse a porta NAND ligada nas entradas CLR dos FF o módulo do contador seria 8. A sequência de estados do contador MOD-6 é mostrada nas Figura 4 e Tabela 2.  Note que na transição do 6º ''clock'' o estado do contador passa temporariamente pelo estado (110b), o qual faz com que a saída da porta NAND passe para o estado BAIXO, causando o CLR nos FF, e consequentemente levando o contador para o estado (000b).
  
O Flip-Flop tipo D funciona da seguinte maneira: Quando houver variação do clock, o valor guardado na saída do flip-flop será igual ao valor da entrada D (dados) naquele momento.
 
  
O circuito do flip-flop do tipo D pode ser construído a partir do circuito do flip-flop RS controlado, basta adicionar uma porta inversora entre R e S fazendo com que as entradas sempre sejam invertidas uma da outra. Desse modo não vamos ter R=0 e S=0 ou R=1 e S=1 o que evita o chamado "estado proibido". A Figura 4 mostra essa configuração.
+
[[Imagem:fig16_DIG222802.png|center|500px]]
 +
<center>
 +
Figura 3 - Contador assíncrono com módulo < <math>2^N</math>.
 +
</center>
  
[[Imagem:fig10_DIG222802.png|center|250px]]
+
[[Imagem:fig17_DIG222802.png|center|600px]]
 
<center>
 
<center>
Figura 4 - Circuito do flip-flop tipo D utilizando o RS controlado.
+
Figura 4 - Diagrama de tempo do contador com módulo < <math>2^N</math>.
 
</center>
 
</center>
  
 
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center;"
 
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center;"
|+'''FF D'''
+
|+'''Tabela 2 - Contador assíncrono crescente MOD-6'''
 +
|-
 +
! style="background:#6A5ACD; color:white; width: 20px;" | Clock
 +
! style="background:#6A5ACD; color:white; width: 20px;" | C
 +
! style="background:#6A5ACD; color:white; width: 20px;" | B
 +
! style="background:#6A5ACD; color:white; width: 20px;" | A
 +
! style="background:#6A5ACD; color:white; width: 20px;" | Decimal
 +
! style="background:#6A5ACD; color:white; width: 20px;" | Estado
 +
|-
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
|-
 +
| 1
 +
| 0
 +
| 0
 +
| 1
 +
| 1
 +
| 1
 +
|-
 +
| 2
 +
| 0
 +
| 1
 +
| 0
 +
| 2
 +
| 2
 +
|-
 +
| 3
 +
| 0
 +
| 1
 +
| 1
 +
| 3
 +
| 3
 +
|-
 +
| 4
 +
| 1
 +
| 0
 +
| 0
 +
| 4
 +
| 4
 
|-
 
|-
! style="background:#D2691E; color:white; width: 20px;" | D
+
| 5
! style="background:#D2691E; color:white; width: 20px;" | Q
+
| 1
 +
| 0
 +
| 1
 +
| 5
 +
| 5
 
|-
 
|-
 +
| 6*
 +
| 1
 +
| 1
 +
| 0
 +
| 6
 +
| 6
 +
|-
 +
| 6
 +
| 0
 +
| 0
 +
| 0
 
| 0
 
| 0
 
| 0
 
| 0
 
|-
 
|-
 +
| 7
 +
| 0
 +
| 0
 
| 1
 
| 1
 
| 1
 
| 1
 +
| 1
 +
|-
 +
| 8
 +
| 0
 +
| 1
 +
| 0
 +
| 2
 +
| 2
 
|}
 
|}
 +
*Não atingível.
 +
 +
 +
O diagrama de transição de estados do contador de 3 bits MOD-6 é mostrado na Figura 5. No diagrama de transição as linhas contínuas indicam a passagem pelos estados estáveis (000b  101b) e as linhas tracejadas indicam a passagem pelos estados temporários (110b). O estado (111b) embora possível não é atingível.
 +
 +
 +
[[Imagem:fig18_DIG222802.png|center|350px]]
 +
<center>
 +
Figura 5 - Diagrama de transição de estados de um contador MOD-6.
 +
</center>
 +
 +
Para a construção de um contador módulo X menor que o módulo máximo, o procedimento deve seguir as etapas:
 +
 +
*Determinar o menor número ''N'' de FF tal que <math>2^N \le X</math>.
 +
::Exemplo:  MOD-12  <math>\rightarrow</math> N = 16.
 +
*Conectar a porta NAND nas entradas assíncronas <math>\overline{CLR}</math> de todos os FF. Se <math>2^N = X</math>, não é necessário conectar nada a entrada;
 +
*Conectar as saídas que estarão em ALTO na contagem X, na porta NAND.
 +
::Exemplo:  12 = 1100b D = 1 e C = 1, conectar D e C a porta NAND.
 +
 +
==Decádicos==
 +
 +
Os contadores de década (ou decádico) são contadores que possuem 10 estados distintos, não importando a sequência de contagem. Quando um contador decádico realiza a contagem em sequência binária crescente de 0000b a 1001b (0 a 9), ele é chamado de contador BCD. A Figura 6 mostra o CI 7490.
 +
 +
[[Imagem:figura111_EDI018702.png|300px|center]]
 +
<center>
 +
Figura 6 - Circuito Integrado Contador 7490.
 +
</center>
 +
 +
O circuito integrado TTL 7490 consiste num contador de década, divisor por 2 e por 5, com saídas BCD. Cada circuito integrado exige uma corrente de 32 mA e a máxima frequência de contagem é 18 MHz. A contagem ocorre nas transições negativas do sinal de ''clock''. Este circuito é encontrado em versões mais rápidas nas subfamílias TTLs correspondentes. [https://www.jameco.com/Jameco/Products/ProdDS/50690.pdf Datasheet 7490 - Contador Decádico]
  
 +
==Decrescente==
  
Observe que pelo fato do flip-flop tipo D possuir apenas uma entrada faz com que a sua tabela verdade possua somente duas linhas, já que com uma entrada são possíveis apenas dois valores 0 ou 1. O C, de controle, na verdade se transforma em clock (CK) nas distribuições comerciais, além do possuir preset (PR) e clear (CLR). A Figura 5 apresenta um flip-flop tipo D com preset e clear ativos pela borda de subida do clock (a) e borda de descida do clock (b).
+
Os contadores que contam progressivamente a partir do zero são denominados contadores crescentes (ou ascendentes). Já os contadores que contam do valor máximo até zero são chamados decrescentes (ou descendentes). A Figura 7 mostra a configuração para um contador decrescente construído com FF do tipo JK. A configuração é semelhante à do contador crescente, com a única diferença de cada FF é disparado pela saída '''Q\''' no lugar de '''Q'''.
  
  
[[Imagem:fig11_DIG222802.png|center|250px]]
+
[[Imagem:fig19_DIG222802.png|center|500px]]
 
<center>
 
<center>
Figura 5 -Flip-flop tipo D com preset e clear ativos pela: (a) borda de subida e (b) borda de descida do clock.
+
Figura 7 - Contador assíncrono decrescente.
 
</center>
 
</center>
  
==Tipo JK==
 
  
No Flip-Flop J-K quando houver variação do clock, o valor guardado no flip-flop será alternado se as entradas J e K forem iguais a 1 e será mantido se ambas forem iguais a 0. No caso de serem diferentes, então o valor se tornará 1 se a entrada J (Jump) for 1 e será 0 se a entrada K (Kill) for 1. A Figura 6 mostra o símbolo utilizado para o flip-flop JK.
+
A Figura 8 mostra o diagrama de tempo das saídas do contador, enquanto que a Tabela 3 mostra a contagem das transições do ''clock'' e os estados correspondentes ao contador. O diagrama de estados do contador decrescente é mostrado na Figura 9 (b), enquanto que o diagrama do contador crescente é mostrado na Figura 9 (a). Note que nos dois diagramas o contador passa por todos os estados.
 +
 
  
[[Imagem:fig12_DIG222802.png|center|150px]]
+
[[Imagem:fig20_DIG222802.png|center|350px]]
 
<center>
 
<center>
Figura 6 - Flip-flop JK com preset e clear.
+
Figura 8 - Diagrama de tempo do contador assíncrono decrescente.
 
</center>
 
</center>
 +
  
  
 
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center;"
 
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center;"
|+'''FF JK'''
+
|+'''Tabela 3 - Contador assíncrono decrescente MOD-8 (3 btis)'''
 
|-
 
|-
! style="background:#D2691E; color:white; width: 20px;" | J
+
! style="background:#6A5ACD; color:white; width: 20px;" | Clock
! style="background:#D2691E; color:white; width: 20px;" | K
+
! style="background:#6A5ACD; color:white; width: 20px;" | C
! style="background:#D2691E; color:white; width: 20px;" | Q
+
! style="background:#6A5ACD; color:white; width: 20px;" | B
 +
! style="background:#6A5ACD; color:white; width: 20px;" | A
 +
! style="background:#6A5ACD; color:white; width: 20px;" | Decimal
 +
! style="background:#6A5ACD; color:white; width: 20px;" | Estado
 
|-
 
|-
 
| 0
 
| 0
 
| 0
 
| 0
| Q
+
| 0
 +
| 0
 +
| 0
 +
| 0
 +
|-
 +
| 1
 +
| 1
 +
| 1
 +
| 1
 +
| 7
 +
| 1
 +
|-
 +
| 2
 +
| 1
 +
| 1
 +
| 0
 +
| 6
 +
| 2
 +
|-
 +
| 3
 +
| 1
 +
| 0
 +
| 1
 +
| 5
 +
| 3
 +
|-
 +
| 4
 +
| 1
 +
| 0
 +
| 0
 +
| 4
 +
| 4
 +
|-
 +
| 5
 +
| 0
 +
| 1
 +
| 1
 +
| 3
 +
| 5
 
|-
 
|-
 +
| 6
 
| 0
 
| 0
 
| 1
 
| 1
 
| 0
 
| 0
 +
| 2
 +
| 6
 
|-
 
|-
 +
| 7
 +
| 0
 +
| 0
 +
| 1
 
| 1
 
| 1
 +
| 7
 +
|-
 +
| 8
 
| 0
 
| 0
 +
| 0
 +
| 0
 +
| 0
 +
| 0
 +
|-
 +
| 9
 +
| 1
 +
| 1
 +
| 1
 +
| 7
 
| 1
 
| 1
 
|-
 
|-
 +
| 10
 
| 1
 
| 1
 
| 1
 
| 1
| Q\
+
| 0
 +
| 6
 +
| 2
 
|}
 
|}
  
  
O flip-flop J-K aprimora o funcionamento do flip-flop RS interpretando a condição S = R = 1 (proibido) como um comando de inversão.
+
[[Imagem:fig21_DIG222802.png|center|450px]]
 +
<center>
 +
Figura 9 - Diagrama de transição de estados do contador MOD-8.
 +
</center>
  
Especificamente, a combinação J = 1, K = 0 é um comando para ativar (set) a saída do flip-flop. A combinação J = 0, K = 1 é um comando para desativar (reset) a saída do flip-flop; e a combinação J = K = 1 é um comando para inverter o flip-flop, trocando o sinal de saída pelo seu complemento.
+
==Atrasos de Propagação==
  
==Tipo T==
+
Em um contador assíncrono cada FF é disparado pela saída de um FF anterior. Essa característica traz como desvantagem o acumulo dos tempos de '''atraso de propagação'''. Isso pode ser visto na Figura 10. Ao passar por um FF, o sinal de ''clock'' sofre um atraso de propagação <math>t_{pd}</math> e esse efeito é somado até o último FF, gerando um atraso total de <math>N.t_{pd}</math>, onde N é o número de FF.
  
Assim como se modifica o flip-flop R-S colocando um porta inversora entre as entradas R e S para criar o flip-flop tipo D, podemos fazer um curto-circuito entre J e K e o flip-flop J-K se torna um flip-flop T. A Figura 7 apresenta como transformar um flip-flop do tipo JK em tipo T.
 
  
[[Imagem:fig13_DIG222802.png|center|250px]]
+
[[Imagem:fig23_DIG222802.png|center|450px]]
 
<center>
 
<center>
Figura 7 - Transformando flip-flip JK em T.
+
Figura 10 - Contador assíncrono ascendente-descendente.
 
</center>
 
</center>
  
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center;"
+
Para que um contador assíncrono funcione de modo confiável é necessário que o atraso total de propagação seja menor que o período de ''clock'' usado: <math>T_{clk} \ge  N.t_{pd}</math>, ou ainda, em termos de frequência máxima, que <math>f_{max}=\frac{1}{N.t_{pd}}</math>.
|+'''FF T'''
+
 
|-
+
=Exercício=
! style="background:#D2691E; color:white; width: 20px;" | T
+
 
! style="background:#D2691E; color:white; width: 20px;" | Q
+
[1] Complete o circuito abaixo para que funcione como contador '''assíncrono''' crescente.
|-
 
| 0
 
| Q
 
|-
 
| 1
 
| Q\
 
|}
 
  
O flip-flop tipo T funciona da seguinte forma: Quando houver variação do clock, o valor guardado no flip-flop será alternado ou mantido dependendo se o valor na entrada T (Toggle) for 1 ou 0. Assim, quando T=1 a saída vai para Q\ e quando T=0 a saída permanece como estava.
+
[[Imagem:fig78_DIG222802.png|center|600px]]
  
=Referências=
 
  
[1] TOCCI, Ronald J.; WIDMER N. S.; GREGOGRY L. M. Sistemas digitais: princípios e aplicações. São Paulo: Prentice Hall, 2003.
+
{{collapse top|Contador Assíncrono de 3 bits com FF tipo D - ''falstad''}}
 +
Na página do falstad, copiar o código abaixo e colar em: Arquivo->Importar arquivo de texto...
 +
<pre>
 +
$ 1 0.000005 10.20027730826997 50 5 43
 +
155 96 144 160 144 0 0
 +
155 272 144 320 144 0 5
 +
155 448 144 480 144 0 0
 +
R 96 176 48 176 1 2 100 2.5 2.5 0 0.5
 +
w 192 208 192 256 0
 +
w 192 256 80 256 0
 +
w 80 256 80 144 0
 +
w 80 144 96 144 0
 +
w 368 208 368 256 0
 +
w 368 256 256 256 0
 +
w 256 256 256 144 0
 +
w 256 144 272 144 0
 +
w 544 208 544 256 0
 +
w 544 256 432 256 0
 +
w 432 256 432 144 0
 +
w 432 144 448 144 0
 +
M 192 144 192 80 2 2.5
 +
M 368 144 368 80 2 2.5
 +
M 544 144 544 80 2 2.5
 +
w 272 176 192 208 0
 +
w 448 176 368 208 0
 +
</pre>
  
[2] http://www.inf.ufsc.br/~guntzel/isd/isd4.pdf
+
{{collapse bottom}}
  
[3] http://www.cburch.com/logisim/docs/2.7/pt/html/libs/mem/flipflops.html
 
  
 +
[2] Utilizando o mesmo circuito, faça as modificações necessárias para que funcione como contador '''assíncrono''' decrescente.
  
 +
=Referências=
  
 +
[1] Apostila do CURSO DE ELETRÔNICA DIGITAL. CEFET/SC: São José, 2011.
  
  

Edição atual tal como às 15h46min de 1 de dezembro de 2020

Apresentação

Os contadores são circuitos que utilizam flip-flops e são aplicados, principalmente, em contagens, diversas, divisão de frequência, medição de frequência e tempo, divisão de formas de onda e conversão de analógico para digital. Estes circuitos sequenciais são divididos basicamente em duas categorias:

  • Contadores assíncronos; e
  • Contadores síncronos.

Basicamente a principal diferença entre eles é que o síncrono utiliza um sinal de clock comum a todos os flip-flops e o assíncrono possuí um sinal de clock que é dividido até o último flip-flops.


Contadores Assíncronos

Estes contadores também são conhecidos como seriais ou contadores por pulsação (ripple counter). Tal nome advém do fato dos flip-flops (FF) do contador não serem disparados diretamente pelo sinal de clock. Cada FF é disparado pela saída do FF anterior. Esta característica torna estes contadores limitados em termos de velocidade, pois o tempo de ativação (tempo de resposta) é dado aproximadamente pela soma dos tempos de atraso de propagação de cada FF.


Crescente

Um circuito típico de um contador assíncrono crescente construído com FF do tipo JK é mostrado na Figura 1. Os FF JK estão com ambas entradas J e K permanentemente em nível alto, estando configuradas portanto como FF tipo T. Cada FF é disparado pela saída do FF anterior. A Figura 2 mostra o diagrama de tempo para esse contador.


Fig14 DIG222802.png

Figura 1 - Contador assíncrono crescente.


Fig15 DIG222802.png

Figura 2 - Diagrama de tempo do contador assíncrono crescente.


Tabela 1 - Contador assíncrono crescente MOD-16
Clock D C B A Decimal Estado
0 0 0 0 0 0 0
1 0 0 0 1 1 1
2 0 0 1 0 2 2
3 0 0 1 1 3 3
4 0 1 0 0 4 4
5 0 1 0 1 5 5
6 0 1 1 0 6 6
7 0 1 1 1 7 7
8 1 0 0 0 8 8
9 1 0 0 1 9 9
10 1 0 1 0 10 10
11 1 0 1 1 11 11
12 1 1 0 0 12 12
13 1 1 0 1 13 13
14 1 1 1 0 14 14
15 1 1 1 1 15 15
16 0 0 0 0 0 0
17 0 0 0 1 1 1
18 0 0 1 0 2 2


O contador tem como conteúdo (estado interno) a contagem do número de transições negativas do clock, de forma que quando ocorre uma transição o conteúdo é incrementado de uma unidade. O conteúdo do contador é dado pelo número binário DCBA, onde A é o bit LSB (bit menos significativo) e D é o bit MSB (bit mais significativo). O modulo (MOD) de um contador é o seu número de estados distintos, portanto, o módulo de um contador com N FF pode ser no máximo o número de possíveis saídas (). A Tabela mostra os estados de contagem de um contador assíncrono com 4 FF (4 bits). Podemos perceber que após 16 transições de clock o contador reinicia a contagem. Por isso, este contador é de MOD-16, ou seja, tem 16 estados distintos (0000b até 1111b). Nos contadores assíncronos, a frequência do clock é dividida por 2 em cada FF, ou seja: na saída A temos clock/2, e na saída D temos clock/16. Portanto, os contadores assíncronos são divisores de frequência e no último FF a frequência de clock é dividida pelo módulo do contador.


Circuito do Contador Assíncrono de 3 bits - falstad

Na página do falstad, copiar o código abaixo e colar em: Arquivo->Importar arquivo de texto...

$ 1 0.000005 10.20027730826997 50 5 43
156 96 96 176 96 0 5
156 256 96 272 96 0 5
156 416 96 448 96 0 0
L 96 96 64 96 2 1 false 5 0
L 96 160 64 160 2 1 false 5 0
L 256 96 240 96 2 1 false 5 0
L 256 160 240 160 2 1 false 5 0
L 416 96 400 96 2 1 false 5 0
L 416 160 400 160 2 1 false 5 0
M 192 96 192 32 2 2.5
M 352 96 352 32 2 2.5
M 512 96 512 32 2 2.5
R 96 128 48 128 1 2 100 2.5 2.5 0 0.5
w 256 128 192 96 0
w 416 128 352 96 0
403 0 240 544 288 0 12_64_0_4099_5_0.00009765625_0_2_12_3
403 0 288 544 320 0 9_64_0_4098_5_0.1_0_1
403 0 336 544 368 0 10_64_0_4098_5_0.1_0_1
403 0 384 544 416 0 11_64_0_4098_5_0.1_0_1

Contadores de Módulo

Para obter um contador com módulo menor do que é necessário adicionar um circuito decodificador para reiniciar a contagem antes de chegar ao valor máximo (ou mínimo). A Figura 3 mostra um contador MOD-6. Se não houvesse a porta NAND ligada nas entradas CLR dos FF o módulo do contador seria 8. A sequência de estados do contador MOD-6 é mostrada nas Figura 4 e Tabela 2. Note que na transição do 6º clock o estado do contador passa temporariamente pelo estado (110b), o qual faz com que a saída da porta NAND passe para o estado BAIXO, causando o CLR nos FF, e consequentemente levando o contador para o estado (000b).


Fig16 DIG222802.png

Figura 3 - Contador assíncrono com módulo < .

Fig17 DIG222802.png

Figura 4 - Diagrama de tempo do contador com módulo < .

Tabela 2 - Contador assíncrono crescente MOD-6
Clock C B A Decimal Estado
0 0 0 0 0 0
1 0 0 1 1 1
2 0 1 0 2 2
3 0 1 1 3 3
4 1 0 0 4 4
5 1 0 1 5 5
6* 1 1 0 6 6
6 0 0 0 0 0
7 0 0 1 1 1
8 0 1 0 2 2
*Não atingível. 


O diagrama de transição de estados do contador de 3 bits MOD-6 é mostrado na Figura 5. No diagrama de transição as linhas contínuas indicam a passagem pelos estados estáveis (000b 101b) e as linhas tracejadas indicam a passagem pelos estados temporários (110b). O estado (111b) embora possível não é atingível.


Fig18 DIG222802.png

Figura 5 - Diagrama de transição de estados de um contador MOD-6.

Para a construção de um contador módulo X menor que o módulo máximo, o procedimento deve seguir as etapas:

  • Determinar o menor número N de FF tal que .
Exemplo: MOD-12 N = 16.
  • Conectar a porta NAND nas entradas assíncronas de todos os FF. Se , não é necessário conectar nada a entrada;
  • Conectar as saídas que estarão em ALTO na contagem X, na porta NAND.
Exemplo: 12 = 1100b D = 1 e C = 1, conectar D e C a porta NAND.

Decádicos

Os contadores de década (ou decádico) são contadores que possuem 10 estados distintos, não importando a sequência de contagem. Quando um contador decádico realiza a contagem em sequência binária crescente de 0000b a 1001b (0 a 9), ele é chamado de contador BCD. A Figura 6 mostra o CI 7490.

Figura111 EDI018702.png

Figura 6 - Circuito Integrado Contador 7490.

O circuito integrado TTL 7490 consiste num contador de década, divisor por 2 e por 5, com saídas BCD. Cada circuito integrado exige uma corrente de 32 mA e a máxima frequência de contagem é 18 MHz. A contagem ocorre nas transições negativas do sinal de clock. Este circuito é encontrado em versões mais rápidas nas subfamílias TTLs correspondentes. Datasheet 7490 - Contador Decádico

Decrescente

Os contadores que contam progressivamente a partir do zero são denominados contadores crescentes (ou ascendentes). Já os contadores que contam do valor máximo até zero são chamados decrescentes (ou descendentes). A Figura 7 mostra a configuração para um contador decrescente construído com FF do tipo JK. A configuração é semelhante à do contador crescente, com a única diferença de cada FF é disparado pela saída Q\ no lugar de Q.


Fig19 DIG222802.png

Figura 7 - Contador assíncrono decrescente.


A Figura 8 mostra o diagrama de tempo das saídas do contador, enquanto que a Tabela 3 mostra a contagem das transições do clock e os estados correspondentes ao contador. O diagrama de estados do contador decrescente é mostrado na Figura 9 (b), enquanto que o diagrama do contador crescente é mostrado na Figura 9 (a). Note que nos dois diagramas o contador passa por todos os estados.


Fig20 DIG222802.png

Figura 8 - Diagrama de tempo do contador assíncrono decrescente.


Tabela 3 - Contador assíncrono decrescente MOD-8 (3 btis)
Clock C B A Decimal Estado
0 0 0 0 0 0
1 1 1 1 7 1
2 1 1 0 6 2
3 1 0 1 5 3
4 1 0 0 4 4
5 0 1 1 3 5
6 0 1 0 2 6
7 0 0 1 1 7
8 0 0 0 0 0
9 1 1 1 7 1
10 1 1 0 6 2


Fig21 DIG222802.png

Figura 9 - Diagrama de transição de estados do contador MOD-8.

Atrasos de Propagação

Em um contador assíncrono cada FF é disparado pela saída de um FF anterior. Essa característica traz como desvantagem o acumulo dos tempos de atraso de propagação. Isso pode ser visto na Figura 10. Ao passar por um FF, o sinal de clock sofre um atraso de propagação e esse efeito é somado até o último FF, gerando um atraso total de , onde N é o número de FF.


Fig23 DIG222802.png

Figura 10 - Contador assíncrono ascendente-descendente.

Para que um contador assíncrono funcione de modo confiável é necessário que o atraso total de propagação seja menor que o período de clock usado: , ou ainda, em termos de frequência máxima, que .

Exercício

[1] Complete o circuito abaixo para que funcione como contador assíncrono crescente.

Fig78 DIG222802.png


Contador Assíncrono de 3 bits com FF tipo D - falstad

Na página do falstad, copiar o código abaixo e colar em: Arquivo->Importar arquivo de texto...

$ 1 0.000005 10.20027730826997 50 5 43
155 96 144 160 144 0 0
155 272 144 320 144 0 5
155 448 144 480 144 0 0
R 96 176 48 176 1 2 100 2.5 2.5 0 0.5
w 192 208 192 256 0
w 192 256 80 256 0
w 80 256 80 144 0
w 80 144 96 144 0
w 368 208 368 256 0
w 368 256 256 256 0
w 256 256 256 144 0
w 256 144 272 144 0
w 544 208 544 256 0
w 544 256 432 256 0
w 432 256 432 144 0
w 432 144 448 144 0
M 192 144 192 80 2 2.5
M 368 144 368 80 2 2.5
M 544 144 544 80 2 2.5
w 272 176 192 208 0
w 448 176 368 208 0


[2] Utilizando o mesmo circuito, faça as modificações necessárias para que funcione como contador assíncrono decrescente.

Referências

[1] Apostila do CURSO DE ELETRÔNICA DIGITAL. CEFET/SC: São José, 2011.



Icone voltar.png Icone menu.png Icone prox.png