módulo conversor analógico digital

Upload: henrique-mattos

Post on 13-Oct-2015

26 views

Category:

Documents


0 download

TRANSCRIPT

9- MDULO CONVERSOR ANALGICO DIGITAL (ADC)O Conversor Analgico Digital (ADC) permite a converso de um sinal de entrada analgico a uma representao de 10 bits deste sinal. Este equipamento usa entradas analgicas, as quais so multiplexadas em um nico circuito sample e hold. A sada do sample e do hold conectada entrada do conversor. O conversor gera um resultado binrio de 10 bits por aproximaes sucessivas e armazena o resultado da converso nos registradores ADC (ADRESL e ADRESH).Nota: O mdulo ADC se aplica somente aos PIC 16F677/PIC 16F685/PIC 16F687/PIC 16F689/PIC 16F690.A tenso referncia ADC selecionada por software. Pode ser tanto VDD ou uma tenso aplicada a um pino de referncia externo. O ADC pode gerar uma interrupo aps o final da converso. Essa interrupo pode ser usada para acordar o PIC da instruo SLEEP.

9.1 CONFIGURAES ADC

Ao configurar e usar o ADC as seguintes funes devem ser consideradas: Configuraes do port Seleo de canal Seleo da tenso de referncia ADC Fonte de clock da converso ADC Controle da interrupo Results formatting

9.1.1- CONFIGURAES DO PORTO ADC pode ser usado para converter sinais analgicos e digitais. Ao converter sinais analgicos, os pinos de I/O devem ser configurados para o modo analgico setando os bits associados ao TRIS e ANSEL. Veja a seo correspondente do port para mais informaes.Nota: Tenses analgicas em qualquer pino que esteja configurado como entrada digital pode causar o excesso de corrente do buffer interno.

9.1.2- SELEO DO CANALOs bits CHS do registrador ADCON0 determinam qual canal conectado ao circuito sample e ao hold. Ao trocar os canais, um delay requerido antes de comear a prxima converso. Ver a seo 9.2 Operao ADC para mais informaes.

9.1.3- TENSO DE REFERNCIA ADCO bit VCFG do registrador ADCON0 provm o controle da tenso de referncia positiva. A tenso positiva pode ser tanto VDD ou uma fonte de tenso externa. A tenso de referncia negativa sempre conectada ao terra9.1.4- CONVERSO DO CLOCKA fonte de converso do clock programvel utilizando os bits ADCS do registrador ADCON1. H sete possveis opes de clock: FOSC/2 FOSC/4 FOSC/4 FOSC/16 FOSC/32 FOSC/64 FRC (dedicado ao oscilador interno)O tempo para completar a converso de um bit definido como TAD. Uma converso de 10 bits requer 11 perodos TAD como mostra a Figura 9-2.Para a converso correta, a especificao apropriada TAD deve ser conhecida. Veja os requerimentos para converso A/D na seo 17.0 Especificaes Eltricas para mais informaes. A tabela 9-1 d exemplos da seleo de clocks apropriados ADC.Nota: Exceto ao usar FRC, qualquer mudana no sistema de freqncia do clock vai mudar a freqncia do clock ADC, o que pode adversamente afetar o resultado ADC.

9.1.5- INTERRUPESO mdulo ADC permite gerar uma interrupo aps uma converso Anolgico- Digital completada. A flag da interrupo ADC o bit ADIF no registrador PIR1. O bit que permite a interrupo ADC o ADIE, o qual est no registrado PIE1. O bit ADIF deve ser limpo no software.Nota: O bit ADIF setado no final de cada converso, mesmo que a interrupo esteja ou no habilitada.A interrupo pode ser gerada enquanto o equipamento estiver operando ou enquanto estiver em modo SLEEP. Se o equipamento estiver em modo SLEEP, a interrupo vai acordar o equipamento. Uma vez acordado do modo SLEEP, a instruo que segue o SLEEP ser sempre executada. Se o usurio estiver tentando acordar o PIC do SLEEP e retomar a execuo do cdigo em linha, a interrupo global deve estar desabilitada. Se a interrupo global estiver habilitada, a execuo voltar para a rotina de interrupo. Ver a seo 9.1.5 Interrupes para mais informaes.

9.1.6- RESULTADO DA FORMATAOO resultado da converso dos 10 bits pode ser produzida em dois formatos, justificado esquerda ou direita. O bit ADFM do registrador ADCON0 controla o formato de sada. A figura 9-3 mostra as duas formas de sada.

