Manual Conversor A/D

Page 1

Escola Secundária Serafim Leite Disciplina: SDAC

Conversor A/D

2008/2009

Professora Ana Reis Professor Marco Vasconcelos


Microcontrolador PIC16F877A

Índice 1. Introdução Teórica: ........................................................................................................................................ 3 1.2 Registos ADRESH e ADRESL ...................................................................................................................... 3 2. Necessidades de Aquisição do módulo A/D .................................................................................................. 4 2.1 Período de Relógio do ADC ...................................................................................................................... 4 3. Registo ADCON0............................................................................................................................................. 5 4. Registo ADCON1............................................................................................................................................. 6 5. Interrupções no Conversões A/D ................................................................................................................... 8 6. Conversor A/D no Modo SLEEP ...................................................................................................................... 9 7. Efeitos de um Reset ....................................................................................................................................... 9 8. Kit EasyPic4 .................................................................................................................................................. 11 9. Bibliografia ................................................................................................................................................... 13

Página 2 de 13


Microcontrolador PIC16F877A

1. Introdução Teórica: À parte de um grande número de linhas de entradas I/O digitais, o PIC16F877A contém 8 entradas analógicas. Permite que o Microcontrolador reconhecer, não só se um pino está na lógica 0 ou de 1 (0V ou 5V respectivamente), mas para medir precisamente a sua voltagem e converter num valor numérico, isto é, formato digital. Todo este procedimento acontece no Módulo do Conversor Analógico‐Digital que tem as seguintes características: • O conversor gera um resultado binário de 10 bits usando um método de aproximações sucessivas e guarda os resultados da conversão nos registos do Conversor A/D (ADRESL e ADRESH); • O módulo A/D tem a referência de entrada de alta ou baixa voltagem que pode ser seleccionado pelo software para umas combinações de VDD, VSS, RA2 e RA3; • O conversor A/D tem uma única característica de poder operar enquanto o dispositivo está no modo Sleep. Para operar no modo Sleep, o relógio do A/D tem de ser derivado através do oscilador interno RC do A/D; • O Conversor A/D permite a conversão de um sinal de entrada analógica para uma representação binária de 10 bits desse mesmo sinal; • Seleccionando as voltagens de referência VREF‐ e VREF+, a mínima resolução ou qualidade da conversão pode ser ajustado para as várias necessidades. O módulo A/D tem 4 registos, que são: • ADRESH – A/D Result High Register (contém os bits mais significativos do resultado da conversão); • ADRESL – A/D Result Low Register (contém os bits menos significativos do resultado da conversão); • ADCON0 – A/D Control Register 0 ; • ADCON1 – A/D Control Register 1; O registo ADCON0, controla a operação do módulo A/D. O registo ADCON1 configura o funcionamento dos pinos da porta. Os pinos da porta podem ser configurados com entradas analógicas (RA3 também pode ser uma Tensão de referência) ou como I/O digital.

1.2 Registos ADRESH e ADRESL Quando se está a converter um valor analógico para um valor digital, o resultado da Conversão A/D de 10 bits irá ser armazenado nestes dois registos. Para melhor trabalhar com este valor de uma forma mais fácil, pode ser representado em dois formatos: justificado à esquerda e justificado à direita. O bit ADFM do registo ADCON1 determina o formato do resultado da conversão.

Figura 1 – Registos ADRESH e ADRESL: Modo de armazenamento

Página 3 de 13


Microcontrolador PIC16F877A A resolução mínima do Conversor A/D é aproximadamente 4,88 mV (5V/1023). • ADFM = 1 – Justificado à Direita: o Para se ter resultado dos 8 bits descartando os dois bits mais significativos do ADRESH, vamos usar o valor da Tensão de Referência, ou seja 5 V / 4 = 1,25V, mantendo o valor da resolução do Conversor A/D. Passamos a ter 1024/4 = 256 combinações; • ADFM = 0 – Justificado à esquerda: o Para se ter resultado dos 8 bits descartando os dois bits menos significativos do ADRESL vamos usar o valor da resolução mínima, ou seja 4,88 mV * 4 = 1,952 mV. Passamos a ter 1024/4 = 256 combinações.

