280 likes | 479 Views
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.
E N D
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.
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 • 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.
Módulo Conversor A/D • Registradores relacionados. Deve-se setar os correspondentes bits de TRISA e TRISE como entradas.
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 • 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 • 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 01 1111 1111 = 511d 50% 2,5 V
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).