9.2- OPERAES DO ADC

9.2.1- COMEANDO UMA CONVERSOPara habilitar o mdulo ADC, o bit ADON do registrador ADCON0 deve estar setado em 1. Ao setar o bit GO/DONE do registrador ADCON0, a converso analgico-digital ir iniciar.Nota: O bit GO/DONE no deve ser setado na mesma instruo que liga o ADC. Ver a Seo 9.2.6 Procedimentos para Converso A/D.

9.2.2- ACABAMENTO DE UMA CONVERSOQuando a converso est completa, o mdulo ADC vai: Limpar o bit GO/DONE Setar a flag ADIF Atualizar os registradores ADRESH e ADRESL com o novo resultado da converso

9.2.3- INTERROMPENDO UMA CONVERSOSe a converso deve ser interrompida antes de acabada, o bit GO/DONE pode ser limpo no software. Os registradores ADRESH e ADRESL no sero atualizados com a converso parcial. Ao invs disso, o par registrador ADRESH e ADRESL vai continuar com o mesmo valor da ltima converso. Adicionalmente, um delay de 2 TAD requerido antes de que uma nova aquisio possa ser inicializada. Aps este prazo, a aquisio de entrada automaticamente iniciada no canal selecionado.Nota: Um reset no equipamento fora todos os registradores ao estado de reset. Portanto, o mdulo ADC desligado e qualquer converso pendente interrompida.

9.2.4- OPERAO ADC DURANTE SLEEPO mdulo ADC pode operar durante o SLEEP. Isso requer que a fonte do clock ADC esteja na opo FRC. Quando a opo de fonte de clock selecionada a FRC, o ADC espera uma instruo adicional antes de comear a converso. Isso permite que a instruo SLEEP seja executada, o que pode reduzir o rudo do sistema durante a converso. Se a interrupo ADC estiver habilitada, o equipamento ir acordar do SLEEP quando a converso for completada. Se a interrupo ADC estiver desabilitada, o mdulo ADC desligado aps a converso estiver terminada, embora o bit ADON continue setado. Quando a fonte de clock ADC no for FRC, uma instruo SLEEP faz com que a converso que est sendo executada seja abortada e o mdulo ADC desligado, embora o bit ADON continue setado.

9.2.5 EVENTO ESPECIAL DE GATILHOUm evento especial de gatilho ECCP permite medies peridicas ADC sem a interveno do software. Quando o gatilho acontece, o bit GO/DONE setado pelo hardware e o contador Timer1 reseta ao zero. Ao utilizar o evento especial de gatilho no assegurado o tempo de ADC. responsabilidade do usurio garantir que os tempos requeridos pelo ADC sero conhecidos. Ver Seo 11.0 Reforo e Captura/Comparao/Mdulo PWM para mais informaes. 9.2.6- PROCEDIMENTOS PARA CONVERSO A/DEste um exemplo de como proceder ao usar o ADC:1- Confgure o PORT: Desabilite o driver de sada (ver registrador TRIS) Configure o pino como analgico2- Configure o mdulo ADC: Selecione o clock da converso ADC Configure a tenso de referncia Selecione o canal de entrada ADC Selecione o formato do resultado Ligue o mdulo ADC3- Configure a interrupo por ADC (opcional) Limpe a flag de interrupo ADC Habilite a interrupo ADC Habilite a interrupo perifrica Habilite a interrupo global (Nota1)4- Espere o tempo de aquisio requerido (Nota2)5- Comece a converso setando o bit GO/DONE6- Espere at a converso estar completa com uma das seguintes opes: Teste o bit GO/DONE Espere at a interrupo ADC acontecer (se ela estiver habilitada)7- Leia o resultado ADC8- Limpe a flag da interrupo ADC (requerido se a interrupo estiver habilitada)

Nota 1: A interrupo global pode ser desabilitada se o usurio quiser acordar o PIC do SLEEP e continuar a execuo em linha.Nota 2: Ver Seo 9.3 Requerimentos para Aquisio A/D

