Você está na página 1de 10

Centro Federal de Educação Tecnológica de Minas Gerais

Departamento de Engenharia Elétrica


Curso: Engenharia Elétrica - Semestre: 01/2021-ERE
Disciplina: Laboratório de Sistemas Microprocessados
Professores: Túlio Charles de Oliveira Carvalho

PRÁTICA 11
Assunto: Módulo de ADC.

Nomes:

● Beatriz de Matos Campos - 201722060468

● Brenda Oliveira de Almeida - 20193000478

● Lucas Coelho de Lima - 20183001542

Objetivos:

1. Estudar o módulo conversor analógico/digital.

Materiais:

1. MPLAB IDE.

Introdução
ADC
O módulo ADC no PIC18F4550 é um ADC de aproximação sucessiva com uma resolução
de 10 bits. O microcontrolador possui 13 canais, o que significa que 13 sinais de entrada
analógicos podem ser convertidos simultaneamente usando o módulo. Estão disponíveis 8
configurações para as entradas de clock exigentes e o módulo pode ser configurado no
modo de acionamento automático.

O PIC18F4550 tem duas entradas de tensão de referência, Vref- e Vref+. Vref- é a tensão
de entrada mínima da entrada analógica e Vref+ é a tensão máxima.

O tempo de aquisição do ADC é o tempo necessário para carregar totalmente o capacitor


de retenção de carga até o nível de tensão do canal de entrada. Em termos gerais, é o
tempo necessário para esperar antes de iniciar a conversão e depois de aplicar a entrada
no pino da porta analógica.

O clock do ADC é o tempo de conversão analógico para digital por bit, sendo denotado
como Tad. O ADC requer 11 Tad por conversão de 10 bits. Existem sete opções possíveis
para Tad.

● 2 Tosc
● 4 Tosc
● 8 Tosc
● 16 Tosc
● 32 Tosc
● 64 Tosc
● Oscilador interno

Parte experimental
1) Apresente um programa comentado que faz a leitura de um canal analógico. Apenas
passe para o próximo item quando tiver feito e entendido cada letra do exercício.

a) Configure os registradores do Módulo ADC – ADCON0, ADCON1 e


ADCON2. Deve ser feito as seguintes especificações: Selecione o canal 0;
Utilize a Tensão de referência os canais AN2 e AN3 (Identifique o PinOut das
entradas AN0, AN2 e AN3); Justifique o resultado à direita; frequência deve
ser abaixo de 1,0 MHz; Utilize 20 TAD para fazer a aquisição dos dados;
Utilizando o Stimulus Configure o AN2 = 0, AN3 = 5 V e AN0 utilize 3 valores:
25%, 50% e 75% da escala. Quanto vale 1 LSB? Como se relaciona o valor
lido e a tensão na entrada no conversor?

O código desenvolvido busca atender o fluxograma.

O código em C, desenvolvido utilizando o MPLAB IDE.


O sinal utilizando o Stimulus, foi definido o nível de tensão nos pinos AN2, com 0 V e AN3,
com 5 V.

Para definir o valor desejado na escala a ser utilizado no pino AN0, é importante considerar
que a escala varia de 0 a 5 V. Então, inicialmente para o valor de 25% da escala, AN0
recebe 1,25 V ou 1250 mV.

O resultado da conversão, contido no registrador ADRES fica visível utilizando o


RegisterTrace.

Para o valor de 50% da escala, AN0 recebe 2,5 V ou 2500 mV.


O resultado da conversão, contido no registrador ADRES.

Para o valor de 50% da escala, AN0 recebe 3,75 V ou 3750 mV.

O resultado da conversão, contido no registrador ADRES.

O pic 8F4550 possui a resolução de 10 bits, sendo possível dividir a escala dada pela
tensão de referência em até 1024 (2^10) tensões. Assim, para uma tensão de referência de
5 V, a tensão mínima será de:

Isso significa que 4,8 mV no pino analógico serão detectados e exibidos como 1 no
registrador ADRES.

É importante considerar que não é possível detectar a diferença entre 0 V e valores abaixo
de 4,8 mV, uma vez que ambos serão detectados como 0. Para melhorar tal questão
deve-se utilizar um ADC de maior resolução, visto que quanto maior a resolução do ADC
melhor será a detecção das pequenas mudanças de tensão.

O detectado pelo ADC na correspondente escala digital, é calculado seguindo a seguinte


equação:

b) Modifique o pino AN3 para 3 V. O que muda? Quanto vale 1 LSB neste caso?

Inicialmente modificando o AN3 para 3 V, mas considerando a escala do 5 V. Então, para o


valor de 25% da escala, AN0 recebe 1,25 V ou 1250 mV.
O resultado da conversão, contido no registrador ADRES fica visível utilizando o
RegisterTrace.

