Sistemas Microcontrolados Aula 8: Conversores A/D e D/A Marco Jose da Silva mdasilva@utfpr.edu.br Interface com o Mundo Analógico Na realização destas aplicações, verificamos cinco elemento envolvidos. Transdutor: dispositivo que converte variável física em variável elétrica. Conversor Analógico-Digital (ADC) Sistema Digital: Gera os sinais de controle ou realiza o monitoramento. Conversor Digital-Analógico (DAC) Atuador: o sinal analógico é normalmente conectado em algum dispositivo que modificará a variável física. Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 2
Sistemas Microcontrolados Conversores A/D Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 3 Conversão A/D Parâmetros importantes Faixa entrada +/- 5V, +10V... Número de bits 8, 12 e 16 Resolução: V o V 2 N Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 4
Conversão A/D Parâmetros importantes Freqüência de amostragem ksamples/s Critério de Nyquist f S > 2.f A f S = f A /2 f S < 2.f A f S > 2.f A Importante!!! Se banda de freqüência do sinal de entrada não é conhecida: FPB FPB S/H S/H MUX A ADC necessária a inclusão de um filtro anti-aliasing (FPB) Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 5 Técnicas de conversão A/D Sigma-Delta Aproximações sucessivas Flash Rampa simples Rampa dupla resolução 24 16 SAR 8 Pipelined Flash 100 1k 10k 100k 1M 10M 100M 1G Amostras/s Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 6
Rampa simples Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 7 Aproximação sucessiva Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 8
Aproximação sucessiva Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 9 ADC Flash EXEMPLO Tempo de conversão, t c O ADC flash não usa sinal de clock. As conversões são realizadas continuamente. Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 10
Rampa dupla v i Fonte de corrente constante v o 7 segmentos relógio controle do integrador Carga do Descarga do condensador condensador (através de V i ) Mediçã o do tempo Integrador t 1 t 2 v i (polaridade inversa de vi) V ref descarga carga lógica de controle + _ + detector divisor frequência Gerador de relógio dupla rampa (integrador) saída do detector declive V i v o saída do AND Precisão elevada apenas tem uma fonte de erro tensão de referência CMRR mais elevado Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 11 Sigma-Delta Soma a diferença, ao valor da anterior integração v o = v in v 1-bit polaridade do erro (acima ou abaixo de v in ) ADC de 1 bit v in + + =? 1 bit DAC 1 se v 0 V 0 se v < 0 V +V ref se 1 V ref se 0 V ref V ref v in v 1 - v 2 + v o v i - + v o N-2 N-1 N N+1 N+2 N+3 Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 12
Circuito S&H A estabilidade do processo de conversão pode ser melhorada usando-se um circuito de amostragem e retenção (sample-and-hold circuit) para manter a tensão analógica constante enquanto a conversão A/D estiver sendo realizada. Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 13 Multiplexação Quando as entradas analógicas de fontes diversas devem ser convertidas, uma técnica de multiplexação pode ser usada de modo que um ADC possa ser compartilhado. Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 14
Aquisição de dados Há diversas aplicações nas quais dados analógicos têm que ser digitalizados e transferidos para a memória de um computador esse processo é conhecido como aquisição de dados. A aquisição do valor de um único ponto de dado é conhecida como amostragem do sinal analógico, e o ponto de dado é denominado amostra. Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 15 Sistemas Microcontrolados Conversores D/A Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 16
Reconstruindo um Sinal Digitalizado Normalmente, quando se armazena uma forma de onda digitalizada, as amostras são obtidas em intervalos fixos a uma taxa que seja pelo menos duas vezes maior do que a maior freqüência presente no sinal analógico (critério de Nyquist!). Sinal Original Sinal Reconstruído Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 17 Circuitos Conversores D/A Resistores ponderados Circuito DAC BásicoB 1 k 1 k Configuração amplificador somador 2 k 4 k V OUT V D 1 V 2 C 1 V 4 B 1 V 8 A 8 k Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 18
Circuitos Conversores D/A Circuito melhorado: independe do valor de tensão das linhas digitais A,B,C e D 1 k 2 k 1 k 4 k 8 k Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 19 Circuitos Conversores D/A Rede R-2R Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 20
Circuitos Conversores D/A Pulse width modulation Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 21 Circuitos Conversores D/A Modulador PWM analógico Application Notes AN538 da Microchip Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 22
Sistemas Microcontrolados PIC16F87X Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 23 PIC16F87X PIC16F87x Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 24
PIC16F87X Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 25 PIC16F88X Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 26
SFR Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 27 Módulo conversor A/D V REF V REF 0x000 0x3FF Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 28
Registradores de Configuração Controlam No. de canais e tensões de ref. *Verificar detalhes no datasheet! Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 29 Programação em MikroC Configurar TRISx (PIC16F873 somente TRISA) Chamar função adc_read(x) X é o canal analógico Valores são sempre justificados a direita! void main() { unsigned int temp_res; TRISA=0xFF; while(1) { temp_res = Adc_Read(0);... } } // var 16 bits para salvar conversao AD (10 bits) // PORTA é entrada // faz conversao AD e grava na variavel Sistemas Microcontrolados Marco Jose Da Silva mdasilva@utfpr.edu.br Slide 30