2. Necessidades de Aquisição do módulo A/D Para o Conversor A/D conhecer sua precisão, é necessário fornecer um certo tempo de atraso entre a selecção da entrada analógica e a sua medição. Este tempo é denominado por “Tempo de Aquisição” e depende principalmente da impedância de entrada. Existe uma equação que é usada para calcular com precisão deste tempo, em que no pior dos casos é aproximadamente de 20µs. Depois de seleccionar (ou alterar) a entrada analógica e antes de começar a conversão é necessário fornecer no mínimo o tempo de atraso de 20µs para permitir que o Conversor A/D tenha máxima precisão de conversão.

2.1 Período de Relógio do ADC O período necessário para completar a conversão de um bit é definido como TAD. O necessário TAD tem de ter pelo menos 1,6µs. O Conversor A/D requer um mínimo de 12 TAD por cada conversão de 10‐bit. Porém, desde que a conversão da frequência de relógio e a entrada seja determinada pelo software, um dos bits disponíveis de combinação ADCS1 e ADCS0 devem ser seleccionados antes da medição da Tensão em algum início da entrada analógica. Estes bits são armazenados no registo ADCON0. Entrada do Relógio AD (TAD)

Frequência Máxima do Dispositivo

Operação

ADCS2:ADCS1:ADCS0

2 Tosc

000

1,25MHz

4 Tosc

100

2,5 MHz

8 Tosc

001

5 MHz

16 Tosc

101

10 MHz

32 Tosc

010

20 MHz

64 Tosc

110

20 MHz

RC

x11

y A entrada do RC tem um tempo TAD típico de 4µs mas pode estar entre 2‐6µs. y Quando a frequência do dispositivo é maior que 1 MHz, a entrada RC do Relógio do Conversor A/D só é recomendada para a operação Sleep.

Tabela 1: Período de Relógio do ADC

Qualquer alteração no sistema da frequência do relógio irá ter um efeito na frequência de relógio do ADC, o que pode adversamente afectar o resultado da ADC. Página 4 de 13


Microcontrolador PIC16F877A

3. Registo ADCON0 R/W-0 ADCS1 Bit 7

R/W-0 ADCS0 Bit 6

R/W-0 CHS2 Bit 5

R/W-0 CHS1 Bit 4

R/W-0 R/W-0 U-0 R/W-0 CHS0 GO/DONE ADON Bit 3 Bit 2 Bit 1 Bit 0 R = Bit de Leitura W = Bit de Escrita 0 = bit is clear

ADCS1, ADCS0 (Bit 7‐6): Bits de selecção do relógio do Conversor A/D. Selecciona a frequência de relógio usada para a sincronização interna do conversor A/D. Também afecta a duração de conversão. ADCON1 ADCON0 Conversão do <ADCS2> <ADCS1:ADCS2> Relógio 0

00

Fosc/2

0

01

Fosc/8

0

10

Fosc/32

0

11

FRC 1

1

00

Fosc/4

1

01

Fosc/16

1

10

Fosc/64

1

11

FRC

Tabela 2: Bits de Selecção do Conversor A/D

CHS2‐CHS0 (Bit5‐3): Bits de selecção do canal analógico. Selecciona um pino ou um canal analógico para conversão, ou seja, medição da voltagem. CHS2 CHS1 CHS0 Canal Pin0 0

0

0

0

RA0/AN0

0

0

1

1

RA1/AN1

0

1

0

2

RA2/AN2

0

1

1

3

RA3/AN3

1

0

0

4

RA5/AN4

1

0

1

5

RE0/AN5

1

1

0

6

RE1/AN6

1

1

1

7

RE2/AN7

Tabela 3: Bits de estado do Canal Analógico

1

O Relógio é gerado pelo oscilador interno pelo qual está construído no conversor.

Página 5 de 13