Para o valor de 50% da escala, AN0 recebe 2,5 V ou 2500 mV.

O resultado da conversão, contido no registrador ADRES.

Para o valor de 75% da escala, AN0 recebe 3,75 V ou 3750 mV.

O resultado da conversão, contido no registrador ADRES.

É interessante observar que mantendo a escala de 5 V, os valores que são resultado da


conversão realizada pelo ADC são diferentes. Para o caso em que AN0 recebe 3,75 V, o
valore a ser convertido extrapola a escala de 3 V, sendo exibido o valor de 1023 no ADRES.

Agora alterando o AN3 para 3 V, mas considerando a escala do 3 V. Então, para o valor de
25% da escala, AN0 recebe 0,75 V ou 750 mV.

O resultado da conversão, contido no registrador ADRES.

Para o valor de 50% da escala, AN0 recebe 1,5 V ou 1500 mV.


O resultado da conversão, contido no registrador ADRES.

Para o valor de 75% da escala, AN0 recebe 2,25 V ou 2250 mV.

O resultado da conversão, contido no registrador ADRES.

Com a alteração para os valores da escala de 3 V, ou seja, os valores: 25%, 50% e 75% da
escala de 3 V, os resultados exibidos no ADRES são os mesmos daqueles exibidos no item
a).0

Para a nova tensão de referência de 3 V, a tensão mínima será de:

Isso significa que 2,9 mV no pino analógico serão detectados e exibidos como 1 no
registrador ADRES.

c) Quanto tempo ele gasta para realizar uma conversão? Isso Representa
quantos TAD (Período do Conversor AD)? Está conforme configurado? Altere
para 0 TAD. Qual a diferença? Utilize o Register Trace para calcular o tempo
gasto.

Utilizando a tensão de referência de 5 V para AN3 e o valor de 2,25 V para o AN0 aplicados
na em Stimulus, temos que:

Para esta etapa foi adicionado o registrador ADCON0 no RegisterTrace para visualização
do tempo em que é realizado o tempo de conversão.
Na imagem capturada no RegisterTrace é possível perceber que na transição de 3 para 1
no valor do ADCON0, o microcontrolador gasta 33 ciclos de instrução para realizar a
conversão.

É sabido que 1 ciclo de instrução equivale a 4 períodos de clock (decodifica - lê - executa -


salva), ou seja, a frequência do ciclo é Fosc/4, como Fosc = 4 MHz, a frequência do ciclo de
instrução 4 MHz/4 = 1 MHz.

De posse do valor do clock configurado para o clock do microcontrolador, Fosc = 4 MHz, é


possível calcular o tempo de conversão no ADC.

No ADCON2, foi configurado o clock para a conversão A/D de Fosc/4, ou seja, 1 MHz,
como no caso anterior. Então, um período TAD, ou seja,o período do clock do A/D, será 1
μs. Foi configurado também no ADCON2 o tempo de aquisição de 20 TAD. Assim, o tempo
de aquisição tota do A/D será:

Alterando o tempo de aquisição, TAD para 0 no registrador ADCON2, na linha 26 do código,


temos que:

Na imagem capturada no RegisterTrace é possível perceber que na transição de 3 para 1


no valor do ADCON0, o microcontrolador gasta 13 ciclos de instrução para realizar a
conversão.
Mantendo as mesmas configurações do clock para a conversão A/D e frequência para o
ciclo de instrução, é possível calcular o tempo de conversão A/D.

No ADCON2 foi configurado o tempo de aquisição total de 0 TAD. Assim, é possível dizer
que o tempo mínimo para a conversão A/D é de 13 μs.

d) Modifique o algoritmo para trabalhar conforme algoritmo da Figura 2. Discuta


sobre as diferenças entre os 2 algoritmos

Podemos perceber pelo fluxograma a diferença estrutural dos dois algoritmos


desenvolvidos. No primeiro, implementado nas questões iniciais, o processo inicia a
conversão até ler dado em um looping infinito, enquanto no segundo é possível ver que o
laço de repetição formado pelo while(1) permanece vazio. Dessa forma, o microcontrolador
não fica preso enquanto não pode ler o dado, sendo possível realizar qualquer outra lógica,
como por exemplo, acender um led.

O código a seguir habilita a interrupção do A/D, que é detectada ao término de conversão.


O código foi testado e verificado, possuindo funcionamento idêntico ao obtido na letra b.

Conclusão
Com essa prática, foi possível verificar o funcionamento do conversor analógico/digital
existente no PIC 18F4550.

Referências:
Notas de aula professor Túlio Charles de Oliveira Carvalho.

Disponível em: https://openlabpro.com/guide/analog-to-digital-converter-using-pic18f4550/.


Acessado em: 13 de agosto de 2021.

Você também pode gostar