Przetworniki analogowo - cyfrowe CELE ĆWICZEŃ Zrozumienie zasady działania przetwornika analogowo-cyfrowego. Poznanie charakterystyk przetworników ADC0804 i ADC0809. Poznanie aplikacji układów ADC0804 i ADC0809. PODSTAWY TEORETYCZNE Przetworniki analogowo-cyfrowe A/C (ang. A/D analog to digital; ADC analog to digital converter) przekształcają wielkości analogowe, która zwykle są ciągłymi wartościami napięcia lub prądu, na słowa cyfrowe używane w technice komputerowej, transmisji danych, obróbce i zapisie danych pomiarowych czy systemach automatycznego sterowania. Taka konwersja jest stosowana, ponieważ sygnały w postaci cyfrowej są łatwe do przechowywania, upraszczają lokalizacje usterek (z wykorzystaniem różnorodnych technik kodowania sygnału) i są prawie wolne od zakłóceń. Zasada pracy przetwornika A/C Na rysunku 9-1 pokazano charakterystykę przenoszenia idealnego przetwornika 3-bitowego. Zakres analogowego sygnału wejściowego od 0V do 1V podlega procesowi kwantyzacji, polegającemu na podziale wielkości ciągłej na 8 dyskretnych przedziałów. Wszystkie wartości analogowe mieszczące się w danym przedziale są reprezentowane przez ten sam kod cyfrowy, który odpowiada nominalnej wartości środkowej przedziału (tzw. poziomowi kwantyzacji). Z tego powodu integralna częścią procesu przetwarzania sygnału analogowego na cyfrowy jest błąd kwantyzacji (polegający na zaokrągleniu wejściowej wartości analogowej do najbliższego poziomu kwantyzacji) równy ±1/2 wartości najmniej znaczącego bitu (ang. LSB - Least Significant Bit). Jedynym sposobem zmniejszenia błędu kwantyzacji jest zwiększenie liczby bitów kodu cyfrowego, czyli tym samym ilości poziomów kwantyzacji sygnału analogowego. Wartość Q, zwana przedziałem kwantyzacji, jest najmniejszą różnicą wartości analogowych, która może zostać rozróżniona (rozpoznana) przez przetwornik A/C. Wartość Q można wyrazić zależnością: gdzie FS jest zakresem zmian analogowej wielkości wejściowej równym [(2n-1)/2n], a 2n jest rozdzielczością układu determinowana długością wyjściowego słowa cyfrowego wyrażonego w liczbie bitów n. Z tego widać, że im większa wartość n, tym większa rozdzielczość przetwornika. Producenci z zasady podają rozdzielczość przetworników A/C w liczbie bitów słowa wyjściowego. Przykładowo, rozdzielczość przetwornika typu ADC0804 podawana w specyfikacji technicznej wynosi 8 bitów. Istnieje wiele rozwiązań układowych przetworników A/C, a w tym: przetworniki z przetwarzaniem bezpośrednim (ang. Flash), z próbkowaniem analogowym (ang. Digital- Ramp), z aproksymacją sukcesywną (ang. Succesive Approximation) czy przetworniki śledzące (ang. Tracking). Ponieważ w ćwiczeniach tego rozdziału wykorzystuje się jedynie przetworniki z aproksymacją sukcesywną, niżej omówiono dokładniej zasadę działania tylko tego typu przetworników A/C. 1
Rysunek 9-2 pokazuje schemat blokowy 8-bitowego przetwornika A/C z aproksymacją sukcesywną (lub kompensacja wagowa). Działanie takiego układu jest następujące. Układ próbkująco pamietający (Sample & Hold) służy do zatrzymania wartości Vi sygnału analogowego, która pojawiła się na wejściu układu w określonej chwili czasowej przed rozpoczęciem procesu konwersji, i zapewnienie stałości tej wartości przez cały okres procesu konwersji. Logiczny układ sterujący (Control logic) ustawia najbardziej znaczący bit (ang. MSB Most Significant Bit) D7 rejestru (Register) na 1, a pozostałe bity na 0. Przetwornik cyfrowo-analogowy (ang. D/A Digital to Analog; DAC Digital to Analog Converter) przekształca kod binarny na analogowy sygnał wyjściowy V(D), który może być wyznaczony z zależności: Sygnał wyjściowy przetwornika C/A V(D) jest równy połowie napięcia odniesienia Vref. Komparator (Comparator) porównuje napięcie V(D) z analogowym sygnałem wejściowym Vi. Jeżeli Vi > V(D), na wyjściu D7 pozostaje stan 1. Jeżeli zaś Vi < V(D), to D7 przechodzi w stan 0, a na wartość 1 ustawiany jest kolejny najbardziej znaczący bit D6. W ten sposób stan 1 jest ustawiany kolejno na każdym bicie rejestru, aż do końca procesu iteracyjnego, w którym ustalona zastania binarna reprezentacja próbki Vi wejściowego napięcia analogowego. Scalony przetwornik analogowo-cyfrowy typu ADC0804 Układ ADC0804 w 20-nóżkowej obudowie typu DIP (ang. DIP Dual-in-Line) jest 8-bitowym przetwornikiem A/C pracującym na zasadzie aproksymacji sukcesywnej. Podstawowymi parametrami układu są: zasilanie niesymetryczne +5V, zakres analogowego napięcia wejściowego 0V do 5V, moc rozpraszana 15mW i 100µs czas konwersji. Ponieważ rozdzielczość układu ADC0804 wynosi 8 bitów, analogowy zakres wejściowy jest dzielony na 256 (28) dyskretnych przedziałów kwantyzacji, zatem przy zakresie napięcia wejściowego wynoszącym 5V, szerokość przedziału jest równa 5/256 = 0,01953V. Wyjściowe słowo cyfrowe 00000000 (00H) odpowiada zatem napięciu 0,00V, natomiast słowo 11111111 (FFH) napięciu 4,9805V. Bezwzględny (nie podlegający regulacji) błąd przetwarzania układu, zawierający błąd kwantyzacji, błąd przesunięcia i błąd nieliniowości wynosi ±1 LSB lub 0,01953V. 2
Na rysunku 9-3 pokazano układ wyprowadzeń przetwornika ADC0804. Aby dane zostały odczytane z wyjść D0 ~ D7, na liniach CS i RD musi być stan niski, co pozwala 3-stanowym przerzutnikom typu latch wygenerować na wyjściu 8-bitowe słowo wyjściowe. Jeżeli CS lub RD są w stanie wysokim, to wyjścia D0 do D7 mają stan nieokreślony (wyjścia pływające). Start przetwornika następuje, gdy linie CS i WR jednocześnie przyjmują stan niski. W tym samym momencie resetowany jest 8-bitowy rejestr. Gdy linia WR przechodzi w stan wysoki, przetwornik rozpoczyna proces konwersji. Wyprowadzenie CLK IN (pin 4) jest wejściem impulsów zegarowych, które mogą mieć częstotliwość od 100 do 800kHz. Wyjście INTR pozostaje w stanie wysokim przez cały czas trwania konwersji i w chwili zakończenia procesu zmienia stan z wysokiego na niski. Analogowe napięcie wejściowe doprowadzane jest do wyprowadzeń VIN(+) i VIN(-). Jeżeli wymagane jest wejście niesymetryczne, to nóżkę VIN(-) należy podłączyć do masy układu. Końcówka A GND jest wyprowadzeniem masy sygnału analogowego, natomiast D GND - cyfrowego. Należy zwrócić uwagę, że napięcie odniesienia VREF jest równe połowie napięcia zasilania układu podanego na wyprowadzenie VCC lub napięciu zewnętrznemu podanemu na końcówkę VREF/2. 3
Impulsy zegarowe do sterowania praca układu ADC0804 mogą być pobierane ze źródła zewnętrznego, podłączonego do wejścia CLK IN (pin 4) lub generowane wewnątrz układu po podłączeniu zewnętrznego obwodu RC. Jak pokazano na rysunku 9-4 zewnętrzny obwód RC podłączany jest do wejść CLK R (pin 19) i CLK IN (pin 4). Częstotliwość wewnętrznego zegara można obliczyć z zależnosci: Rysunek 9-5 przedstawia schemat elektryczny obwodu przetwornika A/C z układem ADC0804. Sygnał analogowy podawany jest na wejście VIN(+), a jego amplituda regulowana jest potencjometrem VR2. Wejście VIN(-) podłączone jest do masy układu. Napięcie odniesienia doprowadzane jest do wejścia VREF/2 (pin 9) z zasilania +5V przez dzielnik napięcia złożony z rezystorów R1 i R2 oraz potencjometru VR1. Iloczyn pojemności C1 i rezystancji R3 ustala częstotliwość zegara układu. Wyprowadzenia CS (pin 1) i RD (pin 2) są bezpośrednio zwarte do masy, aby uaktywnić przetwornik. Dla wygody wyprowadzenia WR (pin 3) i INTR (pin 5) podłączono do przełącznika SW1, aby w późniejszych ćwiczeniach symulować sygnał sterujący. Scalony przetwornik analogowo-cyfrowy typu ADC0809 Układ ADC0809 w 28-nóżkowej obudowie typu DIP jest 8-bitowym przetwornikiem A/C pracującym na zasadzie aproksymacji sukcesywnej z wbudowanym 8-kanałowym multiplekserem. Podstawowymi parametrami układu są: zasilanie niesymetryczne +5V, zakres analogowego napięcia wejściowego 0V do 5V, moc rozpraszana 15mW. Ze względu na wbudowany multiplekser układ ma 8 wejść analogowych. Ponieważ rozdzielczość układu ADC0809 wynosi 8 bitów, analogowy zakres wejściowy jest dzielony na 256 (28) dyskretnych przedziałów kwantyzacji. Dlatego przy zakresie wejściowym wynoszącym 5V, szerokość przedziału jest równa 5/256 = 0,01953V. Wyjściowe słowo cyfrowe 00000000 (00H) odpowiada zatem napięciu 0,00V, natomiast słowo 11111111 (FFH) napięciu 4,9805V. Całkowity, nie podlegający regulacji błąd przetwarzania układu, zawierający błąd kwantyzacji, przesunięcia i nieliniowości oraz błąd multipleksera wynosi ±1 LSB lub 0,01953V. Do sterowania pracą 4
przetwornika ADC0809 wymagany jest przebieg zegarowy o częstotliwości 10kHz do 1280kHz. Typowy czas konwersji przy częstotliwości zegara 640kHz wynosi 100µs. Na rysunku 9-6 pokazano układ wyprowadzeń przetwornika ADC0809. Końcówki 5, 4, 3, 2, 1, 28, 27 i 36 są wejściami analogowymi układu IN7 do IN0, natomiast końcówki 21, 20, 19, 18, 8, 15, 14 i 17 są wyjściami cyfrowymi odpowiednio D7 do D0 przetwornika. Wyprowadzenie 10 jest wejściem przebiegu zegarowego. W praktyce dla wygody łączy się wejście VCC (pin 11) z wejściem napięcia odniesienia VREF(+) (pin 12). Należy zwrócić jednak uwagę, że takie połączenie zmniejsza dokładność przetwornika, gdy źródło zasilania układu ma mała stabilność. Wyboru konkretnego kanału wejściowego dokonuje się, ustawiając odpowiednio stan wejść ADDA (pin 25), ADDB (pin 24) i ADDC (pin 23) dekodera adresu. Przykładowo, kanał IN0 jest ustawiany, gdy wejścia ADDA, ADDB i ADDC są w stanie niskim (000). Układ ADC0809 został zaprojektowany do bezpośredniej współpracy z systemem mikroprocesorowym. 3-stanowe wyjście układu ADC0809 eliminuje konieczność korzystania z urządzeń peryferyjnych. Linie sterujące START, EOC (End-of-Conversion), OE (Output enable) i ALE (address latch enable) są zwykle podłączane do standardowych linii szyny sterującej mikroprocesora (CPU). Za pośrednictwem linii sterujących przetwornik ADC0809 łatwo komunikuje się z CPU w celu wymiany danych miedzy nimi. Jak tylko ADC0809 zakończy proces konwersji, linia EOC zmienia stan, aby zgłosić przerwanie do mikroprocesora. Gdy CPU jest gotowy do odbioru danych z wyjścia cyfrowego przetwornika, mikroprocesor wysyła sygnał OE i odczytuje dane z przetwornika, a następnie aktywuje sygnały ALE i START, aby uruchomić kolejny proces konwersji przetwornika. Oczywiście przy pracy wielokanałowej, w czasie restartu procesu muszą być ustawione odpowiednie wejścia dekodera adresu wejścia sygnału analogowego. 5
Rysunek 9-7 przedstawia schemat elektryczny obwodu przetwornika A/C z układem ADC0809. Wyprowadzenia EOC i START są na stałe połączone ze sobą, co powoduje, że pojawienie się sygnału EOC automatycznie uruchamia kolejny proces konwersji. Sterujące pracą układu impulsy zegarowe są podawane na wejścia ALE i CLK. Wielkość napięcia analogowego na wejściu IN0 jest ustalana potencjometrem VR1, podczas gdy napięcia na pozostałych wejściach (IN1 do IN7) są determinowane dzielnikiem napięcia złożonym z rezystorów R1 do R7. Wybór kanału wejściowego jest dokonywany przez odpowiednie ustawienie przełączników SW1, SW2 i SW3. Diody LED sygnalizują stan poszczególnych wyjść cyfrowych układu. 6
Zespół Szkół Mechanicznych w Namysłowie Eksploatacja urządzeń elektronicznych Temat ćwiczenia: Przetworniki analogowo - cyfrowe Imię i nazwisko Nr ćw 01 Data wykonania Klasa 3TZ Grupa Zespół OCENY Samoocena Wykonanie Ogólna CEL ĆWICZENIA: WYMAGANE WYPOSAŻENIE 1. Moduł KL-92001, moduł KL-94001, multimetr cyfrowy, Odpowiedz na pytania 1. Opisz funkcje rezystora R3 i kondensatora C1 w obwodzie przetwornika z układem ADC0804 z rysunku 9-5. 2. Opisz funkcje przełączników SW1, SW2 i SW3 w obwodzie przetwornika z układem ADC0809 z rysunku 9-7. 3. Co składa się na nieusuwalny błąd przetwarzania w układzie ADC0804? 4. Co składa się na nieusuwalny błąd przetwarzania w układzie ADC0809? Ćwiczenie 9-1 Przetwornik A/C z układem ADC0804 1. W module KL-94001 zlokalizować obwód przetwornika A/C z układem ADC0804 i włączyć zasilanie. 2. Multimetrem mierzyć napięcie na wejściu Vref/2 (pin 9), powoli regulując potencjometrem VR1 do uzyskania wartości 2,5V. W ten sposób zostaje ustawiony zakres analogowego napięcia wejściowego 0V do 5V. 3. Mierząc napięcie na wejściu analogowym układu (pin 6), powoli regulować potencjometrem VR2 do uzyskania odczytu 0V. 4. Wpiąć zwieracz do punktu J1, aby zablokować stan wyjść cyfrowych. Odczytać stan wyjść na podstawie obserwacji diod LED i wynik wpisać do tabeli 9-1. 5. Wyjąć zwieracz z punktu J1. Stan wyjść cyfrowych będzie się zmieniał w zależności od analogowego napięcia wejściowego. 6. Precyzyjnie regulując potencjometrem VR2, ustawiać kolejno wartości napięcia wejściowego zgodnie z tabela 9-1 i powtarzać punkty 4 i 5. Uzupełnić tabele 9-1. Tabela 9-1 Analogowe Wyjście cyfrowe napięcie Wartość przewidywana Wartość zmierzona wejściowe Binarna Heksadecymalna Binarna Heksadecymalna (V) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 7
Ćwiczenie 9-2 Przetwornik A/C z układem ADC0809 1. W module KL-94001 zlokalizować obwód przetwornika A/C z układem ADC0809 i włączyć zasilanie. 2. Do wejścia przebiegu zegarowego układu (CLK) podłączyć sygnał prostokątny o częstotliwości 120kHz, amplitudzie 2,5V i składowej stałej 2,5V (stan wysoki = 5V, stan niski = 0V). 3. Przełączniki SW1, SW2 i SW3 przełączyć w położenie GND. Sygnał analogowy będzie pobierany z wejścia IN0. 4. Precyzyjnie regulując potencjometrem VR1, ustawiać kolejno wartości napięcia wejściowego zgodnie z tabela 9-2. 5. Dla każdego napięcia wejściowego odczytać stan wyjść na podstawie obserwacji diod LED i wyniki wpisać do tabeli 9-2. 6. Obliczyć napięcia na wejściach IN1 do IN7 i wyniki wpisać do tabeli 9-2. 7. Ustawiać kolejno przełączniki SW1, SW2 i SW3 w położenia zgodne z tabela 9-3, aby aktywować kolejne wejścia analogowe (IN1 do IN7) obwodu. 8. Odczytać stan wyjść układu na podstawie obserwacji diod LED i wyniki wpisać do tabeli 9-3. Tabela 9-2 Analogowe Wyjście cyfrowe napięcie Wartość przewidywana Wartość zmierzona wejściowe Binarna Heksadecymalna Binarna Heksadecymalna (V) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 8
Tabela 9-3 Napięcie na wejściu Przełącznik analogowym (wartość obliczona) SW1 SW2 SW3 port napięcie wejściowy Wartość na wyjściu cyfrowym (wartość odczytana) Binarna Heksadecymalna GND GND +5V IN 1 GND +5V GND IN 2 GND +5V +5V IN 3 +5V GND GND IN 4 +5V GND +5V IN 5 +5V +5V GND IN 6 +5V +5V +5V IN 7 WNIOSKI I SPOSTRZEŻENIA 9