c10-Convertorul a D

download c10-Convertorul a D

of 16

description

Convertor analog digital

Transcript of c10-Convertorul a D

  • SISTEME CU MICROPROCESOARE note de curs

    1

    10. CONVERTORUL ANALOG-DIGITAL

    Cuprins

    Introducere

    Obiective

    10.1 PRINCIPIUL DE FUNCIONARE AL CONVERTORULUI

    ANALOG-DIGITAL

    10.2 CONFIGURAREA MODULULUI DE CONVERSIE A/D

    10.2.1 Rolul i structura regitrilor de control

    10.2.2 Etapa de configurare

    Concluzii

    Teste de autoevaluare

    Bibliografie

    Dicionar

    Teste de evaluare

  • CONVERTORUL ANALOG-DIGITAL

    2

    Introducere

    Microcontrolerele au fost concepute pentru a interaciona cu mediul

    exterior, care, n esena lui, este alctuit din semnale analogice (sunet,

    cldur, iluminare etc). Astfel, comunicarea dintre microcontroler i

    lumea exterioar nu se poate realiza doar prin intermediul unor canale cu

    dou nivele de tensiune (porturile de intrare-ieire digitale). Exist

    numeroase situaii n care date de natur analogic, preluate de la diverse

    dispozitive sau senzori, necesit o prelucrare digital. ntr-un asemenea

    context se utilizeaz convertoarele analog-digitale (A/D) care transform

    nivelele de tensiune analogice n echivalentul lor digital (secvene de bii)

    care poate fi utilizat cu uurin n prelucrrile ulterioare.

    Majoritatea microcontrolerelor PIC au n dotare convertoare analog-

    digitale multicanal, iar n acest capitol ne vom opri asupra aspectelor

    specifice utilizrii acestor module.

    Obiective

    Dup parcurgerea acestui capitol cursantul va trebui:

    - s neleag principiul de realizare al conversiilor analog-digitale - s neleag diferena ntre achiziie i conversie - s poat configura modulul de conversie analog-digital al

    microcontrolerului PIC18F4455

    - s poat citi date analogice din program prin interogare sau ntrerupere.

    10.1 PRINCIPIUL DE FUNCIONARE AL CONVERTORULUI A/D

    Microcontrolerul PIC18F4455 este dotat cu un convertor analog-digital cu aproximri

    succesive, cuprins n cadrul unui modul intern legat la magistrala de adrese i de date.

    Modulul de conversie dispune de 13 canale de intrare multiplexate cu pinii

    microcontrolerului, iar rezoluia convertorului este de 10 bii.

    Structura unui convertor analog-digital cu aproximri succesive (Fig. 10.1) cuprinde,

    n general, urmtoarele blocuri:

    1. Un circuit de eantionare-memorare utilizat pentru achiziionarea i meninerea

    constant pe durata conversiei a tensiunii analogice Vin.

    2. Un comparator de tensiune. Acesta compar tensiunea de intrare Vin cu ieirea

    furnizat de convertorul digital-analogic i trimite rezultatul ctre un registru de

    aproximri succesive (RAS)

  • SISTEME CU MICROPROCESOARE note de curs

    3

    3. Un registru de aproximri succesive (RAS) care va furniza convertorului digital-

    analogic aproximri digitale ale tensiunii de intrare Vin

    4. Un convertor digital-analogic care furnizeaz ctre comparator un semnal analogic

    echivalent codului binar provenit de la registrul de aproximri succesive.

    Fig. 10.1. Convertor analog-digital cu aproximri succesive

    Principiul de funcionare al unui asemenea convertor analog-digital se desfoar dup

    cum urmeaz. Registrul de aproximri sucesive este iniializat astfel nct bitul cel mai

    semnificativ (MSB) s aib valoarea 1, ceilali bii fiind 0. Codul rezultat se va converti n

    tensiune (Vref/2) i se va compara cu Vin. Dac tensiunea analogic produs de convertorul

    digital analogic este mai mic dect Vin atunci bitul (MSB) rmne setat. n caz contrar acest

    bit va fi resetat. Acelai proces se repet pentru fiecare bit n parte, pn la testarea fiecrui bit

    al registrului RAS. Codul astfel rezultat reprezint aproximarea digital a semanlului de

    analogic de intrare.

    Procesul de conversie analog-digital prin aproximri succesive este pus n eviden n

    Fig. 10.2 pentru cazul unei rezoluii de 4 bii.

    Fig. 10.2. Principiul aproximrilor succesive pentru un RAS de 4 bii

  • CONVERTORUL ANALOG-DIGITAL

    4

    Dup cum s-a putut observa pn acum, obinerea rezultatului conversiei este un

    proces secvenial a crui durat depinde de numrul de bii necesar pentru reprezentarea

    digital, dar i de frecvena de lucru. Timpul alocat conversiei unui bit se noteaz cu TAD, iar

    pentru realizarea unei conversii complete de 10 bii este necesar un timp egal cu 11TAD. Pentru a obine rezultate corecte, pe durata timpului de conversie tensiunea Vin trebuie s

    rmn constant. De acest lucru se ocup circuitul de eantionare-memorare (Fig. 10.3)

    prezent n structura modulului de conversie.

    Fig. 10.3. Versiunea simplificat a unui circuit de eantionare-memorare

    Circuitul de eantionare-memorare menine constant tensiunea de intrare Vin cu

    ajutorul unui condensator, care necesit un timp de ncrcare. Acest timp de ncrcare

    intervine n proporie semnificativ i caracterizeaz timpul de achiziie TAQ al tensiunii care

    urmeaz a fi convertit cu ajutorul convertorului A/D. n Fig. 10.4 se evideniaz timpii care

    intervin n procesul de conversie analog-digital.

    Fig. 10.4. Timpii care intervin n procesul de conversie A/D

    Astfel, naintea realizrii conversiei propriu-zise, convertorul analog digital trebuie

    lsat ntr-o stare de achiziie a semnalului de intrare un timp minim:

  • SISTEME CU MICROPROCESOARE note de curs

    5

    TAQ = TAMP + TC + TCOFF (10.1)

    unde:

    - TAQ reprezint timpul de achiziie - TAMP reprezint timpul de stabilizare a amplificatorului intern / ntreruptorului

    comandat

    - TC reprezint timpul de ncrcare al condensatorului - TCOFF reprezint un coeficient datorat temperaturii de lucru

    Conform specificaiilor din foaia de catalog, TAMP = 0.2s, TC=1.2s, iar pentru

    temperaturi mai mari de 25C TCOFF minim este 1.2s crescnd cu temperatura (se poate

    aduga la acest coeficient cte 0.02s pentru fiecare C peste temperature de 25C). n aceste

    condiii timpul de achiziie minim la temperaturi normale de lucru este TAQ = 2.4s.

    Pe lng timpul de achiziie i timpul de conversie se recomand ateptarea unui timp

    egal cu 3TAD pn la realizarea urmtoarei achiziii.

    10.2 CONFIGURAREA MODULULUI DE CONVERSIE A/D

    10.2.1 Rolul i structura regitrilor de control Modulul poate fi configurat prin simpla modificare a unor regitri speciali, iar citirea

    datelor se rezum la citirea a doi regitri (ADRESH:ADRESL) care vor conine rezultatul conversiei. Modulul de conversie A/D dispune de 3 regitri de configurare (ADCON0, ADCON1, ADCON2), a cror structur se prezint n continuare.

    Cu toate c n structura microcontrolerului exist un singur convertor A/D, prin

    utilizarea unui multiplexor analogic se pot selecta din program, cu ajutorul biilor

    CHS3:CHS0 din registrul ADCON0[5:2], pe rnd, pn la 13 canale de intrare analogice distincte. Conversia este declanat prin setarea bitului DONEGO/ din registrul

    ADCON0[1], care ndeplinete i rolul unui bit de stare care indic prin resetarea sa automat terminarea conversiei i disponibilitatea rezultatului de 10 bii n regitrii ADRESH:ADRESL. De asemenea, modulul de conversie analog digital poate genera o ntrerupere, terminarea

    conversiei fiind semnalizat i prin setarea bitului indicator de ntrerupere ADIF din registrul PIR1.

  • CONVERTORUL ANALOG-DIGITAL

    6

    Dup cum s-a vzut i n cazul altor module componente ale microcontrolerului, i

    convertorul A/D dispune de un bit de validare ADON n registrul ADCON0[0] care are rolul de a activa (ADON = 1) sau dezactiva (ADON = 0) modulul de conversie.

    n Fig. 10.5 se prezint schema bloc simplificat a modulului de conversie A/D, iar n

    Fig. 10.6 se prezint structura registrului ADCON0 urmat de descrierea biilor disponibili.

    Fig. 10.5. Schema bloc simplificat a modulului de conversie A/D

    7 0 - - CHS3 CHS2 CHS1 CHS0 DONEGO/ ADON

    Fig. 10.6. Registrul ADCON0: A/D Control Register 0

    Biii 7-6 Neutilizai Biii 5-2

    CHS3:CHS0 Bii de selecie ai canalului de intrare A/D utilizat la conversie 0000 = Canal 0 (pin AN0) 0001 = Canal 1 (pin AN1) ...

    1100 = Canal 12 (pin AN12) 1101 = Neimplementai

    111x = Neimplementai

    Bit 1 DONEGO/ Bit status conversie A/D cnd ADON = 1 (convertor A/D activat) 1 = start conversie / conversie A/D n desfurare

    0 = conversie A/D finalizat

    Bit 0 ADON Activare / Dezactivare convertor A/D 1 = activare convertor A/D

    0 = dezactivare convertor A/D

  • SISTEME CU MICROPROCESOARE note de curs

    7

    Dup cum s-a amintit i n capitolul dedicat porturilor, canalele de intrare analogice

    sunt multiplexate cu porturile de intrare-ieire digitale. Astfel, pinul corespunztor canalului

    selectat ca intrare n convertor trebuie s fie configurat ca pin de intrare (prin registrul TRIS corespunztor) i ca intrare analogic (prin biii PCFG3:PCFG0 ai registrului ADCON1[3:0]).

    Canalele analogice 2 (AN2) i 3 (AN3) ndeplinesc un dublu rol, prin faptul c pot fi utilizate (opional) pentru a specifica tensiuni de referin externe pentru realizarea conversiei

    A/D. De regul, tensiunile de referin corespund tensiunilor de alimentare ale

    microcontrolerului (Vdd i Vss), dar exist situaii cnd referinele externe ofer o alternativ

    mai puin zgomotoas, mai exact, dar i perspectiva unei precizii mai ridicate cnd semnalul

    de intrare are o variaie mult mai mic dect plaja de alimentare de 0-5V. Dac se opteaz

    pentru referine externe, atunci VREFH ar trebui s fie cuprins ntre Vdd/2 i Vdd+0.6V, iar

    VREFL ntre Vdd-3V i Vss-0.3V. Indiferent de situaie, diferena ntre tensiunile de referin

    utilizate VREFH-VREFL ar trebui s fie nu mai puin de 3V pentru Vdd3V i 1.8V pentru

    Vdd

  • CONVERTORUL ANALOG-DIGITAL

    8

    1000 D D D D D D A A A A A A A 1001 D D D D D D D A A A A A A 1010 D D D D D D D D A A A A A 1011 D D D D D D D D D A A A A 1100 D D D D D D D D D D A A A 1101 D D D D D D D D D D D A A 1110 D D D D D D D D D D D D A 1111 D D D D D D D D D D D D D

    A = intrare analogic D = intrare / ieire digital

    Configurarea convertorului A/D poate fi vzut ca un proces n dou etape: o

    configurare iniial n care se alege canalul de intrare, tensiunile de referi i o configurare a

    conversiei care presupune alegerea tactului de conversiei, stabilirea timpilor de achiziie i a

    modului realizare a conversiei.

    Registrul de control ADCON2 are rolul de a selecta sursa tactului de conversie A/D, de a alege durata ntrzierii necesare nainte conversiei i modul n care rezultatul de 10 bii se va

    regsi n regitrii ADRESH:ADRESL. Pentru a putea realiza procesul secvenial necesar conversiei, ilustrat n Fig. 10.2,

    modulul de conversie A/D necesit un semnal de tact. Pentru a realiza conversii A/D corecte,

    se recomand ca perioada acestui semnal de tact (TAD) s fie ct mai scurt posibil, dar mai

    mare dect TAD=0.7s.

    n mod obinuit, tactul de conversie se obine prin divizarea frecvenei de lucru a

    microcontrolerului. Prin intermediul biilor ADCS2:ADCS0 din registrul ADCON2[2:0] se pot obine rapoarte de divizare de 2 pn la 64. Alegerea acestui raport de divizare se face

    astfel nct s se asigure condiia (TAD)min> 0.7s. n Tabelul 10.1 se prezint fercvenele

    maxime de lucru corespunztoare diferitelor rapoarte de divizare necesare pentru obinerea

    tactului de conversie. Tabel 10.1. Alegerea tactului de conversie n funcie de frecvena de lucru

    ADCS2:ADCS0 Tact de conversie TAD Frecvena maxim de lucru FOSC 000 2TOSC 2.86 MHz

    100 4TOSC 5.71 MHz

    001 8TOSC 11.43 MHz

    101 16TOSC 22.86 MHz

    010 32TOSC 45.71 MHz

    110 64TOSC 48.0 MHz

    111 RC (osc. intern1) TAD4ms 1.00 MHz

    1 Aceste cazuri sunt prevzute pentru funcionarea n regim SLEEP (cu consum redus de energie), tactul de conversie provenind de la oscilatorul intern.

  • SISTEME CU MICROPROCESOARE note de curs

    9

    Pentru a permite funcioarea n condiii cu consum redus de energie, de exemplu

    atunci cnd se utilizeaz oscilatorul de 32.768kHz, microcontrolerul este prevzut cu un

    oscilator RC intern. Avnd n vedere c acest oscilator furnizeaz un tact independent de

    tactul sistem, se pot realiza conversii A/D n timp ce microcontrolerul este n modul SLEEP.

    n acest situaie ntreruperea aprut ca urmare a finalizrii unei conversii A/D poate fi

    utilizat pentru a trezi procesorul. Realizarea conversiilor A/D n timp ce tactul sistem este

    dezactivat reprezint o alegere logic deoarece n acest fel se asigur un mediu de lucru cu

    zgomot digital mai redus. Dac se opteaz pentru utilizarea oscilatorului RC intern pentru

    obinerea tactului de conversie n cazul unui micrcontroler cu o frecven de lucru mai mare

    de 1MHz, Microchip recomand utilizarea modului SLEEP pe durata conversiei, deoarece

    lipsa de sincronizare dintre cele dou surse de tact crete zgomotul indus n circuitul analogic.

    S-a amintit n paragraful anterior c este necesar un timp TAQ pentru stabilizarea

    tensiunii de intrare n circuitul de eantionare memorare. n acest context, modulul de

    conversie A/D ofer posibilitatea ca respectarea timpului de achiziie TAQ s fie lsat la

    latitudinea utilizatorului prin introducerea unei ntrzieri sau s se produc automat.

    n primul caz (Fig. 10.8-a), dup alegerea canalului de intrare dorit, utilizatorul trebuie

    s asigure scurgerea timpului minim de achiziie (2.4s3s la 25C) nainte de declanarea

    unei conversii A/D prin setarea bitului GO. n cea de-a doua situaie (Fig. 10.8-b), dup setarea bitului GO se va atepta un timp

    cuprins ntre 2TAD i 20TAD (n funcie de configurare) nainte de a ncepe conversia

    propriuzis care va dura 11TAD. Dup calcularea ultimului bit (LSB) n TAD11, bitul GO este ters i bitul indicator de ntrerupere ADIF este setat pentru a indica sfritul conversiei i disponibilitatea rezultatului n regitrii ADRESH:ADRESL.

    Indiferent de modul ales pentru implementarea achiziiei, naintea declanrii unei noi

    conversii este necesar ateptarea unui timp de descrcare (vezi Fig. 10.4) de aproximativ

    3TAD.

    Cele dou situaii, exemplificate n Fig. 10.8, pot fi configurate prin intermediul biilor

    ACQT2:ACQT0 din registrul ADCON2[5:3]. Condiia impus pentru alegerea unei variante de configurare este aceea c trebuie s se asigure un timp minim de achiziie mai mare de

    2.4s3s.

  • CONVERTORUL ANALOG-DIGITAL

    10

    Fig. 10.8. Asigurarea timpului de achiziie

    a) manual; b) automat

    Rezultatul conversiei A/D este reprezentat pe 10 bii, n consecin acesta necesit doi

    regitri pentru a fi stocat. Deoarece capacitatea total a celor doi regitri ADRESH:ADRESL este de 16 bii, rezultatul conversiei poate fi aliniat la stnga sau la dreapta. n Fig. 10.9 se

    prezint modul de aliniere al rezultatului n funie de starea bitului ADFM din registrul ADCON2[7].

    9 8 7 0 0 0 0 0 0 0 Rez. conv. A/D MSb Rezultat conversie A/D octetul inferior

    ADRESH ADRESL a)

    9 2 1 0 Rezultat conversie A/D octetul superior Rez. conv. A/D LSb 0 0 0 0 0 0

    ADRESH ADRESL b)

    Fig. 10.9. Rezultatul conversiei A/D a) aliniere la dreapta ADFM = 1 b) aliniere la stnga ADFM = 0

    Exist aplicaii n care 8 bii de date sunt suficieni pentru a reprezenta rezultatul

    conversiei. n aceste cazuri se recomand alinierea rezultatului la stnga (ADFM=0), utilizarea datelor din registrul ADRESH i ignorarea celor doi bii mai nesemnificativi din registrul

  • SISTEME CU MICROPROCESOARE note de curs

    11

    ADRESL. Cnd este necesar un rezultat al conversiei pe 10 bii se recomand alinierea rezultatului la dreapta (ADFM=1), biii ADRESH[7:2] fiind toi zero.

    Cunoscnd codul de 10 bii obinut n urma conversiei A/D se poate determina

    valoarea efectiv a tensiunii analogice de intrare pe baza formulei urmtoare:

    ( )nversierezultatCoVVV REFREFin = +1024 (10.2)

    n Fig. 10.10 se prezint structura registrului ADCON2 urmat de descrierea biilor disponibili.

    7 0 ADFM - ACQT2 ACQT1 ACQT0 ADCS2 ADCS1 ADCS0

    Fig. 10.10. Registrul ADCON2: A/D Control Register 2

    Bit 7 ADFM Formatare rezultat conversie A/D 1 = aliniere rezultat la dreapta

    0 = aliniere rezultat la stnga (vezi Figura 9.6)

    Bit 6 Neimplementat Biii 5-3 ACQT2:ACQT0 Configurare timp de achiziie

    111 : TAQ = 20TAD 110 : TAQ = 16TAD 101 : TAQ = 12TAD 100 : TAQ = 8TAD 011 : TAQ = 6TAD 010 : TAQ = 4TAD 001 : TAQ = 2TAD 000 : TAQ = 0TAD (Achiziie manual. TAQ trebuie asigurat prin program)

    Biii 2-0 ADCS2:ADCS0 Configurare tact de conversie 111 : TAD = RC(oscilator intern)4ms

    110 : TAD = 64TOSC 101 : TAD = 16TOSC 100 : TAD = 4TOSC 011 : TAD = RC(oscilator intern)4ms

    010 : TAD = 32TOSC 001 : TAD = 8TOSC 000 : TAD = 2TOSC

  • CONVERTORUL ANALOG-DIGITAL

    12

    10.2.2 Etapa de configurare

    Pentru iniializarea modulului de conversie A/D utilizatorul trebuie s asigure

    rspunsul la urmtoarele ntrebri:

    1. Cum activez modulul?

    2. Am nevoie de tensiuni de referin externe?

    3. Ce canale voi folosi?

    4. Cum asigur tactul de conversie?

    5. Cum asigur timpul de achiziie?

    6. Cum citesc rezultatul?

    n acest context, etapa de configurare a modulului de conversie A/D n vederea

    realizrii unei conversii presupune parcurgerea urmtorilor pai:

    configurarea pinilor ANx utilizai ca pini de intrare, prin setarea biilor corespunztori n regitrii TRIS;

    configurare pini analogici utilizai (biii PCFG3:PCFG0, registrul ADCON1[3:0]); configurare tensiuni de referin (biii VCFG1:VCFG0, registrul ADCON1[5:4]); selectare canal de intrare utilizat pentru achiziie i conversie (biii CHS3:CHS0,

    registrul ADCON0[5:2]); configurare timp de achiziie (biii ACQT2:ACQT0, registrul ADCON2[5:3]); configurare tact de conversie (biii ADCS2:ADCS0, registrul ADCON2[2:0]); formatare rezultat conversie (bitul ADFM, registrul ADCON2[7]); pornire modul de conversie (bitul ADON, registrul ADCON0[0]); ateptarea expirrii timpului de achiziie (n cazul funcionrii n mod manual

    ACQT2:ACQT0=000) start conversie (bitul DONEGO/ , registrul ADCON0[1])2; ateptarea terminrii conversiei. Terminarea conversiei este indicat de resetarea

    bitului DONEGO/ i de setarea flagului indicator de ntrerupere ADIF din registrul PIR1[6];

    citirea rezultatului (regitrii ADRESH:ADRESL); tergerea flagului indicator de ntrerupere (bitul ADIF, registrul PIR1[6]);

    2 ATENIE se recomand ca bitul DONEGO/ s nu fie setat n aceeai instruciune n care se pornete modulul de conversie A/D

  • SISTEME CU MICROPROCESOARE note de curs

    13

    nainte ca urmtoarea achiziie s nceap se recomand o ateptare minim de 3TAD, necesar descrcrii condensatorului din circuitul de eantionare-memorare.

    Exemplu

    n continuare se prezint codul corespunztor configurrii modulului de

    conversie A/D n vederea realizrii unei achiziii automate, pentru cazul unui

    microcontroler cu o frecven de lucru de 20MHz care recepioneaz pe canalul

    0 un semnal analogic cuprins ntre 05V.

    CONFIGURARE_CONVERTOR_AD:

    BSF TRISA, TRISA0 ;pin RA0/AN0 de intrare MOVLW b00001110 ;pin AN0 intrare analogic MOVWF ADCON1 ;tens. de referi interne

    BCF ADCON0,CHS3 ;selectare canal 0 BCF ADCON0,CHS2 BCF ADCON0,CHS1 BCF ADCON0,CHS0 MOVLW b00010101 ;aliniat stnga, TAQ=4TAD MOVWF ADCON2 ;TAD = 16TOSC

    BCF PIR1,ADIF ;terg flag ntrerupere BSF ADCON0,ADON ;pornire modul BSF ADCON0,GO ;start conversie

    LOOP_TESTARE:

    BTFSS PIR1, ADIF ;sau BTFSC ADCON0, GO GOTO LOOP_TESTARE

    ;Cnd se ajunge n acest punct, conversia s-a terminat

    ;se citete rezultatul MOVF ADRESH, W ;citire date

    n loc de utilizarea interogrii pentru testarea sfritului de conversie se poate genera o

    ntrerupere. n cazul n care conversia se realizeaz n modul SLEEP, atunci aceast

    ntrerupere poate fi utilizat pentru a trezi UCP. Dup cum s-a amintit n paragraful anterior,

    modulul de conversie A/D poate funciona n modul SLEEP deoarece dispune de un oscilator

    propriu care permite generarea tactului de conversie, chiar dac tactul sistem este dezactivat.

    Aceast soluie vine cu avantajele i dezavantjele ei. Ca principal avanataj se poate meniona

    faptul c prin oprirea oscilatorului principal se asigur un mediu de conversie lipsit de

    zgomote. Pe de alt parte, conversia va dura mai mult timp, iar ieirea din modul SLEEP este

    i ea ndelungat.

    Oscilatorul intern RC poate fi utilizat pentru generarea tactului de conversie i fr a

    pune sistemul n modul SLEEP. Totui, deoarece nu exist o sincronizare ntre oscilatorul

    intern i oscilatorul sistem, zgomotele introduse de semnalul de tact fac problematic

    utilizarea modulului pentru frecvene de lucru mai mari de FOSC>1MHz.

  • CONVERTORUL ANALOG-DIGITAL

    14

    Exemplu

    n acest exemplu urmtor se pune n eviden realizarea conversiei A/D n

    modul SLEEP. Se consider cazul configurrii modulului de conversie A/D n

    vederea realizrii unei achiziii pentru cazul unui microcontroler cu o

    frecven de lucru de 20MHz care recepioneaz pe canalul 0 un semnal

    analogic cuprins ntre 05V.

    Pe lng etapele de iniilizare amintite i n exemplul anterior, utilizarea

    modului SLEEP presupune:

    - Selectarea oscilatorului intern ca surs a tactului de conversie

    (ADCS2:ADCS0 = x11) - tergerea bitului indicator de ntrerupere ADIF pentru a evita intrarea

    imediat n ntrerupere

    - Activarea ntreruperii provenite de la modulul de conversie A/D

    (ADIE=1) i activarea ntreruperilor provenite de la periferice (PEIE = 1) pentru a permite ieirea din SLEEP

    - Bitul GIE trebuie pus pe 0 pentru a evita execuia automat a unei rutine de tratare a ntreruperii la ieirea din SLEEP

    - Setarea bitului GO pentru pornirea conversiei A/D, trebuie urmat imediat de instruciunea SLEEP

    - La ieirea din modul SLEEP rezultatul conversiei va fi disponibil n

    regitrii ADRESH:ADRESL. CONFIGURARE_CONVERTOR_AD:

    BSF TRISA, TRISA0 ;pin RA0/AN0 de intrare MOVLW b00001110 ;pin AN0 intrare analogic MOVWF ADCON1 ;tens. de referi interne

    BCF ADCON0,CHS3 ;selectare canal 0 BCF ADCON0,CHS2 BCF ADCON0,CHS1 BCF ADCON0,CHS0 MOVLW b00010011 ;aliniat stnga, TAQ=4TAD MOVWF ADCON2 ;TAD de la RC

    BCF PIR1,ADIF ;terg flag ntrerupere BSF INTCON, PEIE ;activare ntr. periferice BSF PIE1,ADIE ;activare ntr. conv A/D BCF INTCON, GIE ; GIE = 0

    BSF ADCON0,ADON ;pornire modul BSF ADCON0,GO ;start conversie

    SLEEP ;conversie in mod SLEEP ;Cnd se ajunge n acest punct, conversia s-a terminat

    ;se citete rezultatul MOVF ADRESH, W ;citire date

  • SISTEME CU MICROPROCESOARE note de curs

    15

    Concluzii

    Modulul de conversie A/D permite microcontrolerului s interacioneze

    cu lumea exterioar i prin intermediul semnalelor analogice. Spre

    deosebire de utilizarea porturilor digitale, n cazul convertorului A/D

    accesul la datele analogice nu se realizeaz instantaneu. n utilizarea

    acestui modul trebuie s se in cont de restriciile de timp impuse de

    achiziia semnalului analogic i de conversia sa nainte de a putea accesa

    rezultatul.

    1. Ce nelegei prin alinierea rezultatului conversiei A/D?

    2. Care este principiul de funcionare al unui convertor A/D cu

    aproximri succesive?

    3. Ce rol ndeplinete timpul de achiziie TAQ i care sunt variantele de

    implementare care asigur acest timp?

    4. Explicai funcionarea convertorului A/D n modul SLEEP.

    Teste de autoevaluare

    5. Care sunt restriciile privind nivelul tensiunilor de referin externe?

    [1] Sid Katzen The Essential PIC18 Microcontroller, Springer Verlag

    London, 2010

    [2] Genge Bela, Haller Piroska Proiectarea sistemelor dedicate i

    ncorporate cu microcontrolerul PIC, Editura universitii Petru

    Maior din Tg. Mure, 2008

    [3] Microchip Analog-to-Digital Converter Design Guide

    [4] Microchip PIC18F2455/2550/4455/4550 Data Sheet, Microchip

    Technology Inc. 2006

    Bibliografie

    [5] www.microchip.com

  • CONVERTORUL ANALOG-DIGITAL

    16

    Dicionar

    Convertor Analog-Digital

    Circuit care are la intrare o mrime analogic (curent, tensiune) i

    furnizeaz la ieire un numr (reprezentat binar) care constituie o

    aproximare (mai mult sau mai puin exact) a valorii analogice a

    semnalului de intrare

    LSB

    En. Least Significant Bit. Bitul cel mai nesemnificativ. ntr-un octet

    acesta este bitul 0.

    MSB

    En. Most Significant Bit. Bitul cel mai semnificativ. ntr-un octet acesta

    este bitul 7.

    Timp de achiziie

    Timpul necesar pentru circuitul de eantionare s ncarce condensatorul de

    meninere la nivelul tensiunii analogice de intrare. Timpul necesar

    stabilizrii tensiunii de intrare n vederea realizrii conversiei.

    Timp de conversie

    Timpul necesar convertorului A/D s realizeze conversia semnalului

    analogic eantionat n echivalentul digital

    RAS

    Registru de aproximri succesive

    Rezoluie

    Numrul de valori discrete pe care convertorul poate s le furnizeze la

    ieirea sa n intervalul de masura.

    SLEEP

    Mod de funcionare cu consum redus caracterizat prin oprirea

    oscilatorului principal al microcontrolerului.