Sunteți pe pagina 1din 7

Laborator

Aplicatia V O L T M E T R U 8
1.Obiectivul laboratorului

“ Obiectivul
acestui laborator este de a masura tensiunea unui semnal si
afisarea valorii masurate pe ecran. Semnalul va fi generat cu ajutorul unui generator
de semnal, conectat la tower, iar vizualizarea valorii va fi realizata utilizand PuTTy.

Pentru a realiza acest lucru vor fi utilizate module studiate anterior (UART,PIT,RTC) si un nou modul ce permite
masurarea tensiunii unui semnal: ADC.

2.ADC (Analog-to-Digital Converter)

“ In
general, un convertor analog digital
reprezinta un sistem ce permite transformarea
unui semnal analog ( provenit spre exemplu de la
microfon sau de la un senzor) intr-un semnal
digital in vederea procesarii acestuia.
In cadrul laboratorului, se va utiliza gama de
reprezentare pe 16 biti, fara bit de semn. In
Descrierea tehnica a convertorului utilizat in acest laborator este tabelul de mai jos este explicata maparea
descrisa incepand cu pagina 949 (capitolul 37) din manualul valorilor in intervalul 0 – 3.3V pentru aceasta
K60FN1M0VLQ12. configurare

Acest modul realizeaza masurarea si scrierea tensiunii intr-un


registru pe 16 biti ( rezolutia maxima a convertorului ), maparea valorilor
fiind in intervalul 0 – 3.3V. In cadrul registrului pot fi configurate: gama de
reprezentare (8,10,12,16 biti), utilizarea sau nu a bitului de semn sau
frecventa ceasului pentru realizarea esantionarii .

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Pentru valoare 0 in registru, este asociata tensiunea


de 0V

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Pentru valoarea 216 − 1 din registru, este asociata
tensiunea de 3.3V
1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1 Pentru valoarea alaturata 37.503 (aceasta valoare
este doar ca exemplu si nu are o semnificatie anume),
valoare tensiunii se poate determina prin urmatorul
rationament:

216 − 1………………………………………………… 3.3 V


37.503………………………………………………… X V

𝟑𝟕. 𝟓𝟎𝟑 ∙ 𝟑. 𝟑
𝑿= = 𝟏. 𝟖𝟖𝟖𝟒 … 𝑽
𝟐𝟏𝟔 − 𝟏

Asadar, valoarea masurata 37.503 din registru


reprezinta 1.88 V. Acest rationament este implementat in
programul care va rula pe microcontroller.

3.Implementare

“ Programul care va rula pe procesorul microcontroller-ului este compus din 3


parti principale.

Initializare
(initializatios.c)
In acest fisier sunt functiile care initializeaza modulele studiate in laboratoarele
anterioare UART, PIT, RTC (prin functiile InitialiseUART, InitialisePIT,
InitialiseRTC) si initializarea modului ADC.

*InitialiseADC (detaliere)

Functia tryADC0Calibration este o functie in care se seteaza anumiti


parametrii ai sistemului in vederea corectarii erorilor generate de rezistente si
amplificatorilor (dar si a altor componente) din circuit. Pasii de implementare sunt
la paginile 996 si 997 din manual.

In continuare, pentru functionarea modulului se configureaza registri


ADC0_CFG1 (registrul de configurare) si ADC0_SC1A (registrul de stare). Acesti registri
nu sunt cei in care se stocheaza valoarea tensiunii masurate.

ADC0_CFG1 = ADC_CFG1_ADIV(1)|ADC_CFG1_MODE(3);
(mai multe detalii despre semnificatia bitilor- pagina 962 din manual)
ADC0_SC1A = ADC_SC1_ADCH(0);
(mai multe detalii despre semnificatia bitilor- pagina 959 din manual)

Gestionarea
Intreruperilor In acest fisier sunt functiile in care se preia valoarea tensiunii masurate din
(interruptsHandlers.c) registrul ADC0_RA (acesta este registrul in care se stocheaza valoarea tensiunii masurate).

* pentru o precizie mai mare a tensiuni (mai multe zecimale), eroarea din
registru este eronata din cauza erorilor de masurare. Ca o solutie, se realizeaza o medie
a 10 valori ale registrului masurate in decurs a 1 secunda (folosind intreruperea modului
PIT – functia PitHandler). Odata la o secunda, se seteaza cu 1 o variabila
(enablePrint) care indica ca trebuie sa se realizeze afisarea mediei calculate.

“Program loop”
(main.c) Functia principala a programului in care se afiseaza media calculata
(voltageSum / counter) in momentul intreruperilor PIT. Pentru afisare mediei
calculate exprimata in volti, se foloseste regula explicata in partea a 2a a acestui
document.
NU este obligatoriu sa se realizeze media amintita mai sus (se poate afisa
direct valoarea registrului)

4.Montajul

“ Realizareamontajului presupune
utilizarea unui generator de semnal si
masurarea tensiunii semnalului generat.
In cadrul acestui laborator utilizand Waveforms vom
genera un semnal pe canalul 1. Acesta va trebui sa fie conectat la
tower prin canalul de intrare configurat cu ajutorul registrului
ADC0_SC1A. In cazul acesta, canalul este DP0. (detalii la pagina
961 din manual).

Identificarea fizica a pozitiei acestui canal pe tower se


realizeaza cu ajutorul schemelor din documentul TWR-K60F120M-
SCH. De asemenea, masa generatorului de semnal trebuie
conectata la masa microcontroller-ului DM0 (sau orice alt pin de
masa)
In figura alaturata,
DP0 este corespunzator
pinului 8 al jumper-ului J4 iar
masa este pe pinul 9 de pe
acelasi jumper

O alta posibilitate, este de a folosi intrarea A27


pentru DP0 si A28 pentru masa
5.Testare
Pentru testarea aplicatiei, se va conecta generatorul
de semnal la tower, conectand firul galben la pinul 8 din
jumperul 4 si firul negru (masa) la pinul 9 din acelasi jumper

Pas
1

Dupa realizarea acestui montaj, se


deschide aplicatia WaveForms din care se
va genera un semnal pe firul galben.

Pas
2
In cele din urma, se deschide Putty pentru vizualizarea rezultatului. Tensiunea va fi afisata la fiecare secunda.
*atentie, trebuie selectata linia seriala pe care ati conectat tower-ul ( COMx - se poate vizualiza din Device Manager)

Pas
3

S-ar putea să vă placă și