Conversor A/D – PIC16F877A Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa
Introdução Conversor A/D Utilizado para converter grandezas analógicas em digitais. Canal de entrada
Introdução Exemplo de aplicação: temperatura ambiente ao longo do dia.
Introdução Sensor de temperatura – Converte uma grandeza física em uma grandeza elétrica (tensão). Ex.: LM35 e termopar.
Quantidade de bits - Resolução. Introdução Sinais analógicos e digitais. Sinal amostrado Quantidade de bits - Resolução. Sinal Digitalizado
Introduçã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. Cada conversão dura um determinado tempo.
Mó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-).
Módulo Conversor A/D Diagrama de Blocos. 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.
Deve-se setar os correspondentes bits de TRISA e TRISE como entradas. Módulo Conversor A/D Registradores relacionados. Deve-se setar os correspondentes bits de TRISA e TRISE como entradas.
Módulo Conversor A/D
Módulo Conversor A/D
Módulo Conversor A/D
Módulo Conversor A/D
Módulo Conversor A/D
Mó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.
Módulo Conversor A/D Configurando o módulo ADC: Configure a tensão de referência e os pinos analógicos – ADCON1. Selecione o canal de entrada , o clock de conversão e acione o módulo – ADCON0. Configure a interrupção (se desejado) – ADIF = 0, ADIE = 1, PEIE = 1 e GIE = 1. Espere pelo tempo de aquisição requisitado. Inicie a conversão. Espere a conversão ser finalizada. Leia os dados convertidos em ADRESH e ADRESL, e zere o bit ADIF.
Módulo Conversor A/D 20 μs (mínimo) 12TAD (mínimo) Temporização durante uma conversão A/D. 20 μs (mínimo) 12TAD (mínimo)
Mó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.
Exemplo 1 Divisor de tensão Conversão A/D e mostra o resultado usando uma barra de LEDs. Divisor de tensão
Exemplo 1 Assembly.
Exemplo 1 Assembly.
Exemplo 1 Assembly.
Exemplo 1 Assembly.
Exemplo 1 50% 2,5 V 01 1111 1111 = 511d
Com 20MHz, posso dividir Fosc por 32 ou 64. Exemplo 3 Conversão A/D Linguagem C. Com 20MHz, posso dividir Fosc por 32 ou 64.
Tarefa 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).