EXEMPLO 9-1 CONVERSO A/D; Este bloco de cdigo configure o ADC para teste de finalizao, referncia VDD, fonte ; de clock FRC e entrada no pino RA0;; O incio da converso e o teste de finalizao esto includos; ;BANKSEL ADCON1 ;MOVLW B01110000 ; Fonte do clock do ADC: FRCMOVWF ADCON1 ;BANKSEL TRISA ;BSF TRISA,0 ; Seta o pino RA0 como entradaBANKSEL ANSEL ;BSF ANSEL,0 ; Seta o pino RA0 como analgicoBANKSEL ADCON0 ;MOVLW B10000001 ; Justifica direita,MOVWF ADCON0 ; tenso de referncia= VDDCALL TEMPO ; Aquisio delayBSF ADCON0,GO ; A converso comeaBTFSC ADCON0,GO ; A converso j terminou?GOTO $-1 ; No, teste novamenteBANKSEL ADRESH ;MOVF ADRESH,W ; L os 2 bits superioresMOVWF RESULTALTO ; Guarda no registrador GPR BANKSEL ADRESL ;MOVF ADRESL,W ; L os 8 bits inferioresMOVWF RESULTBAIXO ; Guarda no registrador GPR

9.2.7 DEFINIO DOS REGISTRADORES ADCOs seguintes registradores so utilizados no controle e na operao do mdulo ADC:

bit 7 ADFM: Bit de Seleo do Formato do Resultado da Converso A/D1 = Justificado direita0 = Justificado esquerdabit 6 VCFG : Bit de Referncia de Tenso1 = Vref do pino0 = Vdd bit 5-2 CHS: Bits de Seleo do Canais Analgicos 0000 = AN00001 = AN10010 = AN20011 = AN30100 = AN40101 = AN50110 = AN60111 = AN71000 = AN81001 = AN91010 = AN101011 = AN111100 = CVREF1101 = 0.6V Referncia1110 = Reservado. No usar.1111 = Reservado. No usar.bit 1 GO/DONE: Bit do Status da Converso A/D1 = A converso A/D est em progresso. Ao setar esse bit uma converso A/D ir comear. Esse bit j automaticamente limpo pelo hardware quando a converso estiver terminada.0 = A converso A/D est completa ou no est em progresso.bit 0 ADON: Bit habilitador do ADC1 = ADC est habilitado0 = ADC est desabilitado e no consome corrente de operao

bit 7 No implementado: Lido como 0bit 6-4 ADCS: bits de Seleo do Clock da Converso A/D000 = FOSC/2001 = FOSC/8010 = FOSC/32x11 = FRC (clock derivado de um oscilador interno dedicado = 500 kHz mximo)100 = FOSC/4101 = FOSC/16110 = FOSC/64bit 3-0 No implementado: Lido como 0

bit 7-0 ADRES: Bits Resultado do Registrador ADCResultado da converso. Contm os 8 bits superiores dos 10 da converso

bit 7-6 ADRES:Bits Resultado do Registrador ADCResultado da converso. Contm os 2 bit inferiores dos 10 da conversobit 5-0 Reservado: No usar.

bit 7-2 Reservado: No usar.bit 5- ADRES:Bits Resultado do Registrador ADCResultado da converso. Contm os 2 bit superiores dos 10 da converso

bit 7-0 ADRES: Bits Resultado do Registrador ADCResultado da converso. Contm os 8 bits inferiores dos 10 da converso

9.3- REQUERIMENTOS DE AQUISIO A/DPara o ADC atender a sua preciso especificada, o capacitor (CHOLD) deveser permitido ao capacitor carregar completamente para o nvel de tenso de entrada do canal. O modelo de entrada Analgica mostrado na Figura 9-4. A impedncia da fonte (RS) e a impedncia do interruptor de amostragem interna (RSS) afetam diretamente o tempo necessrio para carregar o capacitor CHOLD. A impedncia do interruptor de amostragem (RSS) varia com a tenso do dispositivo (VDD), veja a Figura 9-4. O mximo recomendado de impedncia para fontes analgicas de 10 kohms. Conforme a impedncia da fonte diminuda, o tempo de aquisio pode ser diminudo tambm.Depois que o canal de entrada analgica selecionado (ou alterado), uma aquisio A/D deve ser feita antes da converso pode ser iniciada. Para calcularo tempo de aquisio mnimo, a Equao 9-1 pode ser utilizada. Esta equao presume que LSB de erro seja usado (1024 passos para a ADC). O 1/2 LSB de erro o erro mximo permitido para o ADC para atender sua resoluo especificada.

Nota 1: A tenso de referncia (VREF) no tem efeito na equao, uma vez que ele se anula. 2: A carga do capacitor (CHOLD) no descarregada aps cada converso. 3: O valor mximo recomendado para impedncia de fontes analgicas de 10 kohms. Isso necessrio para satisfazer a especificao do pino.