Microcontrolador PIC16F877A GO/DONE (Bit 2): Bit de estado da Conversão A/D. Determina o estado corrente da conversão: • Quando o ADON=1; o 1 – Conversão A/D em progresso; o 0 – Conversão A/D está completa ou a Conversão A/D não esta em progresso. Muda automaticamente quando a conversão A/D é completa. Unimplemented (Bit 1): lê como ‘0’. ADON (Bit 0): Bit on A/D. Permite conversão A/D. • 1 – Conversão A/D é activada; • 0 – Conversão A/D é desactivada.

4. Registo ADCON1 R/W-0 ADFM Bit 7

R/W-0 ADCS2 Bit 6

U-0

U-0

R/W-0 R/W-0 U-0 R/W-0 PCFG3 PCFG2 PCFG1 PCFG0 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 R = Bit de Leitura W = Bit de Escrita 0 = bit is clear ADFM (Bit 7): formato do bit de selecção do resultado da A/D. • 1 – Resultado da Conversão do Justificado à Direita. Os 6 bits mais significativos do ADRESH não são usados; • 2 – Resultado da Conversão do Justificado à Esquerda. Os 6 bits menos significativos do ADRESL não são usados. ADCS2 (Bit 6): bit de selecção do Relógio de Conversão A/D. ADCON1 ADCON0 Relógio de Conversão <ADCS2> <ADCS1:ADCS0) 0

00

Fosc/2

0

01

Fosc/8

0

10

Fosc/32

0

11

Frc (relógio derivado pelo oscilador RC interno do A/D)

1

00

Fosc/4

1

01

Fosc/16

1

10

Fosc/64

1

11

Frc (relógio derivado pelo oscilador RC interno do A/D)

Tabela 4: Bits de selecção do Relógio do Conversor A/D

Página 6 de 13


Microcontrolador PIC16F877A Unimplemented (Bit 5‐4): lê como ‘0’. PCFG3:PCFG0 (Bit 3‐0): Porta de Configuração do Controlo de bits da A/D.

Tabela 5: Bits de controlo da configuração da porta A/D.

Os Registos ADRESH:ADRESL contém 10 bits de resolução da Conversão A/D. Quando o Conversor A/D é finalizada, o resultado é armazenado no registo par, o bit GO/DONE (ADCON0<2>) é posto automaticamente a zero e a flag de interrupção do conversor A/D do bit ADIF é activo. Depois de o módulo A/D ter sido configurado como desejámos, o canal seleccionado tem de ser adquirido antes do início da conversão. Os canais da entrada analógica têm de ter o respectivo bit TRIS seleccionado como entradas. Para efectuar uma Conversão A/D, segue os seguintes passos: 1. Configurar o módulo A/D: a. Configurar os pinos/tensão de referência e I/O Digital (ADCON1); b. Seleccionar o canal de entrada do A/D (ADCON0); c. Seleccionar o Relógio do Conversor A/D (ADCON0); d. Activar o Módulo A/D (ADCON0); 2. Configuras as rotinas de Interrupção do A/D (se assim desejar): a. Desactivar o bit ADIF; b. Activa o bit ADIE; c. Activa o bit PEIE; d. Activa o bit GIE. Página 7 de 13


Microcontrolador PIC16F877A 3. Esperar pelo Tempo de Aquisição. 4. Início da Conversão: a. Activar o bit GO/DONE (ADCON0). 5. Esperar que o A/D finalize a conversão, ou: a. Forçar que o bit GO/DONE esteja desactivado (interrupções), ou; b. Esperar pela interrupção do A/D. 6. Ler o registo par do Resultado do A/D (ADRESH:ADRESL), é necessário desactivar o bit ADIF. 7. Para uma próxima conversão, volte ao passo 1 ou passo 2. O tempo de Conversão A/D por bit é definido como TAD.

Figura 2: Diagrama de Blocos A/D

