Você está na página 1de 0

microcontroladores PIC Mdulo Analgico

ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
161
Mdulos Analgicos
Alm de uma variedade de linhas digitais de I/O, este PIC tem ainda vrias entradas analgicas. Estas, pos-
sibilitam ao microcontrolador reconhecer, no s os estados lgicos 0 e 1, bem como fazer a medio precisa da
sua tenso e converte-la para um valor digital. Todo o procedimento acontece no mdulo conversor A/D, que
tem as seguintes caractersticas:
O conversor gera um resultado binrio de 10 bits, usando o mtodo de aproximao sucessiva (SAR), e
armazena o resultado nos registos ADRESL e ADRESH;
Disponibiliza 14 entradas analgicas;
O conversor possibilita a converso de um sinal analgico, para um nmero binrio de 10 bits;
Escolhendo tenses diferentes para o Vref- e Vref+, a resoluo mnima, ou qualidade de converso, pode
ser ajustada necessidade do projecto.
Registos e Modo do ADC - Conversor A/D
Apesar do uso de um ADC parecer deveras complicado, na prtica bastante simples. Mais simples do que
usar temporizadores e comunicaes srie.
O mdulo est sob o controlo dos bits de quatro registos:
ADRESH - Byte alto do resultado da converso
ADRESL - Byte baixo do resultado da converso
ADCON0 - Registo de controlo 0
ADCON1 - Registo de controlo 1

microcontroladores PIC Mdulo Analgico


ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
162
Registos e modo do Conversor A/D
Registos ADRESH e ADRESL
Quando se converte um sinal analgico, o resultado dos 10 bits vai ser guardado em dois registos. De maneira
a lidar com este valor mais facilmente, o mesmo pode aparecer em dois formatos: justicado esquerda, ou
justicado direita. O bit ADFM do registo ADCON1 determina o formato de converso.
No caso de o ADC no ser usado, estes registos podem ser usado para quaisquer ns.
microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
163
Registos ADRESL e ADRESH
Requisitos da Aquisio A/D
Para o ADC ter a exactido especicada, necessrio que haja um certo atraso entre a escolha da entrada
analgica, e a medio. Este atraso chama-se Tempo de Aquisio, e depende apenas da impedncia da fonte
de sinal. H uma equao para o clculo exacto deste atraso, que no pior dos casos de 20 microsegundos.
Momentaneamente, aps escolher a entrada analgica, e antes de iniciar a converso, necessrio esperar 20
microsegundos para que a converso seja o mais exacta possvel.
Periodo do ADC
O tempo necessrio para completar a converso de um-bit, denido como TAD. O TAD necessrio de pelo
menos 1.6 microsegundos. Uma converso completa de 10 bits demora cerca de 11 TAD. No entanto, como
ambos o relgio e a fonte de converso so congurados por software, uma das combinaes disponiveis dos bits
ADCS1 e ADCS0, dever ser escolhida antes da medio analgica. Estes bits esto no registo ADCON0.
microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
164
Origem Relgio
ADC
ADCS1 ADCS0
Frequncia do micro (Fosc)
20MHz 8MHz 4MHz 1MHz
Fosc/2 0 0 100 nS 250 nS 500 nS 2 uS
Fosc/8 0 1 400 nS 1 uS 2 uS 8 uS
Fosc/32 1 0 1.6 uS 4 uS 8 uS 32 uS
Frc 1 1 2 - 6 uS 2 - 6 uS 2 - 6 uS 2 - 6 uS
Perodo de Relgio do ADC
Qualquer mudana na frequncia de relgio do sistema, vai afectar o relgio do ADC, o que poder afectar o
resultado do ADC. Os valores nas clulas com fundo cinza, esto fora do recomendando.
Como usar o Conversor A/D
De maneira a possibilitar o ADC a funcionar sem problemas, bem como a evitar resultados inesperados,
necessrio considerar o seguinte:
O ADC no distingue entre tenses analgicas ou digitais. De maneira a evitar erros na medio, ou es-
tragos no chip, os pinos devem ser congurados como entradas analgicas, antes de iniciar a converso. Os
bits usados para este m, esto nos registos TRIS e ANSEL.
Quando a porta com entradas analgicas CH0-CH13 lida, os bits correspondentes vo estar a lgico 0
A medio de tenso no conversor, baseada na comparao da tenso de entrada, com uma escala interna
que tem 1024 posies. O nvel mais baixo da escala o Vref-, e o nvel mais alto o Vref+. A gura abaixo
mostra os nveis possiveis para cada um deles.

