Przetwornik analogowo-cyfrowy A/C wbudowany w

Transkrypt

Przetwornik analogowo-cyfrowy A/C wbudowany w
Politechnika Wrocławska
Instytut Telekomunikacji i Akustyki
Pracownia Techniki Mikroprocesorowej
Instrukcja do ćwiczenia:
Przetwornik analogowo-cyfrowy A/C
wbudowany w mikrokontrolery serii ST7
1. Cel ćwiczenia
Zapoznanie się z przetwornikiem analogowo-cyfrowym. Napisanie programów
konfigurujących przetwornik i wykorzystujących rezultat przetwarzania.
2. Charakterystyka przetwornika
Mikrokontrolery serii ST7 są wyposażone w 8-bit przetwornik analogowo-cyfrowy
(ADC) z kolejnym porównywaniem (aproksymacją) poprzedzony 16-kanałowym
multiplekserem analogowym oraz układem próbkująco-pamiętającym. Do kontroli
przetwornika służy rejestr konfiguracyjny ADCCSR (Control/Status Register) , zaś rezultat
przetwarzania zapisywany jest w rejestrze danych ADCDR (Data Register). Rysunek 2.1
przedstawia schemat blokowy układu przetwornika.
Układy serii ST7 wykorzystują port czwarty (PD) jako alternatywne wejścia
przetwornika analogowo-cyfrowego, a ściśle rzecz ujmując multipleksera. Dodatkowo
wyprowadzone są wejścia zasilania przetwornika VDDA i VSSA, które nie mogą różnić się od
napięcia zasilania mikrokontrolera o więcej niż 0,6V. Taki układ zasilania stwarza możliwość
uniknięcia błędów przetwarzania pochodzących od niestabilności lub zaszumienia napięcia
2
Przetwornik analogowo-cyfrowy A/C
zasilającego. Wejścia przetwornika mogą być obciążone impedancją nie większą niż 10kΩ.
Niezachowanie tego warunku może zwiększyć błędy przetwarzania. Wynika to z określonego
czasu ładowania/rozładowania kondensatora próbkującego (6pF) przez impedancję
wejściową.
Rys. 2.1 Schemat blokowy układu przetwornika analogowo-cyfrowego ADC.
Tryb WAIT oszczędzania energii nie ma wpływu na przetwornik. Dopiero tryb HALT
wstrzymuje pracę przetwornika.
3. Proces przetwarzania
-
Przetwarzanie odbywa się w dwóch fazach:
ładowanie kondensatora próbkującego; czas: 4 cykle przetwornika 1/fADC, czyli 8 cykli
procesora 1/fCPU,
przetwarzanie właściwe; kondensator próbkujący odłączony jest od wejścia; czas: 4 cykle
przetwornika 1/fADC,
Po każdej konwersji naładowany kondensator próbkujący nie jest rozładowywany.
Minimalizuje to udary każdorazowego ładowania. Proces przetwarzania jest powtarzany bez
przerwy. Każda kowersja ustawia bit COCO. Jest on automatycznie zerowany po odczycie
wartości z rejestru danych.
Wrocław 2004
3
Przetwornik analogowo-cyfrowy A/C
4. Konfiguracja
Porty wykorzystywane jako wejścia analogowe muszą być skonfigurowane jako
wejściowe, bez generacji przerwania, bez rezystancji podciągającej (pull-up). Korzystanie z
przetwornika nie wymusza automatycznej konfiguracji portu.
W pierwszej kolejności należy wybrać wejście sygnału poprzez zapis w rejestrze
konfiguracyjnym ADCCSR numer wejścia CH[3:0] portu PD.
Następnie należy włączyć przetwornik poprzez ustawienie bitu ADON w rejestrze
ADCCSR. Od tej chwili przetwornik cyklicznie przetwarza napięcie wejściowe.
Wynik konwersji zapisywany jest do rejestru danych ADCDR. Zakończenie
przetwarzania nie generuje żadnego przerwania. Wartość 8-bit rejestru jest proporcją napięcia
zasilania. Zatem przy zasilaniu równym 5V i takim samym napięciu na wejściu przetwornika
w rejestrze uzyskamy wynik FFh. Przy napięciu równym 0V na wejściu przetwornika
uzyskamy wartość 00h. Zatem możemy mierzyć napięcie w zakresie 0-5V z rozdzielczością
0,02V i dokładnością przetwarzania 1,5-2,0 LSB. Należy nadmienić, że nie są również
generowane zdarzenia przepełnienia, czyli jeśli napięcie na wejściu przetwornika przekroczy
napięcie zasilania (5V), nadal uzyskamy wartość FFh.
5. Opis rejestrów
Poniżej opisano wykorzystywane przez przetwornik ADC rejestry.
Tab. 5.1 Rejestry wykorzystywane przez przetwornik ADC.
-
ADCDR – rejestr danych – umieszczany jest w nim wynik konwersji; tylko do odczytu.
Po odczycie zawartości tego rejestru automatycznie zerowany jest bit COCO.
ADCCSR – rejestr konfiguracyjny – zapis/odczyt.
• COCO – ustawiany sprzętowo po zakończeniu konwersji, zerowany po odczycie
zawartości rejestru danych.
• ADON – ustawiany/zerowany przez program – włącza(1)/wyłącza(0) przetwornik
ADC.
• CH[3:0] – ustawiane/zerowane przez program – definiują w kodzie binarnym numer
wejścia.
Wrocław 2004
4
Przetwornik analogowo-cyfrowy A/C
6. Zadania
Płyta ewaluacyjna MDT2 jest wyposażona w potencjometr 10kΩ pracujący jako
dzielnik napięcia zasilania. Napięcie po podziale jest podawane na port PD0/AIN0. W ten
sposób na wejściu analogowym AIN0 możemy uzyskać dowolną wartość napięcia z zakresu
0-5V.
1. Przeanalizować program dołączony jako przykład. Zastąpić znaki ????? odpowiednimi
wartościami. Sprawdzić działanie programu.
2. Korzystając z szablonu programu z poprzedniego zadania napisać program, który na
podstawie analogowej wartości zadawanej potencjometrem będzie generował sygnał
PWM (modulacja szerokości impulsu) o zadanej częstotliwości, podawany na buzzer
lub jedną z diod.
3. Napisać program, który wartość zadawaną potencjometrem będzie wyświetlał na
wyświetlaczu 7-segm. wyskalowaną w zakresie 0-FF.
Wrocław 2004