UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE – UFRN CENTRO DE TECNOLOGIA – CT DEPARTAMENTO DE ENGENHARIA ELÉTRICA – DEE ELE0622 – INSTRUMENTAÇÃO ELETRÔNICA CONVERSOR ANALÓGICO­DIGITAL POR APROXIMAÇÕES SUCESSIVAS ALUNOS: Antônio Wallace Antunes Soares Leonardo Vale de Araujo Natal, 23 de Junho de 2010 SUMÁRIO 1. INTRODUÇÃO 2. CONVERSOR A/D DE APROXIMAÇÕES SUCESSIVAS 2.1 REGISTRADOR DE APROXIMAÇÕES SUCESSIVAS 2.2 CONVERSOR D/A R­2R LADDER 2.3 COMPARADOR 3. PROCEDIMENTO TEÓRICO 3.1 MODELO COMPORTAMENTAL DO REGISTRADOR(SAR) 3.2 EQUAÇÃO DO CONVERSOR D/A R­2R LADDER(DAC) 4. PROCEDIMENTO EXPERIMENTAL 5. RESULTADOS OBTIDOS 6. IMAGENS DO PROTÓTIPO 7. CONCLUSÃO 8. REFERÊNCIAS BIBLIOGRÁFICAS 9. ANEXO 1. INTRODUÇÃO Atualmente, existem vários tipos de sistemas que se baseiam em grandezas analógicas, onde é necessário que seja realizado um processamento de dados por circuitos digitais (por exemplo, um computador). Para que isso ocorra, é necessário efetuar uma conversão do sinal analógico para digital. Esta conversão é realizada por um circuito chamado conversor analógico/digital ("A/D converter" ou ADC). Existem vários tipos de conversores A/D tais como: comparador paralelo, rampa tipo contador, rampa dupla tipo integrador, aproximações sucessivas, dentre outros. Todos estes conversores realizam a mesma função, a de converter um sinal de forma analógica para digital, porém utilizando métodos diferentes. Este grupo decidiu realizar a implementação de um conversor A/D de aproximações sucessivas para a disciplina de Instrumentação Eletrônica ministrada pelo professor Luciano Fontes Cavalcanti. O objetivo deste relatório é descrever todo o processo de elaboração do protótipo de um conversor A/D de aproximações sucessivas como foi citado acima, onde será apresentado o modo de funcionamento, tanto o procedimento experimental quanto o teórico realizado, os componentes utilizados no circuito e os resultados finais obtidos. 2. CONVERSOR A/D DE APROXIMAÇÕES SUCESSIVAS Como proposição do projeto desta disciplina, foi sugerido a implementação de um circuito ADC de aproximações sucessivas como foi citado acima. O diagrama de blocos do sistema é apresentado na Figura 1. Este circuito contém três blocos principais: registrador de aproximações sucessivas, conversor digital/analógico (“D/A converter” ou DAC) e comparador. Figura 1 – Diagrama de blocos do sistema. 2.1 REGISTRADOR DE APROXIMAÇÕES SUCESSIVAS O bloco do registrador de aproximações sucessivas(SAR) é composto por duas entradas, uma para o sinal de entrada proveniente do comparador, e a outra do sinal do pulso de clock. O mesmo possui também dez saídas digitais que chegarão ao conversor D/A. O SAR tem como função obter em suas saídas, sinais digitais que correspondam a valores de tensão próximos ao sinal analógico de entrada no A/D. Para que isto ocorra, o registrador precisará de dez pulsos de clock para a obtensão da palavra, visto que a resolução escolhida neste projeto foi de dez bits. Primeiramente o valor inicial armazenado no SAR corresponde a metade da tensão máxima que o conversor A/D pode analisar, logo a aproximação é feita de acordo com a saída digital do comparador, onde para cada pulso de clock o registrador estará sendo atualizado, e aproximando­se gradativamente do valor referente à entrada analógica. Com o término desta atualização no décimo pulso de clock, o valor digital obtido corresponde à entrada analógica, e o registrador será novamente atualizado para o valor inicial estando pronto para uma nova aproximação. 2.2 CONVERSOR D/A R­2R LADDER O conversor D/A R­2R ladder utilizado é composto por dez entradas digitais, provenientes do registrador de aproximações sucessivas e uma saída analógica que chegará ao comparador. Um DAC é um circuito capaz de realizar a conversão de uma palavra digital das entradas para um valor correspondente analógico na saída. Os sinais digitais são aplicados nas entradas do DAC paralelamente, onde a saída analógica representa todas as contribuições dos sinais de entrada em forma de uma soma de tensões ou uma soma de correntes proporcionais, utilizando­se de elementos passivos para realizá­lo, onde no caso deste conversor são usados resistores de valor R e 2R. Adiante será explicitado como é encontrada a equação que rege o funcionamento de um conversor D/A R­2R ladder. 2.3 COMPARADOR O circuito comparador possui duas entradas, uma proveniente do conversor D/A, a outra correspondente ao sinal de entrada que será convertido e uma saída digital que vai para o registrador de aproximações sucessivas. O comparador realiza uma análise entre dois sinais distintos, onde o mesmo é capaz de determinar qual dos dois possui o maior valor. Logo o sinal que será convertido, deverá ser comparado com o valor inicial proveniente do DAC, e apartir disso a saída estará em nível lógico alto(se o valor da entrada for maior que o do DAC) ou nível lógico baixo(se o valor da entrada for menor que o do DAC), onde a mesma será enviada para o registrador fornecer uma nova palavra. Após as dez comparações realizadas, o comparador faz com que o registrador obtenha uma nova palavra cujo valor digital equivale ao sinal de entrada analógico. 3. PROCEDIMENTO TEÓRICO Nesta seção serão apresentados os conhecimentos teóricos que foram utilizados para a elaboração do protótipo. 3.1 MODELO COMPORTAMENTAL DO REGISTRADOR(SAR) O modelo comportamental do registrador de aproximações sucessivas, o qual foi escrito em Verilog e simulado no programa Quartus, se encontra em anexo. 3.2 EQUAÇÃO DO CONVERSOR D/A R­2R LADDER(DAC) A figura abaixo mostra um esquema do circuito de um conversor D/A R­2R ladder possuindo três bits de resolução. Figura 2 – Esquemático do DAC de três bits . Para obter a corrente que passa por Rf, utilizou­se do teorema da superposição. Em seguida temos este circuito equivalente. Figura 3 – Circuito equivalente. Onde a corrente “I” será dada por estas duas equações: I= −Vout Q2 I= 2R Rf Igualando as duas equações acima, encontra­se o valor de “Vout” para o primeiro bit. Realizando este procedimento para os outros três bits, e somando estas tensões de acordo com o teorema da superposição obtêm­ se a seguinte equação. Vout= Vref ∗Rf Q0 Q1 Q2 3 2 1 R 2 2 2 Expandindo está fórmula para dez bits(resolução utilizada no projeto) teremos a seguinte equação final. Vout= Vref ∗Rf Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 10 9 8 7 6 5 4 3 2 1 R 2 2 2 2 2 2 2 2 2 2 4. PROCEDIMENTO EXPERIMENTAL O procedimento experimental consistiu na elaboração do protótipo, em laboratório, do conversor A/D acoplado a um conversor D/A em sua saída para a visualização do sinal reconstituído. Para a realização deste protótipo foram utilizados diversos componentes. Para o registrador de aproximações sucessivas utilizou­se uma placa FPGA UP2 Altera Max EPM7128SLC84­7. Um cabo de dados foi inserido à mesma para a transmissão das saídas da FPGA para o circuito. Nos conversores D/A R­2R ladder foram usados dez resistores de 100K ohm e dez resistores de 200K ohm para o primeiro DAC, e para o segundo dez resistores de 120K ohm e dez resistores de 240K ohm. Para ambos usou­se do circuito integrado LM324N como amplificador operacional. Este CI também executou a função do comparador. Para o sinal de entrada um gerador de formas de onda, foi utilizado para projetar uma senóide que possuía como frequência 10Hz. Após todos os blocos terem sido montados separadamente, realizou­se a junção de todos os módulos do circuito conversor A/D numa protoboard Toyo MSB­400, acoplando­se o registrador ao DAC, que foi anexado ao comparador e onde o mesmo teve a sua saída conectada a uma das entradas do registrador, construindo primeiramente o circuito utilizando apenas três bits. Depois do circuito ter sido montado corretamente, o projeto foi expandido para dez bits, realizando assim a montagem final do protótipo. Abaixo será mostrado um esquemático detalhado do circuito final. Figura 4­ Esquemático final do circuito. 5. RESULTADOS OBTIDOS O projeto inicial da montagem completa do circuito apresentou incoerências, pois apresentaram­se erros provenientes dos componentes utilizados e a falta de um esquemático detalhado do circuito, que influenciou para que não fosse obtido o êxito esperado. Deste modo, decidiu­se que o circuito deveria ser analisado separadamente para a realização de uma análise mais precisa. Após a análise de cada bloco separado, observou­se os erros dos componentes no circuito, onde a correção dos problemas acarretou na troca dos resistores usados no DAC. Outra correção realizada foi a substituição da placa UP3, que estava apresentando incoerências, por uma UP2. Após a correção dos problemas descritos realizou­se a junção dos blocos. Primeiramente, realizou­se a montagem do circuito completo, porém usando­se apenas três bits como resolução do circuito e devido as correções realizadas, o êxito foi alcançado. Em seguida o mesmo protótipo foi expandido para a resolução utilizada no projeto(dez bits), onde novamente o sucesso foi atingido e observou­se o conversor A/D de aproximações sucessivas funcionando corretamente da forma esperada. 6. IMAGENS DO PROTÓTIPO Abaixo serão mostradas as fotos tiradas ao longo da prototipagem. Figura 5 – Protótipo de três bits. Na figura 3 é possível verificar o circuito completo do conversor A/D com o registrador utilizando­se apenas 3 bits. Figura 6 – Sinal de entrada e sinal reconstituído(3 bits). Estes sinais são do protótipo de três bits. Pode­se observar que o sinal analógico vermelho é a entrada do conversor e o sinal azul corresponde a saída do DAC, com o sinal reconstituído. É possível visualizar também que existem imprecisões no sinal azul(reconstituído), devido a erros tais como o de quantização, imprecisão de resistores, entre outros. Figura 7 – Sinal de entrada e sinal reconstituído(10 bits). A figura 5 representa o protótipo final de dez bits. Vale ressaltar que com o aumento da resolução(bits) do circuito, o sinal azul apresenta­se bem mais próximo do vermelho, estando apenas com uma diferença de fase entre os dois sinais. 7. CONCLUSÃO O processo de prototipagem do conversor A/D do projeto teve duração de aproximadamente 1 mês. Este protótipo foi importante para os membros do grupo, pois através dele, foi possível a utilização de um conversor A/D implementado por alunos de graduação em outros projetos. Com a implementação deste protótipo os componentes do grupo puderam enfrentar as dificuldades encontradas no desenvolvimento de circuitos que utilizam componentes discretos, pois com a utilização dos mesmos tivemos que solucionar problemas tais como ruídos de sinais, mal funcionamento de circuitos integrados, falta de componentes no Laboratório de Eletrônica, erros apresentados pelas Protoboards e difícil adaptação da FPGA com os componentes discretos. 8. REFERÊNCIAS BIBLIOGRÁFICAS [1] Baker, R.; CMOS Circuit design, layout, and simulation. [2] Kundert, K.; Zinke, O.; The Designer's Guide to Verilog AMS. 9. ANEXO Modelo comportamental do SAR: module registrador2 (Q,s,clkin,clk,x); // criação do módulo registrador2 output [9:0] Q,s; /* declaração das variáveis “Q” e “s” como saídas possuindo dez bits*/ reg [9:0] Q,s; /* declaração das variáveis “Q” e “s” de dez bits como armazenáveis*/ input clkin,x; /* declaração das variáveis “clkin” e “x” como entradas*/ reg [3:0] state; /* declaração da variável “state” de quatro bits como armazenáveis*/ initial begin Q<=10'b1000000000; /* fazendo a palavra “Q” possuir metade de seu valor máximo*/ state<=0; // fazendo a palavra “state” como zero end always @(posedge clkin) begin /* sempre que houver pulso de subida para “clkin” começar*/ if (state==0) begin // se “state” for 0 começar Q[8] <= 1; // faz o bit 8 de “Q” ir para nível lógico alto Q[9] <= x; // faz o bit 9 de “Q” ser a entrada “x” state <= 1; // faz “state” ir para 1 end // fim else if (state==1) begin // se “state” for 1 começar Q[7] <= 1; // faz o bit 7 de “Q” ir para nível lógico alto Q[8] <= x; // faz o bit 8 de “Q” ser a entrada “x” state <= 2; // faz “state” ir para 2 end // fim else if (state==2) begin // se “state” for 2 começar Q[6] <= 1; // faz o bit 6 de “Q” ir para nível lógico alto Q[7] <= x; // faz o bit 7 de “Q” ser a entrada “x” state <= 3; // faz “state” ir para 3 end // fim else if (state==3) begin // se “state” for 3 começar Q[5] <= 1; // faz o bit de “Q” 5 ir para nível lógico alto Q[6] <= x; // faz o bit de “Q” 6 ser a entrada “x” state <= 4; // faz “state” ir para 4 end // fim else if (state==4) begin // se “state” for 4 começar Q[4] <= 1; // faz o bit 4 de “Q” ir para nível lógico alto Q[5] <= x; // faz o bit 5 de “Q” ser a entrada “x” state <= 5; // faz “state” ir para 5 end // fim else if (state==5) begin // se “state” for 5 começar Q[3] <= 1; // faz o bit 3 de “Q” ir para nível lógico alto Q[4] <= x; // faz o bit 4 de “Q” ser a entrada “x” state <= 6; // faz “state” ir para 6 end // fim else if (state==6) begin // se “state” for 6 começar Q[2] <= 1; // faz o bit 2 de “Q” ir para nível lógico alto Q[3] <= x; // faz o bit 3 de “Q” ser a entrada “x” state <= 7; // faz “state” ir para 7 end // fim else if (state==7) begin // se “state” for 7 começar Q[1] <= 1; // faz o bit 1 de “Q” ir para nível lógico alto Q[2] <= x; // faz o bit 2 de “Q” ser a entrada “x” state <= 8; // faz “state” ir para 8 end // fim else if (state==8) begin // se “state” for 8 começar Q[0] <= 1; // faz o bit 0 de “Q” ir para nível lógico alto Q[1] <= x; // faz o bit 1 de “Q” ser a entrada “x” state <= 9; // faz “state” ir para 9 end // fim else if (state==9) begin // se “state” for 9 começar s[0] <= x; // faz o bit 0 de “s” ser a entrada “x” s[1] <= Q[1]; // faz o bit 1 de “s” ser o bit 1 de “Q” s[2] <= Q[2]; // faz o bit 2 de “s” ser o bit 2 de “Q” s[3] <= Q[3]; // faz o bit 3 de “s” ser o bit 3 de “Q” s[4] <= Q[4]; // faz o bit 4 de “s” ser o bit 4 de “Q” s[5] <= Q[5]; // faz o bit 5 de “s” ser o bit 5 de “Q” s[6] <= Q[6]; // faz o bit 6 de “s” ser o bit 6 de “Q” s[7] <= Q[7]; // faz o bit 7 de “s” ser o bit 7 de “Q” s[8] <= Q[8]; // faz o bit 8 de “s” ser o bit 8 de “Q” s[9] <= Q[9]; // faz o bit 9 de “s” ser o bit 9 de “Q” state <= 0; // faz “state” ir para 0 Q<=10'b1000000000; /* fazendo a palavra “Q” possuir metade de seu valor máximo*/ end // fim end // fim endmodule // fim do módulo