CADRS Cvičenie 11: Rozdiel medzi revíziami
Z SensorWiki
(→NTC termistor) |
|||
(23 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) | |||
Riadok 1: | Riadok 1: | ||
[[Obrázok:MexleBanner.png|center]] | [[Obrázok:MexleBanner.png|center]] | ||
− | == | + | == A/D prevodník a vizualizácia pomocou UART == |
Literatúra: | Literatúra: | ||
− | * [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t= | + | * [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= | + | * [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=45341 Using the USART with AVR-GCC] |
− | * [http://www. | + | * [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=48188 Interrupt driven USARTs] |
− | * [ | + | * Ako používať USART: [[AVR Serial.c|knižnica a príklady...]] |
+ | |||
Riadok 15: | Riadok 16: | ||
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 '''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]]. | ||
− | V tejto úlohe sa predpokladá znalosť funkcie | + | V tejto úlohe sa predpokladá znalosť funkcie A/D prevodníka z prednášky (datasheet, str. 87 -- 115). |
Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 18,432 MHz (fuses). | 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]] | Demonštračný program je tuto: [[Médiá:MexleTest2.hex|mexletest2.hex]] | ||
− | === | + | |
+ | === USART === | ||
+ | |||
+ | |||
+ | Nebudeme sa zaoberať detailmi implementácie sériového komunikačného rozhrania procesorov | ||
+ | AVR, pre naše účely postačí jednoduchá knižnica, ktorá obsahuje základné funkcie odladené | ||
+ | pre dosku MiniMEXLE s procesorom ATmega88 a oscilátorom 18,432 MHz. | ||
+ | Máte k dispozícii jednoduchú knižnicu pre prácu so sériovou linkou na procesore | ||
+ | ATmega88, stiahnite a pozrite si [[AVR Serial.c|príklady...]] | ||
+ | |||
+ | Parametre prenosu pre túto knižnicu sú 9600,n,8,1. | ||
+ | |||
+ | Na prácu so sériovou linkou na vašom PC odporúčame program Terminal by Bray, ale môžete | ||
+ | to skúsiť aj s Hyperterminálom. | ||
+ | |||
+ | * [http://braypp.googlepages.com/terminal Terminal by Bray] ([http://braypp.googlepages.com/Terminal20080315.zip download]) | ||
+ | |||
+ | Keby niekoho zaujímalo, ako je realizovaný prevod TTL úrovní na RS-232, tak tu je | ||
+ | [[Media:232Converter.png|schéma zapojenia]], ktorá vychádza z [http://www.kmitl.ac.th/~kswichit/ap275/ap275.htm tohoto návodu]. | ||
+ | |||
+ | === A/D prevodník === | ||
+ | |||
+ | Pre nameranú hodnotu N platí vzťah | ||
+ | |||
+ | <math> | ||
+ | U_{in} = \frac{N U_{ref}}{1024} | ||
+ | </math> | ||
+ | |||
+ | Vstupy A/D prevodníka na MiniMEXLE doske sú zapojené takto: | ||
+ | |||
+ | Kanál MUX3:0 signál | ||
+ | -------------------------------------------------------------- | ||
+ | ADC 0 - 3 nepoužívame | ||
+ | ADC 4 0100 konektor X2, pravý kanál, Termistor NTC | ||
+ | ADC 5 0101 konektor X2, ľavý kanál, dióda LED2 | ||
+ | ADC 6 - 7 nepoužívame | ||
+ | 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, preto volíme preddeličku 128. | ||
+ | |||
+ | 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]] | ||
+ | |||
+ | |||
+ | |||
+ | == 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.]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Ú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 termistora na doske MiniMEXLE. | ||
+ | # 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 teploty z termistora. | ||
+ | # Vyhodnotením prechodového deja identifikujte veľkosť kondenzátora vo výstupnom filtri. | ||
+ | |||
+ | |||
+ | |||
+ | === Download === | ||
+ | |||
+ | |||
+ | [[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] | ||
+ | |||
+ | [[CAD_Riadiacich_syst%C3%A9mov#Cvi.C4.8Denia|Návrat na zoznam cvičení...]] | ||
− | [ | + | [[Category:AVR]][[Category:CAD_RS]] |
Aktuálna revízia z 13:15, 3. december 2008
Obsah
A/D prevodník a vizualizácia pomocou UART
Literatúra:
- Newbie's Guide to AVR A/D Converter
- Using the USART with AVR-GCC
- Interrupt driven USARTs
- Ako používať USART: knižnica a príklady...
Rekapitulácia
Máte k dispozícii vývojovú dosku MiniMEXLE (popis,schéma zapojenia) a s procesorom ATmega88 (datasheet) a prípadne aj testovací program mexletest2.hex.
V tejto úlohe sa predpokladá znalosť funkcie A/D prevodníka z prednášky (datasheet, str. 87 -- 115). 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: mexletest2.hex
USART
Nebudeme sa zaoberať detailmi implementácie sériového komunikačného rozhrania procesorov AVR, pre naše účely postačí jednoduchá knižnica, ktorá obsahuje základné funkcie odladené pre dosku MiniMEXLE s procesorom ATmega88 a oscilátorom 18,432 MHz. Máte k dispozícii jednoduchú knižnicu pre prácu so sériovou linkou na procesore ATmega88, stiahnite a pozrite si príklady...
Parametre prenosu pre túto knižnicu sú 9600,n,8,1.
Na prácu so sériovou linkou na vašom PC odporúčame program Terminal by Bray, ale môžete to skúsiť aj s Hyperterminálom.
Keby niekoho zaujímalo, ako je realizovaný prevod TTL úrovní na RS-232, tak tu je schéma zapojenia, ktorá vychádza z tohoto návodu.
A/D prevodník
Pre nameranú hodnotu N platí vzťah
Vstupy A/D prevodníka na MiniMEXLE doske sú zapojené takto:
Kanál MUX3:0 signál -------------------------------------------------------------- ADC 0 - 3 nepoužívame ADC 4 0100 konektor X2, pravý kanál, Termistor NTC ADC 5 0101 konektor X2, ľavý kanál, dióda LED2 ADC 6 - 7 nepoužívame 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, preto volíme preddeličku 128.
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
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 %
Ú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 termistora na doske MiniMEXLE.
- 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 teploty z termistora.
- Vyhodnotením prechodového deja identifikujte veľkosť kondenzátora vo výstupnom filtri.
Download