CADRS Cvičenie 11
Zo stránky SensorWiki
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á
Headline text
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
- 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