Operácie

A/D prevodník: Rozdiel medzi revíziami

Z SensorWiki

(Nová stránka: A/D prevodník)
 
Riadok 1: Riadok 1:
A/D prevodník
+
== A/D prevodník ==
 +
 
 +
Literatúra:
 +
 
 +
* [http://www.atmel.com/dyn/resources/prod_documents/DOC2559.PDF AVR120: Characterization and Calibration of the ADC on an AVR]
 +
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=56429 Newbie's Guide to AVR A/D Converter]
 +
 
 +
 
 +
=== Rekapitulácia ===
 +
 
 +
Máte k dispozícii vývojovú dosku '''Acrob''' s procesorom ATmega328 ([http://ap.urpi.fei.stuba.sk/mmp/ATmega328.pdf datasheet]).
 +
 
 +
V tejto úlohe sa predpokladá znalosť funkcie A/D prevodníka z prednášky (datasheet, str. 251 -- 267). Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 16,00 MHz.
 +
 
 +
 
 +
=== A/D prevodník ===
 +
 
 +
[[Obrázok:AVR_ADC.png|500px|center]]
 +
 
 +
 
 +
Pre nameranú hodnotu N platí vzťah
 +
 
 +
<math>
 +
            U_{in} = \frac{N U_{ref}}{1024}
 +
</math>
 +
 
 +
Vstupy A/D prevodníka na Acrob doske sú zapojené takto (pozri aj obrázok [[:Media:Connectors.png]]):
 +
 
 +
Kanál      MUX3:0    signál
 +
--------------------------------------------------------------
 +
ADC 0 - 3            vľavo vedľa prepojovacieho poľa
 +
ADC 4 - 5            konektor X2, hore
 +
ADC 8        1000    interný snímač teploty
 +
Vref        1110    vnútorná referencia 1,1 V
 +
GND          1111    vnútorná zem 0 V
 +
 
 +
 
 +
Ako zdroj referenčného napätia použijeme priamo napájacie napätie 5V oddelené tlmivkou a filtrované paralelným kondenzátorom 100n. Zodpovedajúce bity REFS1, REFS0 v registri ADMUX sú teda 01.
 +
 
 +
Zdroj hodinového signálu pre A/D prevodník musí byť v rozsahu 50 až 200 kHz!
 +
 
 +
Príklad najjednoduchšieho SW ovládaného A/D prevodu je uvedená v tomto príklade - pozri [[AVR A/D example.c]]
 +
 
 +
=== Vizualizácia ===
 +
 
 +
Vizualizáciu dát môžeme robiť rozlične. Jeden z možných spôsobov je vypisovať
 +
po sériovej linke v pravidelných intervaloch holé data a tie potom uložiť ako
 +
maticu do Matlabu a tam nakresliť graf, priebeh, čo treba...
 +
 
 +
Iná možnosť je použiť napr. program StampPlot, ktorý kreslí prichádzajúce data
 +
priamo ako graf, s výnimkou reťazcov, ktoré začínajú znakom '!', tie považuje za
 +
konfiguračné príkazy.
 +
 
 +
Download: [http://www.selmaware.com/stampplotlite/StampPlotLite_V17.zip StampPlotLite1.7]
 +
 
 +
Príklad: [[AVR StampPlotExample.c]]
 +
Manual: [[Stamp Plot Manual]]
 +
 
 +
 
 +
 
 +
 
 +
=== Úlohy ===
 +
 
 +
# Nahrajte si knižnice pre prácu so sériovou linkou, preštudujte využitie knižnice <stdio.h> a demonštrujte.
 +
# Doplňte program o jednoduchý A/D prevod a zobrazte hodnotu z potenciometra.
 +
# Overte prevod A-D prevodníka meraním vnútornej referencie 1,1 V
 +
# Upravte program pre A-D prevod tak, aby v pracoval autonómne s periódou vzorkovania 100ms.
 +
# Oboznámte sa s programom StampPlot a zobrazte časový priebeh nameranej veličiny.
 +
 
 +
 
 +
=== Download ===
 +
 
 +
 
 +
[[Obrázok:Icon_Terminal.png]] [http://braypp.googlepages.com/Terminal20080315.zip Terminal 1.9b]
 +
 
 +
[[Obrázok:Icon_StampPlotLite.png]] [http://www.parallax.com/Portals/0/Downloads/sw/spl.zip StampPlot Lite 1.7]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
[[Category:AVR]][[Category:MMP]][[Category:DVPS]]

Verzia zo dňa a času 08:45, 28. október 2011

A/D prevodník

Literatúra:


Rekapitulácia

Máte k dispozícii vývojovú dosku Acrob s procesorom ATmega328 (datasheet).

V tejto úlohe sa predpokladá znalosť funkcie A/D prevodníka z prednášky (datasheet, str. 251 -- 267). Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 16,00 MHz.


A/D prevodník

AVR ADC.png


Pre nameranú hodnotu N platí vzťah


             U_{in} = \frac{N U_{ref}}{1024}

Vstupy A/D prevodníka na Acrob doske sú zapojené takto (pozri aj obrázok Media:Connectors.png):

Kanál       MUX3:0    signál
--------------------------------------------------------------
ADC 0 - 3             vľavo vedľa prepojovacieho poľa
ADC 4 - 5             konektor X2, hore
ADC 8        1000     interný snímač teploty
Vref         1110     vnútorná referencia 1,1 V
GND          1111     vnútorná zem 0 V


Ako zdroj referenčného napätia použijeme priamo napájacie napätie 5V oddelené tlmivkou a filtrované paralelným kondenzátorom 100n. Zodpovedajúce bity REFS1, REFS0 v registri ADMUX sú teda 01.

Zdroj hodinového signálu pre A/D prevodník musí byť v rozsahu 50 až 200 kHz!

Príklad najjednoduchšieho SW ovládaného A/D prevodu je uvedená v tomto príklade - pozri AVR A/D example.c

Vizualizácia

Vizualizáciu dát môžeme robiť rozlične. Jeden z možných spôsobov je vypisovať po sériovej linke v pravidelných intervaloch holé data a tie potom uložiť ako maticu do Matlabu a tam nakresliť graf, priebeh, čo treba...

Iná možnosť je použiť napr. program StampPlot, ktorý kreslí prichádzajúce data priamo ako graf, s výnimkou reťazcov, ktoré začínajú znakom '!', tie považuje za konfiguračné príkazy.

Download: StampPlotLite1.7

Príklad: AVR StampPlotExample.c Manual: Stamp Plot Manual



Úlohy

  1. Nahrajte si knižnice pre prácu so sériovou linkou, preštudujte využitie knižnice <stdio.h> a demonštrujte.
  2. Doplňte program o jednoduchý A/D prevod a zobrazte hodnotu z potenciometra.
  3. Overte prevod A-D prevodníka meraním vnútornej referencie 1,1 V
  4. Upravte program pre A-D prevod tak, aby v pracoval autonómne s periódou vzorkovania 100ms.
  5. Oboznámte sa s programom StampPlot a zobrazte časový priebeh nameranej veličiny.


Download

Icon Terminal.png Terminal 1.9b

Icon StampPlotLite.png StampPlot Lite 1.7