circuito de amostragem e retenção

Upload: andre-b-cunha

Post on 07-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Circuito de Amostragem e Retenção

    1/17

     

    Relatório de Sistemas de Aquisição de Dados2006/2007

    Engenharia Física Tecnológica

    CIRCUITO DE  A MOSTRAGEM E R ETENÇÃO  Laboratório I

    Trabalho realizado por: Alexandra Gouveia, nº53760 João Mendes Lopes, nº53788

     André Cunha, nº53757

    Grupo 3; 4ªfeira 15:00-19:00h

    Lisboa, 18 de Abril de 2007

  • 8/18/2019 Circuito de Amostragem e Retenção

    2/17

  • 8/18/2019 Circuito de Amostragem e Retenção

    3/17

    Introdução

    Figura 2 – Esquema de funcionamento de um circuito s mple nd ho ld  

    Como qualquer circuito, um dispositivo de amostragem e retenção tem um desempenho

    e características temporais não ideais, o que faz com que o sinal de saída não

    corresponda exactamente ao exemplificado na figura 2. São de salientar o overshoot ,

     slew rate e tempo de abertura, causados pelos elementos amplificadores do T/H. Os dois primeiros são esquematizados na figura 3; o tempo de abertura é o tempo necessário paradesligar o condensador do sinal que memoriza e depende de vários factores entre eles oruído e o sinal de entrada, o que tem como consequência uma incerteza neste tempo eorigina erros de amostragem. Todos estes factores limitam a resolução de conversão. Outracaracterística não ideal do circuito é o decaimento do sinal no estado hold , causado porcorrentes de perdas dos componentes ligados ao condensador que fazem com que este

    descarregue. A taxa desta descarga é a taxa de decaimento do circuito e provoca erros

     para períodos longos de duração do estadohold 

    , podendo ser calculada através dodeclive da recta de decaimento.

    Figura 3 – Não idealidades do sinal amostrado por um circuito s mple nd ho ld  

    O objectivo deste trabalho é a implementação de um circuito de amostragem e retençãocomandado por um sinal periódico e a verificação do seu funcionamento, com particularincidência na análise da recta de decaimento do sinal amostrado e no ruído existente noestado hold . O sinal periódico é programado em VHDL. O trabalho foi executado em três

    sessões de laboratório.

  • 8/18/2019 Circuito de Amostragem e Retenção

    4/17

  • 8/18/2019 Circuito de Amostragem e Retenção

    5/17

    Projecto e implementação do sinal periódico

     A função deste código é incrementar o sinal count  quando o relógio é igual a 1 e existe umevento no relógio, neste caso uma transição de flanco positivo. O reset   é assíncrono e éavaliado antes do relógio.

    Depois de implementado o contador, procedeu-se ao seu teste, através da configuração dotestbench  ou ficheiro de teste, primeiro estruturando o clock num sinal quadrado de período540ns e depois estruturando o sinal de reset  para estar a 1 no primeiro flanco ascendente derelógio e a 0 no segundo, de forma a activar o reset   e inicializar o contador a 0000.Posteriormente correu-se o teste em questão, verificando-se o bom funcionamento docircuito. Por se tratar de uma fase muito incipiente deste projecto, este teste não é aquiapresentado.

    2ª sessão de laboratório

    Material utilizado:

     Ambiente de programação XILINX ISE “MPLAB” e compilador “VHDL”;

    Kit SPARTAN 3.

    Uma vez compreendido o funcionamento básico do ambiente de desenvolvimento decódigo VHDL e implementado um contador básico, pretendia-se alterar o código docontador implementado na aula anterior, de forma a conseguir obter um sinal de 1 bit,quadrado e de frequência de cerca de 1000Hz, aproveitando o relógio de 50MHz da placa

    SPARTAN 3. O objectivo deste procedimento era criar um sinal mais lento, que pudesseservir de controlo do switch no circuito de amostragem e retenção a ser implementadoneste projecto.

    Primeiro, mudou-se a dimensão do vector count  para 25 bits de forma a que este pudessecontar até 50E6. Posteriormente decidiu-se mudar o circuito de forma ter uma linha desaída com frequência de cerca de 1000Hz que se pretendia que fosse o sinal a controlar oswitch . Para tal foi declarado um novo porto do tipo out  com o nome saida . Esta variável foiinicializada a 1 no bloco de código correspondente à própria inicialização do contador, ouseja quando o reset  está a 1, já que se pretende que o sinal de saída esteja ligado quando ocircuito começa a funcionar. Posteriormente, foi adicionado código à secção que se segue

    ou seja, quando o reset  está a 0, a seguir à definição do contador. Neste código adicionado,apenas se pede que o sinal de saída venha a 0 quando o contador chegar a 25000 e volte a 1quando o contador chegar a 50000 e nesse instante reinicialize o contador. Como o sinal declock é de 50MHz, ou seja, tem um período de 20ns, e como o contador é síncrono com orelógio, quando o contador tiver contado até 25000 terão passado 0.5 s e a saída fica a 0 equando o contador tiver contado até 50000 terão passado 1 s e a saída fica a 1. Como ocontador reinicializa, o processo é repetido o que conduz à geração de uma onda quadradade frequência 1kHz que era o que se pretendia.

  • 8/18/2019 Circuito de Amostragem e Retenção

    6/17

    Projecto e implementação do sinal periódico

    O código descrito é o seguinte:

    --declaração das bibliotecas utilizadas;

    library IEEE;

    use IEEE.STD_LOGIC_1164.ALL;

    use IEEE.STD_LOGIC_ARITH.ALL;

    use IEEE.STD_LOGIC_UNSIGNED.ALL;

    --Declaração dos portos do programa;

    entity contador is 

    Port ( clock : in  STD_LOGIC;

    reset : in STD_LOGIC;

    saida : out  STD_LOGIC;

    count : inout  STD_LOGIC_VECTOR (24 downto 0));end contador;

    --definição do comportamento do programa

    architecture Behavioral of contador is 

    begin 

    process (clock, reset)

    begin

    --se o reset estiver a 1, o contador deve serinicializado a 0 e a saida a 1

    if reset='1' then 

    count '0');

    saida

  • 8/18/2019 Circuito de Amostragem e Retenção

    7/17

    Projecto e implementação do sinal periódico

    Para poder testar o bom funcionamento do circuito, foi criado um ficheiro de teste VHDLtestbench . Para configurar o ficheiro de teste criou-se o referido relógio de período 20ns econfigurou-se o reset   para estar a 1 aos 50ns e voltar a 0 ao 70ns de forma a poder

    desencadear o funcionamento do código projectado anteriormente. O teste em questão foicorrido e verificou-se o bom funcionamento do circuito simulado. No entanto, como oresultado da simulação é apresentado em ns, embora se possa definir a extensão temporalda mesma, era impossível apresentar neste relatório uma imagem da referida simulação,cuja extensão era enorme. Assim, e para efeito exclusivo da apresentação de um teste aocódigo no relatório, alterou-se o código para que a variável saída  ficasse a 0 aos 10ns e a 1aos 20 ns. O código do ficheiro de teste é apresentado em seguida, bem como o resultadoda simulação nestas condições.

    LIBRARY ieee;

    USE ieee.std_logic_1164.ALL;

    USE ieee.std_logic_unsigned.all;

    USE ieee.numeric_std.ALL;

    ENTITY Testesaida3_vhd IS 

    END Testesaida3_vhd;

    ARCHITECTURE behavior OF Testesaida3_vhd IS 

    -- Component Declaration for the Unit Under Test (UUT) 

    COMPONENT contador

    PORT(clock : IN std_logic;

    reset : IN std_logic;

    saida : INOUT std_logic;

    count : INOUT std_logic_vector(24 downto 0)

    );

    END COMPONENT;

    --Inputs

    SIGNAL clock : std_logic := '0';

    SIGNAL reset : std_logic := '0';

    --BiDirs

    SIGNAL saida : std_logic;

    SIGNAL count : std_logic_vector(24 downto 0);

  • 8/18/2019 Circuito de Amostragem e Retenção

    8/17

    Projecto e implementação do sinal periódico

    BEGIN

    -- Instantiate the Unit Under Test (UUT)

    uut: contador PORT MAP(

    clock => clock,reset => reset,

    saida => saida,

    count => count

    );

    clock

  • 8/18/2019 Circuito de Amostragem e Retenção

    9/17

    Projecto e implementação do sinal periódico

    Pode-se verificar o bom funcionamento de todas as variáveis em questão. Chama-se aatenção para o facto do primeiro período da variável saída  ser mais longo em 20ns que osseguintes, devido ao facto de ser ligado quando o reset  está a 1 e não a 0, o que não constitui

    um problema. Omitiram-se os bits superiores a 4 do contador, uma vez que estes estãosempre a zero, já que neste caso, como se diminuiu o período do sinal saída   para poderapresentar um teste no relatório, o contador não chega a incrementar o suficiente para queestes bits fiquem a 1.

    Foi ainda implementado um código ligeiramente diferente do descrito acima, que foitestado nas mesmas condições e funciona igualmente bem, embora não tenha sido utilizadonas fases posteriores deste projecto. Este código apenas difere do anterior no facto de terum contador adicional mais lento, cujos incrementos são feitos em cada s. O códigodescrito é o seguinte:

    library IEEE;

    use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;

    entity contador is Port ( clock : in  STD_LOGIC;

    reset : in  STD_LOGIC; saida : inout  STD_LOGIC;useg_en : inout  STD_LOGIC;

    count : inout  STD_LOGIC_VECTOR (24 downto 0));end contador;

    architecture Behavioral of contador is 

    signal cntmhz : STD_LOGIC_VECTOR (6 downto 0);

    begin

    process (clock, reset)

    begin--se o reset estiver a 1, tanto o contador de mhz

    como o contador de microsegundos são inicializadosif reset='1' then 

    cntmhz '0');

    useg_en

  • 8/18/2019 Circuito de Amostragem e Retenção

    10/17

    Projecto e implementação do sinal periódico

    --quando contamos 500 microsegundos, o nosso sinal sai a 1if count= 500 then 

    saida

  • 8/18/2019 Circuito de Amostragem e Retenção

    11/17

    Implementação e teste do circuito de amostragem e retenção

    3ª sessão de laboratório 

    Material utilizado:

     Ambiente de programação XILINX ISE “MPLAB” e compilador “VHDL”;

    Kit SPARTAN 3;

    Multímetro;

    Osciloscópio;

    Ligações unifilares;

    Breadboard;

    Fonte de alimentação DC e gerador de sinais;

    OpAmp com entrada do tipo FET LF353;

    Switch 74HCT4066;

    1 resistência de 47k ;

    1 condensador de 1 F.

    Uma vez implementado o circuito de relógio procedeu-se à montagem do circuito deamostragem e retenção na breadboard   de acordo com o esquema que constava noenunciado:

    Figura 6 – Esquema de montagem do circuito de amostragem e retenção

    Como não foi encontrada no laboratório uma resistência de 100k substituiu-se a mesmapor uma de 47k , cujo valor foi confirmado com um multímetro, sem prejuízo dofuncionamento do circuito. Uma vez que o esquema de montagem do circuito já indicava anumeração dos pinos dos integrados entre os quais se deviam estabelecer as ligações,apenas se consultaram as datasheet’s  dos mesmos para verificar o nível de voltagem da suaalimentação.

  • 8/18/2019 Circuito de Amostragem e Retenção

    12/17

    Implementação e teste do circuito de amostragem e retenção

    Depois de ter o circuito montado e verificado, procedeu-se à ligação da entrada 5 dointegrado OpAmp LF353 ao gerador de sinais da base de experimentação, que funcionacomo o sinal que se pretende amostrar, escolhendo o modo sinusoidal. Editou-se de

    seguida, novamente, o Implementation Constraints File , acrescentando a linha

    NET "saida" LOC ="C5";

    que permitiu ligar o sinal de relógio projectado na sessão de laboratório anterior à entrada13 do integrado Switch 74HCT4066 que corresponde a uma das entradas de controlo desteintegrado. A massa do circuito foi ligada à massa da placa. Antes de verificar ofuncionamento do circuito, ligou-se o Canal 1 do osciloscópio à saída do gerador de sinais. Verificou-se que o sinal sinusoidal a amostrar tinha uma frequência de cerca de 335Hz euma amplitude de 1.6V pico a pico.

    Posteriormente, traduziu-se e implementou-se novamente o código na placa. Finalmente,ligou-se o Canal 1 do osciloscópio à saída C5 da placa, correspondente ao sinal de relógiode controlo do circuito, cuja frequência corresponde à frequência de amostragem (1kHz) eo Canal 2 do osciloscópio à saída do circuito de amostragem e retenção, correspondente aopino 1 do integrado OpAmp LF353.

    Foram feitas duas aquisições do sinal de controlo do circuito e da saída do mesmo comuma escala temporal de 500 s e de 250 s respectivamente.

    Figura 7 – Aquisição do sinal de controlo e do sinal de saída do circuito S&H (sinal de controlosimétrico) a 500 s 

  • 8/18/2019 Circuito de Amostragem e Retenção

    13/17

     Implementação e teste do circuito de amostragem e retenção

    Figura 8 – Aquisição do sinal de controlo e do sinal de saída do circuito S&H (sinal de controlosimétrico) a 250 s 

    O objectivo deste procedimento foi a visualização do comportamento do sinal de saída docircuito de uma forma global e do comportamento particular da recta de decaimento paraposterior análise do declive da mesma, que, como foi dito na introdução deste trabalho éum parâmetro de funcionamento do circuito implementado e a sua determinação um dosobjectivos deste trabalho. Foram feitas ainda duas aquisições. Primeiro mudou-se o códigodo controlador do switch para que tivesse um comportamento assimétrico, ou seja, orelógio está a 1 durante 0.001s e a 0 1/5 deste tempo ou seja 0.0002s. O código foinovamente implementado na placa e feita uma aquisição nestas condições:

    Figura 9 – Aquisição do sinal de controlo e do sinal de saída do circuito S&H (sinal de controloassimétrico, a 1 durante 0.001s e a 0 durante 1/5 deste tempo)  

  • 8/18/2019 Circuito de Amostragem e Retenção

    14/17

    Implementação e teste do circuito de amostragem e retenção

    De seguida mudou-se novamente o código do controlador do switch para que tivesse umcomportamento assimétrico, mas deste vez contrário ao comportamento anterior ou seja, orelógio está a 0 durante 0.001s e a 1 1/5 deste tempo ou seja 0.0002s. O código foi

    novamente implementado na placa e feita uma aquisição nestas condições:

    Figura 10 – Aquisição do sinal de controlo e do sinal de saída do circuito S&H (sinal de controloassimétrico, a 0 durante 0.001s e a 1 durante 1/5 deste tempo)  

    Uma vez feitas as aquisições necessárias à confirmação do bom funcionamento do circuitodeu-se esta sessão de laboratório por terminada. Segue-se a análise dos sinais obtidos,nomeadamente da recta de decaimento do estado hold   em cada uma das aquisições e doruído presente no mesmo estado.

  • 8/18/2019 Circuito de Amostragem e Retenção

    15/17

     Análise dos resultados

    Da observação dos resultados, o primeiro aspecto a salientar é o comportamento diferentedo sinal de saída para valores de tensão positiva e negativa. Fazendo uma análise qualitativa,observa-se que, enquanto para valores positivos, o sinal permanece num valor constante

    quando o clock está a 0 (ou seja, no estado hold  ), para valores negativos, o sinal mantém umcomportamento aproximado do comportamento sinusoidal da tensão de entrada (emboranão exactamente igual). Tal facto deve-se à lógica TTL inerente ao switch   do circuito. Circuitos com uma lógicadeste género apenas estão preparados para tensões de entrada entre 0 e 5V. Como tal, para valores negativos da tensão de entrada, o switch  não “bloqueia” totalmente a passagem decorrente ou seja, não consegue manter o estado hold. Este apenas funciona devidamentepara valores entre 0 e 5V, que é o caso dos valores positivos do sinal de entrada do circuito. Assim, a aquisição representada na Figura 8  não é válida para a análise do bomfuncionamento do circuito, visto que praticamente só capturou valores de tensão negativos,tendo o comportamento errático observado.

    Para contornar o problema, sugerem-se dois procedimentos (que, obviamente, dependemdos objectivos pretendidos pelo utilizador e não serão práticos para a maior parte dassituações, aplicando-se apenas a situações muito específicas): a utilização de um díodorectificador de sinal ou uma diminuição da frequência do clock de forma a que o estado hold  apenas encontre valores de tensão positiva no sinal de entrada.

    Observando o comportamento dos valores positivos do sinal de saída em todas asaquisições, concluímos que o sinal, em primeira análise, se comporta como esperado,efectuando o hold  com o clock a 0 e “seguindo” o valor de tensão de entrada para valores declock a 1. Observa-se que após os estados hold , o sinal possui um declive de módulo muitoelevado de forma a poder retomar rapidamente os valores de tensão de entrada, se o seu

     valor no final deste período se encontrar muito afastado do valor da tensão de entrada.De forma a analisar se existe decaimento do sinal e ruído durante o estado hold , foramefectuadas regressões lineares relativas às rectas proporcionadas por estes estados.

    Figura 11 – Regressão linear referente ao 1º estado hold  da figura 7

  • 8/18/2019 Circuito de Amostragem e Retenção

    16/17

  • 8/18/2019 Circuito de Amostragem e Retenção

    17/17

    Conclusões

    Com este trabalho foi possível compreender o funcionamento do circuito sample and hold ,bem como as não idealidades a ele inerentes. Também foi possível a familiarização com alinguagem VHDL que será útil em futuros trabalhos, bem como com o funcionamento da

    placa SPARTAN 3. A análise dos dados recolhidos conduziu aos resultados esperados,nomeadamente ao facto de se verificar que o circuito implementado possui imperfeições,mais especificamente correntes de fuga dos componentes ligados ao condensador, o queconduz ao aparecimento de uma recta de decaimento no estado hold , mas cujo impacto nofuncionamento do circuito é de pouca importância. O mesmo se pode concluir, no quetoca à presença de ruído no mesmo estado. De uma forma geral, pode-se concluir queforam cumpridos os objectivos deste trabalho e apreendidas os novos conhecimentos a eleassociados. 

    Bibliografia

    http://paginas.fe.up.pt/~jms/E3/conversoresAD.pdf ;

    http://en.wikipedia.org/wiki/Sample_and_hold;

    Programmable Logic Design - Quick Start Handbook; 

    Manual do kit SPARTAN 3; 

    datasheet  do integrado 74HCT4066;

    datasheet  do integrado LF353.