Operácie

MMP Cvičenie 8: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Bez shrnutí editace
Balogh (diskusia | príspevky)
 
(6 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 3: Riadok 3:
Literatúra:
Literatúra:


* [http://www.atmel.com/dyn/resources/prod_documents/DOC2559.PDF]
* [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]
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=56429 Newbie's Guide to AVR A/D Converter]


Riadok 9: Riadok 9:
=== Rekapitulácia ===
=== Rekapitulácia ===


Máte k dispozícii vývojovú dosku '''MiniMEXLE''' ([http://virtuallab.kar.elf.stuba.sk/robowiki/index.php?title=Mexle popis],[[Médiá:MiniMexleSchematic.jpg|schéma zapojenia]]) a s procesorom ATmega88 ([http://ap.urpi.fei.stuba.sk/mmp/ATmega88.pdf datasheet]) a prípadne aj testovací program [[Médiá:MexleTest2.hex|mexletest2.hex]].
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. 87 -- 115).  
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.
Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 18,432 MHz (fuses).
Demonštračný program je tuto: [[Médiá:MexleTest2.hex|mexletest2.hex]]




=== A/D prevodník ===
=== A/D prevodník ===
Pozri aj obrázok [[Obrázok:AVR_ADC.png|300px]]


Pre nameranú hodnotu N platí vzťah
Pre nameranú hodnotu N platí vzťah
Riadok 24: Riadok 25:
</math>
</math>


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


  Kanál      MUX3:0    signál
  Kanál      MUX3:0    signál
  --------------------------------------------------------------
  --------------------------------------------------------------
  ADC 0 - 3            nepoužívame
  ADC 0 - 3            vľavo vedľa prepojovacieho poľa
  ADC 4       0100    konektor X2, pravý kanál, Termistor NTC
  ADC 4 - 5            konektor X2, hore
  ADC 5       0101     konektor X2, ľavý kanál, dióda LED2
  ADC 8       1000     interný snímač teploty
ADC 6 - 7            nepoužívame
  Vref        1110    vnútorná referencia 1,1 V
  Vref        1110    vnútorná referencia 1,1 V
  GND          1111    vnútorná zem 0 V
  GND          1111    vnútorná zem 0 V
Riadok 38: Riadok 38:
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.  
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, preto volíme preddeličku 128.
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]]
Príklad najjednoduchšieho SW ovládaného A/D prevodu je uvedená v tomto príklade - pozri [[AVR A/D example.c]]
Riadok 56: Riadok 56:
Príklad: [[AVR StampPlotExample.c]]
Príklad: [[AVR StampPlotExample.c]]
Manual: [[Stamp Plot Manual]]
Manual: [[Stamp Plot Manual]]
== NTC termistor ==
Na doske je použitý typ NTC od firmy Vishay (Catalog-Number: 2381 640 63472)
R25 = 4700 Ohm ± 5 % ; B25/85 = 3977 K ± 0,75 %
* [http://mexlewiki.hs-heilbronn.de/UserFiles/File/Thermometer/NTC-Kennlinie.pdf Prevodová charakteristika senzora]
<math>
    T(R) = \left( \frac{1}{\frac{1}{B} \ln (\frac{R}{R_{25}}) + \frac{1}{T_{N} + 273 K}} \right) - 273 K
</math>
[[Image:MiniMexleNTC.png|center|thumb|476px|Pripojenie termistora na doske MiniMEXLE.]]




Riadok 77: Riadok 61:


=== Úlohy ===
=== Úlohy ===


# Nahrajte si knižnice pre prácu so sériovou linkou, preštudujte využitie knižnice <stdio.h> a demonštrujte.
# 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 termistora na doske MiniMEXLE.
# 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
# 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.  
# 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 teploty z termistora.
# Oboznámte sa s programom StampPlot a zobrazte časový priebeh nameranej veličiny.
# Vyhodnotením prechodového deja identifikujte veľkosť kondenzátora vo výstupnom filtri.




=== Download ===


=== Download ===


[[Obrázok:Icon_Terminal.png]] [http://braypp.googlepages.com/Terminal20080315.zip Terminal 1.9b]
[[Obrázok:Icon_Terminal.png]] [http://braypp.googlepages.com/Terminal20080315.zip Terminal 1.9b]


[[Obrázok:Icon_StampPlotLite.png]] [http://www.selmaware.com/stampplotlite/StampPlotLite_V17.zip StampPlot Lite 1.7]
[[Obrázok:Icon_StampPlotLite.png]] [http://www.parallax.com/Portals/0/Downloads/sw/spl.zip StampPlot Lite 1.7]





Aktuálna revízia z 09:02, 26. november 2010

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

Pozri aj obrázok


Pre nameranú hodnotu N platí vzťah

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

Terminal 1.9b

StampPlot Lite 1.7



Návrat na zoznam cvičení...