5. Interrupções no Conversões A/D Quando uma conversão A/D termina, além de o resultado da conversão ser armazenado nos registos ADRESH:ADRESL e do bit GO/DONE passar para o zero, a flag de sinalização de fim da conversão A/D é colocado a 1, o bit ADIF (PIR1<6>). Para que a interrupção do módulo conversor A/D seja tratada, é necessário as seguintes configurações: a. Desactivar o bit ADIF; b. Activa o bit ADIE; c. Activa o bit PEIE; d. Activa o bit GIE Página 8 de 13


Microcontrolador PIC16F877A

Figura 3: Lógica de Interrupção (GIE=1, PEIE=1, ADIE=1 e ADIF=0, assim que finalizar a conversão o bit GO/DONE passa a 0 e o ADIF a 1, provocando uma interrupção)

6. Conversor A/D no Modo SLEEP O módulo SLEEP do conversor A/D do PIC16F877A pode funcionar no modo sleep, desde que o relógio utilizado na conversão A/D esteja seleccionado no Frc (ADCS1:ADCS0=11). No modo SLEEP, o conversor opera nas funções mínimas o que pode eliminar todo o ruído digital durante a conversão. Quando a conversor for finalizada o bit GO/DONE vai ser desactivado e o resultado armazenado no ADRESH:ADRESL, e se as interrupções estiverem activadas a flag ADIF fica activa e acorda o Microcontrolador. Se durante a conversão o Microcontrolador for colocado no modo SLEEP com qualquer outro tipo de oscilador seleccionado que não seja o circuito RC, a conversão corrente irá ser perdida e o módulo do conversor desligado, embora o bit ADON seja mantido activo.

7. Efeitos de um Reset Quando ocorre um reset, o módulo conversor A/D é desligado, de maneira que se estiver em andamento alguma conversão, esta será cancelada. O valor dos registos ADRESH:ADRESL não são modificados quando fazemos o Power‐on do Reset. Os registos ADRESH:ADRESL irão conter dados desconhecidos depois de um Power‐on do Reset.

Página 9 de 13


Microcontrolador PIC16F877A

Tabela 6: Registos associados ao Conversor A/D.

Página 10 de 13


Microcontrolador PIC16F877A

8. Kit EasyPic4 O Kit tem dois potenciómetros que trabalham com o Conversor Analógico para Digital (ADC). Ambas as saídas dos potenciómetros têm uma gama de 0V a 5V. Dois sinais analógicos podem ser ligados aos dois pinos de entradas analógicas diferentes ao mesmo tempo. O grupo de Jumper J15 permite a conexão com o potenciómetro P1 e o conjunto de pinos envolvidos são: RA0, RA1, RA2, RA3 e RA4. O grupo de Jumpers J16 permite a conexão com o potenciómetro P2 e o conjunto de pinos envolvidos são: RA1, RA2, RA3, RA4 e RA5.

Figura 4: Entradas do Conversor ADC Para medir o sinal analógico sem interferências, ponha a posição do interruptor do SW1 para OFF. Isto irá desactivar a conexão usada pelo pino PORTA usado para a resistência de pull‐up/down. Aplicações da Conversão A‐D são várias. O Microcontrolador pega na forma do sinal analógico do seu pino de entrada e converte para um valor Digital. Basicamente, podemos medir qualquer sinal analógico que esteja na gama aceitável pela PIC. A gama é de 0V a 5V.

Página 11 de 13


Microcontrolador PIC16F877A As resistências de Pull‐ up/down da entrada analógica PORTA têm de ser desactivadas através do SW1

Potenciómetro P1 está ligado ao RA2 e o Potenciómetro p2 está ligado ao RA3.

Figura 5: Esquemático das entradas do Conversor ADC

NOTA: Os jumpers J15 e J16 não devem seleccionar o mesmo pino, têm de ser diferentes.

Página 12 de 13


Microcontrolador PIC16F877A

9. Bibliografia [1] Zanco, Wagner da Silva, “Micocontroladores PIC: Técnicas de Software e Hardware para Projectos de Circuitos Electrónicos: Com Base no PIC16F877A”, 2006, Editora Érical Ltda. [2] DATASHEET Microchip PIC16F87XA [3] www.microchip.com

Página 13 de 13


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.