Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação –...

Post on 18-Apr-2015

108 views 3 download

Transcript of Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação –...

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Conversor A/D – Conversor A/D – PIC16F877APIC16F877A

Jadsonlee da Silva Sá

Jadsonlee.sa@univasf.edu.brwww.univasf.edu.br/~jadsonlee.sa

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

IntroduçãoIntrodução Conversor A/D Utilizado para converter

grandezas analógicas em digitais.

Canal de entrada

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

IntroduçãoIntrodução Exemplo de aplicação: temperatura ambiente

ao longo do dia.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

IntroduçãoIntrodução Sensor de temperatura – Converte uma grandeza

física em uma grandeza elétrica (tensão). Ex.: LM35 e termopar.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

IntroduçãoIntrodução Sinais analógicos e digitais.

Sinal amostrado Sinal DigitalizadoQuantidade de bits -

Resolução.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

IntroduçãoIntrodução Tensão de referência (Faixa de tensão do

sinal analógico).

Conversor A/D de 8 bits – 256 níveis de quantização.

Tensão de referência de 0V – 5V, teríamos a seguinte resolução.

5 019,53

256

V VmV

Cada conversão dura um determinado tempo.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D Possui 8 canais de entrada de 10 bits (1024 níveis).

Tensão de referência selecionada via software (VDD, VSS, Vref+ e Vref-).

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D Pode funcionar durante o SLEEP.

– Clock do A/D deve ser derivado de um oscilador RC interno ao A/D.

Diagrama de

Blocos.Os dados

convertidos são armazenados em dois registradores

ADRESH e ADRESL.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D Registradores relacionados.

Deve-se setar os correspondentes bits de TRISA e TRISE como entradas.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D Quando a conversão é finalizada, os seguintes eventos

ocorrerão:

– Os dados são armazenados nos registradores ADRESH e ADRESL;

– O bit GO/DONE de ADCON0 é zerado;

– O bit ADIF é setado.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D Configurando o módulo ADC:

1. Configure a tensão de referência e os pinos analógicos – ADCON1.

2. Selecione o canal de entrada , o clock de conversão e acione o módulo – ADCON0.

3. Configure a interrupção (se desejado) – ADIF = 0, ADIE = 1, PEIE = 1 e GIE = 1.

4. Espere pelo tempo de aquisição requisitado.5. Inicie a conversão.6. Espere a conversão ser finalizada.7. Leia os dados convertidos em ADRESH e ADRESL, e

zere o bit ADIF.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D Temporização durante uma conversão A/D.

20 μs (mínimo)

12TAD

(mínimo)

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Módulo Conversor A/DMódulo Conversor A/D Tempo de conversão de um bit - TAD.

– Tempo mínimo para conversão dos 10 bits – 12 TAD.

– O valor mínimo de TAD deve ser de 1,6 μs.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo 1Exemplo 1 Conversão A/D e mostra o resultado usando uma

barra de LEDs.

5 1023 1111111111

0 0 0000000000

V

V ADC

V

1023*

5

VADC

Divisor de tensão

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo 1Exemplo 1 Assembly.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo 1Exemplo 1 Assembly.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo 1Exemplo 1 Assembly.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo 1Exemplo 1 Assembly.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo 1Exemplo 150% 2,5 V 01 1111 1111 = 511d

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

Exemplo 3Exemplo 3 Conversão A/D Linguagem C.

Com 20MHz, posso dividir

Fosc por 32 ou 64.

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP

TarefaTarefa

Faça um programa em assembly e outro em C, que a cada interrupção do timer 1 (período = 1s), realiza a conversão A/D de um sinal no canal 0 e transmite o resultado via USART para um PC (ver aula passada sobre serial).