Instrumentação eletrônica Frequencímetro Daniel Wanderley Honda Fernanda Palhano Xavier de Fontes
Sumário Objetivos Métodos utilizados Método 1 Método 2 Visualização do resultado Implementação
Objetivos Realizar um frequencímetro digital Medir frequências entre 1 Hz e 10 MHz com atualização de no máximo 2 segundos Indicar erro no caso de frequências fora da faixa mesurável Mudar de gama (Hz, KHz, MHz) automaticamente
Objetivos Projeto realizado em VHDL utilizando o programa Xlinx Implementado em FPGA Pegasus Digilent Spartan II
Métodos utilizados Para o cálculo da frequência podem ser utilizados dois métodos: Contagem das transições do estado baixo para o estado alto durante um pulso de 1 segundo
Métodos utilizados Contagem dos pulsos do clock (50 MHz) entre duas transições do estado baixo para o estado alto do sinal de entrada. Em seguida, divisão de 50.000.000 por esse número
Método 1 Blocos utilizados “creation_etalon’’ “calcul_frequence” “sch_affichage”
Método 1 “Creation_etalon” Entradas Entree: Sinal a ser medido clk: clock de 50 MHz rst: reset Saídas etalon: sinal de período igual a 2 segundos e ciclo de trabalho de 50% ce: sinal de ativação dos contadores
Método 1 “Calcul_frequence”
Método 1 “ensemble_compteur” 8 contadores de 0 à 9 em cascata Contagem até 99.999.999 Sincronização dos contadores feita através do uso de portas AND Quando pg = 1 e ce = 1 o contador seguinte é ativado Resultado em 32 bits
Método 1 “Memoire” e “Detecteur_descendant” Transição do estado alto para o estado baixo do sinal etalon ativa a memória Os contadores devem recomeçar a contar : o mesmo sinal utilizado para ativação da memória, mas com um pequeno retardo introduzido por um flip-flop D
Método 1 “Comparateur” Entradas clk: clock de 50 MHz E0 à E7: resultado de cada contador Saídas p1 à p3: ponto b1 à b3: gama de frequência (Hz, KHz ou MHz) aff1 à aff4: valores a serem mostrados nos displays 7 segmentos
Método 1
Método 1 - Simulação
Método 2 Para este método utilizaremos 3 blocos funcionais: “autorisation”, “compteur” e “ diviseur2”;
Método 2 O bloco “autorisation” tem como objetivo fornecer ao contador a autorização de contar entre dois pulsos de subida sucessivos do sinal de entrada;
Método 2 - O bloco “compteur” tem como objetivo contar os pulsos de subida do sinal de referência enquanto o sinal de “autorisation” estiver no nível alto;
Método 2 - O bloco “diviseur2” realiza a divisão de 50.000.000 por um número;
Método 2 - Para efetuar a divisão utilizamos uma máquina de estado;
Simulação: s_nb_temp: resultado temporário do contador; nb: resultado final do contador;
Visualização do resultado “sch_affichage”
Visualização do resultado “afficheur” clock da máquina de estado = 1 KHz máquina de 4 estados que permite acender cada display de maneira circular
Implementação: Utilização completa da memória disponível no FPGA: Efetuar a divisão diretamente em BCD para não utilizar o decodificador BCD, possibilitando assim a implementação dos dois métodos simultaneamente;