Utilizarea Modulului Convertor Analog-Digital din Cadrul unui Microcontroller AVR

Laborator
7.5/10 (2 voturi)
Domeniu: Electronică
Conține 1 fișier: doc
Pagini : 6 în total
Cuvinte : 1941
Mărime: 214.41KB (arhivat)
Publicat de: Eugen Vișan
Puncte necesare: 0
UNIVERSITATEA TEHNICĂ A MOLDOVEI Catedra Microelectronică şi dispozitive cu semiconductoare

Extras din laborator

Scopul lucrării:

Realizarea unei aplicaţii cu utilizarea modulului Convertor Analog-Digital.

Problema:

Să se elaboreze un dispoztiv care in dependentsa de valoarea semnalului Analogic la una din intrările analogice a microcontrolerului să indice nivelul semnalului la un set de 8 leduri, nivelul minimal va aprinde un singur led, iar nivelul maxim va aprinde toate ledurile. La un nivel intermediar se va aprindeun set de leduri la nivelul aplicat.

Date teoretice:

Descriere generală a Convertorului Analog-Digital: Modulul Convertor Analog-Digital este utilizat pentru conversia tensiunii analogice într-o valoare digitală (în AVR pe 10 biţi). De exemplu, poate fi utilizat pentru perceptarea ieşirii de la un senzor (de temperatură, presiune, etc.) în anumite intervale, sau pentru a executa anumite acţiuni în dependenţă de valoarea primită. Există mai multe tipuri de conertoare, dar cele utilizate în microcontrollerele AVR sunt convertoare cu aproximare succesivă. Mai jos urmează o schemă simplificată a convertorului analog-digital prezent pe AVR:

La intrare avem un multiplexor analog-digital, care este utilizat la selectarea între opt intrări analogice diferite. Aceasta înseamnă ca este posibilă conversia a opt semnale (bineînţeles ca nu în acelaşi timp). La ieşire valoarea convertită este înscrisă în regiştrii ADCL şi ADCH, deoarece regiştrii AVR au lăţime de 8 biţi este nevoie de o pereche p-u a stoca o valoare pe 10 biţi.

Tensiunea analogică la intrare trebuie să fie mai mare decît 0V, şi mai mică decît tensiunea de referinţă a convertorului – AREF. Tensiunea de referinţă este o tensiune externă care trebuie aplicată la pinul Aref a microcontrollerului. Valoarea convertită poate fi calculată folosind următorea formulă:

ADCH:L= ((Vin/Vref)*1023)

Deoarece convertorul are o rezoluţie de 10 biţi, avem 1024 valori posibile, adică dacă tensiunea de intrare Vin este egală cu 0, atunci valoarea convertită v-a fi zero, dacă Vin este egală cu Vref atunci valoarea convertită v-a fi 1023, iar dacă Vin este ½ din Vref atunci valoarea ADCH:L este 512. Acest proces de conversie se mai numeşte cuantificare, bineînţeles ce produce o eroare numită eroare de cuantificare.

Regimurile de operare a convertorului analog-digital (CAD)

Convertorul Analog-Digital are două regimuri fundamental de funcţionare: Conversie Unară (singulară) şi Conversie Continuă. În regim de conversie unară, este necesar de a iniţializa fiecare conversie, cînd este gata rezultatul este plasat în perechea de regiştri ADCH:L, şi nu se porneşte o altă conversie. În regim continuu, este necesar de a porni doar o dată conversia şi CAD v-a porni automat următoarea conversie în dată ce este finisată cea actual.

Conversia analog-digitală nu este infăptuită instantaneu, este necesar de un anumit interval de timp timp, care depinde de fregvenţa de clock folosită de CAD şi este proporţională cu fregvenţa de clock şi poate fi între 50-200 kHz.

Dacă este de ajuns o rezoluţie de conversie mai mică de 10 biţi, frecvenţa CAD poate fi mărită prin ajustarea unui prescaler prezent în CAD, care divite fregvenţa de clock la un anumit coeficient, setat prin intermediul biţilor ADPS2:0 descrişi mai jos.