microcontroladores PIC Mdulo Analgico


ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
165
Como usar o ADC
Registo ADCON0
ADCS1-ADCS0 - Bits de seleco do Relgio de Converso do ADC, usado para sincronizao interna do
ADC. Tambm afecta a durao da converso.
ADCS1 ADCS2 Clock
0 0 Fosc/2
0 1 Fosc/8
1 0 Fosc/32
1 1 RC *
* Relgio gerado por oscilador interno no microcontrolador
microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
166
CHS3-CHS0 - Bits de seleco do Canal analgico, escolhem qual o canal analgico a converter.
CHS3 CHS2 CHS1 CHS0 Channel Pin
0 0 0 0 0 RA0/AN0
0 0 0 1 1 RA1/AN1
0 0 1 0 2 RA2/AN2
0 0 1 1 3 RA3/AN3
0 1 0 0 4 RA5/AN4
0 1 0 1 5 RE0/AN5
0 1 1 0 6 RE1/AN6
0 1 1 1 7 RE2/AN7
1 0 0 0 8 RB2/AN8
1 0 0 1 9 RB3/AN9
1 0 1 0 10 RB1/AN10
1 0 1 1 11 RB4/AN11
1 1 0 0 12 RB0/AN12
1 1 0 1 13 RB5/AN13
1 1 1 0 CVref
1 1 1 1 Vref = 0.6V
Bits de escolha do Canal Analgico
GO/DONE - Bit de Estado da Converso A/D
1 - Converso A/D est em curso
0 - Converso A/D est completa. Este bit automaticamente limpo por hardware, quando a converso A/D
termina.
ADON - Bit que liga/desliga o Conversor A/D
1 - Conversor A/D ligado
0 - Conversor A/D desligado
microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
167
Registo ADCON1
ADFM - Bit de seleco do Formato do Resultado A/D
1 - Resultado justicado direita. Os seis bits mais signicantes do ADRESH no so usados
0 - Resultado justicado esquerda. Os seis bits menos signicantes do ADRESL no so usados
VCFG1 - Bit da Tenso de Referncia, escolhe a fonte de tenso para o pino Vref-
1 - Tenso externa aplicada no pino Vref-
0 - Tenso de alimentao interna, Vss, usada como Vref-
VCFG0 - Bit da Tenso de Referncia, escolhe a fonte de tenso para o pino Vref+
1 - Tenso externa aplicada no pino Vref+
0 - Tenso de alimentao interna, Vdd, usada como Vref+
Resumidamente:
De forma a medir uma tenso com o ADC, o seguinte dever ser feito:
Congurar a porta
escrever lgico 1 no bit correspondente do registo TRIS, para congurar como entrada
escrever lgico 1 no bit correspondente do registo ANSEL, para congurar como entrada analgica
Congurar mdulo ADC
Congurar a referncia de tenso no ADCON1

microcontroladores PIC Mdulo Analgico


ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
168
Escolher o relgio de converso para o ADC, no ADCON0
Escolher um dos canais de entrada CH0-CH13, no ADCON0
Escolher o formato dos dados, pelo bit ADFM no ADCON1
Ligar o ADC, activando o bit ADON no ADCON0
Congurar a interrupo ADC (opcional)
Limpar o bit ADIF
Activar os bits ADIE, PEIE e GIE
Aguardar pelo tempo de aquisio, 20 microsegundos
Iniciar a converso, activando o bit GO/DONE no ADCON0
Aguardar para que a converso A/D termine
necessrio vericar por software, se o bit GO/DONE j est limpo, ou esperar pela interrupo do
ADC
Ler os resultados do ADC, nos registos ADRESL e ADRESH.
Comparador Analgico
Em conjunto com o ADC, existe outro mdulo que s recentemente comeou a ser introduzido dentro de mi-
crocontroladores. Como natural encontrar-se estes componenetes em quaisquer circuitos electrnicos, dois
comparadores de alta qualidade, com electrnica adicional, esto integrados no microcontrolador, e ligados aos
seus pinos.
Como funciona o comparador? Basicamente, o comparador analgico um amplicador que compara a mag-
nitude de tenses s suas duas entradas. Observando as suas funcionalidades fsicas, tem duas entradas e uma
sada. Dependendo de qual entrada tem uma tenso maior (valor analgico), um sinal lgico 0 ou 1 (valor
digital) ir estar na sua sada:

microcontroladores PIC Mdulo Analgico


ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
169
Comparador Analgico
Quando a tenso no Vin- maior que a tenso em Vin+, a sada do comparador est ao lgico 0;
Quando a tenso no Vin+ maior que a tenso em Vin-, a sada do comparador est ao lgico 1.
Este microcontrolador tem dois destes comparadores, em que as entradas esto ligadas aos pinos I/O RA0-
RA3, e onde as sadas esto ligadas aos pinos RA4 e RA5. Tambm est disponivel um referencial de tenso
interno, dentro do microcontrolador.
Os comparadores so controlados pelos bits dos seguintes registos:
CM1CON0 controla o comparador C1;
CM2CON0 controla o comparador C2;
CM2CON1 controla o comparador C2.
Fonte de Tenso de Referncia interna
Para gerar esta tenso de referncia, fontes externas ou interna podem ser usadas. Aps escolher a fonte da
tenso, o Vref derivado desta, por intermdio de uma rede por escada, baseada em 16 resistncia que formam
um divisor de tenso. A fonte de tenso escolhida para ambas as pontas deste divisor, pelo bit VRSS do
registo VRCON.

microcontroladores PIC Mdulo Analgico


ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
170
A tenso a tirar do divisor de tenso resistivo, escolhida pelos bits VR0-VR3, e usada como tenso de refer-
ncia. Ver gura abaixo.
Mdulo Fonte de Tenso de Referncia
A referncia de tenso do comparador tem duas gamas, com 16 nveis em cada. A escolha da gama controlada
pelo bit VRR do registo VRCON. E a tenso de referncia pode ser disponibilizada na sada do pino RA2/
AN2.
Esta operao realizada pelo registo VRCON.
Comparadores e funcionamento com Interrupes
O bit ag CMIF do registo PIR, activada a cada mudana de estado lgico da sada do comparador. As
mesmas mudanas tambm podem gerar uma interrupo, se os seguintes bits estiverem activos:
microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
171
Bit CMIE do registo PIE
Bit PEIE do registo INTCON
Bit GIE do registo INTCON
Se a interrupo estiver habilitada, qualquer mudana na sada do comparador, vai acordar o microcontrola-
dor do modo de Sleep, se estiver nesse modo.
Registo CM1CON0
Os bits deste registo, so os que controlam o Comparador C1. Afectam principalmente a congurao das
entradas. Para entender melhor, observar a gura abaixo, que mostra apenas uma parte da electrnica afectada
pelos bits deste registo.
Diagrama interno do Comparador C1

microcontroladores PIC Mdulo Analgico


ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
172
C1ON - Bit que activa o Comparador C1
1 - Comparador C1 est ligado
0 - Comparador C1 est desligado
C1OUT - Este o bit de sada do comparador C1
Se C1POL=1 (sada do comparador invertida)
1 - A tenso analgica em C1Vin+ menor que a tenso em C1Vin-
0 - A tenso analgica em C1Vin+ maior que a tenso em C1Vin-
Se C1POL=0 (sada do comparador no-invertida)
1 - A tenso analgica em C1Vin+ maior que a tenso em C1Vin-
0 - A tenso analgica em C1Vin+ menor que a tenso em C1Vin-
C1OE - Bit de activao da sada do Comparador C1
1 - A sada do comparador C1 est ligada ao pino C1OUT (obrigatoriedade: C1ON=1 e o bit TRIS=0)
0 - A sada do comparador C1 interna
C1POL - Bit de seleco da Polaridade da sada do Comparador C1, permite a inverso do estado da sada
1 - A sada do comparador C1 invertida
0 - A sada do comparador C1 no-invertida
C1R - Bit de seleco da Referncia do Comparador C1
1 - A entrada no-inversora C1Vin+ ligada tenso de referncia C1Vref
0 - A entrada no-inversora C1Vin+ ligada ao pino C1IN+
C1CH1 e C1CH0 - Bits de seleco de canais do Comparador C1
C1CH1 C1CH0 Entrada do Comparador C1Vin-
0 0 Entrada C1Vin- est ligada ao pino C12IN0-
0 1 Entrada C1Vin- est ligada ao pino C12IN1-
1 0 Entrada C1Vin- est ligada ao pino C12IN2-
1 1 Entrada C1Vin- est ligada ao pino C12IN3-

microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
173
Registo CM2CON0
Os bits deste registo, so os que controlam o Comparador C2. Similarmente ao caso anterior, a gura abaixo
mostra um esquema simplicado do circuito afectado por estes bits.
Diagrama interno do Comparador C2
C2ON - Bit que activa o Comparador C2
1 - Comparador C2 est ligado
0 - Comparador C2 est desligado
microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
174
C2OUT - Este o bit de sada do comparador C2
Se C2POL=1 (sada do comparador invertida)
1 - A tenso analgica em C2Vin+ menor que a tenso em C2Vin-
0 - A tenso analgica em C2Vin+ maior que a tenso em C2Vin-
Se C2POL=0 (sada do comparador no-invertida)
1 - A tenso analgica em C2Vin+ maior que a tenso em C2Vin-
0 - A tenso analgica em C2Vin+ menor que a tenso em C2Vin-
C2OE - Bit de activao da sada do Comparador C2
1 - A sada do comparador C2 est ligada ao pino C2OUT (obrigatoriedade: C2ON=1 e o bit TRIS=0)
0 - A sada do comparador C2 interna
C2POL - Bit de seleco da Polaridade da sada do Comparador C2, permite a inverso do estado da sada
1 - A sada do comparador C2 invertida
0 - A sada do comparador C2 no-invertida
C2R - Bit de seleco da Referncia do Comparador C2
1 - A entrada no-inversora C2Vin+ ligada tenso de referncia C2Vref
0 - A entrada no-inversora C2Vin+ ligada ao pino C2IN+
C2CH1 e C2CH0 - Bits de seleco de canais do Comparador C2
C2CH1 C2CH0 Entrada do Comparador C2Vin-
0 0 Entrada C2Vin- est ligada ao pino C12IN0-
0 1 Entrada C2Vin- est ligada ao pino C12IN1-
1 0 Entrada C2Vin- est ligada ao pino C12IN2-
1 1 Entrada C2Vin- est ligada ao pino C12IN3-

microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
175
Registo CM2CON1
MC1OUT - Cpia do bit C1OUT
MC2OUT - Cpia do bit C2OUT
C1RSEL - Bit de seleco da Referncia do Comparador C1
1 - A tenso de referncia CVref programavel, usada como referncia para Comparador C1
0 - A tenso de referncia xa 0.6V, usada como referncia para Comparador C1
C2RSEL - Bit de seleco da Referncia do Comparador C2
1 - A tenso de referncia CVref programavel, usada como referncia para Comparador C2
0 - A tenso de referncia xa 0.6V, usada como referncia para Comparador C2
T1GSS - Bit de seleco da Gate do Temporizador TMR1
1 - A gate do TMR1 T1G
0 - A gate do TMR1 o comparador SYNCC2OUT
C2SYNC - Bit de sincronizao da sada do Comparador C2
1 - A sada do comparador C2 sincronizada no anco descendente do relgio do TMR1
0 - A sada do comparador C2 assncrona
microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
176
Registo VRCON
VREN - Bit de habilitao da tenso de referncia do Comparador C1
1 - A tenso de referncia CVref est ligada
0 - A tenso de referncia CVref est desligada
VROE - Bit de habilitao da tenso de referncia do Comparador C2
1 - A tenso de referncia CVref est ligada ao pino
0 - A tenso de referncia CVref no est ligada ao pino
VRR - Bit de seleco da gama da Tenso de Referncia CVref
1 - A tenso de referncia est seleccionada para a gama baixa
0 - A tenso de referncia est seleccionada para a gama alta
VRSS - Bit de seleco da gama Vref do Comparador
1 - A tenso de referncia est na gama de Vref+ a Vref-
0 - A tenso de referncia est na gama de Vdd a Vss (tenso de alimentao)
VR3-VR0 - Seleco dos valores CVref para Tenso de Referncia
Se VRR = 1 (gama baixa), a tenso de referncia calcula-se pela frmula: CVref = ([VR3:VR0]/24)Vdd
Se VRR = 0 (gama alta), a tenso de referncia calcula-se pela frmula: CVref = Vdd/4 + ([VR3:VR0]/
32)Vdd
microcontroladores PIC Mdulo Analgico
ant ni o sr gi o sena
www. senaeng. com : : pr oj ect os e sol ues em el ect r ni ca
+351. 967033209
177
Em resumo :
De forma a convenientemente usar os Comparadores internos, necessrio o seguinte:
1 - Congurar o mdulo:
De modo a escolher o modo apropriado, os bits dos registos CM1CON0 e CM2CON0 devem ser congura-
dos. A interrupo de ser desligada, quando da mudana de modos.
2 - Congurar a tenso de referncia interna Vref (se usada). No registo VRCON necessrio:
Escolher uma das duas gamas de tenso, pelo bit VRR
Congurar a tenso de referncia Vref, pelos bits VR3-VR0
Activar o bit VROE se necessrio
Activar a tenso de referncia Vref, activando o bit VREN
Frmulas usadas para calcular a tenso de referncia:
VRR = 1 (gama baixa)
CVref = ([VR3:VR0]/24)VLADDER
VRR = 0 (gama alta)
CVref = (VLADDER/4) + ([VR3:VR0]VLADDER/32)
Vladder = Vdd ou ([Vref+] - [Vref-]) ou Vref+
3 - O arranque:
Activar interrupo, activando os bits CMIE (registo PIE), PEIE e GIE (no registo INTCON)
Ler os bits C1OUT e C2OUT do registo CMCON
Ler a Flag CMIF do registo PIR. Depois de activada, dever ser limpa por software.

Você também pode gostar