Upload
andre-b-cunha
View
217
Download
0
Embed Size (px)
Citation preview
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.