Pentru a afla intervalul de timp necesar unei conversii se divide numărul de cicli necesari unei conversii la fregvenţa DAC. Normal, o conversie este îndeplinită în 13 cicli CAD, dar prima conversie (deodată după pornirea CAD) se îndeplineşte în 25 cicli de clock, şi mai este numită “Conversie Extinsă”. De exemplu dacă folosim un CAD la fregvenţa de 200kHz, o conversie normală v-a fi îndeplinită în 65 µs, iar una extinsă în 125 µs.

Regiştrii de stare şi control ai CAD

CAD conţine 4 regiştri de I/O: ADMUX – ADC Multiplexer Select Register, ADCSR – ADC Control and Status Register, ADCH:L – ADC Data Register (High, Low).

ADMUX

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

--- --- --- --- --- MUX2 MUX1 MUX0

Acest registru este utilizat pentru selectarea unuia din cele 8 canale care v-a fi convertit. Tabelul de mai jos arată setările posibile ale acestui registru:

MUX2 MUX1 MUX0 Intrarea Selectată

0 0 0 ADC0

0 0 1 ADC1

0 1 0 ADC2

0 1 1 ADC3

1 0 0 ADC4

1 0 1 ADC5

1 1 0 ADC6

1 1 1 ADC7

Dacă biţii MUX2:0 sunt modificaţi în timpul conversiei atunci selectarea dată v-a fi valabilă doar după finisarea conversiei actuale.

ADCSR

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0

ADEN – ADC Enable, setînd bitul dat în 1 este pornit CAD, iar în 0 CAD este oprit. Oprind CAD în timpul unei conversii v-a duce la anularea conversiei date.

ADSC – ADC Start Convertion, în regim de conversie continuă v-a fi necesar de setat acest bit doar la prima conversie, conversiile următoare v-or fi pornite automat. În regim de conversie unară acest bit trebuie setat la fiecare conversie necesară. Acest bit se setează în 0 automat la sfîrşitul oricărei conversii.ADFR – ADC Free Running Mode, se setează în 1 la conversie continuă.ADIF – ADC Interrupt Flag, acest bit este setat automat în 1 la finisarea unei conversii, sau este setat automat în 0 doar la executarea ISR corespunzător vectorului de întreruperi, alternativ poate fi setat în 0 înscriind 1 în acest bit.ADIE – ADC Interrupt Enable, cînd este setat în 1 şi SREG(I)=1 la apariţia ADIF se cheamă ISR corespunzătoare din vectorul de întreruperi.ADPS2:0 – ADC Prescaler Select, aceşti biţi determină factorul de divider a fregvenţei de clock pentru CAD, tabela de mai jos arată valorile posibile:

ADPS2 ADPS1 ADPS0 Factorul de Diviziune

0 0 0 2

0 0 1 2

0 1 0 4

0 1 1 8

1 0 0 16

1 0 1 32

1 1 0 64

1 1 1 128

Preview document

Utilizarea Modulului Convertor Analog-Digital din Cadrul unui Microcontroller AVR - Pagina 1
Utilizarea Modulului Convertor Analog-Digital din Cadrul unui Microcontroller AVR - Pagina 2
Utilizarea Modulului Convertor Analog-Digital din Cadrul unui Microcontroller AVR - Pagina 3
Utilizarea Modulului Convertor Analog-Digital din Cadrul unui Microcontroller AVR - Pagina 4
Utilizarea Modulului Convertor Analog-Digital din Cadrul unui Microcontroller AVR - Pagina 5
Utilizarea Modulului Convertor Analog-Digital din Cadrul unui Microcontroller AVR - Pagina 6

Conținut arhivă zip

  • Utilizarea Modulului Convertor Analog-Digital din Cadrul unui Microcontroller AVR.doc

Alții au mai descărcat și

Convertoare Analog Numerice

CAN sau Convertor Analogic Numeric reprezinta un bloc sau un circuit care poate accepta o marime analogica (curent, tensiune) la intrare, furnizând...

Monitorul

O clasificare sumara a monitoarelor ar putea fi dupa unul din criteriile : a) dupa culorile de afisare -monitoare monocrome (afiseaza doar doua...

Curs la rețele de calculatoare

Standarte de implementare a RC Nivelele logice a retelelor de calculator Retele de calc.-reprezinta o asociere de camera in care sint implasate...

Stabilizator de Tensiune

3. Functionarea În general, pentru realizarea stabilizatoarelor de tensiune se folosesc proprietatile diodelor. Cel mai simplu tip de...

Ai nevoie de altceva?