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